Domain-Keyed Document Stamp

Un protocole ouvert pour vérifier l’origine et le contenu des documents.

  • Un téléphone tenu au-dessus d’une page imprimée, l’appareil photo aligné sur le cachet dans le coin de la page. Le téléphone est dessiné en bleu.

    Sans friction

    Le logiciel émetteur crée un cachet par un seul appel de fonction. Tout vérifi­cateur conforme peut le contrôler, y compris un vérifi­cateur fonctionnant dans un navigateur web, sans compte ni frais.

  • Une imprimante avec une feuille dans son bac de sortie. Le cachet imprimé sur la feuille est dessiné en bleu.

    Portable

    Les données signées sont contenues dans le code QR lui-même, de sorte qu’un cachet reste vérifiable après l’impression, la photocopie ou la numérisation du document.

  • Un cachet décomposé en cinq couches superposées, chacune étant une norme publiée : code QR, Base45, DEFLATE, Ed25519 et DNS. La couche de la signature Ed25519 est dessinée en bleu. DNSRFC 1035 Ed25519RFC 8032 DEFLATERFC 1951 Base45RFC 9285 QRISO/IEC 18004

    Normalisé

    Chaque composant est une norme publiée existante : codes QR, Base45, compression DEFLATE, signatures Ed25519 et Domain Name System.

Au moins 27 milliards d’euros sont perdus chaque année en Europe à cause de la fraude

Ce montant est la somme des estimations publiées pour trois types de fraude dans lesquels une organisation verse de l’argent sur la foi de documents : les déclarations de sinistre, les demandes de prestations sociales et les virements bancaires. La plupart des pays européens ne publient pas de telles estimations ; le montant est donc un minimum, et les pertes réelles sont plus élevées. Sa composition figure sous l’exemple.

Ce type de fraude repose couramment sur des documents modifiés ou fabriqués, tels que des factures, des bulletins de paie, des rapports médicaux et des relevés bancaires. Comme les fichiers PDF et les documents imprimés ne portent aucune preuve fiable de leur origine, un destinataire ne peut généralement pas en vérifier un sans contacter l’organisation qui l’a émis, une démarche lente et souvent omise.

invoice-2026-0917.pdfEnregistré
Northwind B.V.Invoice 2026-0917
Customer
Harbour Logistics B.V.
Date
30 Sep 2026
Amount
4,812.50 EUR
Pay to IBAN
LT12 1000 0111 0100 1000
Due
30 Oct 2026
Avant
NL91 ABNA 0417 1643 00
Après
LT12 1000 0111 0100 1000

Dans cet exemple, le numéro de compte bancaire d’une facture authentique a été remplacé. Le document ne présente aucune trace de la modification, et un client qui paie la facture virerait le montant sur le nouveau compte.

Facture à titre d’illustration.

Composition de l’estimation

CatégorieZoneSourcePerte annuelle
Fraude aux sinistres d’assurance, détectée et non détectéeMarchés européens qui la déclarentInsurance Europe, Insurance fraud: not a victimless crime, pour 201713,0 milliards €
Fraude aux prestations socialesRoyaume-UniDepartment for Work and Pensions, Fraud and error in the benefit system, pour 2024-20257,7 milliards €
Fraude aux prestations familiales, aux aides au logement et aux minima sociauxFranceCour des comptes, Certification des comptes du régime général, exercice 20233,9 milliards €
Virements frauduleuxUE et EEEABE et BCE, 2025 Report on Payment Fraud, pour 20242,5 milliards €
Total27,1 milliards €

L’estimation britannique de 6,5 milliards de livres est convertie à 1,18 € par livre, le taux de référence moyen de la Banque centrale européenne pour 2024. Ne sont pas comprises la fraude commise par les émetteurs de documents eux-mêmes, comme la fraude à la TVA de type carrousel au moyen de factures des propres sociétés des fraudeurs, que la Commission européenne estime entre 12,5 et 32,8 milliards d’euros par an, ni la fraude aux demandes de prêt, de crédit immobilier et de subvention, pour laquelle aucune estimation comparable n’est publiée.

Documents couramment utilisés dans la fraude

Ce type de fraude repose sur des documents qu’une organisation émet et auxquels une autre se fie, alors que le document passe entre les mains d’un tiers, tel qu’un demandeur, un assuré ou un fournisseur. Les documents suivants sont couramment modifiés ou fabriqués à cette fin. Chacun d’eux peut porter un cachet DKDS de son émetteur.

  • Revenus et finances

    • Bulletins de paie
    • Attestations d’employeur
    • Relevés bancaires
    • Avis d’imposition
    • Relevés de retraite
  • Factures et paiements

    • Factures
    • Avoirs
    • Demandes de paiement
    • Bons de commande
    • Reçus
  • Assurance et santé

    • Rapports médicaux
    • Arrêts de travail
    • Ordonnances
    • Devis de réparation
    • Rapports d’expertise
  • Logement

    • Baux de location
    • Quittances de loyer
    • Factures d’énergie
    • Justificatifs de domicile
    • Estimations immobilières
  • Formation et emploi

    • Diplômes
    • Relevés de notes
    • Certificats professionnels
    • Contrats de travail
    • Références
  • Actes officiels

    • Actes de naissance et de mariage
    • Extraits de casier judiciaire
    • Extraits Kbis
    • Permis et autorisations
    • Décisions de justice
  • Commerce et transport

    • Certificats d’origine
    • Connaissements
    • Bons de livraison
    • Certificats d’inspection
    • Documents douaniers
  • Véhicules

    • Certificats d’immatriculation
    • Procès-verbaux de contrôle technique
    • Carnets d’entretien
    • Attestations de kilométrage
    • Contrats de vente

Les passeports et les cartes d’identité ne figurent pas dans la liste. Ils possèdent leurs propres dispositifs de sécurité et, dans l’Union européenne, une puce électronique qui peut être vérifiée.

Fonctionnement d’un cachet

Un cachet DKDS est un code QR imprimé sur un document. Il contient les données essentielles du document, le nom de domaine de l’émetteur et une signature numérique portant sur les deux. La clé publique nécessaire pour contrôler la signature est publiée dans les enregistrements DNS de l’émetteur, d’une manière semblable à DKIM pour le courrier électronique, de sorte que n’importe qui peut vérifier un cachet sans compte ni intermédiaire.

Émetteur
northwind.example
détient la clé privée
DNS
k2026._dkds.northwind.example
v=DKDS1; k=ed25519; p=6kps…0iw=
Facture
Vérifi­cateur
northwind.example, 7 champs
Signature valide
  1. 1L’émetteur publie une clé publique sous la forme d’un enregistrement TXT dans le DNS de son domaine. Cela se fait une fois, puis de nouveau à chaque remplacement de la clé.
  2. 2Pour chaque document, l’émetteur signe les données essentielles avec la clé privée correspondante et les imprime, avec la signature, sous la forme d’un code QR sur le document.
  3. 3Un vérifi­cateur scanne le code QR et lit les données, la signature et le nom de domaine de l’émetteur.
  4. 4Le vérifi­cateur obtient la clé publique dans le DNS de ce domaine et contrôle la signature à l’aide de celle-ci.

La sélection d’une étape lit l’animation à partir de ce point.

Vérification d’un document

Un vérifi­cateur affiche le domaine qui a signé le cachet et les données qu’il contient. Le lecteur compare ensuite ces données avec celles imprimées sur le document. Une différence entre les deux indique que le document a été modifié après son émission.

Document tel que reçu
Northwind B.V.Invoice 2026-0917
Customer
Harbour Logistics B.V.
Date
30 Sep 2026
Amount
4,812.50 EUR
Pay to IBAN
LT12 1000 0111 0100 1000
Due
30 Oct 2026
Résultat du vérifi­cateur
Vérifi­cateur
Signé par
northwind.example
30 sept. 2026, 09:00 UTC. La signature est valide.
Supplier
Northwind B.V.
Invoice no.
2026-0917
Date
2026-09-30
Customer
Harbour Logistics B.V.
Amount
4,812.50 EUR
Pay to IBAN
NL91 ABNA 0417 1643 00
Due
2026-10-30

Dans cet exemple, la signature est valide, ce qui montre que le cachet a été émis par northwind.example. Le numéro de compte bancaire du cachet diffère de celui imprimé sur la facture, ce qui montre que la facture a été modifiée après son émission.

Le cachet présenté est un cachet DKDS valide. Comme northwind.example est un nom de domaine réservé, un vérifi­cateur réel ne trouvera pas sa clé.

Un cachet émis par dkds.org

Ce cachet a été signé le 10 octobre 2026 avec la clé que dkds.org publie sous k2026._dkds.dkds.org. Un vérifi­cateur signale une signature valide de dkds.org et affiche les champs que contient le cachet. Un téléphone peut lire le cachet sur l’écran ; sur un ordinateur, son texte peut être copié et collé dans le vérifi­cateur.

Ouvrir le vérifi­cateur(scan.dkds.org)
Texte du cachet DKDS:*50CVCKVC7*5$KE$U0NF6TF6NMDLZ3A200Z4AHM0WGCN1*DOZ1CG/OJ9O.ND/0L$195ZOIEG%D2SVDGL744N*JS3YV:3K9KB7-PNW7G$4O91$GJDY5VWS6TACAB+-MGRSGIO5NGF7RV8GH57BTU/2DQA4CFUGJVIASI6L1SD921-2MIRB30I5 F516:O3TQI$I8GYK/:JN9AROT3VBROMU2E5/IVMF+/KCXLNY5.T8.BRZ$NL2R4O3XH7R.65I175LN.9*LLCB4GVKC71%/5SQ7

Ce qu’un cachet établit

Un cachet valide établit

  • Que le cachet a été signé avec une clé publiée par le titulaire du domaine.
  • Que les données du cachet n’ont pas été modifiées depuis la signature.
  • Le moment où le cachet a été signé.

Un cachet valide n’établit pas

  • Que les données sont vraies. Un cachet indique qui les a déclarées, non si elles sont exactes.
  • Que le document imprimé correspond au cachet. Cette comparaison est faite par le lecteur.
  • La confidentialité. Le contenu d’un cachet peut être lu par quiconque le scanne.

Implémentations

DKDS est défini par une spécification ouverte, qui comprend des vecteurs de test permettant de contrôler l’exactitude d’une implémentation. Chacun peut implémenter le protocole sans autorisation ni redevance.

L’implémentation de référence, dkds.js, peut être utilisée comme bibliothèque logicielle, comme outil en ligne de commande ou comme service HTTP local, ce qui permet à des logiciels écrits dans d’autres langages de créer et de vérifier des cachets. Un vérifi­cateur fonctionnant dans le navigateur est disponible à l’adresse scan.dkds.org ; les documents sont vérifiés sur l’appareil et ne sont pas transmis.