«La password è la tua data di nascita». È la frase che accompagna estratti conto, certificati e buste paga inviati via e-mail in tutto il mondo. Rassicura il mittente, che ha «protetto» il documento, e il destinatario, che lo riceve «sicuro». Non protegge quasi nulla.
Non è colpa del PDF. Il formato sa cifrare un documento in modo molto solido. Ma offre anche protezioni che protezioni non sono, e lascia a chiunque la libertà di scegliere una password troppo corta. Per sapere quanto vale davvero un PDF protetto, bisogna distinguere tre cose: i due tipi di password, l'algoritmo di crittografia e la robustezza della password stessa.
Perché un PDF ha due password?
Un PDF può averne due, con ruoli molto diversi.
La password di apertura (detta «utente») cifra davvero il contenuto. Senza di essa il file è illeggibile: le sue pagine non sono che una sequenza di byte incomprensibili.
La password delle autorizzazioni (detta «proprietario») serve a vietare la stampa, la copia del testo o la modifica. Ma questi divieti sono solo istruzioni rivolte al software che apre il file. La documentazione di qpdf, uno strumento di riferimento per manipolare i PDF, non lascia dubbi: non esiste «fondamentalmente alcun modo di impedire a un'applicazione di ignorare le restrizioni di sicurezza di un file», che sono applicate «unicamente dal software» (qpdf). Se il PDF non ha una password di apertura, chiunque può ottenerne una copia senza restrizioni, con un solo comando o tramite numerosi servizi online.
Un PDF «protetto contro la copia» è quindi protetto solo contro gli utenti che non sanno che quella protezione si può ignorare. Per un documento riservato, conta solo la password di apertura.
Tutte le crittografie si equivalgono?
No. Il formato PDF ha attraversato diverse generazioni di crittografia, e le più vecchie sono state violate (Adobe, qpdf):
- RC4 a 40 bit (da Acrobat 2 a 4): la chiave è così corta che si può ricavare per forza bruta, qualunque sia la password. Come riassume qpdf, questi file «non sono sicuri, per quanto robusta sia la password».
- RC4 a 128 bit (Acrobat 5 e 6), poi AES a 128 bit (Acrobat 7 e 8): qpdf giudica l'RC4 non sicuro, ed entrambi si attaccano rapidamente.
- AES a 256 bit, versione di Acrobat 9: un algoritmo solido, usato male. Nel 2008 Adobe ha riconosciuto che questa versione permetteva di provare le password più velocemente della precedente (Adobe). Lo standard PDF 2.0 ora la dichiara obsoleta.
- AES a 256 bit, revisione 6 (Acrobat X e successivi, PDF 2.0): è il metodo raccomandato da qpdf, e l'unico che lo standard PDF 2.0 non dichiara obsoleto.
I software recenti usano in genere l'AES-256 revisione 6. Ma un PDF prodotto da un vecchio software, o da uno strumento che propone ancora la «compatibilità», può usare una crittografia obsoleta senza che l'utente lo sappia.
Quanto tempo serve per indovinare una password?
È qui che la data di nascita diventa un problema. Un attaccante che ha il file non ha bisogno di collegarsi a nulla: prova le password sulla propria macchina, alla velocità massima che questa consente. L'ANSSI, l'agenzia nazionale francese per la cybersicurezza, descrive con precisione questo tipo di attacco «offline», in cui l'attaccante «ha allora accesso a una potenza di calcolo potenzialmente molto elevata» (ANSSI).
Con lo strumento open source hashcat e una sola scheda grafica consumer recente, le misurazioni pubblicate danno circa 122 milioni di tentativi al secondo contro un PDF con RC4 a 128 bit, 22 miliardi contro l'AES-256 di Acrobat 9 e 427.000 contro l'AES-256 revisione 6 (benchmark hashcat, RTX 4090). Ne abbiamo ricavato alcuni ordini di grandezza:
| Password | Combinazioni | AES-256 (revisione 6) | RC4 a 128 bit |
|---|---|---|---|
| Data di nascita (GGMMAAAA) | ~36.500 | meno di un secondo | istantaneo |
| 8 lettere minuscole | ~200 miliardi | ~6 giorni | ~30 minuti |
| 8 caratteri (maiuscole, minuscole, cifre) | ~218.000 miliardi | ~16 anni | ~3 settimane |
| 12 caratteri misti | ~10²³ | miliardi di anni | milioni di anni |
Calcoli per una sola scheda grafica; un attaccante può metterne al lavoro decine. Le date di nascita, inoltre, sono spesso note o facili da trovare.
La conclusione è semplice: una crittografia forte non serve a nulla con una password facile da indovinare. Una data di nascita vale una quindicina di bit di entropia; la CNIL, l'autorità francese per la protezione dei dati, raccomanda almeno 80 bit, per esempio dodici caratteri che mescolano maiuscole, minuscole, cifre e caratteri speciali, oppure una passphrase di almeno sette parole (CNIL). L'ANSSI aggiunge che è «spesso più efficace allungare una password che cercare di renderla più complessa».
Un PDF cifrato può trapelare in altro modo?
Sì, ed è meno noto. Nel 2019 alcuni ricercatori dell'Università della Ruhr di Bochum e dell'Università di scienze applicate di Münster hanno dimostrato che un attaccante in grado di intercettare e modificare un PDF cifrato poteva, senza conoscere la password, fare in modo che il contenuto decifrato gli venisse inviato nel momento in cui la vittima lo apriva. I 27 lettori PDF testati erano tutti vulnerabili, tra cui Acrobat, Foxit, Chrome e Firefox (Università della Ruhr, PDF Insecurity). La causa: la crittografia PDF non verifica l'integrità del contenuto. Diversi produttori, tra cui Adobe, Apple e Google, hanno poi corretto i loro software; altri no, e la debolezza sta nel formato stesso.
Lo stesso gruppo ha dimostrato nel 2020 e nel 2021 che le firme e le certificazioni dei PDF potevano, in molti lettori, essere aggirate per mostrare un contenuto diverso da quello firmato (PDF Insecurity). Un PDF non è una cassaforte; è un formato di documento, dotato di una serratura.
Come proteggere bene un PDF?
Per un'azienda che invia buste paga, estratti conto o fascicoli dei clienti, non è solo una questione di buone pratiche. Il GDPR impone di «mettere in atto misure di sicurezza tecniche e organizzative adeguate per proteggere i dati personali da qualsiasi perdita, alterazione, accesso non autorizzato o divulgazione» (LegalPlace); le sanzioni amministrative possono arrivare al 4% del fatturato annuo o a 20 milioni di euro (LegalPlace). Un PDF protetto da una data di nascita non è una misura adeguata.
- Usa una password di apertura, non solo delle restrizioni.
- Scegli una password lunga: almeno dodici caratteri misti, o una passphrase. Mai una data di nascita, un numero cliente o un CAP.
- Controlla l'algoritmo: AES a 256 bit. Se il software propone la «compatibilità» con vecchie versioni di Acrobat, rifiutala.
- Trasmetti la password su un canale diverso da quello del file. La CNIL raccomanda di inviare il file cifrato via e-mail e la password per telefono o SMS (CNIL).
- Per più file, valuta un archivio cifrato, per esempio in formato 7z con AES-256, la cui derivazione della chiave è volutamente lenta (7-Zip).
- E prima di tutto, riduci. Il modo migliore per proteggere un'informazione è non inviarla. Elimina le pagine inutili, oscura ciò che non è necessario e aggiungi una filigrana che indichi il destinatario. Sono operazioni che si fanno in locale, senza alcun invio, con PDFKami: eliminare pagine, oscurare, filigranare.
Un'ultima avvertenza: non affidare un documento riservato a un sito online per cifrarlo. Per proteggerlo, lo trasmetti in chiaro a un terzo — esattamente ciò che la password doveva evitare. I software desktop (LibreOffice, Acrobat) e gli strumenti open source come qpdf cifrano in locale.
Glossario
Password di apertura (utente): la password che cifra il contenuto del PDF; senza di essa, il file è illeggibile.
Password delle autorizzazioni (proprietario): la password che fissa delle restrizioni (stampa, copia) applicate solo dai software che le rispettano.
RC4, AES: algoritmi di crittografia. L'RC4 è obsoleto; l'AES-256 è il riferimento attuale.
Attacco offline: prova sistematica di password su una copia del file, sulla macchina dell'attaccante, senza limiti al numero di tentativi.
Entropia: misura, in bit, della difficoltà di indovinare una password. Ogni bit in più raddoppia il numero di possibilità.
hashcat: software open source per il recupero delle password, usato dai professionisti della sicurezza per misurare la resistenza delle protezioni.