Come funziona
Cosa succede quando trascini un file, cosa controlliamo davvero e — la parte che quasi nessuno scrive — cosa non controlliamo.
Il giro del file
Il file sale al nostro server, che apre la busta in memoria, legge i certificati e rifà i conti. Quello che torna indietro è il racconto: chi ha firmato, se i conti tornano, cosa c'è dentro. I byte del documento non tornano indietro finché non premi «Scarica», e in quel momento il file fa un secondo viaggio: così chi voleva solo vedere chi ha firmato non scarica niente.
Finito il giro, in memoria non resta niente e su disco non è mai arrivato nulla.
I due controlli che facciamo
Il documento è quello firmato
Ricalcoliamo l'impronta (SHA-256, o quella dichiarata nella busta) del documento e la confrontiamo con l'impronta chiusa dentro gli attributi firmati. Se non coincidono, qualcuno ha toccato il documento dopo la firma — e te lo diciamo in rosso.
La firma è di quel certificato
Rifacciamo il conto della firma con la chiave pubblica del certificato del firmatario. Se torna, quella firma è stata fatta con la chiave privata che corrisponde a quel certificato.
Il certificatore è accreditato
Confrontiamo il certificato con la lista di fiducia che l'Italia pubblica per legge europea (AgID, Trusted List): se chi l'ha rilasciato è in lista e la sua firma sul certificato torna, lo diciamo in verde con il nome del certificatore. Se non c'è, lo diciamo in ambra: un certificato fatto in casa qui non passa per buono.
Era valido quando ha firmato
Confrontiamo la data della firma con il periodo di validità del certificato: un certificato scaduto oggi può aver firmato bene ieri, e conta il momento della firma.
La marca temporale
Se la firma porta una marca temporale, la leggiamo e la verifichiamo: che sia la marca di questa firma, che la firma della TSA torni, e se la TSA è nella lista di fiducia. L'ora che vedi è quella certificata da un terzo, non solo quella dichiarata da chi ha firmato.
La revoca — sul sito
Sul sito scarichiamo la lista di revoca (CRL) della CA scritta nel certificato, ne verifichiamo la firma e cerchiamo il numero di serie: revocato o no, e se prima o dopo la firma. Usiamo la CRL e non l'OCSP: la lista è uguale per tutti e non dice al certificatore che stai leggendo quel documento. Le app non lo fanno: non hanno la rete, per scelta.
Cosa NON controlliamo
La revoca, nelle app. Le app per Android e iPhone non hanno la rete e non possono scaricare le liste di revoca: lì la revoca non si vede. La lista di fiducia è quella incorporata, aggiornata a ogni versione.
La firma di AgID sulla lista di fiducia. Verifichiamo la firma della CA sul certificato, non quella di AgID sulla lista, che arriva su HTTPS.
Per un documento che finisce in causa, davanti a un notaio o in una gara pubblica serve una verifica ufficiale: Dike, ArubaSign, o il servizio di verifica dell'AgID. Verifica P7M serve a leggere e a capire in fretta, non a certificare.
Cosa apre
- buste CAdES (.p7m) nella forma binaria (DER) e in quella di testo (Base64) che arriva dalla PEC;
- firme una dentro l'altra (.pdf.p7m.p7m), fino a sei strati;
- firme RSA con SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512. Le firme a curva ellittica (ECDSA) si leggono — chi ha firmato, quando — ma il conto della firma non lo rifacciamo, e la pagina lo dice invece di fingere;
- firme «staccate», dove il documento non è dentro la busta: te lo diciamo, invece di mostrarti una busta vuota.
Fino a 20 MB per file. Non apriamo (ancora) i PDF firmati dentro il PDF stesso (PAdES) né le firme XAdES: quelli si aprono già con un lettore PDF normale.
Non hai un .p7m sottomano?
Scarica questa busta di prova e aprila qui o nell'app: dentro c'è un PDF firmato da un «Mario Rossi» con un certificato di prova nostro — non è il documento di nessuno.
Chi l'ha scritto
Il lettore è scritto per intero da noi, senza librerie di terzi: la busta, i certificati e i conti della firma sono Verifica P7M, non un programma di qualcun altro a cui passiamo i tuoi documenti.