it-swarm-eu.dev

In che modo Chrome e Firefox convalidano i certificati SSL?

In che modo Chrome e Firefox convalidano i certificati SSL? Stanno richiedendo dati da un sito Web di certificazione SSL, come GeoTrust, per convalidare il certificato ricevuto dal server web?

26
user1397542

I browser e/o i sistemi operativi tendono a presentare un elenco predefinito di certificati CA utilizzati come ancoraggi affidabili per verificare i certificati dei server a cui si connettono. Sono tutti personalizzabili (ad eccezione dei certificati EV, per i quali i certificati radice sono codificati nel browser, sebbene sia possibile disabilitarli ... ad eccezione dei bug).

Firefox utilizza il suo elenco personale su tutte le piattaforme.

Internet Explorer e Chrome utilizza il repository di certificati del sistema operativo su Windows. L'impostazione predefinita è disponibile tramite Microsoft programma Root Certificate .

Apple ha anche il suo programma .

L'affidabilità di un certificato server sconosciuto a priori viene effettuata creando un percorso di certificazione tra questo certificato e uno degli ancoraggi di fiducia del browser. Questo viene fatto come definito in RFC 3280/RFC 5280.

Inoltre, è possibile verificare la revoca del certificato tramite CRL o OCSP.

Quindi non è possibile intercettare la comunicazione tra il browser e una CA per falsificare un certificato valido poiché il certificato è probabilmente già nella cache del browser?

Per reiterare il punto che ho fatto come commento alle risposte di Wug: il repository degli ancoraggi di fiducia non è un cache . Una cache è un segnaposto dinamico volto a mantenere a tua disposizione ciò a cui hai avuto accesso di recente, in base al presupposto che ne avrai bisogno presto. Al contrario, l'elenco dei certificati attendibili non deve mai essere aggiornato automaticamente in base a ciò che si sta attualmente navigando. (Potrebbe essere aggiornato da aggiornamenti di sicurezza automatici, ma questo è un problema diverso.)

Il certificato del server verrà ottenuto ogni volta che viene stabilita una nuova sessione SSL/TLS e il browser deve verificarlo ogni volta. Non è memorizzato nella cache. (Potresti avere un po 'di cache OCSP, ma questo per migliorare le prestazioni e conservarlo solo per un breve periodo di tempo. Questo è solo per verificare lo stato di revoca, al momento dell'accesso.)

Contattare la CA è solo per la revoca del certificato. In caso contrario, non contattare un'autorità di certificazione. I certificati CA (le tue ancore di fiducia) sono un dato, un "salto di fiducia", fornito per te dal tuo sistema operativo/browser (che puoi scegliere esplicitamente, ma è stato risolto per quanto riguarda una determinata connessione). Nella migliore delle ipotesi, è possibile impedire il controllo della revoca del certificato (che può causare il fallimento della convalida del browser, a seconda delle impostazioni).

16
Bruno

Il server Web invierà l'intera catena di certificati al client su richiesta. Il browser (o altro validatore) può quindi controllare il certificato più alto della catena con certificati CA archiviati localmente.

La maggior parte dei sistemi operativi conserva una cache di certificati autorevoli a cui i browser possono accedere per tali scopi, altrimenti il ​​browser ne avrà il proprio set da qualche parte.

Un certificato può essere firmato da un altro certificato, formando una "catena di fiducia" che di solito termina con un certificato autorevole autofirmato fornito da un'entità come GeoTrust, Verisign, Godaddy, ecc.

Questa sarebbe una domanda migliore per il sito di sicurezza SE.

Google Chrome, in particolare, non sono sicuro al 100% che utilizza la cache del sistema operativo, ma è possibile aggiungere un certificato autorevole tramite Wrench -> Impostazioni -> Mostra impostazioni avanzate -> HTTPS/SSL -> Gestisci certificati -> Autorità di certificazione radice attendibili e aggiungendo un certificato CA autorevole lì.

3
Wug

Come ha spiegato Wug, la convalida si verifica dal certificato del server al certificato più alto della catena. Il browser esaminerà le proprietà del certificato ed eseguirà la convalida di base, ad esempio assicurandosi che l'URL corrisponda a Issued to campo, il Issued By Il campo contiene un'Autorità di certificazione attendibile, la data di scadenza è corretta nel Valid From campo, ecc.

Inoltre, ogni certificato contiene URL che puntano a Elenchi di revoche di certificati (CRL Distribution Points), il client tenterà di scaricare l'elenco da tale URL e assicurarsi che il certificato in questione non sia stato revocato.

Per rispondere alla tua domanda

Stanno richiedendo dati dal sito Web di certificazione SSL come GeoTrust per convalidare il certificato ricevuto dal server Web?

, il browser eseguirà la convalida di base e quindi contatterà il server dell'autorità CA (tramite punti CRL) per assicurarsi che il certificato sia ancora valido.

3
Ulises

Ecco la mia opinione sulla certificazione del certificato. Supponendo che il certificato Web abbia il nome corretto, il browser tenta di trovare l'autorità di certificazione che ha firmato il certificato del server Web per recuperare la chiave pubblica del firmatario. L'autorità di certificazione firmataria può far parte di una catena di autorità di certificazione

Con la chiave pubblica è possibile decrittografare la firma sul certificato del sito Web (ciò garantisce che solo la CA avrebbe potuto firmarla a meno che la loro chiave privata non fosse stata compromessa) per rivelare un hash del certificato del server Web. Il browser calcola anche l'hash del certificato del server Web e se i due hash corrispondono che dimostrano che l'autorità di certificazione ha firmato il certificato.

Se non è possibile trovare la chiave pubblica del firmatario o gli hash non corrispondono, il certificato non è valido.

Il problema con questo sistema è che le autorità di certificazione non sono completamente affidabili.

1
Bill Laing

Nota che Google Chrome ha smesso di utilizzare gli elenchi CRL intorno al 7 febbraio 2012 per verificare se un certificato era valido. Sembra che abbiano creato tutti i certificati validi nel browser e installato un nuovo set ogni volta che il browser è aggiornato. Vedi URL: https://threatpost.com/en_us/blogs/google-stop-using-online-crl-checks-chrome-020712 .

0
Andrew Stern