Come funzionano i certificati in termini di crittografia, hashing e firma?

7

Penso che potrei capire questa roba, ma voglio essere sicuro di avere i dettagli corretti. Ci sono molte informazioni là fuori sull'implementazione di alto livello dei certificati, così come l'implementazione della crittografia a livello di matematica e così via, ma non ho trovato molto sui dettagli di basso livello.

Ho scritto la mia comprensione, come meglio posso metterla insieme, ma sono sicuro di aver smarrito i dettagli in un modo o nell'altro. Puoi dirmi quali sono questi errori? (E non intendo ciò che ho dimenticato. Io non voglio discutere di CRL o formati X.509, ecc. Tutto ciò che è l'implementazione. Quello che mi interessa è un comprensione semi-idealizzata del processo.) Ecco il mio articolo.

Grazie in anticipo.

Ottenere un certificato da una CA

Un'autorità di certificazione (CA) è solo un'organizzazione che ha una coppia di chiavi pubblica-privata e che altri si fidano per verificare le identità. Se Alice (alice.com) vuole avere un certificato digitale firmato da una CA, genera una coppia di chiavi pubblica-privata. Crea un documento contenente alcune informazioni identificative come l'FQDN e l'indirizzo e-mail di una persona, ecc. E lo crittografa con la sua chiave privata. Lei confeziona questo documento crittografato con la sua chiave pubblica. Questa è la richiesta di firma del certificato (CSR).

Invia il CSR all'autorità di certificazione e chiede loro di verificare la sua identità. Usano la chiave pubblica per decifrare il suo documento, dimostrando loro che detiene sia le chiavi pubbliche che quelle private in quella coppia. Possono verificare la propria identità in vari modi, da quelli automatici e tecnici, a lunghi e legali, a seconda di quale sia lo scopo del certificato (autenticare un indirizzo e-mail? Un server Web?), Sia che si tratti di un individuo o di un'azienda, e quale livello di fiducia vogliono che gli altri inseriscano nel certificato.

Una volta che la CA ha verificato l'identità del richiedente, creerà un documento contenente le sue informazioni identificative (potrebbe o meno essere identico a ciò che ha inviato), insieme alla sua chiave pubblica, e "firmerà" quel documento creando un hash e crittografando l'hash con la propria chiave privata. La firma e alcuni metadati (ad es., Che la CA ha generato) vengono aggiunti al documento e il risultato è il suo certificato.

Verifica di un certificato

Supponiamo che Bob voglia verificare che Alice sia chi afferma di essere. Fornisce il certificato a lui e determina quale CA ha generato il certificato. Poiché si fida della CA, ha la sua chiave pubblica memorizzata nel suo sistema. Può usare la chiave pubblica della CA per verificare la firma: decrittografa l'hash con la chiave pubblica della CA e calcola anche l'hash stesso. Se i valori sono d'accordo, allora sa che il documento non è stato manomesso e che la CA garantisce l'identità di Alice.

Utilizzo di una CA intermedia

È possibile avere una CA intermedia. In questo caso, il certificato della CA intermedia emette il certificato dell'utente e ha il proprio certificato firmato da una CA di livello superiore. Affinché il certificato dell'utente sia considerato affidabile da altri, la catena della firma deve terminare con una CA radice affidabile.

    
posta Dave Hirsch 20.01.2017 - 08:18
fonte

1 risposta

1

La tua correzione viene verificata. Un pelo:

Come dave_thompson_085 cita , la crittografia e la firma non sono le stesse operazioni. Sebbene possano essere implementati nello stesso modo in libro di testo RSA, non significa che siano uguali. Infatti, X.509 supporta ECDSA, dove le firme sono implementate completamente diverse.

    
risposta data 08.05.2018 - 15:49
fonte