Cos'e PAdES e perche esiste

PAdES sta per PDF Advanced Electronic Signatures. E uno standard tecnico pubblicato da ETSI (European Telecommunications Standards Institute) con il numero EN 319 142, in due parti: la prima descrive i requisiti generali, la seconda descrive i profili baseline.

In pratica PAdES dice una cosa semplice: come incorporare una firma digitale dentro un file PDF in modo che qualsiasi verificatore (un giudice, una pubblica amministrazione, un cliente) possa controllare in autonomia che il PDF non sia stato modificato dopo la firma, che il firmatario sia identificabile, e che la firma sia valida nel tempo.

Esempio concreto. Un commercialista invia per email una fattura proforma firmata in PAdES B-B a un cliente tedesco. Il cliente apre il PDF in Adobe Reader e vede subito la barra verde "firma valida", con il nome del firmatario, l'autorita di certificazione, e l'integrita del documento garantita. Niente plugin, niente upload su portali esterni.

Questa interoperabilita "fuori dalla scatola" e il motivo per cui PAdES e diventato lo standard de facto per la firma digitale dei PDF in Europa. Tutti i lettori PDF moderni lo supportano nativamente.

I quattro livelli baseline: B-B, B-T, B-LT, B-LTA

ETSI EN 319 142-1 definisce quattro profili di conformita, in ordine crescente di robustezza. La sigla "B" davanti sta per "baseline": sono i profili minimi, quelli che ogni implementazione deve supportare.

PAdES B-B (Basic)

Il livello minimo. Include la firma del documento con un certificato X.509 e l'identita del firmatario. Niente timestamp esterno, niente prova di esistenza della firma in un dato istante. Se il certificato del firmatario scade tra cinque anni, dopo quella data la firma diventa "scaduta" e va riverificata con altri mezzi.

Caso d'uso tipico: firma istantanea di una proposta commerciale, dove la durata legale necessaria e breve (settimane o mesi) e si accetta la dipendenza dal certificato.

PAdES B-T (Timestamp)

Aggiunge una marca temporale qualificata alla firma. Il timestamp e emesso da un QTSP (Qualified Trust Service Provider) e prova che la firma esisteva in un dato istante.

Vantaggio enorme: anche se il certificato del firmatario scade, la firma resta valida perche il timestamp dimostra che era ancora valido al momento della firma. E il livello minimo per documenti che devono sopravvivere al certificato del firmatario.

PAdES B-LT (Long Term)

Estende B-T includendo nel PDF tutti i dati di verifica della firma: la catena dei certificati, le CRL (Certificate Revocation List) o le risposte OCSP. Il PDF diventa autosufficiente: si verifica anche offline, senza dover contattare l'autorita di certificazione.

Caso d'uso: archiviazione legale di contratti decennali. Anche se tra vent'anni l'autorita di certificazione non esiste piu, la firma resta verificabile dai dati incorporati.

PAdES B-LTA (Long Term with Archive timestamps)

Il livello massimo. Aggiunge a B-LT una serie di archive timestamp periodici (tipicamente ogni 5-10 anni) che ri-sigillano l'intero contenuto del documento, incluse le firme e i dati di verifica precedenti.

Resiste al passare del tempo praticamente indefinitamente: anche se gli algoritmi crittografici originali (SHA-256, RSA-2048) diventassero deboli tra trent'anni, gli archive timestamp con algoritmi piu recenti garantiscono comunque l'integrita. E lo standard per archivi documentali decennali della pubblica amministrazione.

Riferimento normativo ETSI EN 319 142-1 e EN 319 142-2, pubblicati nella libreria standard ETSI come parte del framework eIDAS per le firme elettroniche. Disponibili gratuitamente su etsi.org/standards.

Differenza tra PAdES, CAdES e XAdES

I tre standard ETSI per le firme avanzate sono cugini stretti, ma nascono per scenari diversi. Confonderli e l'errore numero uno nei progetti di firma digitale.

Regola pratica: se il documento e gia un PDF, si usa PAdES. Se e un XML, si usa XAdES. Per tutto il resto, si usa CAdES. I tre formati hanno gli stessi quattro livelli baseline (B-B, B-T, B-LT, B-LTA) e lo stesso valore legale ex eIDAS, ma differiscono nel modo in cui la firma e tecnicamente attaccata al documento.

Certificato X.509 e contenitore PKCS#12

Per firmare in PAdES serve un certificato X.509. E un file digitale emesso da una Certification Authority (Aruba, InfoCert, Namirial, Poste Italiane in Italia) che lega un'identita (il nome del firmatario, il codice fiscale, eventuali poteri di rappresentanza) a una coppia di chiavi crittografiche (pubblica e privata).

Il certificato vive dentro un contenitore PKCS#12, tipicamente con estensione .p12 o .pfx, protetto da una password. Dentro il PKCS#12 ci sono tre cose: la chiave privata del firmatario, il certificato X.509 con la chiave pubblica, e la catena di certificati dell'autorita di certificazione.

Operativamente: si compra un certificato di firma da un QTSP italiano (costo tipico 30-50 euro all'anno per un certificato remoto, 80-150 euro per smart card o token USB), si scarica il .p12, e si usa con qualsiasi software compatibile PAdES per firmare i PDF.

Per firmare in autonomia senza software pesanti tipo Adobe Sign o ARSS, esistono librerie open source come pdf-lib, node-signpdf o jsignpdf che producono PDF PAdES B-B partendo da un PKCS#12 e un PDF di input. Per i livelli B-T, B-LT, B-LTA serve integrare un QTSP per i timestamp e le CRL.

Privacy: firma client-side vs server-side

Il punto piu trascurato dei progetti di firma digitale. Dove va a finire la chiave privata?

Nella firma server-side (tipica delle piattaforme cloud di firma "remota"), la chiave privata e custodita dal QTSP in un HSM (Hardware Security Module) e usata via API ogni volta che l'utente conferma una firma con un codice OTP. Comoda per il firmatario, ma il documento da firmare passa dal server del QTSP. In scenari con NDA, segreti industriali o documenti riservati, e un punto di esposizione.

Nella firma client-side (la nostra preferita), la chiave privata resta sul dispositivo del firmatario (browser, smart card, token, telefono) e il documento non lascia mai il client. La firma viene calcolata localmente, il PDF firmato viene poi caricato (o no) sul server solo se serve archiviarlo.

Per gli usi quotidiani (contratti commerciali B2B, NDA, atti riservati) la firma client-side e nettamente preferibile per ragioni di privacy. Per gli usi con presunzione di esattezza (firma qualificata FEQ con HSM certificato), il server-side resta necessario.

Veylon Firma PAdES K-S.1: firma client-side su PDF

Veylon Firma e uno dei nove atti notarili digitali della piattaforma. Implementa la firma PAdES B-B (e opzionalmente B-T tramite QTSP integrato) interamente lato client: il PDF viene firmato nel browser dell'utente, senza upload al server Veylon del documento in chiaro.

Come funziona in pratica

L'utente carica il proprio certificato PKCS#12 e il PDF da firmare. Il browser calcola localmente l'impronta SHA-256 del PDF, costruisce la struttura di firma PAdES (campo /Sig, /ByteRange, /Contents), firma con la chiave privata del certificato, e produce il PDF firmato.

In parallelo, Veylon Sigillo aggiunge un'ancora Bitcoin OpenTimestamps sull'impronta del PDF firmato, che sopravvive al certificato del firmatario e a Veylon stessa. Il risultato e un PDF PAdES B-B con timestamp Bitcoin esterno, verificabile in autonomia per decenni.

Per le firme che richiedono presunzione legale piena (atti notarili, contratti pubblici), Veylon integra QTSP italiani accreditati AgID per il timestamp qualificato che porta il livello a PAdES B-T.

Riferimenti utili eIDAS 910/2014 su Eur-Lex · ETSI EN 319 142-1 PAdES · AgID · Firma elettronica qualificata

In sintesi: PAdES e lo standard giusto per firmare PDF in modo legalmente opponibile in UE. Per la maggior parte degli usi B-B basta, per documenti che devono sopravvivere anni serve B-T o B-LT. La scelta tra firma client-side e server-side dipende dalla riservatezza del contenuto, non dalla disponibilita tecnologica.