Come verifico un file firmato in seguito?
Chiunque può confermare che un PDF firmato è esattamente quello prodotto da questo servizio,
senza chiave API, caricandolo su /verify: la pagina
ne ricalcola lo SHA-256 e riporta una corrispondenza o "Nessuna corrispondenza", in italiano o in inglese
(?lang=it o ?lang=en; per impostazione predefinita la lingua della
richiesta firmata). Per fare la stessa
cosa da codice, calcola tu l'hash e confrontalo con
signedSha256 ottenuto da una GET sulla busta:
curl -F "document=@signed.pdf" https://your-host/verify
Lo stesso controllo, per una macchina
Anche qui senza chiave, con un limite di frequenza per indirizzo. Chiedi JSON:
GET /verify/{sha256}.json
POST /verify.json (multipart, part "document")
200 OK
{
"schema": 1,
"queriedSha256": "ab12...",
"found": true,
"integrity": { "result": "matches_a_signed_file", "algorithm": "sha256" },
"signature": { "level": "SES", "legalQualification": "simple_electronic_signature",
"status": "completed", "completedAt": "...", "signerCount": 2,
"signers": [{ "fullName": "Anna Rossi", "signedAt": "..." }], "isTest": false },
"seal": { "requested": true, "padesProfile": "B-T", "applied": true },
"timestamp": { "requested": true, "applied": true },
"evidence": { "chain": { "intact": true, "events": 14 },
"purged": false,
"retention": "10 years from the envelope closing, unless the organisation chose a shorter period" }
}
Di proposito non viene mai ridotto a un unico booleano
valid. Un hash corrispondente dice che il file è esattamente quello firmato qui;
non dice che il sigillo fosse qualificato (qualified non viene mai
affermato: nessun certificato di questa installazione è dichiarato qualificato), che una
marca temporale sia ancora verificabile, né che il firmatario fosse chi diceva di essere. Ogni
fatto è un campo a sé, con parole proprie, e found: false riporta
le stesse ragioni che dà la pagina. Una busta le cui evidenze sono state eliminate
risponde comunque dal suo hash registrato e dice evidence.purged: true.
Una busta di test dice isTest: true.
Basta un solo byte cambiato (un PDF salvato di nuovo, una copia passata per un altro strumento) perché non corrisponda più. È proprio questo lo scopo: è un'evidenza di manomissione, non un checksum fine a sé stesso.
Da dove viene l'impronta: Cosa vede il firmatario.