Due degli ostacoli che gli sviluppatori devono affrontare durante la migrazione a HTTPS sono i concetti e la terminologia. Questa guida fornisce una breve panoramica di entrambi.
Riepilogo
- Chiave pubblica/privata utilizzata per firmare e decriptare i messaggi tra il browser e il server.
- Un'autorità di certificazione (CA) è un'organizzazione che garantisce la mappatura tra le chiavi pubbliche e i nomi DNS pubblici (ad esempio "www.foobar.com").
- Una richiesta di firma del certificato (CSR) è un formato di dati che raggruppa una chiave pubblica con alcuni metadati sull'entità che possiede la chiave.
Che cosa sono le coppie di chiavi pubblica e privata?
Una coppia di chiavi pubblica/privata è una coppia di numeri molto grandi che vengono utilizzati come chiavi di crittografia e decrittografia e che condividono una relazione matematica speciale. Un sistema comune per le coppie di chiavi è il sistema di crittografia RSA. La chiave pubblica viene utilizzata per criptare i messaggi, che possono essere decriptati solo con la chiave privata corrispondente. Il server web pubblicizza la sua chiave pubblica a livello mondiale e i client (ad esempio i browser web) la utilizzano per avviare un canale sicuro con il server.
Che cos'è un'autorità di certificazione?
Un'autorità di certificazione (CA) è un'organizzazione che garantisce la mappatura tra le chiavi pubbliche e i nomi DNS pubblici (ad esempio "www.foobar.com"). Ad esempio, come fa un client a sapere se una determinata chiave pubblica è la vera chiave pubblica per www.foobar.com? A priori, non c'è modo di saperlo. Un'autorità di certificazione garantisce che una determinata chiave sia quella vera per un determinato sito utilizzando la propria chiave privata per firmare crittograficamente la chiave pubblica del sito web. È computazionalmente impossibile creare una firma falsa. I browser (e altri client) gestiscono repository di ancore di attendibilità contenenti le chiavi pubbliche di proprietà delle CA note e le utilizzano per verificare in modo crittografico le firme delle CA.
Un certificato X.509 è un formato di dati che raggruppa una chiave pubblica con alcuni metadati sull'entità che possiede la chiave. Nel caso del web, il proprietario della chiave è l'operatore del sito e i metadati importanti sono il nome DNS del server web. Quando un client si connette a un server web HTTPS, il server web presenta il proprio certificato per la verifica da parte del client. Il client verifica che il certificato non sia scaduto, che il nome DNS corrisponda al nome del server a cui il client sta tentando di connettersi e che una CA di attendibilità nota abbia firmato il certificato. Nella maggior parte dei casi, le CA non firmano direttamente i certificati del server web. In genere, esiste una catena di certificati che collega un'ancora di attendibilità a uno o più firmatari intermedi e infine al certificato del server web (l'entità finale).
Che cos'è una richiesta di firma del certificato?
Una richiesta di firma del certificato (CSR) è un formato di dati che, come un certificato, raggruppa una chiave pubblica con alcuni metadati sull'entità che possiede la chiave. Tuttavia, i client non interpretano le CSR, ma lo fanno le CA. Quando vuoi chiedere a una CA di garantire la chiave pubblica del tuo server web, invii una CSR alla CA. La CA convalida le informazioni nella CSR e le utilizza per generare un certificato. La CA ti invia quindi il certificato finale, che dovrai installare (o, più probabilmente, una catena di certificati) insieme alla chiave privata sul tuo server web.