Remailer
News&Search
Sottobicchieri
R F C
java - php
lista mp3
password
S P P
wingate
joke :-)
News linux
Navighiamo
Bookmark
Crittografia
Firewall
Linux
D V D
BreakingDES
PDF encryption

PDF encryption: le opzioni di sicurezza

by ADaM, pubblicato sul n° 13 di NetRunners, la e-zine degli Spippolatori

 
  • ^ Obiettivo:

  • In queste righe vedremo come stampare un file PDF che ha disabilitato il
    permesso di stampa e impareremo a modificare un PDF che ci nega il permesso
    di selezionare testo e immagini.
     
     
  • ^ Che cos'è il pdf

  • Il Portable Document Format (PDF) è basato sull'Adobe PostScript language a
    cui sono state apportati miglioramenti e modiche.
    L'Adobe ha rilasciato gratuitamente il suo Adobe Acrobat SDK, così chiunque
    può creare il suo editor o filtro senza reverse engineering o cose del
    genere. Adobe comunque rimane la proprietaria e mantiene per sè lo sviluppo
    allo scopo di non snaturare il formato (e di tenere segrete alcune
    caratteristiche).
    Il sistema di password del pdf è molto poco sicuro. Esistono due tipi di
    password: la password del proprietario e la user passoword. La password del
    proprietario controlla le opzioni di sicurezza (o permessi), ma non
    impedisce a un file di essere caricato e visto. La user password impedisce
    a un file di essere decifrato e visto. Benchè il sistema di cifratura sia
    conosciuto non esistono al momento sistemi per craccare la user password.
    Si potrebbe tentare qualcosa con un bruteforce.
     
     
  • ^ Vulnerabilità

  • Se qualche caratteristica di sicurezza è stata attivata dall'autore del
    file, il PDF sarà cifrato. Queste caratteristiche impediscono di
    selezionare e copiare il testo e le immagini e di stamparlo.
    Ma se un file pdf può essere visualizzato allora è molto vulnerabile,
    indipendentemente dalla presenza della password del proprietario. Le
    opzioni di sicurezza per impedire la stampa, selezione e copiatura del
    testo, l'aggiunta di note, sono inutili.
     
     
  • ^ Modifichiamo il pdf affinchè si possa selezionare (e copiare) il testo e

  • le immagini.
    Se abbiamo un file PDF che ha l'opzione di sicurezza solo per la selezione
    del testo e delle immmagini, ci verrà in aiuto xpdf, un programma per la
    visualizzazione dei pdf per UNIX, VMS e OS/2 che gira sotto X Window
    System.
    Per le vecchie leggi sul divieto di esportazione della crittografia dagli
    USA, il creatore del programma xpdf, Derek B. Noonburg, non poteva
    distribuire la sua patch per visualizzare i file PDF con opzioni di sicurezza
    attivate, ma occorreva collocarla fuori dagli USA. Ora, invece, che le leggi
    sono cambiate (dal dicembre 1999), l'autore mi ha detto che la implementerà
    nella prossima versione.
    Per patchare il programma procuriamoci i sorgenti. Decompattiamo i sorgenti
    di xpdf e poniamo la patch nella stessa directory in modo che si abbia:
    xpdf-0.90/
    xpdf-0.90-fefe-diff2
    possiamo così provvedere a patchare i sorgenti con
    patch -p0 <xpdf-0.90-fefe-diff2
    Ora possiamo ricompilare facendo configure e make (se avete problemi
    guardate le istruzioni all'interno dell'archivio o usate la versione 0.80
    già patchata e impacchettata in rpm ).
    Con xpdf patchato possiamo visualizzare i file e selezionare (e copiare) il
    testo.
    Ricordo che le parti di xpdf che non si appoggiano all'interfaccia grafica
    X di Unix (pdftops, pdftotext, pdfinfo e pdfimages) possono essere
    ricompilati per win32. Usando pdftops patchato possiamo rendere inefficaci
    le opzioni di sicurezza che ci impediscono di selezionare il testo.
     
     
  • ^ Risultati di un testo di prova dove ho usato pdftops patchato e ps2pdf

  • per riottenere un nuovo pdf ma con i permessi cambiati.

       Originale  Finale
    *Dimensione  462 kB   2536 kB
    *metodo protezione  standard  nessuno
    *pw apertura   no   no
    *pw protezione   si   no
    *stampa   consentito  consentito
    *modifica doc   non consentito  non consentito
    *selezione testo e img  non consentito  consentito
    *aggiunta o modifica
    di note e campi modulo  non consentito  non consentito

    Il postscript di passaggio risultava di circa 1248 kB.

    Nel passaggio da pdf a ps si perdono alcune caratteristiche esclusive del
    pdf quali i bookmark del file, le note, i link.
    Il fatto che la grandezza del pdf finale sia più che quintuplicata, unito
    al fatto che tentando di zipppare il pdf, riotteniamo all'incirca la
    dimensione iniziale, mi ha fatto pensare a qualche metodo di compressione
    che non è stato attuato nelle conversioni. Questa ipotesi è corroborata dal
    fatto che il Readme di xpdf parla dell'algoritmo di compressione LZW
    (presente nei vecchi pdf) che è brevettato da Unisys Corporation (si,
    proprio la stessa che ha il brevetto delle gif), la quale non rilascia la
    licenza a prodotti distribuiti gratuitamente con sorgenti come xpdf. Come
    soluzione del problema xpdf non decomprime i dati compressi con LZW ed
    eventualmente presenti in un pdf, ma ne cambia prima il formato per poi
    decomprimerli.
    Nei nuovi file pdf l'algoritmo LZW non è più usato e come metodo di
    compressione si usa il filtro FlateDecode, che è lo stesso di gzip, il
    quale non è sottoposto a brevetti e spesso raggiunge risultati migliori del
    vecchio LZW.
     
     

  • ^ Stampiamo un file con l'opzione di sicurezza sulla stampa ovvero

  • eliminiamo tale opzione (anzi tutte)
    E' molto semplice: basta prendere GhostView (interfaccia grafica di
    GhostScript) che serve a visualizzare, stampare, etc. file pdf e ps.
    Una volta installato occorre sostituire il modulo di sicurezza con quello
    che trovate qua.
    Ora potrete stampare il vostro file (questa procedura è valida anche per
    gli utilizzatori del porting di GS per Windows).
    Ma voi, cari lettori, non vi saziate mai :-) e quella opzione di sicurezza
    vi sta tanto antipatica da volere un nuovo file pdf ma con tutte le opzioni
    di sicurezza azzerate. Allora stampiamo ancora, ma questa volta su file :-)
    scegliendo in "Printer Setup" pdfwrite come device. Il risultato sarà un
    pdf senza alcuna opzione di sicurezza attiva ma non potrete fare estrazione
    o ricerca del testo giacchè avete ottenuto il file per stampa su file (se
    proprio vi serve il testo potrete sempre estrarlo dall'originale con
    GhostView|Edit|Text Excract). Infatti selezionando e copiando il testo
    otteremo solo caratteri illegibili.
    Abbiamo così anche scoperto un metodo di protezione ;-) contro la selezione
    (e copiatura) del testo, ma questa volta più efficace di una semplice
    opzione di sicurezza.
     
     
  • ^ Servizi sul web

  • Kyler Laird mette a disposizione attraverso un CGI un servizio che cambia ùin un PDF le opzioni di sicurezza. Egli la definisce "un'utility per sbarazzarsi della assurda e
    sciocca opzione che impedisce la stampa". E' la stessa utility di GS
    modificata con modulo di sicurezza per PDF. Nel sito si afferma inoltre che
    essendo un'utility grezza manca la gestione degli errori, ma io non ho
    avuto modo di provarla perchè nel momento in cui scrivo queste righe il
    servizio ha temporanei problemi tecnici.
    E' da notare che questa utility non cracca il pdf ma estrae i dati
    stampabili in postscript per poter ricostruire il PDF. Quindi si cambiano i
    permessi e la password del proprietario data la user password. Si può
    ottenere così un file identico al precedente che di diverso ha solo i
    permessi.
    Diverso è invece il servizio della stessa Adobe per la conversione da PDF
    in altri formati (html, ascii). Per maggiori informazioni consultare
    http://access.adobe.com
    Un altro servizio gratuito è http://www.babinszki.com/distiller/ che
    trasforma postscript (anche più files zippati) in pdf. Anche questo non
    sono riuscito a provarlo per dei loro temporanei malfunzionamenti.
     
     

  • ^ Conclusione

  • Di questi pdf, a patto che siano visualizzabili (quindi, senza user
    password), nel corso di queste righe siamo riusciti a fare di tutto
    (fondamentalmente stampare e copiare i contenuti dove non era possibile).
    Spero che questo testo contribuisca ad eliminare la fiducia nella sicurezza
    che qualcuno ripone in questo formato.
     
     
  • ^ Altri link:

  • Codice sorgente dell'algoritmo RC4 usato per cifrare i file PDF.
    ftp://ftp.ox.ac.uk/pub/crypto/misc/rc4.tar.gz
    ftp://idea.sec.dsi.unimi.it/pub/crypt/code/rc4.tar.gz

    R. Rivest, "The MD5 Message-Digest Algorithm".  RFC 1321.
    [MD5 è usato nella codifica dei PDF.]

    Adobe Systems Inc., _Portable Document Format Reference Manual_,
    Version 1.3.  March 11, 1999.
    http://partners.adobe.com/asn/developer/PDFS/TN/PDFSPEC.PDF
    [Updated manual for PDF 1.3.]

    Si dice (non ho provato!) che si possa patchare l'Acrobat Reader 3.01 per
    stampare qualsiasi PDF (thanx to Kyler B. Laird):
    http://www.deja.com/=dnc/getdoc.xp?AN=570210560
     

    HOME