Mozilla implementa CRLite per verificare la presenza di certificati TLS problematici

Società Mozilla ha annunciato il sull'inizio dei test nelle build notturne di Firefox un nuovo meccanismo per rilevare i certificati revocati - CR Lite. CRLite consente di organizzare un controllo efficace della revoca dei certificati rispetto a un database ospitato sul sistema dell'utente. Implementazione CRLite di Mozilla pubblicato sotto la licenza MPL 2.0 gratuita. Viene scritto il codice per generare il database e i componenti server Python e vai. Parti client aggiunte a Firefox per la lettura dei dati dal database preparato nel linguaggio Rust.

Verifica del certificato tramite servizi esterni in base al protocollo ancora utilizzato OCSP (Online Certificate Status Protocol) richiede un accesso garantito alla rete, comporta un ritardo significativo nell'elaborazione delle richieste (350 ms in media) e ha problemi nel garantire la riservatezza (i server OCSP che rispondono alle richieste ricevono informazioni su certificati specifici, che possono essere utilizzate per giudicare se ciò siti aperti dall'utente). Esiste anche la possibilità di un controllo locale rispetto agli elenchi CRL (Certificate Revocation List), ma lo svantaggio di questo metodo è la dimensione molto elevata dei dati scaricati: attualmente il database dei certificati revocati occupa circa 300 MB ed è in continua crescita.

Per bloccare i certificati compromessi e revocati dalle autorità di certificazione, Firefox utilizza dal 2015 una blacklist centralizzata OneCRL in combinazione con una chiamata al servizio Navigazione sicura di Google per identificare possibili attività dannose. OneCRL, come CRLSet in Chrome, funge da collegamento intermedio che aggrega gli elenchi CRL degli enti di certificazione e fornisce un unico servizio OCSP centralizzato per la verifica dei certificati revocati, consentendo di non inviare richieste direttamente agli enti di certificazione. Nonostante il grande lavoro svolto per migliorare l’affidabilità del servizio di verifica dei certificati online, i dati di telemetria mostrano che oltre il 7% delle richieste OCSP va in timeout (qualche anno fa questa cifra era del 15%).

Per impostazione predefinita, se è impossibile verificare tramite OCSP, il browser considera valido il certificato. Il servizio potrebbe non essere disponibile a causa di problemi di rete e restrizioni sulle reti interne o essere bloccato da aggressori: per aggirare il controllo OCSP durante un attacco MITM, è sufficiente bloccare l'accesso al servizio di controllo. Per prevenire parzialmente tali attacchi, è stata implementata una tecnica Must-Fiocco, che consente di trattare un errore di accesso OCSP o un'indisponibilità OCSP come un problema con il certificato, ma questa funzionalità è facoltativa e richiede una registrazione speciale del certificato.

CRLite consente di consolidare le informazioni complete su tutti i certificati revocati in una struttura facilmente aggiornabile, di solo 1 MB di dimensione, che rende possibile archiviare un database CRL completo sul lato client.
Il browser sarà in grado di sincronizzare quotidianamente la propria copia dei dati sui certificati revocati e questo database sarà disponibile in qualsiasi condizione.

CRLite combina le informazioni da Trasparenza del certificato, un registro pubblico di tutti i certificati emessi e revocati e i risultati della scansione dei certificati su Internet (vengono raccolti vari elenchi CRL di autorità di certificazione e vengono aggregate le informazioni su tutti i certificati conosciuti). I dati vengono confezionati utilizzando la cascata Filtri Bloom, una struttura probabilistica che consente una falsa individuazione di un elemento mancante, ma esclude l'omissione di un elemento esistente (cioè, con una certa probabilità, è possibile un falso positivo per un certificato corretto, ma è garantita l'identificazione dei certificati revocati).

Per eliminare i falsi positivi, CRLite ha introdotto ulteriori livelli di filtro correttivo. Dopo aver generato la struttura, vengono cercati tutti i record di origine e vengono identificati eventuali falsi positivi. In base ai risultati di questo controllo viene creata un'ulteriore struttura che si sovrappone alla prima e corregge i falsi positivi risultanti. L'operazione viene ripetuta finché i falsi positivi durante la verifica di controllo non vengono completamente eliminati. In genere, la creazione di 7-10 livelli è sufficiente per coprire completamente tutti i dati. Poiché lo stato del database, a causa della sincronizzazione periodica, è leggermente in ritardo rispetto allo stato attuale della CRL, il controllo dei nuovi certificati emessi dopo l'ultimo aggiornamento del database CRLite viene effettuato utilizzando il protocollo OCSP, compreso l'utilizzo del Pinzatura OCSP (una risposta OCSP certificata da un'autorità di certificazione viene trasmessa dal server che serve il sito durante la negoziazione di una connessione TLS).

Mozilla implementa CRLite per verificare la presenza di certificati TLS problematici

Utilizzando i filtri Bloom è stato possibile comprimere in una struttura di 100 MB la fetta di informazioni di dicembre della WebPKI, che comprendeva 750 milioni di certificati attivi e 1.3mila certificati revocati. Il processo di generazione della struttura è piuttosto dispendioso in termini di risorse, ma viene eseguito sul server Mozilla e all'utente viene fornito un aggiornamento già pronto. Ad esempio, in formato binario, i dati di origine utilizzati durante la generazione richiedono circa 16 GB di memoria se archiviati nel DBMS Redis e in formato esadecimale, un dump di tutti i numeri di serie del certificato richiede circa 6.7 ​​GB. Il processo di aggregazione di tutti i certificati revocati e attivi richiede circa 40 minuti, mentre il processo di generazione di una struttura a pacchetto basata sul filtro Bloom richiede altri 20 minuti.

Mozilla attualmente garantisce che il database CRLite venga aggiornato quattro volte al giorno (non tutti gli aggiornamenti vengono consegnati ai client). La generazione di aggiornamenti delta non è stata ancora implementata: l'uso di bsdiff4, utilizzato per creare aggiornamenti delta per i rilasci, non fornisce un'efficienza adeguata per CRLite e gli aggiornamenti sono irragionevolmente grandi. Per eliminare questo inconveniente, si prevede di rielaborare il formato della struttura di archiviazione per eliminare inutili ricostruzioni e cancellazioni di livelli.

CRLite attualmente funziona in Firefox in modalità passiva e viene utilizzato in parallelo con OCSP per accumulare statistiche sul corretto funzionamento. CRLite può essere commutato in modalità di scansione principale; per fare ciò è necessario impostare il parametro security.pki.crlite_mode = 2 in about:config.

Mozilla implementa CRLite per verificare la presenza di certificati TLS problematici

Fonte: opennet.ru

Aggiungi un commento