Hai ragione che SSL utilizza una coppia di chiavi asimmetriche. Viene generata una chiave pubblica e una privata, nota anche come infrastruttura a chiave pubblica (PKI). La chiave pubblica è ciò che viene distribuito al mondo e viene utilizzato per crittografare i dati. Tuttavia, solo la chiave privata può decodificare i dati. Ecco un esempio:
Say we both go to walmart.com and buy stuff. Each of us get a copy of
Walmart's public key to sign our transaction with. Once the
transaction is signed by Walmart's public key, only Walmart's private
key can decrypt the transaction. If I use my copy of Walmart's public
key, it will not decrypt your transaction. Walmart must keep
their private key very private and secure, else anyone who gets it can
decrypt transactions to Walmart. This is why the DigiNotar breach was such a big deal
Ora che hai l'idea delle coppie di chiavi private e pubbliche, è importante sapere chi emette effettivamente il certificato e perché i certificati sono affidabili. Sto semplificando eccessivamente questo, ma ci sono specifiche autorità di certificazione root (CA) come Verisign che firmano i certificati, ma firmano anche per le CA intermedie. Ciò segue quella che è chiamata Chain of Trust, che è una catena di sistemi che si fidano l'uno dell'altro. Guarda l'immagine collegata qui sotto per avere un'idea migliore (nota la CA radice è in fondo).
LeorganizzazionispessoacquistanocertificatijollyosiregistranocomeCAintermedieautorizzateafirmaresoloperillorodominio.CiòimpedisceaGoogledifirmarecertificatiperMicrosoft.
Acausadiquestacatenadifiducia,uncertificatopuòessereverificatofinoallaCAprincipale.Perdimostrarlo,DigiCert(emoltialtri)dispongonodistrumentiperverificarequestafiducia.LostrumentodiDigiCertècollegato qui . Ho effettuato una convalida su gmail.com e quando scorri verso il basso lo mostra:
Questodimostracheilcertificatopergmail.comèrilasciatodaGoogleInternetAuthorityG2,cheasuavoltahaemessouncertificatodaGeoTrustGlobal,cheasuavoltahaemessouncertificatodaEquifax.
Oraquandovaisugmail.com,iltuobrowsernonricevesolounblobdihashevaavanti.No,ricevetuttaunaseriedidettagliinsiemealcertificato:
Questi dettagli sono quelli utilizzati dal browser per identificare la validità del certificato. Ad esempio, se la data di scadenza è scaduta, il browser genera un errore cert. Se tutti i dettagli di base del certificato vengono verificati, verrà verificato fino alla CA principale, che il certificato è valido.
Ora che hai un'idea migliore dei dettagli della cert, questa immagine espansa simile alla prima sopra avrà, si spera, più senso:
Questo è il motivo per cui il tuo browser può verificare un cert contro il prossimo, fino alla CA radice, che il tuo browser ha intrinsecamente fiducia.
Spero che questo ti aiuti a capire un po 'meglio!