Perché abbiamo bisogno di certificati che confermino i certificati? Perché creare una gerarchia o un albero? Queste domande mi rendono confuso, potresti spiegarmi?
È un modo di gestire la "fiducia". Diciamo che fai affari con MyBank.com. Vorresti digitare il tuo numero di account e il PIN in chiaro e consentire a qualsiasi hacker sulla rete di visualizzarlo? Probabilmente no - non dovresti fidarti di un simile sistema. Quindi vuoi criptare i dati. Inoltre, ti fideresti di ogni pagina web con un bel logo che si autoproclamasse "MyBank.com"? Inseriresti il tuo numero di conto e il tuo PIN? Spero di no, perché non c'è nulla di sicuro nel mostrare una copia di un'immagine. Quindi sappiamo che la fiducia nei loghi non è sufficiente. Ora abbiamo due problemi diversi, ma correlati: dobbiamo proteggere i dati tramite la crittografia e dobbiamo sapere se possiamo fidarci di questo sito è chi dicono di essere. I certificati sono progettati per aiutare a risolvere entrambi questi problemi. Il certificato contiene la chiave pubblica del sito remoto in modo che possiamo crittografare i dati e ha una firma che possiamo usare per confermare che la chiave pubblica è la chiave giusta e non una chiave falsa fornita da un criminale.
Ma solo perché un sito web crittografa i tuoi dati e ti consegna un certificato, come fai a sapere che il certificato che hai è in realtà per MyBank.com? Come puoi fidarti?
Potremmo confermarlo direttamente. La prossima volta che visiteremo l'atrio di MyBank.com potremmo chiedere al cassiere, "Cashier, per favore dammi una copia del certificato sul sito web della tua banca, in modo che sappia di potermi fidare". E ciò funzionerebbe assolutamente - per quella banca, un certificato alla volta.
Ma diciamo che vuoi anche fare affari con CheapBank.com, situato in una città lontana. Viaggiare lì solo per confermare il loro certificato sarebbe costoso, quindi non lo faresti. Come potresti fare affari con loro e sapere ancora che puoi fidarti di loro? Potresti chiedere a qualcun altro di verificare la loro identità per te. Diciamo che hai un amico in quella città. Lo chiami, gli chiedi di guidare su CheapBank.com, ottenere una copia del loro certificato e inviarlo a te. Anche quello funzionerebbe, ma ora è più lavoro. (E apre un diverso barattolo di vermi: come fai a sapere che il postino o il tuo amico non ha scambiato i certificati?)
La risposta su cui ci siamo basati è che una terza parte affidabile firmi i certificati. Si tratta di aziende alle quali chiunque può accedere con un certificato, forniscono una sorta di prova che sono chi dicono di essere e questa terza parte firmerà il loro certificato. Questa firma è un attestato di Valid-Certificates-R-Us.com che questo è in realtà il vero certificato di CheapBank.com. Certo, come facciamo a sapere che Valid-Certificates-R-Us.com ha effettivamente firmato il loro certificato? Convalidando la firma con il loro certificato!
Questo porta ad un altro problema: come facciamo a sapere che Valid-Certificates-R-Us.com è un firmatario affidabile di certificati? Per quel che ne sappiamo, potrebbe essere gestito da una banda criminale, che firmerà i certificati per chiunque cerchi di commettere frodi. La risposta è "il certificato autofirmato", il che significa che Valid-Certificates-R-Us.com firma il proprio certificato con la propria chiave di firma. Come ci aiuta? Perché dovremmo fidarci di un certificato autofirmato solo perché è stato firmato da Valid-Certificates-R-Us.com? Non dovremmo. È lo stesso problema che originariamente avevamo convalidato la banca.
Quindi, per combattere questo problema, il fornitore del sistema operativo o il fornitore del browser non si fida dei certificati autofirmati casuali. Si fida solo dei certificati autofirmati che ha installato. Il fornitore del sistema operativo convalida i certificati che stanno per installare prima di impacchettare il sistema operativo e inviarlo a te. Se guardi nel profondo del tuo computer, scoprirai che ci sono alcune centinaia di certificati autofirmati diversi, provenienti da diverse autorità per la firma dei certificati sparse in tutto il mondo. Molti sono emessi da società nel settore dei certificati, alcuni sono emessi da varie banche nazionali. Tutti sono stati controllati dal tuo sistema operativo o dal venditore del browser. Se una di queste entità viene mai sorpresa a rilasciare certificati errati, una patch di emergenza del fornitore rimuoverà il certificato dal tuo computer, causando la tua non fidanza più su nessuno dei siti Web di cui hanno firmato i certificati.
Quindi, se ti allontani da tutto questo e guardi l'immagine di queste relazioni, sembra un albero: alla radice hai un browser, che si affida a centinaia di certificati autofirmati, ognuno di questi autofirmati i certificati vengono utilizzati per firmare molte migliaia di altri certificati, ognuno dei quali può attestare uno dei milioni di siti Web disponibili.
In realtà non abbiamo bisogno di un terzo / token per la fiducia, e - per la censura convenienza questo terzo pezzo è un certificato. Quando ci sono molti notai per la verifica SSL in progetti come Prospettive - è rudimentale avere un singolo centrale CA.
Leggi altre domande sui tag certificates