Vai al contenuto
PDFLove

come funziona la cifratura dei pdf

Come funziona la protezione con password di un PDF

Un PDF può portare due password, e solo una delle due cifra qualcosa. L'altra è una richiesta che si confida i lettori rispettino — ed è esattamente per questo che si può togliere.

01

Una chiave, due porte

Quando un PDF viene cifrato, si genera una chiave di cifratura del file casuale. Quella chiave è ciò che protegge davvero il contenuto, e non viene mai conservata dentro il file.

Quello che viene conservato sono due copie cifrate di essa, nelle voci `/O` e `/U` del dizionario di cifratura. La password utente ne apre una; la password proprietario apre l'altra. Fornisci una qualsiasi delle due e arrivi alla stessa chiave del file — che è il dettaglio cruciale che quasi nessuno conosce, e la fonte di quasi tutta la confusione su cosa significhi qui protezione.

I bit dei permessi — si può stampare, si può copiare, si può modificare — sono conservati nel dizionario di cifratura come un semplice intero. Non sono imposti dalla crittografia. Sono una dichiarazione d'intenti che un lettore conforme accetta di rispettare.

02

Perché rimuovere una password proprietario non è rompere nulla

Quasi ogni PDF che limita stampa o copia non ha affatto una password utente. Il file si apre subito in qualsiasi lettore perché la password utente è la stringa vuota — e la stringa vuota deriva la chiave del file.

Quindi uno strumento che rimuove le restrizioni non sta attaccando la cifratura. Decifra il file esattamente come fa il tuo lettore, con la password vuota, e scrive una copia senza i flag dei permessi attivati. Il contenuto non è mai stato nascosto a chi lo aprisse; il file chiedeva soltanto ai lettori di non permettere certe azioni.

È una scelta progettuale deliberata, non un difetto, e la specifica è schietta al riguardo. I permessi esistono per esprimere un'intenzione a software cooperativo. Qualsiasi programma disposto a ignorare i flag — e qualsiasi programma capace di mostrare la pagina può farlo, dato che ha già decifrato il contenuto per renderizzarlo — ci passa attraverso.

Password utente
Vera cifratura. Senza di essa i flussi sono testo cifrato e nulla può renderizzare il file. Non è rimovibile senza la password.
Password proprietario
Imposta i flag dei permessi. Il contenuto è già decifrabile con la password utente vuota, quindi rimuoverla è una riscrittura, non un attacco.
Entrambe impostate
Ti serve la password utente solo per aprire. Una volta aperto, le restrizioni sono rimovibili come lo sono sempre state.
Nessuna delle due
Non c'è dizionario di cifratura. Non c'è nulla da rimuovere.

03

Cosa viene davvero cifrato, e come

Non il file intero. La struttura degli oggetti, l'albero delle pagine e la tabella dei riferimenti incrociati restano leggibili — un lettore deve poter navigare il documento prima di poter decifrare qualsiasi cosa. Ciò che viene cifrato è il contenuto: i dati dei flussi e le stringhe.

Ogni oggetto riceve la propria chiave, derivata applicando un digest alla chiave del file insieme al numero e alla generazione di quell'oggetto. È per questo che due immagini identiche nello stesso file si cifrano in byte diversi, ed è anche per questo che un oggetto cifrato non può essere rinumerato — il suo numero fa parte della sua chiave. Gli strumenti di unione e divisione devono decifrare prima di copiare qualsiasi cosa.

04

Gli algoritmi, e quali significano ancora qualcosa

Il gestore di sicurezza è stato rivisto più volte, e la versione che un file porta con sé determina quanto vale la sua password.

RC4 a 40 bit (PDF 1.1)
Praticamente nessuna protezione. Lo spazio delle chiavi è abbastanza piccolo da essere spazzato per intero su hardware comune.
RC4 a 128 bit (PDF 1.4)
Chiave più lunga, ma RC4 non è più considerato solido e la derivazione della chiave sono poche tornate di MD5 — economico da attaccare tirando a indovinare le password.
AES-128 (PDF 1.6)
Un cifrario solido. La debolezza che resta è la derivazione veloce della chiave.
AES-256, revisione 6 (PDF 2.0)
Lo standard attuale. Derivazione della chiave deliberatamente costosa, quindi tirare a indovinare le password è lento. Qui una password forte è davvero forte.

05

Cosa significa per come lo usi

Se il documento non deve poter essere letto dalla persona sbagliata, imposta una password utente, usa un livello di cifratura moderno e manda la password per un canale diverso dal documento. Una password inviata via email nello stesso thread del file non protegge da nulla.

Se vuoi solo scoraggiare copia o stampa occasionale, una password proprietario fa quello e nient'altro. È un avviso di cortesia con forza reale tra software cooperativo e nessuna forza al di fuori. Trattarlo come sicurezza è l'errore che vale la pena evitare — chi è abbastanza motivato da volere il testo può selezionarlo in un lettore che ignora i flag, o passare l'OCR su una schermata.

E quando un documento non deve poter essere modificato, anziché non poter essere letto, appiattire è spesso lo strumento migliore. Fonde le annotazioni e i campi modulo nella pagina, quindi non resta nulla con cui interagire, e non dipende dal fatto che qualcuno rispetti un flag.

Domande

Domande collegate

Se uno strumento può rimuovere la password, la cifratura dei PDF è inutile?

È rimovibile solo quella dei permessi, e quella non è mai stata cifratura. Una password utente è vero AES sul contenuto — nessuno strumento può rimuoverla senza la password, perché i flussi sono testo cifrato e non c'è nulla da leggere.

È lecito rimuovere le restrizioni da un PDF?

Per un documento che è tuo o che hai il diritto di usare, in genere sì — stai riscrivendo un tuo file. Rimuovere la protezione per ridistribuire il lavoro di qualcun altro è un'altra cosa e dipende dal diritto d'autore, non da ciò che lo strumento riesce a fare.

Quale livello di cifratura dovrei scegliere?

AES-256, a meno che tu non debba supportare software precedente al 2017 circa. Le vecchie modalità RC4 esistono solo per compatibilità e nessuna di esse va presa sul serio oggi.

Perché riesco ad aprire un PDF che dice che la stampa non è consentita?

Perché aprire e stampare sono governati da meccanismi diversi. Aprire richiede la password utente, che in quel file è vuota. Stampare è controllato da un flag che il tuo lettore ha scelto di rispettare.