Firma elettronica legale o GPG?

Conosco molte persone che usano PGP/GPG per firmare/crittare i propri documenti, si tratta di crittografia con chiavi asimmetriche, ma non è la sola; c'é anche quella ufficiale e riconosciuta legalmente che utilizza i lettori e le smartcard.



Ho fatto un po' di prove, giusto per curiosità, e sono arrivato alla conclusione che non fa per me. Vediamo comunque le differenze e le somiglianze

PGP / GPG

Si tratta della versione Open Source di PGP (Pretty good Privacy) è a chiavi asimmetriche (pubblica, privata) ed ormai è egregiamente integrata nel desktop Gnome tramite Seahorse.







Tramite opportuni plugin è possibile crittare/verificare la firma nell'editor di testi, nel client email e col tasto destro in ogni file del desktop.

.p7m PKCS

Si tratta della forma riconosciuta per legge che in teoria si dovrebbe poter decodificare con openssl. Il funzionamento è sempre a chiave asimmetrica, offre la possibilità di marcare temporalmente il documnto firmato, ma la firma non è revocabile.



Esiste anche un client ufficiale Dike (per Win,Mac, Linux), che si dichiare GPL, ma i sorgenti che linka sono di un altro software chiamato j4sign.



Un altro progetto con un obbiettivo e sempre open source è OpenSignature, anche se non più molto attivo.


Utilizzo pratico con gnupg2 e gpgsm (disponibili in Ubuntu)

$ wget http://www.card.infocamere.it/pdf/InfoCamereServizidiCertificazione.cer
$ wget http://www.card.infocamere.it/pdf/InfoCamere
ServizidiCertificazione2.cer
$ wget http://www.cnipa.gov.it/site/files/LISTACER20071008.zip.p7m
$ gpgsm --import InfoCamereServizidiCertificazione.cer
gpgsm: total number processed: 1

gpgsm:               imported: 1

$ gpgsm --import InfoCamere
ServizidiCertificazione2.cer
gpgsm: total number processed: 1

gpgsm:               imported: 1

$ gpgsm --verify LISTACER_20071008.zip.p7m
gpgsm: Signature made [date not given] using certificate ID FE9E51E2

gpgsm: note: non-critical certificate policy not allowed

gpgsm: issuer certificate {9C6FE1766827429CC0804070A00F08E9D112FFA4} not found using authorityKeyIdentifier

gpgsm: issuer certificate not found

gpgsm: issuer certificate: #/CN=CNIPA CA1,OU=Servizi di Sicurezza e Certificazione,O=Centro Nazionale per l'Informatica nella PA,C=IT

gpgsm: invalid certification chain: Certificato mancante



Ecco, però a questo punto il file .p7m dovrebbe avere una firma valida, come è possibile verificare dalla versione online.



In conclusione, se non avete delle esigenze particolari per usare il sistema standard, GPG è più che sufficiente a garantire la vostra privacy senza farvi spendere soldi per registrazioni o smartcard.

corso javascript