2d-doc, using digital signature to protect physical documents

2d-doc for serme invoice

Today, I’m going to discuss a bit about a technology found few weeks ago, in order to present it to non-french people. It represents a technique that will be intensively used to assess the authenticity of physical documents produced by different service providers, and thus protect from fake documents. There is an hight interest on the enterprise processes and administrative systems, where different institutions request papers from other entities to evaluate eligibility to social aid, where private companies needs proof of identity and residence, etc.

The solution proposes to apply existing digital signature, based on a public key infrastructure, to calculate signatures on physical documents. The originality is to carry the digital information in a physical support through two dimensional barcode (following datamatrix specifications). As of today, the official web-site proposes several examples to understand how one can retrieve information. But for sake of example, I’ve taken an existing qrcode from one of my SFR (internet provider) invoice and extract the content hereafter.


2d-doc for serme invoice

{jcomments on}


If one use command to extract content, he can retrieves the original information as well as the digital signature.

$ dmtxread sfr-serme.png  | xxd
0000000: 4443 3031 4652 3031 5346 5230 3132 3442  DC01FR01SFR0124B
0000010: 3132 3443 3031 3236 4652 3234 3036 3136  124C0126FR240616
0000020: 3031 304d 2f53 4552 4d45 2f47 4142 5249  010M/SERME/GABRI
0000030: 454c 1d32 3235 3520 4156 454e 5545 2043  EL.2255 AVENUE C
0000040: 414e 4e45 531d 3235 414e 5449 4245 531d  ANNES.25ANTIBES.
0000050: 3138 3835 3934 3533 3632 371d e7d6 1f9a  18859453627.....
0000060: 5d9d d637 b66b 6700 9bc7 182c 89a8 85d6  ]..7.kg....,....
0000070: 4d3e 204c f3cc 56b6 fb0b 8f26 ffd5 9104  M> L..V....&....
0000080: 4ef3 e8aa 4936 c7fe 6766 c132 13be c96c  N...I6..gf.2...l
0000090: e8e7 2119 f0e8 2fd0 64e8 6771            ..!.../.d.gq

To retrieve the field, you have to follow 2d-doc specification, and obtain first the header description:

DC01 //it's 2d-doc, version 01.
FR01 //certificate authority
SFR0 //certificat identifier (from SFR)
124B //number of day since 2000
124C //date of signature (number of day since 2000)
01   //document code. In this case, it's a proof of domicile obtained through an invoice ({energy, phone, water, internet} provider)

Then, you obtain the actual information for a proof of domicile:

26 FR //country identifier
24 06160 //postal code
10 M/SERME/GABRIEL //first line of an address spec
22 55 AVENUE CANNES //fourth line of an address spec
25 ANTIBES //town of the destination
18 859453627 //facture number

And then, the remaining is the digital proof calculated with the private key of the certificate identifier, that anyone can verify with the public key.

If you want to invest more time in this technology, you can find more details on:

  • the official web-site http://www.2d-doc.com/
  • the French gouvernment web-site http://www.ants.interieur.gouv.fr/ants/2D-doc.html.
  • a service web for document verification: http://www.icheckit4u.com
  • the company proposing the technology: http://www.ariadnext.com/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *