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
- Utilizzate chiavi pubbliche/private 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à proprietaria della chiave
Che cosa sono le coppie di chiavi pubbliche e private?
Una coppia di chiavi pubbliche/private è una coppia di numeri molto grandi che vengono utilizzati come chiavi di crittografia e decriptazione e che condividono una relazione matematica speciale. Un sistema comune per le coppie di chiavi è il crittosistema RSA. La chiave pubblica viene utilizzata per criptare i messaggi, che possono essere decriptati in modo fattibile solo con la chiave privata corrispondente. Il tuo server web pubblicizza la sua chiave pubblica con il mondo e i client (come i browser web) la utilizzano per eseguire il bootstrap di un canale sicuro verso il tuo server.
Che cos'è un'autorità di certificazione?
Un'autorità di certificazione (CA) è un'organizzazione che garantisce per la mappatura tra chiavi pubbliche e nomi DNS pubblici (ad esempio "www.foobar.com"). Ad esempio, come fa un client a sapere se una determinata chiave pubblica è la chiave pubblica true per www.foobar.com? A priori, non c'è modo di saperlo. Una CA garantisce che una determinata chiave sia vera per un determinato sito utilizzando la propria chiave privata per firmare in modo crittografico la chiave pubblica del sito web. Questa firma non può essere falsificata dal punto di vista computazionale. I browser (e altri client) gestiscono archivi anchor di attendibilità contenenti le chiavi pubbliche di proprietà delle CA note e utilizzano queste chiavi pubbliche per verificare in modo crittografico le firme della CA.
Un certificato X.509 è un formato di dati che raggruppa una chiave pubblica con alcuni metadati sull'entità proprietaria della chiave. Nel caso del web, il proprietario della chiave è l'operatore site, mentre 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 affinché il client possa verificarlo. 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 nota per il trust anchor abbia firmato il certificato. Nella maggior parte dei casi, le CA non firmano direttamente i certificati dei server web. In genere, esiste una catena di certificati che collega un ancoraggio di attendibilità a un firmatario o ai firmatari intermedi e, infine, al certificato del server web (l'entità finale).
Che cos'è una richiesta di firma di certificato?
Una richiesta di firma del certificato (CSR) è un formato dei dati che, come un certificato, raggruppa una chiave pubblica insieme ad alcuni metadati sull'entità che possiede la chiave. Tuttavia, i client non interpretano le richieste CSR, mentre le CA sì. Quando richiedi una CA che garantisca la chiave pubblica del tuo server web, invii una richiesta CSR alla CA. L'autorità di certificazione convalida le informazioni nella CSR e le utilizza per generare un certificato. L'autorità di certificazione ti invia quindi il certificato finale e tu installerai il certificato (o, più probabilmente, una catena di certificati) e la tua chiave privata sul tuo server web.