Per inviare un messaggio OpenPGP crittografato, è necessario ottenere la chiave pubblica del destinatario, per esempio da un messaggio ricevuto dal destinatario o da un "keyserver" (server di chiavi) pubblico. Dopo aver ottenuto la chiave pubblica, si deve anche decidere se si vuole accettarla, perché Thunderbird non può determinare automaticamente se una chiave è affidabile (una chiave potrebbe essere autentica o contraffatta). Il modo in cui si determina se una chiave è autentica o contraffatta, per poter decidere se accettarla o meno, è l'argomento di questo articolo.
Esempio di chiave contraffatta
È molto facile per qualcuno creare una chiave pubblica con il nome e l'indirizzo email di un'altra persona. Per esempio, una certa Lucrezia, con intenzioni malevole, può semplicemente creare una chiave che contiene il nome e l'indirizzo email di Mario, uno degli amici del destinatario, e inviare quella chiave a quel destinatario. Se la chiave è stata creata da qualcuno che non è realmente Mario, si tratta inequivocabilmente di una chiave contraffatta.
Se in seguito quel destinatario decide di utilizzare una chiave contraffatta a nome di Mario, potrebbe credere di avere una conversazione riservata con Mario perché sta utilizzando la crittografia della posta elettronica, mentre in realtà il messaggio crittografato è leggibile dalla malintenzionata Lucrezia che ha creato la chiave contraffatta spacciandosi per Mario. Questo tipo di attacco è chiamato "Monster-in-the-Middle-Attack" (MITM), noto anche come attacco man-in-the-middle.
Come decidere se accettare una chiave pubblica
Per evitare di utilizzare accidentalmente una chiave contraffatta, in Thunderbird non verrà mai utilizzata automaticamente la chiave di qualcuno. Con Thunderbird viene sempre richiesto che sia l'utente a prendere la decisione se accettare o meno una chiave come autentica. È compito dell'utente decidere quanto del suo tempo vuole dedicare per verificare se una chiave è autentica o contraffatta.
Se si hanno conversazioni casuali con un corrispondente e si ritiene che il contenuto del proprio messaggio non sia molto sensibile, si potrebbe decidere di contrassegnare una chiave come accettata senza verificare se la chiave è effettivamente autentica.
Tuttavia, se si intende scambiare informazioni strettamente personali e la riservatezza delle proprie opinioni in merito a un determinato argomento dipende dal fatto che le informazioni rimangano private, si dovrebbe verificare attentamente di aver ricevuto una chiave autentica e che la chiave provenga effettivamente dalla persona con cui si desidera corrispondere. È possibile farlo visualizzando i dettagli di una chiave e quindi utilizzare un canale di comunicazione diverso dalla posta elettronica, per esempio una videochiamata o una telefonata, per parlare con il proprio corrispondente. Quindi ognuno dei due interlocutori dovrebbe visualizzare i dettagli della chiave pubblica dell'altro interlocutore e guardare l'impronta digitale che viene mostrata. Un'impronta digitale è l'hash della chiave completa, una sorta di codice di controllo ("checksum") e quindi un modo unico per identificare una chiave.
Esempio di processo di verifica
Per spiegare questo processo in modo più dettagliato, se Alice e Mario vogliono assicurarsi di utilizzare le chiavi corrette l'uno dell'altro, eseguiranno la verifica in due passaggi. Come primo passaggio della procedura di verifica, Alice dovrebbe aprire i dettagli della propria chiave personale trovandola nel gestore di chiavi OpenPGP o utilizzando la scheda Crittografia end-to-end nelle impostazioni dell'account. Mario, a sua volta, dovrebbe aprirebbe i dettagli della chiave che ha ottenuto da Alice e che afferma di essere a nome di Alice. Quindi Alice dovrebbe leggere l'impronta digitale che vede sullo schermo per la sua chiave e Mario dovrebbe ascoltarla e confrontarla con l'impronta digitale mostrata sul suo schermo per la chiave che risulta a nome di Alice. Se le informazioni corrispondono completamente, Mario ha verificato la chiave di Alice e può fare clic sulla casella che riporta la dicitura "Sì, ho verificato personalmente la correttezza dell'impronta digitale di questa chiave".
Come secondo passaggio, Alice e Mario dovrebbero ripetere il processo visualizzando la chiave di Mario. Mario dovrebbe aprire i dettagli della sua chiave e Alice dovrebbe aprire la chiave che ha ottenuto da Mario e che afferma di essere a nome di Mario. Quindi Mario dovrebbe leggere l'impronta digitale che vede sullo schermo per la sua chiave e Alice dovrebbe ascoltarla e confrontarla con le informazioni che vengono mostrate per la chiave di Mario. Se la stringa dell'impronta digitale corrisponde completamente, Alice ha verificato la chiave di Mario e può fare clic sulla casella che riporta la dicitura "Sì, ho verificato personalmente la correttezza dell'impronta digitale di questa chiave".