Perfect Forward Secrecy (PFS), noto anche come Forward Secrecy, è uno stile di crittografia noto per la produzione di scambi temporanei di chiavi private tra client e server. Per ogni singola sessione avviata da un utente, viene generata una chiave di sessione univoca. Se una di queste chiavi di sessione è compromessa, i dati di qualsiasi altra sessione non saranno interessati. Pertanto, le sessioni passate e le informazioni al loro interno sono protette da eventuali attacchi futuri.
Senza una perfetta segretezza di inoltro, un utente avvia una sessione di comunicazione con un client e l'intera conversazione viene crittografata in base alla chiave speciale del client. Tuttavia, il client utilizza la stessa chiave speciale per generare la crittografia per tutte le sue sessioni e, se viene compromessa, lo stesso fa tutte le informazioni contenute in ciascuna conversazione.
Con una perfetta segretezza di inoltro, ogni sessione di comunicazione genera una chiave di crittografia univoca che è separata dalla chiave speciale, privata, e dura solo per la durata della sessione. Se un utente malintenzionato dovesse compromettere una delle chiavi speciali dell'utente, le conversazioni rimarrebbero crittografate e protette. Allo stesso modo, se un utente malintenzionato dovesse compromettere la chiave di crittografia univoca, sarebbe trapelata solo quella specifica conversazione.
Proteggendo i dati sul livello di trasporto di una rete, la segretezza perfetta in avanti è diventata uno standard di sicurezza che gli sviluppatori possono implementare nei servizi di messaggistica o nei siti Web dedicati alla privacy degli utenti. Gli strumenti che applicano questa funzione possono modificare le chiavi di crittografia con la stessa frequenza di ogni messaggio di testo, telefonata o aggiornamento della pagina. Recentemente, l'Internet Engineering Task Force ha pubblicato il Transport Layer Security Standard per imporre la perfetta segretezza in avanti per tutte le sessioni TLS.
Segretezza in avanti piena di cuore e perfetta
La perfetta segretezza in avanti è diventata più interessante dopo l'introduzione del bug Heartbleed in OpenSSL nel 2012. La vulnerabilità è il risultato di una convalida dell'input insufficiente nell'utilizzo dell'estensione heartbeat del protocollo Transport Layer Security. Heartbleed è nota come vulnerabilità di over-read del buffer e consentirebbe all'utente di leggere più dati di quanto consentito, facendo trapelare un'intera catena di informazioni fino a 64 kilobyte.
Sebbene Heartbleed sia stato divulgato pubblicamente dal 2014, ha dimostrato la semplicità di un attacco OpenSSL e ha acceso la conversazione sui metodi temporanei di scambio delle chiavi. Pertanto, la segretezza di inoltro perfetta è diventata una soluzione praticabile per proteggere gli utenti da difetti di codice simili.
Perfetta segretezza in avanti in uso
La segretezza perfetta in avanti è stata ampiamente adottata dai fornitori di informazioni sin dal suo inizio ed è nota come una caratteristica di sicurezza cruciale. Signal, un protocollo di messaggistica per la crittografia end-to-end che si trova in WhatsApp, Google Allo Messenger e le conversazioni di Facebook, ha reso popolare la segretezza di inoltro perfetta. Noto come sistema "double ratchet", Signal crea una nuova chiave di crittografia con ogni singolo messaggio. Più recentemente, ha anche introdotto una funzionalità che consente ai messaggi di autodistruggersi.
Nel 2011, Google ha fornito a Gmail, Google Docs e agli utenti di ricerca crittografata una perfetta segretezza di inoltro per impostazione predefinita. Twitter offre una segretezza di inoltro perfetta a tutti gli utenti dal 2013. Apple ha annunciato nel 2016 un nuovo protocollo obbligatorio per tutte le app iOS che richiedono l'uso di App Transport Security, una funzione di sicurezza che utilizza la segretezza di inoltro perfetta.