I browser Web memorizzano nella cache i certificati SSL?


26

Alcuni browser web memorizzano nella cache i certificati del server SSL? Ad esempio, se cambio il certificato SSL su un server Web, tutti i browser web preleveranno il nuovo certificato quando si connettono tramite SSL o è possibile che abbiano un certificato obsoleto?

Sto pensando allo scenario in cui un certificato SSL scade e viene sostituito da uno nuovo sul server Web.


Suppongo che il browser controlli la data sul certificato per vedere se deve averne uno nuovo, come fa per tutto il resto ma non ne sono sicuro.
soandos,

Dai un'occhiata qui imperialviolet.org/2011/05/04/pinning.html sul "pinning dei certificati" e all'iniziativa HSTS perché è legato al precedente dev.chromium.org/sts
Shadok,

1
A partire dal 2019 il mio Chrome 75 memorizza i certificati SSL nella cache
Fabian Thommen il

Risposte:


10

Bene, la risposta di RedGrittyBrick è corretta, ma non risponde davvero alla domanda. La domanda era, se i browser lo fanno, non se dovrebbero o debbano farlo.

Da quello che ho sentito, sia MSIE che Chrome in realtà rilasciano certificati di cache e non li sostituiscono quando ottengono una nuova versione fintanto che quella vecchia è valida. Perché lo fanno non è per me capire, in quanto riduce la sicurezza.


La risposta attualmente accettata è abbastanza chiara. Indica specificamente che, no , i browser non memorizzano nella cache i certificati. Quando fai notare che il panorama è cambiato, i motivi per cui Chrome è ben documentato sarebbe bello che tu ti colleghi a questi motivi. Poiché il certificato è ancora valido, non "abbassa" la sicurezza che non avrebbe senso.
Ramhound,

3
Lo abbassa, perché non è possibile sostituire una vecchia chiave SHA-1 con una nuova, perché quella vecchia è ancora valida e Chrome ignora la nuova, se ho capito tutto bene. Quindi non c'è modo di imporre il passaggio a standard di sicurezza più elevati, quindi "si abbassa" in un senso relativo non consentendo di spingerlo più in alto. Proprio come l'inflazione non riduce il valore designato del denaro, ma il suo valore di mercato effettivo.
martedì

5
+1 Dopo che StartSSL ha mescolato il fiasco a catena SHA1 / SHA2 , è chiaro che Chrome su Windows sta effettivamente memorizzando nella cache certificati intermedi, possibilmente indefinitamente. Chrome ignorerà qualsiasi nuovo certificato intermedio inviato dal server. Non è chiaro se la memorizzazione nella cache sia regolata dall'identità del server cert o dall'identità del cert intermedio e che cosa costituisce esattamente tale identità.
Robert Važan,

3
risolto il problema oggi, sia Chrome che Firefox mostrano diversi certificati nella finestra normale (vecchio certificato) e nella modalità di navigazione in incognito (quella corretta). Le utility da riga di comando come curl o openssl riportano ovviamente il certificato corretto. Risolto cancellando la cache del browser (ctrl + shift + del) - "cookie e altri dati del sito" per Chrome e "dati del sito Web offline" per Firefox.
anilech,

1
Almeno la versione attuale di Firefox (66.0) su OSX sembra mantenere la sua cache piuttosto forte. Ieri ho aggiornato un certificato TLS per il mio sito Web e sia CLI opensslche Chromium mi mostrano il nuovo certificato. Firefox mi mostra quello vecchio nonostante sia stato ricaricato con cache disabilitata, cancellando tutta la cache e i dati offline e un riavvio del browser.
Tad Lispy,

20

No. Vedi la panoramica di IBM SSL

  1. Il client SSL invia un messaggio "ciao client" che elenca informazioni crittografiche come la versione SSL e, nell'ordine di preferenza del client, i CipherSuites supportati dal client. Il messaggio contiene anche una stringa di byte casuale che viene utilizzata nei calcoli successivi. Il protocollo SSL consente al "client hello" di includere i metodi di compressione dei dati supportati dal client, ma le attuali implementazioni SSL di solito non includono questa disposizione.

  2. Il server SSL risponde con un messaggio "ciao server" che contiene la CipherSuite scelta dal server dall'elenco fornito dal client SSL, l'ID di sessione e un'altra stringa di byte casuale. Il server SSL invia anche il suo certificato digitale . Se il server richiede un certificato digitale per l'autenticazione client, il server invia una "richiesta di certificato client" che include un elenco dei tipi di certificati supportati e i nomi distinti delle autorità di certificazione accettabili (CA).

  3. Il client SSL verifica la firma digitale sul certificato digitale del server SSL e verifica che la CipherSuite scelta dal server sia accettabile.

...

Il riassunto di Microsoft è simile. Anche l'handshake TLS è simile a questo riguardo.

Nel passaggio 2 non sembra esserci un modo per il client di dire "non preoccuparti di inviare un certificato del server, userò la mia cache".

Si noti che esistono diversi tipi di certificati, client, server e CA. Alcuni di questi sono memorizzati nella cache.


Domanda originale modificata per chiarire che si tratta di un certificato del server.
Lorin Hochstein,

Ciò non è vero e supporre che non ci sia cache a causa di una panoramica di come funziona SSL esclude la memorizzazione nella cache è una giustificazione piuttosto negativa. youtube.com/watch?v=wMFPe-DwULM
Evan Carroll

L'unica cache che potrebbe essere utilizzata è per i controlli di validità, sebbene si tratti di un compromesso di sicurezza.
Daniel B,

0

Non sono sicuro che il mio contributo possa aiutare in alcun modo, ma ecco quello che ho appena sperimentato: ho un sito web in azzurro con un dominio personalizzato. Ho provato ad accedervi con https in chromes prima di configurare l'associazione SSL per il mio nome di dominio. Chrome mi stava dicendo che il sito non è sicuro, il che ha perfettamente senso (ERR_CERT_COMMON_NAME_INVALID) Ma dopo aver caricato il mio certificato e configurato l'associazione SSL in azzurro continuavo a ricevere lo stesso errore. A questo punto, quando si apriva una nuova finestra del browser privato (o si utilizzava un altro browser) l'https funzionava bene.

Ma non sono mai riuscito a farlo funzionare nella mia sessione di Chrome aperta. Ho provato a cancellare lo stato SSL, stesso risultato. Ha funzionato dopo aver riavviato Chrome completamente.

Probabilmente sono stato ingannato da qualcosa ma sembrava quasi che il certificato fosse memorizzato nella cache ...


Tale errore implicherebbe che hai effettuato l'accesso al sito con un URI diverso da quello presente nella CN. Hai effettivamente modificato l'URI per accedere al sito in Chrome dopo aver impostato l'associazione?
Seth

no, l'unica cosa che ho cambiato in quel momento è stata la rilegatura. Quando ho interrogato per la prima volta https è stato servito usando il valore predefinito azzurro ssl cert, ma mi stava ancora servendo questo dopo aver modificato l'associazione con il certificato corretto in Azure.
Etienne,

Come hai detto che hai configurato l'associazione SSL del tuo dominio, ciò significa che hai eseguito l'accesso al server utilizzando il dominio dall'inizio o no? L'errore indicherebbe che c'era una differenza tra l'URL che hai usato e l'URL per cui il certificato era. Ecco cosa intendevo. Inoltre, la tua attuale configurazione del server potrebbe importare molto se pensi a HSTS e simili.
Seth

1
Passaggio 1: sito Web pubblicato in azzurro. In questa fase ha sia un URL azzurro predefinito che un certificato predefinito. Passaggio 2: imposta il dominio personalizzato per l'app Web, ora mysite.com punta correttamente al sito. Il certificato SSL per mysite.com non è configurato in questa fase. Passo 3: A questo punto, quando provo a https del sito, ricevo un errore di sicurezza che dice che il certificato non corrisponde (e ha perfettamente senso) Passaggio 4: installo il certificato SSL per Mysite.com in azzurro e STILL l'avviso di sicurezza viene visualizzato da Chrome. NON si verifica in nessun altro browser o se apro un navigatore privato.
Etienne,

1
Passaggio 5: riavvio Chrome e ora (e solo ora) il mio sito Web viene pubblicato utilizzando il certificato SSL corretto. Quindi la mia conclusione è che c'era davvero un problema di memorizzazione nella cache del certificato
Etienne,

-1

Ci sono piani di alcuni sviluppatori di browser per implementare un sistema di questo tipo per rilevare attacchi come l' attacco a Diginotar nel 2011.

Ma al momento AFAIK non esiste un sistema simile nei browser attuali. Pertanto, non è necessario pensare a questa situazione durante l'aggiornamento del certificato del server.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.