Les pubs vous déplaisent ? Aller Sans pub Auj.

Vérification de la signature PDF Ce que les développeurs doivent savoir

Publié le

La plupart des développeurs rencontrent des PDF signés sans savoir ce que garantit exactement la signature cryptographique. Voici ce que vous devez savoir pour vérifier correctement une signature PDF.

Vérification de la signature PDF : Ce que les développeurs doivent savoir 1
ANNONCE · Supprimer ?

La plupart des développeurs ont travaillé avec des PDF signés — un contrat signé, une déclaration bancaire certifiée, un formulaire gouvernemental. Mais le mot « signé » a des sens différents selon celui qui vous le demande. Le tracé visuel dans la zone de signature et la signature cryptographique intégrée au fichier sont deux choses complètement différentes. Seulement l'une d'entre elles garantit réellement quelque chose.

Ce guide explique comment fonctionnent les signatures numériques PDF, ce que signifient les différents états de validité, et comment les vérifier de manière programmée.

La signature que vous voyez vs. la signature qui compte

Quand quelqu'un « signe » un PDF avec un outil de dessin ou une empreinte d'image, il place une image de signature sur la page. Elle semble officielle, mais ne procure aucune garantie de sécurité. Quiconque peut copier cette image dans un autre document.

Une signature numérique est différente. Elle est un artefact cryptographique intégré dans la structure du PDF — distinct de tout élément visuel. Lorsqu'un document est signé numériquement :

  1. Un hachage du contenu du document est calculé.
  2. Ce hachage est encrypté à l'aide de la clé privée du signataire.
  3. Le hachage encrypté (la signature) est stocké dans le PDF, accompagné de la chaîne de certificats du signataire.

Lorsque vous vérifiez la signature, vous la déchiffrez à l'aide de la clé publique du certificat, recalculer le hachage à partir du contenu actuel du document, puis la comparer. Si les deux correspondent, le document n'a pas été modifié depuis la signature. Si elles ne correspondent pas — ou si le certificat n'est pas confiance — la signature est invalide.

Quatre états de validité de la signature

Toutes les signatures numériques ne sont pas égales. Lorsque vous vérifiez une signature PDF, vous rencontrerez l'un des quatre états suivants :

État de la signatureCe que cela signifieCe que vous devez faire
ValideLe hachage correspond, la chaîne de certificats est confiée, le certificat était actif au moment de la signatureFaire confiance à la signature — vérifier l'identité du signataire contre le certificat attendu
InvalideLe contenu du document a été modifié après la signature, ou les données de signature sont corrompuesRejeter le document ; il a été altéré ou est mal formé
InconnuLa structure de la signature est intacte, mais le certificat ne peut pas être vérifié (racine non confiée, absence d'OCSP, etc.)Ne pas pouvoir faire confiance à la signature — demander une nouvelle signature ou obtenir le certificat de racine confiant
RevocéeLe certificat était valide au moment de l'émission, mais a été annulé par l'organisme de certification (par exemple, compromis de clé)Rejeter sauf si les données LTV prouvent que le certificat était valide avant l'annulation

L'état « Inconnu » déconcerte la plupart des développeurs. Une signature structurée correctement avec un certificat auto-signé ou interne à une entreprise apparaît comme « Inconnu » dans la plupart des outils, car ces outils ne peuvent pas atteindre l'émetteur. Dans les flux de documents internes, vous pouvez choisir de confier explicitement cette racine ; pour les documents provenant d'acteurs externes, l'état « Inconnu » n'est pas acceptable.

Vérification à long terme (LTV) : Pourquoi les timestamps sont importants

Les certificats expireront. Si quelqu'un a signé un document il y a cinq ans et que son certificat est depuis expiré, la signature reste-t-elle valide ?

Cela dépend de la vérification à long terme (LTV). Lorsque LTV est intégrée, le PDF contient :

  • Un timestamp fiable d'un organisme de timestamp (TSA)
  • Des réponses OCSP ou des données CRL confirmant l'état du certificat au moment de la signature

Avec LTV, vous pouvez prouver que le certificat était valide au moment où la signature a été appliquée — même après l'expiration. Sans cela, vous pouvez uniquement vérifier la signature contre l'état actuel du certificat, ce qui devient impossible une fois que le certificat expire ou que le serveur OCSP est désactivé.

Pour des contrats ou des documents réglementés avec des exigences de conservation longues (7 ans ou plus dans de nombreux pays), la LTV n'est pas optionnelle. Vérifiez toujours la présence de LTV lors de la conception de flux de vérification de signature.

Vérification des signatures PDF de manière programmée

Utilisation de Python avec pypdf

Le pypdf La bibliothèque permet d'accéder aux champs de signature PDF et à leurs métadonnées sous-jacentes. Voici un exemple minimal pour vérifier si un PDF contient des signatures numériques et lire leur état :

import sys
from pypdf import PdfReader

def check_pdf_signatures(path: str) -> None:
    reader = PdfReader(path)

    sig_fields = [
        name for name, field in (reader.get_fields() or {}).items()
        if field.get("/FT") == "/Sig"
    ]

    if not sig_fields:
        print("No digital signature fields found.")
        return

    print(f"Found {len(sig_fields)} signature field(s):")
    for name in sig_fields:
        sig_obj = reader.get_fields()[name]
        sig_dict = sig_obj.get("/V")
        if not sig_dict:
            print(f"  {name}: field present but unsigned")
            continue

        signer_name = sig_dict.get("/Name", "Unknown")
        signing_time = sig_dict.get("/M", "No timestamp")
        reason       = sig_dict.get("/Reason", "")
        location     = sig_dict.get("/Location", "")

        print(f"  {name}:")
        print(f"    Signer:   {signer_name}")
        print(f"    Time:     {signing_time}")
        if reason:
            print(f"    Reason:   {reason}")
        if location:
            print(f"    Location: {location}")

if __name__ == "__main__":
    check_pdf_signatures(sys.argv[1])

Cela lit directement les métadonnées de signature depuis la structure du PDF. Pour une vérification cryptographique complète — confirmation du hachage et validation de la chaîne de certificats — utilisez pyhanko ou endesive, qui entourent toutes deux la couche de vérification PKCS#7.

Utilisation de qpdf depuis la ligne de commande

Pour un contrôle rapide depuis la ligne de commande sans environnement Python :

# Show encryption and signature info
qpdf --show-encryption input.pdf

# Full JSON output with signature details
qpdf --json input.pdf | python3 -m json.tool | grep -A 20 '"sig"'

qpdf est utile dans des pipelines CI ou dans des scripts shell où la création d'un environnement virtuel Python ajoute un surcroît d'effort.

Scénarios courants de vérification

Contrats signés par des clients — Vérifiez à la fois l'état de validité et l'émetteur du certificat. Une signature valide d'un certificat non fiable (auto-signé) ne fournit aucune assurance externe. Vous faites confiance à celui qui a généré la clé.

Documents gouvernementaux et réglementaires — Ces documents utilisent généralement des autorités de certification nationales. Vérifiez que la chaîne de certificats s'ancrage dans la racine CA attendue, et non seulement que la signature affiche « valide ».

Déclarations bancaires et factures — Beaucoup sont signées en bloc à l'aide de certificats de signature attribués à une organisation. Le nom du signataire reflétera l'institution, et non un employé individuel.

Vérification sans écrire de code

Si vous avez besoin de vérifier rapidement un fichier sans configurer un environnement de développement, utilisez IO Tools PDF Signature Checker permettez de télécharger un fichier et de voir les détails de la signature instantanément — utile pour des vérifications ponctuelles ou pour tester des fichiers d'exemple avant de construire un pipeline de production.

Envie d'une expérience sans pub ? Passez à la version sans pub

Installez nos extensions

Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide

Sur Extension Chrome Sur Extension de bord Sur Extension Firefox Sur Extension de l'opéra

Le Tableau de Bord Est Arrivé !

Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !

ANNONCE · Supprimer ?
ANNONCE · Supprimer ?
ANNONCE · Supprimer ?

Coin des nouvelles avec points forts techniques

Impliquez-vous

Aidez-nous à continuer à fournir des outils gratuits et précieux

Offre-moi un café
ANNONCE · Supprimer ?