Inspectez un PDF pour ses champs de signature, comptez les marqueurs de signature et analysez la fenêtre d'intégrité ByteRange.
Inspectez un PDF pour ses champs de signature, comptez les marqueurs de signature et analysez la fenêtre d'intégrité ByteRange. Inspectez un PDF pour ses champs de signature, comptez les marqueurs de signature et analysez la fenêtre d'intégrité ByteRange.
Contexte
Comment fonctionnent les signatures PDF
Une signature numérique sur un PDF n'est pas un cachet dessiné sur la page (bien qu'une apparence de signature visuelle puisse exister aussi). C'est un objet cryptographique : un dictionnaire de signature dont la valeur /Contents contient une structure PKCS#7 SignedData encodée en DER. Cette structure contient le certificat du signataire, l'algorithme de condensat et une signature calculée sur une tranche précise des octets du PDF. Le tableau /ByteRange du dictionnaire de signature décrit exactement quelles plages d'octets du fichier sont couvertes par la signature : typiquement [0, a, b, c] signifiant « octets 0..a-1 et b..b+c-1 ». Tout ce qui se trouve dans ces plages est signé ; tout ce qui est à l'extérieur — la valeur de la signature elle-même — ne l'est pas. Cette conception permet de signer un PDF sans connaître sa longueur finale à l'avance.
Pourquoi ByteRange compte pour la détection de falsification
Pour vérifier une signature, un vérificateur hache les octets des plages signées et les compare au condensat intégré dans la structure PKCS#7. Si quelqu'un modifie le PDF après signature, les octets couverts changent, le hachage recalculé diverge et la vérification échoue — c'est le signal de falsification. Le /ByteRange définit donc la fenêtre d'intégrité : une signature ne peut protéger que les octets qu'elle couvre. Une signature dont les plages ne couvrent pas tout le document laisse le reste du fichier ouvert à une modification indétectable. Ce vérificateur indique si la plage est présente et si elle commence à l'octet 0 et couvre tête plus queue — la forme que produit tout outil de signature.
Ce que vérifie cet outil
Il analyse le PDF avec la bibliothèque pdf-lib fournie (Apache-2.0) et indique : le nombre de pages ; le nombre de champs de signature trouvés dans l'AcroForm ; le nombre de marqueurs /FT /Sig dans le flux d'octets brut ; si un tableau /ByteRange existe ; et si cette plage a la forme canonique [0, tête, débutQueue, longQueue]. Un PDF avec zéro marqueur n'a aucune signature du tout. Un PDF avec des marqueurs mais sans plage analysable est inhabituel et mérite un examen plus approfondi. La vérification cryptographique complète — recalculer les hachages et valider la chaîne de certificats — nécessite la chaîne complète du signataire et un magasin de confiance ; cette page se concentre sur l'analyse structurelle qui révèle si des signatures existent et si la fenêtre d'intégrité est intacte.
Interpréter les résultats
Plus d'un marqueur de signature signifie généralement plusieurs signatures ou une mise à jour incrémentale ayant resigné le document. Un PDF chiffré peut masquer les dictionnaires de signature à l'analyseur ; le mode ignoreEncryption est utilisé afin que la structure soit tout de même rapportée. Rappelez-vous : cet outil vérifie la structure, pas l'identité. Il ne peut pas vous dire si le signataire est bien celui qu'il prétend être — cela nécessite de vérifier le certificat contre une racine de confiance. Utilisez-le comme un tri de première passe sur les documents que vous recevez, puis poursuivez avec la vérification complète des signatures de votre plateforme pour tout ce qui est important. L'analyse s'exécute entièrement dans votre navigateur ; votre PDF n'est jamais téléversé.
Foire aux questions
Cet outil vérifie-t-il cryptographiquement la signature ?
Il effectue une analyse structurelle : il détecte les champs de signature, compte les marqueurs /FT /Sig et vérifie la forme de la fenêtre d'intégrité ByteRange. Le recalcul complet des hachages et la validation de la chaîne de certificats nécessitent la chaîne du signataire et un magasin de confiance, qu'une page de navigateur ne peut pas fournir hors ligne.
Que signifie un rapport ByteRange vide ?
Si aucun tableau /ByteRange n'est trouvé mais que des marqueurs de signature existent, le PDF peut utiliser une disposition de signature inhabituelle ou être corrompu. Un PDF sans marqueur ni ByteRange n'a simplement aucune signature.
Qu'est-ce qu'une mise à jour incrémentale et pourquoi est-ce important ?
Beaucoup d'outils PDF ajoutent les modifications à la fin du fichier au lieu de le réécrire. Chaque ajout peut ajouter ou remplacer des objets, et une resignature apparaît comme un nouveau marqueur. C'est pourquoi un PDF signé peut afficher plus d'un marqueur de signature.
Un PDF chiffré peut-il encore être vérifié ?
Oui, dans certaines limites. Le vérificateur se charge avec ignoreEncryption afin que les dictionnaires de signature restent visibles. L'analyse d'octets brut pour /FT /Sig fonctionne quelle que soit le chiffrement car elle recherche dans le flux en texte clair.
Mon PDF est-il téléversé quelque part ?
Non. Le PDF est lu avec FileReader et analysé entièrement dans votre navigateur à l'aide de la bibliothèque pdf-lib fournie. L'exemple de PDF est également généré localement. Rien ne quitte votre appareil.
Que sont PKCS#7 / CAdES / PAdES ?
PKCS#7 est le format conteneur qui contient les données de signature (désormais normalisé comme CMS). PAdES est le profil PDF de ce format utilisé par les règles de signature électronique européennes ; il ajoute des attributs de validation à long terme afin que les signatures restent vérifiables pendant des années.