Domanda

Questa è solo una domanda generale riguardo al dibattito tra certificati autofirmati e certificati CA ...

Comprendo i benefici per un certificato CA a causa degli avvisi evitati generati nella maggior parte dei browser, ma in che modo un certificato CA a beneficio della sicurezza effettiva? Sento comunemente la più grande minaccia sono gli attacchi man-in-the-middle e mentre capisco questa minaccia usando un certificato autofirmato, non capisco come un certificato CA impedisca questo. So che le CAS eseguono i loro algoritmi di sicurezza non potrebbero essere usati gli stessi algoritmi su certificati autofirmati?

Immagino di essere solo un po 'irritato dalle grandi imprese che ruotano attorno alla necessità di certificati CA, ma non riesco a trovare nulla di diverso su di loro, oltre a questi presunti controlli di sicurezza aggiuntivi che eseguono. C'è qualcosa che una CA può fornire da un punto di vista della sicurezza che i certificati auto firmati non possono?

È stato utile?

Soluzione

Spoofing. Se l'altra parte falsifica un certificato autofirmato, non hai modo di verificarlo. Per verificare che tu abbia ricevuto il certificato valido e non uno forgiato, è necessario un controllo di terze parti che non può essere facilmente falsificato. Questo viene fatto trasportando l'elenco dei certificati di root CA (e alcuni certificati intermedi) con il software lato client (Windows include tali certificati per l'utente e i principali browser fanno lo stesso) e verificando il certificato che ricevi dal server utilizzando tali certificati CA . Con certificati autofirmati tale verifica non è possibile.

Naturalmente, puoi trasportare il certificato autofirmato con l'applicazione del cliente (e questo è ciò che fanno alcuni sviluppatori, specialmente per le applicazioni interne) ma questo non funziona con i browser.

Altri suggerimenti

La differenza non è nell'algoritmo, è se le persone si fidano o meno dell'autorità del certificato.

Il punto di un certificato è verificare di stabilire la connessione con chiunque tu abbia intenzione di stabilire la connessione.

Se ti dico "Sono il server giusto, fidati di me su questo", puoi scegliere di non credermi (dopo tutto, non mi conosci).

Se ti dico "Sono il server giusto e ho un certificato per dimostrarlo", potresti dire "OK e chi ti ha dato questo certificato?" Se la mia risposta è "Joe da dietro l'angolo", potresti ancora scegliere di non credermi.

Ma se dico "Ho un certificato e puoi confermarlo con una terza parte di cui ti fidi", potresti decidere che questa è una buona prova di identità.

Come confermi che è tutto lo standard (ad es. Come descritto in RFC 5280). Ma sono solo tecnicismi. È possibile utilizzare lo stesso identico algoritmo per un certificato che ha avuto origine da VeriSign e per un certificato che ti sei generato.

La vera domanda riguarda la fiducia: ti fidi di chiunque ti stia dando la "prova dell'identità". Ci fidiamo di VeriSign da consentire a qualsiasi prova di identità da loro accettata da ogni browser. Dovremmo fidarci delle persone che generano i loro certificati autofirmati? Potremmo fare in alcuni casi (nel qual caso è possibile installare manualmente i loro certificati nel browser), ma non come regola generale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top