Perfect Forward Secrecy: cos’è e come protegge i tuoi dati
Perfect Forward Secrecy (PFS) garantisce una maggiore sicurezza SSL/TLS creando chiavi di sessione uniche per ogni connessione. Questo impedisce agli hacker di decifrare dati passati o futuri, anche se una chiave privata viene compromessa. Scopri come funziona e perché è essenziale per la sicurezza informatica.
Indice
Cos'è il Perfect Forward Secrecy?
Il Perfect Forward Secrecy (PFS), noto anche come forward secrecy, è uno stile di crittografia che consente scambi di chiavi private a breve termine tra client e server. Il PFS si trova all'interno del Transport Layer Security (SSL/TLS) e impedisce agli hacker di decrittografare i dati di altre sessioni, passate o future, anche se le chiavi private utilizzate in una sessione individuale vengono rubate in un determinato momento.
Il PFS ottiene questo risultato utilizzando chiavi di sessione univoche, generate automaticamente ogni volta che viene stabilita una connessione. Le chiavi non utilizzano conoscenze pregresse quando vengono generate, eliminando la necessità di conservarle a lungo termine e impedendo l'accesso ai dati sensibili utilizzando quelle esistenti che sono state compromesse.
Gli hacker non sono quindi in grado di ottenere la chiave di sessione attraverso la decrittazione senza un coinvolgimento a livello fondamentale, con l'accordo sulla chiave e il meccanismo di scambio, che richiede uno sforzo molto maggiore rispetto ad altri metodi di attacco.
Il PFS è supportato da tutti i principali browser Internet ed è generalmente considerato una funzione di sicurezza. La maggior parte dei sistemi operativi moderni supporta il PFS e lo fa già da tempo. Ad esempio, l'ultima versione di Windows a non supportare il PFS è stata Windows XP.
Si prevede che la crescita del PFS continuerà man mano che sempre più giganti della tecnologia ne imporranno l'adozione ai clienti. Google lo utilizza con Gmail e altri prodotti ormai da anni e Apple ha reso il perfect forward secrecy, all'interno di iOS, un requisito dell'App Store nel 2017. Quando è stato introdotto il TLS 1.3, l'Internet Engineering Task Force (IETF) ha imposto il perfect forward secrecy, consentendo solo le suite di cifratura che lo offrivano. È una parte importante del futuro della crittografia, e per una buona ragione.
Come funziona il PFS
Poiché PFS utilizza chiavi di sessione univoche, gli aggressori sono in grado di visualizzare i dati specifici di uno scambio particolare solo se recuperano le chiavi private per quello scambio. Questa segmentazione delle sessioni SSL/TLS riduce notevolmente il rischio di una grave violazione dei dati attraverso questo vettore.
Pertanto, gli attori malintenzionati saranno meno propensi a prendere di mira un server che utilizza PFS, poiché i loro sforzi si tradurranno in un accesso a una quantità significativamente inferiore di dati, senza alcuna garanzia che i dati recuperati saranno quelli desiderati fino a quando non li decrittograferanno utilizzando le chiavi rubate.
In pratica, il PFS funziona in modo che le organizzazioni cambino le chiavi di sessione ogni volta che viene utilizzato un servizio, ad esempio ogni volta che un visitatore accede a una pagina crittografata, magari per motivi finanziari o di identificazione. Il PFS viene utilizzato anche nella messaggistica. Per ogni messaggio inviato è possibile utilizzare una nuova serie di chiavi di sessione, segmentando completamente le informazioni raccolte.
Il metodo preferito per decriptare una sessione PFS è attraverso l'utilizzo di un agente installato sul server stesso. Esistono altri metodi, ma questi presentano degli svantaggi che devono essere affrontati prima che possano essere utilizzati in modo sicuro.
L'installazione di un agente su un server integra un software di terze parti che raccoglie le chiavi di crittografia e fornisce visibilità senza interruzioni alla sessione SSL/TLS.
Quali algoritmi di crittografia lo utilizzano?
SSL/TLS si realizza attraverso lo scambio di chiavi tramite processi crittografici concordati chiamati cipher suite. L'accordo per stabilire questi parametri di connessione è chiamato handshake.
Per implementare la perfetta segretezza diretta, è necessario utilizzare un tipo di crittografia conforme. Attualmente, funzionano due algoritmi di scambio di chiavi:
- Diffie-Hellman effimero (DHE)
- Diffie-Hellman a curva ellittica effimera (ECDHE)
Gli algoritmi specifici utilizzati cambieranno molto probabilmente man mano che verranno scoperti metodi migliori, ma uno dei principi più importanti del PFS è che gli scambi di chiavi devono essere effimeri, il che significa che le chiavi di sessione sono monouso. Queste sono note anche come chiavi effimere. Si basano su valori casuali creati durante ogni scambio, quindi sono uniche per quello scambio e non saranno più valide al termine. Tutte le informazioni crittografate vengono successivamente eliminate e vengono creati nuovi parametri per la sessione successiva.
Oltre a limitare l'esposizione dei dati una volta che una chiave è compromessa, il design dello scambio di chiavi Diffie-Hellman assicura che la chiave di sessione non possa essere ottenuta tramite forza bruta. Poiché la chiave di sessione viene creata tramite metodi crittografici indipendenti e non condivisi, la chiave privata del server è praticamente inutile. La chiave pubblica corrispondente nella coppia non viene mai effettivamente utilizzata per crittografare nessuno dei dati.
Lo scopo principale del PFS
Il PFS impedisce la proliferazione del rischio attraverso più sessioni SSL/TLS.
In precedenza, un malintenzionato che avesse preso di mira una connessione comunemente utilizzata tra un client e un server poteva registrare il traffico crittografato per tutto il tempo che voleva, aspettando di poter mettere le mani sulla chiave privata. Poi, una volta acquisita, poteva tornare indietro e decrittografare tutto ciò che era stato registrato. Il PFS limita sostanzialmente questo fenomeno.
Prima del PFS, questa vulnerabilità era comune e potenzialmente devastante. Un chiaro esempio di ciò può essere visto nella vulnerabilità Heartbleed OpenSSL che è stata scoperta nel 2012 e annunciata pubblicamente nel 2014.
Con il bug Heartbleed, gli aggressori comunicavano al server che avrebbero inviato un messaggio di richiesta di heartbeat da 64 KB, ma invece inviavano un messaggio molto più piccolo. Il server rispondeva con il messaggio più breve, ma poiché il server prevedeva di rispondere con un messaggio più lungo, riempiva il resto del messaggio con qualsiasi dato si trovasse nella sua memoria. Questo era devastante, poiché l'attacco poteva essere eseguito ripetutamente per raccogliere grandi quantità di dati. I dati potevano contenere qualsiasi cosa all'interno del server; password, informazioni personali, dati di sessione e persino la chiave privata del server erano tutti alla portata dell'hacker.
Poiché una richiesta heartbeat è un evento di routine, non viene mai registrata all'interno del sistema. Questo non solo causa un problema per le indagini forensi dell'hacking, ma rende l'hack impossibile da scoprire senza cercarlo specificamente.
Se la chiave privata del server fosse uno degli elementi compromessi dalla violazione, gli attacchi sarebbero anche in grado di intercettare e decriptare qualsiasi sessione SSL/TLS avvenuta senza che i partecipanti se ne rendano conto.
Gli utenti di PFS non sono preoccupati solo per gli attori malintenzionati, ma anche per altri tipi di sorveglianza. Dopo la divulgazione da parte di Edward Snowden dei programmi di spionaggio della National Security Agency (NSA), molte organizzazioni vedono PFS come un passo necessario per limitare lo spionaggio e la sorveglianza da parte del governo.
Una soluzione per il futuro
Se l'attuale sviluppo tecnologico dell'elaborazione segue la legge di Moore o il salto verso il quantum computing viene fatto su larga scala, molti algoritmi crittografici e best practice saranno superati e resi obsoleti. Questo esporrà tutto ciò che la crittografia sta proteggendo e potrebbe mettere in pericolo i dati legacy. Molti esperti hanno espresso preoccupazione per il fatto che individui e nazioni in tutto il mondo stanno raccogliendo dati con l'obiettivo di decrittarli in un secondo momento, quando l'elaborazione li renderà banali.
Il PFS impedisce del tutto questa strategia. Non trasmette alcuna delle sue chiavi di sessione sulla rete, ma utilizza metodi di crittografia simmetrica che generano chiavi di sessione in modo indipendente attraverso complesse equazioni di autenticazione eseguite da entrambe le parti.
Un'altra opzione per aiutare a prevenire questo problema è l'utilizzo della crittografia quantistica, un campo in via di sviluppo.
Come ottenere la perfetta segretezza diretta
Abilitare il supporto PFS su un server è semplice e la maggior parte dei server moderni è già configurata per farlo. In caso contrario, generalmente è possibile farlo in quattro semplici passaggi:
- Vai alla configurazione del protocollo SSL
- Aggiungi i protocolli SSL
- Imposta un codice SSL compatibile con PFS
- Riavvia il server
Il Perfect Forward Secrecy può essere realizzato sulla maggior parte dei server web, inclusi Apache, Nginx, RSA e altri.