È possibile utilizzare una raccolta aperta di certificati SSL predefiniti per il mio browser?

3

I browser e i sistemi operativi sono dotati di una serie di certificati SSL predefiniti per organizzazioni ben note, come i certificati radice delle CA.

Comprendo che il modello di fiducia è il seguente: scelgo (in realtà gli sviluppatori del mio software scelgono per me) alcune importanti autorità di certificazione e decido di fidarmi di loro. Anche se non mi rivolgo quasi mai ai siti di queste CA, i siti che utilizzo utilizzano certificati dipendenti dalle CA, in modo tale da fidarsi automaticamente di qualsiasi certificato derivante da un certificato di origine di cui mi fido.

Tuttavia, mi fido dei siti che visito oltre alle CA radice . Quindi, non voglio usare questo modello basato sull'albero. Invece, mi piacerebbe che fosse mia responsabilità personale verificare e archiviare individualmente il certificato di ogni sito che visito. Capisco che ciò possa comportare rischi poiché le mie risorse per il rilevamento di certificati compromessi sono limitate.

Sembra che oggi potrei fare questo: posso cancellare tutti i miei certificati di root e iniziare ad aggiungere eccezioni per ogni sito che visito (assumendo che decido di fidarmi di loro). Tuttavia, questo introdurrebbe un periodo di regolazione molto frustrante in cui la mia navigazione viene spesso interrotta dal fatto di dover aggiungere costantemente un'eccezione per i siti che navigo spesso.

Immagino inoltre che questa impraticabilità possa essere facilmente risolta: molti siti che visito sono casi controversi, affidabili, semplici come Google, StackExchange, siti di notizie e così via. Se alcuni sconosciuti casuali su Internet concordavano sul fatto che un certificato è il legittimo certificato SSL per www.cnn.com, potrei crederci e usare solo il certificato che hanno dato (quali sono le probabilità che queste persone abbiano compromesso il certificato della CNN? e allo stesso tempo ha cospirato per fabbricare un consenso apparente a favore del certificato falsificato?). Quindi, potrebbe esserci un repository online di siti comuni e non contestuali, in modo da poter scaricare i loro certificati in blocco ogni anno o giù di lì e ridurre in modo massiccio il numero di eccezioni che devo aggiungere. Ovviamente, casi delicati come la mia banca non verrebbero inclusi in questo repository: controllerei manualmente il certificato personalmente dopo un'attenta considerazione.

Ciò eliminerebbe la mia necessità di fidarsi dei certificati di root ed eliminare il rischio di CA compromesse o malevoli. In cambio, il nuovo rischio è che ci sia un'operazione molto concertata per avvelenare il deposito con certificati falsi di un sito irrilevante che è stato compromesso proprio mentre scarico i miei certificati per l'anno (posso ulteriormente confrontare quelli con quelli che ho già avere e scrutare le modifiche inaspettate). L'impatto sull'usabilità è trascurabile: dopo aver installato il mio browser, ho solo bisogno di scaricare una zip piena di certificati e di scaricarli nella mia cache dei certificati. Ora dovrei decidere personalmente se fidarti di siti oscuri o sensibili invece di fidarti automaticamente di loro attraverso il certificato di root, ma forse non è una cosa così brutta.

È possibile questo tipo di modello? Esiste già un repository di questo tipo? Ci sono dei difetti importanti che non ho considerato?

Si noti che sono interessato anche alle implicazioni di problemi di sicurezza di vecchia data. Per esempio, penso che sia interessante considerare l'implicazione dell'adozione del mio schema sopra proposto, data la possibilità che la mia CA principale e la mia banca siano già state compromesse e lo siano già da diversi anni.

    
posta Superbest 30.12.2014 - 18:34
fonte

2 risposte

2

Il modello di cui stai parlando è Blocco di certificati e chiavi pubbliche . Il difetto principale è la manutenibilità; è il tradizionale problema hosts-versus-dns con l'onere aggiunto di assicurarsi che gli aggiornamenti manuali siano affidabili (perché se non presti attenzione lì, non hai guadagnato nulla).

Potrebbe anche essere più difficile gestirne il supporto nel tuo software di base. Prendo atto che Firefox sembra aver aggiunto qualcosa per questo . Chrome ha avuto un certo numero di pin da Chromium 13 , anche se non è chiaro io che è un'interfaccia accessibile all'utente.

In breve, è una buona idea, non banale da configurare, più difficile da mantenere nel tempo. Ha senso in certi ambiti limitati di relazioni di fiducia altamente sensibili (la tua banca è buona), ma non come un modo di vita generale.

    
risposta data 30.12.2014 - 19:26
fonte
1

Is this sort of model possible? Does such a repository already exist?

Non penso che una cosa del genere esista ancora. Inoltre, non penso che sia pratico a causa delle grandi dimensioni.

Tuttavia: qui sotto ci sono alcune cose che vanno in una direzione simile.

Google fa qualcosa di simile con i loro set di pin CERT pre-caricati. (Tuttavia, solo precarica un numero ridotto di siti per quanto ne so.)

Ci sono cose simili. Conosco molti Addon di Firefox che fanno cose simili. - Tutti sono interessanti a modo loro, ma nessuno di loro è davvero soddisfacente.

Meccanismi online per il monitoraggio / aggiunta di certificati.

Ecco alcune idee che richiedono una connessione Internet.

C'è il progetto Perspectives ". L'idea è che ci sono diversi notai su Internet che puoi chiedere se un determinato certificato è in qualche modo nuovo o strano. ( addon di Firefox )

Un'estensione di "Perspectives" è il progetto " Convergence " di Moxie Marlinspike . ( addon di Firefox )

E c'è " Certificate Patrol " che ti avvisa di (più o meno) modifiche impreviste del certificato. - Ho trovato il livello di rumore terribile per la navigazione generale. Era un inferno pop-up. - Ma è abbastanza utile avere una panoramica della quantità di cambiamenti che avvengono nella cerchia di sicurezza. (Che penso conterebbe contro la distribuzione di un insieme di certificati come file zip o qualcosa del genere.) ( Addon di Firefox )

Un'idea per eliminare la "CA canaglia che emette solo certs per * .google.com, * .microsoft.com e nessuno ha notato" -problema è Adam Langley " Trasparenza certificato " iniziativa. L'idea di base è che un certificato non è considerato valido fino a quando non viene annunciato pubblicamente in un registro. Ciò non eliminerebbe le CA rogue / hacked ma renderebbe il danno molto più facile da valutare e correggere.

C'è " DANE " che mantiene semplicemente un hash Cert in DNS. Questo può essere utilizzato in aggiunta al normale sistema chain-of-trust di CA. - Oppure potrebbe essere usato al posto di esso.

Offline

Ecco alcune idee che non richiedono una connessione a Internet.

set di birilli precaricati di Chrome
Chrome include (e aggiorna regolarmente) alcuni hash del certificato. link

    
risposta data 31.12.2014 - 15:13
fonte

Leggi altre domande sui tag