Een handtekening kan cryptografisch perfect zijn en toch een supportticket worden. Controleer drie dingen, in deze volgorde, voordat een ondertekend document je systeem verlaat.
1. Valideert de handtekening
Haal het bestand door een validator die PAdES kent:
- De Validator van Cleverbase op cleverbase.com, de snelste controle dat de CMS goed gevormd is, de keten sluit en de handtekening verifieert tegen de signed attributes.
- DSS (dezelfde bibliotheek, via de demo-webapplicatie of
SignedDocumentValidator): een volledig ETSI EN 319 102-rapport, inclusief de kwalificatiestatus van het certificaat. - pyHanko:
pyhanko sign validate --pretty-print signed.pdfgeeft hetzelfde oordeel op de commandoregel.
Verwacht bij een B-B-handtekening op acceptatie: handtekening intact, certificaatketen bouwt op, kwalificatie niet vastgesteld (testcertificaten). Een handtekening die hier faalt, faalde bijna altijd om een van twee redenen: de hash ging over de PDF in plaats van over de signed attributes, of het algoritme dat in de CMS staat is niet het algoritme dat Cleverbase gebruikte. Beide staan in "De hash en de handtekeningwaarde".
2. Zegt de structuur wat je denkt dat hij zegt
Open het bestand in een PDF-inspector. Cleverbase heeft er een op deze site - de PDF-analyser, gratis met een Cleverbase-account - en met qpdf --json krijg je dezelfde objecten met de hand. Een inspector valideert niet; hij laat zien wat er echt in het bestand staat: revisies, de signature dictionary, /ByteRange tegen de bestandsgrootte, de AcroForm, en bovenaan een kaart Findings met precies de structurele problemen die "PAdES-valkuilen" beschrijft. Een net B-B-bestand toont één revisie na het origineel, één handtekening, /SigFlags 3, en "nothing to report" onder Findings.
Markeer de handtekening om te zien welke objecten de byte range dekt; dat moet alles zijn behalve het gat van /Contents.
3. Laat elke viewer hetzelfde zien
Open het ondertekende bestand in de viewers die je gebruikers echt hebben. Minimaal:
| Viewer | Waar je op let |
|---|---|
| Adobe Acrobat Reader | Het handtekeningpaneel noemt de handtekening; het zichtbare veld (als dat er is) wordt getekend; geen melding over wijziging na ondertekening. Reader is de strenge: verschillende problemen uit "PAdES-valkuilen" zie je alleen hier. |
| Een Chromium-browser (PDFium) | Het zichtbare veld wordt getekend. PDFium negeert de meeste formuliereigenaardigheden, dus een bestand dat er alleen hier goed uitziet is geen bewijs. |
| Nitro, Foxit of macOS Preview | Wat je klanten gebruiken. |
Bij B-LT en B-LTA moet Acrobat ook "LTV enabled" bij de handtekening tonen. Doet hij dat niet, dan mist de DSS revocatiegegevens voor een deel van een keten, en is het bestand B-T, hoeveel tijdstempels er ook volgen.
Probeer daarna een formulierveld te wijzigen. Dat moet worden geweigerd door de lock, of onmogelijk zijn omdat het formulier is platgeslagen. Kun je in een veld typen, dan zijn de velden open gebleven (stap 0.1 en 0.4).
Zegt de validator geldig op het niveau dat je bedoelde, meldt de inspector niets, en toont Adobe Reader de handtekening, dan kun je uitleveren. Zegt de validator geldig en toont Adobe niets, dan niet: lees "PAdES-valkuilen".
Bewaar het bewijs
Bewaar per ondertekend document: de credentialID, de hash die je autoriseerde, de signAlgo, de ondertekentijd die je bij het voorbereiden vastlegde, en de handtekeningwaarde zoals hij terugkwam. Met die gegevens en het document kun je reconstrueren waarom een handtekening valideert (of waarom hij dat niet meer doet), en dit is ook wat Cleverbase je vraagt als je een ticket opent.