Terminologia importante sulla sicurezza

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.

Chris Palmer
Chris Palmer
Matt Gaunt

Riepilogo

  • Sono state 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 relativi all'entità proprietaria della chiave

Cosa sono le coppie di chiavi pubblica e privata?

Una coppia di chiavi pubblica/privata è una coppia di numeri molto grandi utilizzati come chiavi di crittografia e decriptazione 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 e questi possono essere decriptati solo con la chiave privata corrispondente. Il tuo server web pubblicizza la sua chiave pubblica e i client (come i browser web) la utilizzano per eseguire il bootstrap di un canale sicuro sul tuo server.

Che cos'è un'autorità di certificazione?

Un'autorità di certificazione (CA) è un'organizzazione che garantisce 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 dichiara che una determinata chiave è quella vera per un determinato sito utilizzando la propria chiave privata per firmare in modo crittografico la chiave pubblica del sito web. Non è possibile falsificare questa firma a livello computazionale. I browser (e altri client) gestiscono archivi di trust anchor contenenti le chiavi pubbliche di proprietà delle CA note e utilizzano queste chiavi pubbliche per verificare in modo crittografico le firme delle CA.

Un certificato X.509 è un formato dati che raggruppa una chiave pubblica con alcuni metadati sull'entità proprietaria della chiave. Nel caso del web, il proprietario della chiave è l'operatore del sito, mentre i metadati importanti sono il nome DNS del server web. Quando un client si connette a un server web HTTPS, quest'ultimo 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 nota trust anchor ha firmato il certificato. Nella maggior parte dei casi, le CA non firmano direttamente i certificati dei server web; di solito esiste una catena di certificati che collega un trust anchor a un firmatario o firmatario intermedio 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 di dati che, come un certificato, raggruppa una chiave pubblica con alcuni metadati relativi all'entità proprietaria della chiave. Tuttavia, i client non interpretano le richieste di firma del certificato, mentre le CA sì. Quando desideri ottenere una CA per la chiave pubblica del tuo server web, devi inviare alla CA una richiesta di firma del certificato. La CA convalida le informazioni nella CSR e le utilizza per generare un certificato. La CA ti invia quindi il certificato finale e tu installerai il certificato (o, più probabilmente, una catena di certificati) e la chiave privata sul tuo server web.