Domain-Keyed Document Stamp

Een open protocol voor het verifiëren van de herkomst en de inhoud van documenten.

  • Een telefoon boven een gedrukte pagina, met de camera gericht op de stempel in de hoek van de pagina. De telefoon is blauw getekend.

    Laagdrempelig

    Software die documenten uitgeeft, maakt een stempel met één functieaanroep. Elk verificatie­programma dat aan de specificatie voldoet, kan de stempel controleren, ook een dat in een webbrowser draait, zonder account en zonder kosten.

  • Een printer met een vel in de uitvoerlade. De stempel die op het vel is gedrukt, is blauw getekend.

    Overdraagbaar

    De ondertekende gegevens staan in de QR-code zelf, zodat een stempel verifieerbaar blijft nadat het document is afgedrukt, gekopieerd of gescand.

  • Een stempel uiteengelegd in vijf gestapelde lagen, elk een gepubliceerde standaard: QR-code, Base45, DEFLATE, Ed25519 en DNS. De laag van de Ed25519-handtekening is blauw getekend. DNSRFC 1035 Ed25519RFC 8032 DEFLATERFC 1951 Base45RFC 9285 QRISO/IEC 18004

    Gestandaardiseerd

    Elk onderdeel is een bestaande, gepubliceerde standaard: QR-codes, Base45, DEFLATE-compressie, Ed25519-handtekeningen en het Domain Name System.

In Europa gaat jaarlijks ten minste € 27 miljard verloren aan fraude

Dit bedrag is de som van de gepubliceerde schattingen voor drie soorten fraude waarbij een organisatie geld uitkeert op basis van documenten: verzekeringsclaims, aanvragen van sociale uitkeringen en bankoverschrijvingen. De meeste Europese landen publiceren zulke schattingen niet, zodat het bedrag een ondergrens is en de werkelijke verliezen hoger liggen. De samenstelling ervan staat onder het voorbeeld.

Bij fraude van deze soort worden vaak gewijzigde of vervalste documenten gebruikt, zoals facturen, loonstroken, medische rapporten en bankafschriften. Omdat pdf-bestanden en gedrukte documenten geen betrouwbaar bewijs van herkomst bevatten, kan een ontvanger een document doorgaans niet verifiëren zonder contact op te nemen met de organisatie die het heeft uitgegeven, een stap die tijd kost en vaak wordt overgeslagen.

invoice-2026-0917.pdfOpgeslagen
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
Voor
NL91 ABNA 0417 1643 00
Na
LT12 1000 0111 0100 1000

In dit voorbeeld is het rekeningnummer op een echte factuur vervangen. Het document bevat geen aanwijzing voor de wijziging, en een klant die de factuur betaalt, maakt het bedrag over naar de nieuwe rekening.

Factuur ter illustratie.

Samenstelling van de schatting

CategorieGebiedBronJaarlijks verlies
Fraude met verzekeringsclaims, ontdekt en onontdektEuropese markten die erover rapporterenInsurance Europe, Insurance fraud: not a victimless crime, over 2017€ 13,0 miljard
UitkeringsfraudeVerenigd KoninkrijkDepartment for Work and Pensions, Fraud and error in the benefit system, over 2024–25€ 7,7 miljard
Fraude met gezins-, huisvestings- en bijstandsuitkeringenFrankrijkCour des comptes, Certification des comptes du régime général, exercice 2023€ 3,9 miljard
Frauduleuze overschrijvingenEU en EEREBA en ECB, 2025 Report on Payment Fraud, over 2024€ 2,5 miljard
Totaal€ 27,1 miljard

De schatting voor het Verenigd Koninkrijk van £ 6,5 miljard is omgerekend tegen € 1,18 per pond, de gemiddelde referentiekoers van de Europese Centrale Bank over 2024. Niet meegerekend zijn fraude door de uitgevers van documenten zelf, zoals carrouselfraude met btw met facturen van de eigen bedrijven van de fraudeurs, die de Europese Commissie schat op € 12,5 tot 32,8 miljard per jaar, en fraude bij aanvragen van leningen, hypotheken en subsidies, waarvoor geen vergelijkbare schattingen worden gepubliceerd.

Documenten die vaak bij fraude worden gebruikt

Fraude van deze soort steunt op documenten die de ene organisatie uitgeeft en een andere vertrouwt, terwijl het document door de handen van een derde gaat, zoals een aanvrager, een eiser of een leverancier. De volgende documenten worden hiervoor vaak gewijzigd of vervalst. Elk ervan kan een DKDS-stempel van de uitgever dragen.

  • Inkomen en financiën

    • Loonstroken
    • Werkgevers­verklaringen
    • Bankafschriften
    • Belasting­aanslagen
    • Pensioen­overzichten
  • Facturen en betalingen

    • Facturen
    • Creditnota's
    • Betaal­verzoeken
    • Inkoop­orders
    • Kwitanties
  • Verzekering en gezondheid

    • Medische rapporten
    • Ziekte­verklaringen
    • Recepten
    • Reparatie­offertes
    • Schade­rapporten
  • Wonen

    • Huur­overeenkomsten
    • Huur­kwitanties
    • Energie­rekeningen
    • Adresbewijzen
    • Taxatie­rapporten
  • Onderwijs en werk

    • Diploma's
    • Cijferlijsten
    • Beroeps­certificaten
    • Arbeids­overeenkomsten
    • Referenties
  • Officiële documenten

    • Geboorte- en huwelijksakten
    • Verklaringen omtrent het gedrag
    • Uittreksels uit het handelsregister
    • Vergunningen
    • Rechterlijke uitspraken
  • Handel en transport

    • Certificaten van oorsprong
    • Cognosse­menten
    • Pakbonnen
    • Keurings­certificaten
    • Douane­documenten
  • Voertuigen

    • Kenteken­bewijzen
    • Keurings­rapporten
    • Onderhouds­boekjes
    • Kilometerstand­verklaringen
    • Koop­overeenkomsten

Paspoorten en identiteitskaarten staan niet in de lijst. Zij hebben eigen beveiligingskenmerken en, in de Europese Unie, een elektronische chip die kan worden geverifieerd.

Werking van een stempel

Een DKDS-stempel is een QR-code die op een document is gedrukt. De stempel bevat de kerngegevens van het document, de domeinnaam van de uitgever en een digitale handtekening over beide. De publieke sleutel die nodig is om de handtekening te controleren, staat in de DNS-records van de uitgever, op een vergelijkbare manier als DKIM voor e-mail, zodat iedereen een stempel kan verifiëren zonder account en zonder tussenpersoon.

Uitgever
northwind.example
bezit de privésleutel
DNS
k2026._dkds.northwind.example
v=DKDS1; k=ed25519; p=6kps…0iw=
Factuur
Verifi­catie
northwind.example, 7 velden
Hand­tekening geldig
  1. 1De uitgever publiceert een publieke sleutel als TXT-record in de DNS van zijn domein. Dit gebeurt eenmalig, en opnieuw wanneer de sleutel wordt vervangen.
  2. 2Voor elk document ondertekent de uitgever de kerngegevens met de bijbehorende privésleutel en drukt hij ze, samen met de handtekening, als QR-code op het document.
  3. 3Een verificatie­programma scant de QR-code en leest de gegevens, de handtekening en de domeinnaam van de uitgever.
  4. 4Het verificatie­programma haalt de publieke sleutel op uit de DNS van dat domein en controleert de handtekening ermee.

Een stap selecteren speelt de animatie vanaf dat punt af.

Een document verifiëren

Een verificatie­programma toont het domein dat de stempel heeft ondertekend en de gegevens die de stempel bevat. De lezer vergelijkt deze gegevens vervolgens met die op het document. Een verschil tussen beide wijst erop dat het document na uitgifte is gewijzigd.

Document zoals ontvangen
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
Uitvoer van het verificatie­programma
Verifi­catie
Ondertekend door
northwind.example
30 sep 2026, 09:00 UTC. De handtekening is geldig.
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

In dit voorbeeld is de handtekening geldig, wat aantoont dat de stempel door northwind.example is uitgegeven. Het rekeningnummer in de stempel verschilt van het rekeningnummer op de factuur, wat aantoont dat de factuur na uitgifte is gewijzigd.

De getoonde stempel is een geldige DKDS-stempel. Omdat northwind.example een gereserveerde domeinnaam is, vindt een verificatie­programma de sleutel ervan niet.

Een stempel uitgegeven door dkds.org

Deze stempel is op 10 oktober 2026 ondertekend met de sleutel die dkds.org publiceert onder k2026._dkds.dkds.org. Een verificatie­programma meldt een geldige handtekening van dkds.org en toont de velden die de stempel bevat. Een telefoon kan de stempel van het scherm lezen; op een computer kan de tekst ervan worden gekopieerd en in het verificatie­programma worden geplakt.

Verifi­catie openen(scan.dkds.org)
Tekst van de stempel 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

Wat een stempel vaststelt

Een geldige stempel stelt vast

  • Dat de stempel is ondertekend met een sleutel die de houder van het domein publiceert.
  • Dat de gegevens in de stempel sinds de ondertekening niet zijn gewijzigd.
  • Het tijdstip waarop de stempel is ondertekend.

Een geldige stempel stelt niet vast

  • Dat de gegevens waar zijn. Een stempel stelt vast wie ze heeft verklaard, niet of ze juist zijn.
  • Dat het gedrukte document overeenkomt met de stempel. Die vergelijking maakt de lezer.
  • Vertrouwelijkheid. De inhoud van een stempel kan worden gelezen door iedereen die de stempel scant.

Implementaties

DKDS is vastgelegd in een open specificatie, met testvectoren om de juistheid van een implementatie te controleren. Iedereen mag het protocol implementeren, zonder toestemming en zonder kosten.

De referentie-implementatie, dkds.js, is te gebruiken als softwarebibliotheek, als opdrachtregelprogramma of als lokale HTTP-dienst, waarmee software in andere programmeertalen stempels kan maken en verifiëren. Een verificatie­programma in de browser staat op scan.dkds.org; documenten worden op het apparaat gecontro­leerd en niet verzonden.