13.07.2013 Views

Etude des Systèmes d'Horodatage* - Université de la Polynésie ...

Etude des Systèmes d'Horodatage* - Université de la Polynésie ...

Etude des Systèmes d'Horodatage* - Université de la Polynésie ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> <strong>Systèmes</strong> d’Horodatage *<br />

Kaouther Blibech* — Alban Gabillon* — Alexis Bonnecaze **<br />

* LIUPPA/CSYSEC, université <strong>de</strong> Pau, IUT <strong>de</strong> Mont <strong>de</strong> Marsan<br />

371 rue du ruisseau, BP 201<br />

40004 Mont <strong>de</strong> Marsan CEDEX<br />

k.blibech@etud.univ-pau.fr, gabillon@univ-pau.fr<br />

** Laboratoire Eurecom-CNRS<br />

2229 route <strong><strong>de</strong>s</strong> cretes, BP 193<br />

06904 Sophia Antipolis CEDEX<br />

Alexis.Bonnecaze@eurecom.fr<br />

RÉSUMÉ. Cet article représente une synthèse <strong><strong>de</strong>s</strong> résultats <strong>de</strong> <strong>la</strong> communauté scientifique dans<br />

le domaine <strong>de</strong> l’horodatage électronique. L’horodatage <strong>de</strong> documents électroniques est une<br />

technique cryptographique permettant <strong>de</strong> prouver qu’un document a été créé à une certaine<br />

date et qu’il n’a pas été modifié <strong>de</strong>puis cette date. Le développement <strong>de</strong> systèmes<br />

d'horodatage sûrs représente un enjeu important pour nos sociétés qui font <strong>de</strong> plus en plus<br />

appel aux nouvelles technologies <strong>de</strong> l’information et <strong><strong>de</strong>s</strong> communications. Dans cet article,<br />

nous c<strong>la</strong>ssifions et étudions les différents schémas d’horodatage existants et présentons<br />

certains systèmes effectivement imp<strong>la</strong>ntés. Nous nous intéressons particulièrement aux<br />

contraintes à respecter lors <strong>de</strong> <strong>la</strong> mise en p<strong>la</strong>ce d’un système d’horodatage sûr.<br />

ABSTRACT. This paper is a survey of the state of the art in electronic time-stamping. Timestamping<br />

of electronic documents is a cryptographic technique which is used to prove that a<br />

document was created at a certain date and that it has not been modified since then. The<br />

<strong>de</strong>velopment of secure time-stamping systems represents a significant challenge for our<br />

societies which are increasingly using new communication and information technologies. In<br />

this paper, we c<strong>la</strong>ssify and study the various existing time-stamping schemes and present<br />

some implemented systems. We particu<strong>la</strong>rly focus on the constraints which are to be satisfied<br />

when <strong>de</strong>veloping a secure time-stamping system.<br />

MOTS-CLÉS : Horodatage, confiance, système centralisé, système distribué, schéma <strong>de</strong> liaison,<br />

arbre binaire, accumu<strong>la</strong>teurs.<br />

KEYWORDS: Time stamping, trust, Centralized, distributed, linking scheme, binary tree,<br />

accumu<strong>la</strong>tors.<br />

Technique et science informatiques. Volume X – n° X/2005, pages 1 à X


2 Technique et science informatiques. Volume X – n° X/2005<br />

1. Introduction<br />

Tout comme il est parfois nécessaire <strong>de</strong> dater un document papier, il peut aussi<br />

être nécessaire <strong>de</strong> dater un document numérique. Toutefois, ajouter une date au<br />

début ou à <strong>la</strong> fin d’un document électronique à l’ai<strong>de</strong> d’un simple logiciel <strong>de</strong><br />

traitement <strong>de</strong> texte ne permet pas <strong>de</strong> dater <strong>de</strong> façon fiable le document tant il est aisé<br />

<strong>de</strong> supprimer ou modifier cette date.<br />

Dans le cas d’un document manuscrit daté, <strong>la</strong> fiabilité <strong>de</strong> <strong>la</strong> date provient <strong><strong>de</strong>s</strong><br />

propriétés du support physique utilisé (papier) et <strong>de</strong> <strong>la</strong> confiance accordée à une<br />

autorité (notaire, administration …). L’horodatage électronique désigne une<br />

technique cryptographique permettant d’apposer <strong>de</strong> façon fiable une date à un<br />

document électronique.<br />

Horodater un document électronique permet <strong>de</strong> certifier que ce document a été<br />

créé à une certaine date et qu’il n’a pas été modifié <strong>de</strong>puis <strong>la</strong> date <strong>de</strong> sa création.<br />

Tout protocole d’horodatage existant met en jeu une autorité tierce (souvent appelée<br />

notaire électronique) en charge <strong>de</strong> dater les documents électroniques. Typiquement,<br />

si Alice a besoin <strong>de</strong> faire dater un document alors elle doit procé<strong>de</strong>r <strong>de</strong> <strong>la</strong> façon<br />

suivante :<br />

1. A l’ai<strong>de</strong> d’une fonction <strong>de</strong> hachage sans collision 1 et à sens unique 2 , Alice<br />

calcule une empreinte d du document original à dater x.<br />

2. Alice envoie l’empreinte d au notaire électronique. Envoyer l’empreinte d<br />

plutôt que le document x offre <strong>de</strong>ux avantages :<br />

- La confi<strong>de</strong>ntialité du document x est préservée.<br />

- La ressource réseau est ménagée dans <strong>la</strong> mesure où une empreinte est<br />

toujours petite (quelques octets) et <strong>de</strong> taille fixe (pour une fonction <strong>de</strong> hachage<br />

donnée).<br />

3. Le notaire renvoie à Alice un certificat d’horodatage Tx qui a été construit à<br />

l’ai<strong>de</strong> d’un protocole d’horodatage particulier. Ce certificat d’horodatage atteste que<br />

le document x a été créé à une certaine date.<br />

4. Alice peut présenter x et Tx à un vérificateur quelconque qui aurait besoin<br />

<strong>de</strong> savoir quand a été créé le document x.<br />

5. Afin <strong>de</strong> s’assurer que le document x a bien été créé à <strong>la</strong> date contenue dans<br />

le certificat et que le document n’a pas été modifié <strong>de</strong>puis cette date, le vérificateur<br />

recalcule d et utilise le protocole <strong>de</strong> vérification qui est associé au protocole<br />

d’horodatage employé par le notaire.<br />

1. Une fonction <strong>de</strong> hachage h est sans collision s’il est impossible <strong>de</strong> trouver x et x’ tels que<br />

h(x)=h(x’)<br />

2. Une fonction <strong>de</strong> hachage h est à sens unique s’il est impossible <strong>de</strong> reconstruire x ou une<br />

portion <strong>de</strong> x à partir <strong>de</strong> d, avec h(x)=d


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 3<br />

Dans beaucoup <strong>de</strong> pays, l’horodatage n’est pas complètement reconnu sur le p<strong>la</strong>n<br />

juridique. Cependant il est vraisemb<strong>la</strong>ble qu’il aura bientôt acquis <strong>la</strong> même force<br />

légale que <strong>la</strong> signature électronique qui, elle-même, est en train d’acquérir <strong>la</strong> même<br />

force légale que <strong>la</strong> signature manuscrite. En 1996, <strong>la</strong> CNUDCI (Commission <strong><strong>de</strong>s</strong><br />

Nations Unies pour le Commerce International) a é<strong>la</strong>boré les premiers projets <strong>de</strong><br />

règles uniformes internationales sur les signatures électroniques. Sur l’échelle<br />

européenne, <strong>la</strong> directive 1999/93/CE du 13 décembre 1999 a introduit un cadre<br />

communautaire pour les signatures électroniques. La légis<strong>la</strong>tion française, en se<br />

basant sur cette directive, a adopté <strong>la</strong> loi 2000-230 le 13 mars 2000, assurant ainsi <strong>la</strong><br />

reconnaissance juridique <strong>de</strong> <strong>la</strong> signature électronique. Le décret 2001-272 du 30<br />

mars 2001 permet d’appuyer cette loi en définissant les conditions <strong>de</strong> présomption<br />

<strong>de</strong> fiabilité d’un procédé <strong>de</strong> signature électronique. Pour ce qui est <strong>de</strong> l’horodatage<br />

<strong><strong>de</strong>s</strong> documents électroniques, il n’existe pas <strong>de</strong> légis<strong>la</strong>tions explicites. Cependant,<br />

les légis<strong>la</strong>tions associées à <strong>la</strong> signature électronique, notamment <strong>la</strong> légis<strong>la</strong>tion<br />

française, y font allusion. Par exemple, l’article 6 du décret 2001-272 exige, sans<br />

donner plus <strong>de</strong> détails, <strong>la</strong> détermination précise <strong>de</strong> <strong>la</strong> date et <strong>de</strong> l’heure <strong>de</strong> délivrance<br />

et <strong>de</strong> révocation d’un certificat électronique.<br />

Dans ce contexte mondial <strong>de</strong> légalisation <strong>de</strong> l’usage <strong><strong>de</strong>s</strong> signatures électroniques,<br />

l’horodatage n’a donc pas encore trouvé c<strong>la</strong>irement sa p<strong>la</strong>ce. Pourtant horodatage et<br />

signature électronique sont intimement liés. En effet, une signature électronique a<br />

une durée <strong>de</strong> vie limitée. Plus précisément, <strong>la</strong> clé privée utilisée pour signer a une<br />

durée <strong>de</strong> vie limitée puisque cette clé peut être révoquée ou compromise à tout<br />

instant. Afin <strong>de</strong> pouvoir garantir dans le temps l’intégrité d’une signature<br />

électronique, il <strong>de</strong>vient donc essentiel <strong>de</strong> pouvoir prouver qu’un document a bien été<br />

signé avant <strong>la</strong> date d’expiration <strong>de</strong> <strong>la</strong> validité <strong>de</strong> <strong>la</strong> clé privée utilisée. En théorie,<br />

l’horodatage apporte une solution à ce problème. L’horodatage permet <strong>de</strong> fournir <strong>la</strong><br />

preuve qu’un document a bien été signé à une date antérieure à <strong>la</strong> date <strong>de</strong> révocation<br />

ou <strong>de</strong> compromission <strong>de</strong> <strong>la</strong> clé privée. L’horodatage constitue ainsi un moyen<br />

permettant d’assurer dans le temps l’intégrité d’une signature électronique.<br />

Bien entendu, l’usage <strong>de</strong> l’horodatage ne se limite pas à étendre <strong>la</strong> durée <strong>de</strong> vie<br />

<strong><strong>de</strong>s</strong> signatures électroniques. L’horodatage est également utile dans <strong>de</strong> multiples<br />

autres domaines dès lors qu’il est nécessaire <strong>de</strong> dater et <strong>de</strong> garantir l’intégrité d’une<br />

information électronique. Ses applications sont multiples, dans le mon<strong>de</strong> <strong>de</strong><br />

l’archivage, du commerce, <strong>de</strong> <strong>la</strong> santé ou <strong>de</strong> <strong>la</strong> finance. Notons enfin que les<br />

administrations <strong>de</strong> certains pays européens commencent à adopter le mo<strong>de</strong><br />

électronique afin d’économiser les supports physiques (principalement le papier) et<br />

être plus efficaces. Ainsi, l’é<strong>la</strong>boration <strong>de</strong> systèmes d’horodatage fiables répond à un<br />

besoin sans cesse grandissant <strong>de</strong> nos sociétés.<br />

L’objectif <strong>de</strong> cet article est <strong>de</strong> faire une présentation <strong><strong>de</strong>s</strong> principaux protocoles<br />

d’horodatage existants ainsi que <strong><strong>de</strong>s</strong> protocoles <strong>de</strong> vérification qui leur sont associés.<br />

Nous verrons que certains protocoles requièrent d’avoir une très gran<strong>de</strong> confiance<br />

dans le notaire électronique alors que d’autres protocoles permettent <strong>de</strong> réduire ce<br />

besoin <strong>de</strong> confiance. Nous verrons également que certains protocoles <strong>de</strong> vérification


4 Technique et science informatiques. Volume X – n° X/2005<br />

n’impliquent pas le notaire électronique alors que d’autres exigent son intervention.<br />

Pour chaque protocole étudié, nous évaluerons les possibilités <strong>de</strong> frau<strong>de</strong>, que celle-ci<br />

soit commise par le notaire électronique ou par tout autre entité. Ces frau<strong><strong>de</strong>s</strong> peuvent<br />

être commises lors <strong>de</strong> <strong>la</strong> construction du cachet ou postérieurement à celle-ci. Dans<br />

le premier cas nous verrons que <strong>la</strong> frau<strong>de</strong> utilise généralement une faille dans le<br />

protocole d’horodatage. Dans le second cas, elle peut s’appuyer sur une faiblesse du<br />

protocole <strong>de</strong> vérification ou sur un problème d’origine cryptographique.<br />

L’article est organisé <strong>de</strong> <strong>la</strong> manière suivante. Nous présentons tout d’abord les<br />

moyens dont doit disposer une autorité d’horodatage afin <strong>de</strong> mener à bien sa tâche.<br />

Puis, nous proposons une c<strong>la</strong>ssification <strong><strong>de</strong>s</strong> systèmes d’horodatage en <strong>de</strong>ux c<strong>la</strong>sses :<br />

les systèmes centralisés et les systèmes distribués. La première c<strong>la</strong>sse peut être<br />

divisée en trois modèles : les modèles simples, les modèles liés et les modèles<br />

agrégés. Les quatre premières sections du présent article en présentent les variantes<br />

et les spécificités.<br />

La cinquième section permet d’introduire ce qui a été fait dans le cadre <strong>de</strong> <strong>la</strong><br />

standardisation <strong><strong>de</strong>s</strong> systèmes d’horodatage.<br />

Finalement, <strong>la</strong> <strong>de</strong>rnière section présentera quelques systèmes d’horodatage ayant<br />

été mis en œuvre ces <strong>de</strong>rnières années.<br />

2. Sources temporelles<br />

Intuitivement, un horodatage fiable nécessite l’intervention d’une autorité tierce<br />

et <strong>de</strong> confiance qui aura <strong>la</strong> charge d’apposer une information temporelle à un<br />

document électronique donné. Le but est d’établir <strong>la</strong> preuve que <strong>la</strong> création du<br />

document en question est antérieure à l’indication temporelle ajoutée par l’autorité,<br />

et <strong>de</strong> pouvoir assurer qu’il n’a pas été altéré ultérieurement. Le cachet d’horodatage<br />

permet d’obtenir cette preuve.<br />

La date et l’heure utilisées pour construire le cachet d’horodatage doivent être<br />

fiables. Il existe plusieurs standards temporels, le UTC (Coordinated Universal<br />

Time) étant le plus utilisé. Le BIPM (Bureau International <strong><strong>de</strong>s</strong> Poids et <strong><strong>de</strong>s</strong> Mesures)<br />

gère ce standard au niveau international. Ainsi, le temps est déterminé grâce au GPS<br />

(Global Positionning System), un ensemble <strong>de</strong> satellites permettant <strong>de</strong> fournir<br />

l’heure avec une précision d’une microsecon<strong>de</strong>. A un niveau inférieur, les horloges<br />

atomiques nationales sont gérées par les instituts <strong>de</strong> mesure nationaux, sous <strong>la</strong> tutelle<br />

du BIPM. Au troisième niveau <strong>de</strong> <strong>la</strong> hiérarchie, le niveau distribution est formé par<br />

<strong><strong>de</strong>s</strong> organismes fiables <strong>de</strong> distribution <strong>de</strong> temps. Ce sont les serveurs <strong>de</strong> temps. Une<br />

autorité d’horodatage <strong>de</strong>vra donc s’y connecter ou en faire partie.<br />

Au niveau protoco<strong>la</strong>ire, c’est le protocole STIME 3 qui est conseillé pour<br />

transmettre <strong>la</strong> date et l’heure entre les unités concernées <strong>de</strong> façon fiable. Ce<br />

3. Il n’existe pas encore <strong>de</strong> RFC pour ce protocole, il est toujours en cours d’étu<strong>de</strong> par l’IETF.


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 5<br />

protocole ajoute au protocole NTP (Network Time Protocol), normalisé par l’IETF<br />

dans le RFC 305, une couche <strong>de</strong> sécurité permettant d’authentifier mutuellement les<br />

acteurs <strong>de</strong> l’échange. La figure 1 résume ce schéma protoco<strong>la</strong>ire.<br />

Alice<br />

T<br />

S<br />

A<br />

STIME<br />

T<br />

M<br />

S<br />

STIME<br />

T<br />

M<br />

S<br />

GPS<br />

GPS<br />

Figure 1. Les sources <strong>de</strong> temps : TSA (Time Stamp Authority) désigne une autorité<br />

d’horodatage et TMS (Time Measurement System) désigne un système <strong>de</strong> mesure<br />

temporel <strong>de</strong> premier niveau (géré par le BIPM), <strong>de</strong> <strong>de</strong>uxième niveau (horloges<br />

atomiques nationales) ou <strong>de</strong> troisième niveau (simples serveurs <strong>de</strong> temps).Une<br />

autorité d’horodatage est alors reliée soit à un serveur <strong>de</strong> temps soit directement à<br />

une horloge atomique nationale.<br />

3. <strong>Systèmes</strong> d’horodatage simples<br />

Un système simple d’horodatage opère en <strong>de</strong>ux phases : <strong>la</strong> phase d’horodatage et<br />

<strong>la</strong> phase <strong>de</strong> vérification. Durant <strong>la</strong> première phase, le système opère <strong>de</strong> <strong>la</strong> façon<br />

suivante :<br />

– Alice émet une requête contenant le document x à horodater.<br />

– L’autorité construit un cachet d’horodatage et en conserve une copie.<br />

– L’autorité envoie à Alice le cachet d’horodatage.<br />

La phase <strong>de</strong> vérification n’entre en jeu que lorsque l’intégrité du document xn est<br />

remise en question par une tierce personne, que nous nommerons Bob. Dans ce cas,<br />

Bob récupère <strong>la</strong> copie dont dispose l’autorité et <strong>la</strong> compare à celle que lui a fourni<br />

Alice. Si elles sont i<strong>de</strong>ntiques, <strong>la</strong> preuve est faite que le document n’a pas été<br />

modifié <strong>de</strong>puis qu’il a été horodaté.<br />

D’un point <strong>de</strong> vue purement fonctionnel, cette métho<strong>de</strong> répond aux attentes <strong><strong>de</strong>s</strong><br />

clients. Cependant, elle n’intègre pas <strong>de</strong> mécanismes pouvant garantir sa pérennité,<br />

sa mise à l’échelle ou sa sécurité.<br />

En effet, un système d’horodatage doit présenter les propriétés suivantes :


6 Technique et science informatiques. Volume X – n° X/2005<br />

– Le système d’horodatage doit garantir <strong>la</strong> confi<strong>de</strong>ntialité <strong><strong>de</strong>s</strong> documents<br />

horodatés.<br />

– Les ressources réseaux consommées pour l’émission <strong><strong>de</strong>s</strong> requêtes ainsi que<br />

celles nécessaires pour le stockage <strong><strong>de</strong>s</strong> preuves d’horodatage doivent être gérées <strong>de</strong><br />

manière optimale.<br />

– Un jeton doit contenir toutes les informations nécessaires pour prouver <strong>la</strong><br />

datation du document ainsi que <strong>la</strong> validation du jeton. Un jeton doit donc pouvoir<br />

être prouvé et validé même en l’absence <strong>de</strong> l’autorité émettrice.<br />

Afin <strong>de</strong> satisfaire à ces contraintes, <strong>de</strong> nouveaux modèles d’horodatage ont été<br />

proposés dans un premier temps par Haber et Stornetta dans (Haber et al., 1991).<br />

Haber et Stornetta proposent d’utiliser <strong><strong>de</strong>s</strong> techniques cryptographiques. Ils<br />

emploient <strong><strong>de</strong>s</strong> algorithmes <strong>de</strong> hachage pour garantir <strong>la</strong> confi<strong>de</strong>ntialité <strong><strong>de</strong>s</strong> documents<br />

à horodater et <strong><strong>de</strong>s</strong> mécanismes <strong>de</strong> signature pour permettre l’authentification <strong>de</strong><br />

l’autorité. Leur schéma se décompose en trois étapes :<br />

– Au lieu d’émettre le document xn à horodater, Alice émet l’empreinte digitale4 yn associée au document. Ainsi, <strong>la</strong> confi<strong>de</strong>ntialité du document est préservée et <strong>la</strong><br />

ressource réseau est ménagée.<br />

– Ayant reçu l’empreinte yn, l’autorité y appose une date ainsi que certaines<br />

autres informations. Elle signe le tout, formant ainsi le jeton Sn :<br />

Sn = SigTSS Cn où Cn = ( n, tn, idn, yn ), avec :<br />

Sn : jeton final renvoyé au client ;<br />

SigTSS : signature <strong>de</strong> l’autorité ;<br />

Cn : information signée ;<br />

n : numéro associé à <strong>la</strong> requête, appelé numéro <strong>de</strong> séquence. Nous supposons que<br />

l’autorité les attribue <strong>de</strong> façon incrémentale ;<br />

tn : date apposée par l’autorité à <strong>la</strong> requête n ;<br />

idn : i<strong>de</strong>ntificateur associé au client. Il contient les données permettant <strong>de</strong> contacter<br />

le client émetteur <strong>de</strong> <strong>la</strong> requête ;<br />

yn : n ième empreinte à horodater.<br />

4. Une empreinte digitale est une chaîne binaire <strong>de</strong> taille fixe et limitée, calculée en utilisant<br />

une fonction <strong>de</strong> hachage à partir d’une autre chaîne binaire <strong>de</strong> longueur quelconque. Les<br />

fonctions <strong>de</strong> hachage utilisées aujourd’hui, notamment en cryptographie, se basent sur <strong><strong>de</strong>s</strong><br />

hypothèses mathématiques fortes <strong>de</strong> non réversibilité et <strong>de</strong> non collisions. En d’autres termes,<br />

disposant <strong>de</strong> l’empreinte digitale, il serait impossible <strong>de</strong> reconstruire <strong>la</strong> chaîne initiale<br />

correspondante. Par ailleurs, il serait aussi pratiquement infaisable <strong>de</strong> générer <strong>de</strong>ux chaînes<br />

initiales qui produiraient <strong>la</strong> même empreinte digitale.


– L’autorité envoie Sn à Alice qui se charge <strong>de</strong> sa conservation.<br />

<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 7<br />

Un tel schéma permet d’authentifier l’autorité d’horodatage et <strong>de</strong> <strong>la</strong> dégager <strong>de</strong><br />

<strong>la</strong> responsabilité <strong>de</strong> <strong>la</strong> conservation <strong><strong>de</strong>s</strong> jetons. Si ultérieurement Bob a besoin <strong>de</strong><br />

savoir quand a été créé le document xn, Alice lui fournira xn et Sn. Bob recalculera<br />

alors l’empreinte digitale <strong>de</strong> xn et, en récupérant le certificat associé à l’autorité<br />

d’horodatage, vérifiera qu’elle correspond bien à celle incluse dans Sn.<br />

Cependant, un tel schéma présente un certain nombre <strong>de</strong> points faibles qu’il<br />

convient <strong>de</strong> relever :<br />

– Le premier point concerne <strong>la</strong> nature du jeton. Une autorité malveil<strong>la</strong>nte ou<br />

simplement défail<strong>la</strong>nte peut construire <strong>de</strong> faux jetons en antidatant le document. Le<br />

jeton est alors reconnu vali<strong>de</strong> car correctement signé par l’autorité alors que <strong>la</strong> date<br />

apposée par l’autorité est erronée. La validité du jeton repose donc sur <strong>la</strong> confiance<br />

accordée à l’autorité. Or, dans un système d’horodatage idéal, on ne doit pas avoir<br />

besoin <strong>de</strong> faire confiance à l’autorité d’horodatage. Il existe <strong><strong>de</strong>s</strong> solutions<br />

re<strong>la</strong>tivement efficaces pour répondre à ce genre <strong>de</strong> problème. On en distingue trois<br />

catégories : les systèmes centralisés qui utilisent <strong><strong>de</strong>s</strong> protocoles <strong>de</strong> liaisons simples,<br />

les solutions liées agrégées, et les systèmes distribués. Plusieurs variantes en seront<br />

présentées dans les sections suivantes.<br />

– Le <strong>de</strong>uxième point concerne l’utilisation <strong><strong>de</strong>s</strong> signatures dont <strong>la</strong> durée <strong>de</strong> vie<br />

peut être re<strong>la</strong>tivement courte. Ce problème doit être pris en compte lors d’archivage<br />

à long terme <strong>de</strong> documents horodatés. Il faut éviter qu’une tierce personne ne puisse<br />

construire un faux jeton en utilisant <strong>la</strong> clé obsolète <strong>de</strong> l’autorité. Faire stocker tous<br />

les jetons par l’autorité peut constituer une solution. Cette solution <strong>de</strong>man<strong>de</strong> <strong>de</strong> faire<br />

confiance à l’autorité pour s’assurer <strong>de</strong> <strong>la</strong> validité d’un jeton. De plus, si l’autorité<br />

disparaît alors aucune preuve ne peut plus être fournie. Cette solution ne répond<br />

donc pas à <strong>la</strong> <strong>de</strong>uxième et à <strong>la</strong> quatrième contrainte édictées au début <strong>de</strong> <strong>la</strong> présente<br />

section. La simple signature du jeton ne constitue donc pas une solution adéquate<br />

pour obtenir un système d’horodatage sécurisé.<br />

– Le troisième point concerne l’utilisation <strong><strong>de</strong>s</strong> algorithmes <strong>de</strong> hachage. Le<br />

problème, soulevé dans (Haber et al., 1991), est le suivant : les fonctions <strong>de</strong> hachage<br />

à sens unique n’étant pas injectives, il faut s’assurer qu’elles possè<strong>de</strong>nt une propriété<br />

appelée résistance à <strong>la</strong> collision. Ce problème doit être pris en considération car <strong><strong>de</strong>s</strong><br />

jetons pourraient être remis en cause au sens juridique du terme, puisque l’unicité du<br />

document générateur ne pourrait être formellement prouvée. La longueur <strong><strong>de</strong>s</strong><br />

empreintes est un facteur important <strong>de</strong> <strong>la</strong> sécurité. Par exemple <strong><strong>de</strong>s</strong> fonctions <strong>de</strong>


8 Technique et science informatiques. Volume X – n° X/2005<br />

hachage à 64 bits sont trop petites pour survivre à une attaque <strong><strong>de</strong>s</strong> anniversaires 5 .<br />

Par contre une fonction à 160 bits comme SHA est bien plus robuste. Une autre<br />

solution consiste, pour un même document, à construire <strong>de</strong>ux jetons utilisant chacun<br />

<strong>de</strong>ux fonctions <strong>de</strong> hachage sûres. Par ailleurs, une politique <strong>de</strong> régénération<br />

périodique <strong>de</strong> jetons semble souhaitable.<br />

4. <strong>Systèmes</strong> liés<br />

Les premières solutions <strong>de</strong> ce type ont été présentées par Haber et Stornetta dans<br />

(Haber et al., 1991). Elles reposent sur le principe suivant : les jetons créés sont<br />

chronologiquement liés entre eux, formant une chaîne chronologique. Les preuves<br />

d’appartenance à <strong>la</strong> chaîne sont incluses dans les jetons, <strong>de</strong> façon à permettre <strong>la</strong><br />

reconstruction <strong>de</strong> <strong>la</strong> chaîne lors <strong>de</strong> <strong>la</strong> vérification. Ainsi, en modifiant, insérant ou<br />

supprimant un jeton, <strong>la</strong> chaîne est rompue, ce qui permet <strong>de</strong> détecter toute<br />

malveil<strong>la</strong>nce.<br />

De tels schémas reposent sur l’utilisation d’algorithmes <strong>de</strong> hachage au niveau <strong>de</strong><br />

l’autorité d’horodatage. Typiquement, ce<strong>la</strong> se passe <strong>de</strong> <strong>la</strong> façon suivante :<br />

– Alice émet <strong>la</strong> requête d’ordre n, dans le but d’horodater le document xn. Elle<br />

calcule alors l’empreinte digitale yn associée et l’envoie à l’autorité d’horodatage.<br />

– L’autorité calcule le jeton d’horodatage associé <strong>de</strong> <strong>la</strong> manière suivante :<br />

Sn = SigTSS Cn où Cn = ( n, tn, idn, yn, Ln ) et Ln = ( tn-1, idn-1, yn-1, H(Ln-1 )) avec :<br />

Sn : jeton renvoyé au client ;<br />

SigTSS : signature <strong>de</strong> l’autorité ;<br />

Cn : information signée ;<br />

n, n-1 : numéros <strong>de</strong> séquences associés aux requêtes ;<br />

tn, tn-1 : dates apposées par l’autorité respectivement aux requêtes n et n-1 ;<br />

idn, idn-1 : i<strong>de</strong>ntificateurs associés aux clients émetteurs <strong>de</strong> <strong>la</strong> n ième et <strong>de</strong> <strong>la</strong> n-1 ième<br />

requête ;<br />

yn, yn-1 : n ième et n-1 ième empreintes à horodater ;<br />

5. Cette attaque est basée sur <strong><strong>de</strong>s</strong> calculs <strong>de</strong> probabilité. Elle repose sur le paradoxe <strong>de</strong> <strong>la</strong> date<br />

d’anniversaire qui stipule que dans une c<strong>la</strong>sse, <strong>la</strong> probabilité qu'un élève soit né tel jour est<br />

faible, mais <strong>la</strong> probabilité que <strong>de</strong>ux élèves aient <strong>la</strong> même date <strong>de</strong> naissance est plus élevée.<br />

Cette <strong>de</strong>rnière est en effet supérieure à 0.5 pour une c<strong>la</strong>sse <strong>de</strong> 23 élèves. On démontre<br />

alors que pour une empreinte <strong>de</strong> taille n, après 2 n/2 essais, on aura une chance sur <strong>de</strong>ux <strong>de</strong><br />

trouver <strong>de</strong>ux empreintes i<strong>de</strong>ntiques.


Ln, Ln-1 : éléments <strong>de</strong> chaînage ;<br />

H(x) : empreinte digitale associée à x.<br />

<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 9<br />

En d’autres termes, en plus <strong><strong>de</strong>s</strong> informations usuelles associées à un jeton<br />

d’horodatage, l’autorité rajoute un élément <strong>de</strong> chaînage. Cet élément a pour rôle <strong>de</strong><br />

lier le certificat courant au certificat précé<strong>de</strong>mment délivré par l’autorité.<br />

– Bill émet <strong>la</strong> requête d’ordre n+1, dans le but d’horodater le document xn+1. Il<br />

calcule alors l’empreinte digitale yn+1 associée et l’envoie à l’autorité d’horodatage.<br />

– L’autorité renvoie à Alice le numéro d’i<strong>de</strong>ntification signé associé à <strong>la</strong><br />

<strong>de</strong>rnière requête (celle <strong>de</strong> Bill), et renvoie ensuite à Bill le jeton Sn+1 associé. Le<br />

jeton final dont dispose Alice est alors <strong>de</strong> <strong>la</strong> forme (Sn, SigTSS idn+1).<br />

Lors d’une vérification ultérieure, et afin <strong>de</strong> s’assurer que l’autorité ne s’est pas<br />

entendue avec Alice pour produire un faux jeton, Bob contacte Bill grâce au numéro<br />

d’i<strong>de</strong>ntification inclus dans le jeton final. Ayant récupéré le jeton <strong>de</strong> Bill (Sn+1,<br />

SigTSS idn+2), Bob peut vérifier que l’information <strong>de</strong> chaînage qui y figure fait<br />

référence au jeton d’Alice. Parallèlement, Bob contacte le client d’i<strong>de</strong>ntificateur idn-1<br />

afin <strong>de</strong> vérifier <strong>la</strong> validité <strong>de</strong> l’information <strong>de</strong> chaînage présente dans le jeton<br />

d’Alice. Pour une sécurité accrue, Bob peut ne pas se limiter aux jetons adjacents à<br />

celui d’Alice dans <strong>la</strong> séquence chaînée, réalisant ainsi une série <strong>de</strong> vérifications<br />

récursives, pouvant amener à <strong>la</strong> reconstruction <strong>de</strong> toute <strong>la</strong> séquence en question.<br />

Dans un tel schéma, <strong>de</strong>ux cas <strong>de</strong> figure peuvent se présenter : soit l’autorité ne<br />

conserve aucune information soit elle conserve une copie <strong>de</strong> toute <strong>la</strong> chaîne. Le<br />

premier cas <strong>de</strong> figure est impossible dans <strong>la</strong> pratique puisqu’il suffirait qu’un client<br />

égare son jeton ou soit simplement injoignable pour compromettre <strong>la</strong> phase <strong>de</strong><br />

vérification. L’autorité doit donc conserver une copie <strong>de</strong> toute <strong>la</strong> chaîne. La phase <strong>de</strong><br />

vérification requière alors l’intervention <strong>de</strong> l’autorité d’horodatage, ce qui est un<br />

inconvénient.<br />

Dans un tel schéma, produire un faux jeton (en général un jeton antidaté)<br />

nécessite que l’autorité d’horodatage soit compromise :<br />

– Si <strong>la</strong> fréquence <strong>de</strong> réception <strong><strong>de</strong>s</strong> requêtes est faible, l’autorité peut antidater un<br />

jeton puisqu’elle dispose d’un intervalle <strong>de</strong> temps, borné à gauche par <strong>la</strong> date du<br />

<strong>de</strong>rnier jeton généré. Elle ne pourra cependant pas remonter au-<strong>de</strong>là sans que ce<strong>la</strong> se<br />

répercute sur <strong>la</strong> chaîne temporelle.<br />

– Si <strong>la</strong> fréquence <strong>de</strong> réception <strong><strong>de</strong>s</strong> requêtes est élevée, le seul moyen <strong>de</strong> créer un<br />

faux jeton est <strong>de</strong> créer une fausse séquence temporelle. Il faut en effet modifier les<br />

jetons adjacents au faux jeton intrus. Ceci ne peut se faire sans <strong>la</strong> complicité <strong>de</strong><br />

certains clients. Considérons le cas d’une intrusion <strong>de</strong> jeton entre le jeton d’Alice et<br />

celui <strong>de</strong> Bill (Figure 2) :<br />

- Au niveau du jeton d’Alice, l’autorité aura à modifier l’information qui<br />

permet <strong>de</strong> lier ce <strong>de</strong>rnier à celui <strong>de</strong> Bill. En d’autres termes, l’autorité <strong>de</strong>vra modifier<br />

l’i<strong>de</strong>ntificateur associé à <strong>la</strong> requête suivante (qui fait actuellement référence à Bill),<br />

ou attribuer cet i<strong>de</strong>ntificateur au jeton à insérer.


10 Technique et science informatiques. Volume X – n° X/2005<br />

Figure 2. Intrusion dans un système lié<br />

Jetons avant compromission :<br />

Alice(id n) Bill(id n+1) Eve(id n+2) …<br />

(Sn, SigTSS idn+1) (Sn+1, SigTSS id n+2) (Sn+2, SigTSS id n+3)<br />

Sn= SigTSS Cn Sn+1= SigTSS Cn+1 Sn+2= SigTSS Cn+2 Cn=(n, tn, idn, yn, Ln) Cn+1=(n+1, tn+1, idn+1, y n+1, Ln +1) Cn+2=(n+2, tn+2, idn+2, yn+2, Ln+2) Ln=(tn-1, idn-1, yn-1, H(Ln-1)) Ln+1=(tn, idn, yn, H(Ln)) Ln+2=(tn+1, idn+1, yn+1, H(Ln+1)) Jetons après intrusion du jeton i :<br />

Alice( idn)<br />

Bill(idn+1) Eve(idn+2) …<br />

(Sn, SigTSS idi) (Sn+1, SigTSS idn+2) (Sn+2, SigTSS idn+3) S n= SigTSS Cn S n+1= SS n+1= SigTSS Cn+1 S n+2= SigTSS Cn+2<br />

C<br />

, yn+1, L<br />

Ln=(tn-1, idn-1, yn-1, H(Ln-1)) Ln+1’=(ti, idi, yi, H(Li)) Ln+2=(tn+1, idn+1, y<br />

n=(n, tn, idn, yn, Ln) Cn+1=(n+1, tn+1, idn+1 n+1’) Cn+2=(n+2, tn+2, idn+2, yn+2, Ln+2) n+1, H(Ln+1)) Jeton intrus i<br />

Chaîne intruse<br />

Chaîne initiale<br />

Robert(idn+2) …<br />

Intrusion détectée<br />

car<br />

Ln+1 a été modifié<br />

(Sn+2, SigTSS idn+3) Sn+2=<br />

SigTSS Cn+2 Cn+2=(n+2, tn+2, idn+ 2, yn+2, Ln+2) Ln+2=(tn+1, idn+1, yn+1, H(Ln+1’)) - Au niveau du jeton <strong>de</strong> Bill, l’information qui permet <strong>de</strong> le lier au jeton<br />

précé<strong>de</strong>nt (celui d’Alice avant compromission) est l’information <strong>de</strong> chaînage.<br />

L’empreinte <strong>de</strong> cette information est présente à son tour dans le jeton suivant. Ainsi,<br />

à moins <strong>de</strong> trouver une collision pour l’algorithme <strong>de</strong> hachage, il n’est pas possible<br />

<strong>de</strong> modifier uniquement l’information <strong>de</strong> chaînage. Il serait alors nécessaire <strong>de</strong><br />

modifier toute <strong>la</strong> chaîne à partir du jeton intrus. La modification étant impossible, le


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 11<br />

seul moyen d’agir serait alors <strong>de</strong> générer une fausse chaîne <strong>de</strong> jetons, assez longue<br />

cependant pour duper un vérificateur même s’il s’acharne à remonter toute <strong>la</strong><br />

séquence. Générer une telle chaîne serait possible en créant <strong>de</strong> faux clients par<br />

exemple.<br />

Il existe néanmoins une métho<strong>de</strong> qui permet d’empêcher <strong>la</strong> falsification <strong>de</strong> <strong>la</strong><br />

chaîne temporelle. Le principe <strong>de</strong> cette métho<strong>de</strong> consiste à publier périodiquement<br />

un jeton d’horodatage ou l’empreinte digitale associée à plusieurs d’entre eux sur un<br />

support non modifiable et aisément consultable par un grand nombre <strong>de</strong> personnes.<br />

L’exemple type d’un tel support est un journal <strong>de</strong> <strong>la</strong> presse écrite. Les valeurs<br />

publiées <strong>de</strong>viennent <strong>de</strong> facto infalsifiables et doivent être utilisées dans les<br />

procédures <strong>de</strong> vérification. Le principe <strong>de</strong> <strong>la</strong> publication est une solution qui permet<br />

donc d’éviter ou <strong>de</strong> rendre très difficile <strong>la</strong> production <strong>de</strong> fausses chaînes temporelles<br />

(<strong>la</strong> falsification <strong>de</strong> <strong>la</strong> chaîne <strong>de</strong>puis <strong>la</strong> <strong>de</strong>rnière valeur publiée et avant publication <strong>de</strong><br />

<strong>la</strong> prochaine valeur reste toutefois possible). Les coûts <strong>de</strong> publication pouvant être<br />

élevés, il convient donc <strong>de</strong> déterminer une fréquence <strong>de</strong> publication suffisante pour<br />

atteindre le niveau <strong>de</strong> sécurité requis.<br />

Pour augmenter <strong>la</strong> robustesse <strong><strong>de</strong>s</strong> systèmes liés, Haber et Stornetta (Haber et al.,<br />

1991) proposent un autre schéma <strong>de</strong> liaison. Dans ce schéma, un jeton est lié non<br />

plus à un prédécesseur, mais à k prédécesseurs <strong>de</strong> <strong>la</strong> façon suivante :<br />

Sn = SigTSS Cn où Cn = (n, tn, idn, yn, Ln) et Ln = [(tn-k, idn-k, yn-k, H(Ln-k)), …, (tn-1,<br />

idn-1, yn-1, H(Ln-1))], avec:<br />

Sn : jeton renvoyé au client ;<br />

SigTSS : signature <strong>de</strong> l’autorité ;<br />

Cn : information signée ;<br />

n-k,…, n : numéros <strong>de</strong> séquences associés aux requêtes ;<br />

tn-k,…, tn : dates apposées par l’autorité aux requêtes n-k à n ;<br />

idn-k,…, idn : i<strong>de</strong>ntificateurs associés aux clients émetteurs <strong><strong>de</strong>s</strong> requêtes n-k à n ;<br />

yn-k,…, yn : n-k ième à n ième empreintes à horodater ;<br />

Ln-k,…, Ln : éléments <strong>de</strong> chaînage ;<br />

H(x) : empreinte digitale associée à x.<br />

Le jeton final est <strong>de</strong> <strong>la</strong> forme (Sn, SigTSS idn+1,…, SigTSS idn+k), où idn+1,…, idn+k<br />

sont les i<strong>de</strong>ntificateurs associés aux k requêtes ultérieures.<br />

Un tel protocole permet d’avoir 2k jetons directement adjacents à un jeton<br />

donné. Modifier un jeton reviendrait à modifier les k jetons prédécesseurs <strong>de</strong> façon à<br />

ce qu’ils fassent référence au jeton intrus, ainsi que les k jetons successeurs dont<br />

l’information <strong>de</strong> chaînage fait référence au jeton intrus. Rappelons que les


12 Technique et science informatiques. Volume X – n° X/2005<br />

empreintes <strong>de</strong> ces informations <strong>de</strong> chaînages seront présentes à leur tour dans les<br />

jetons qui seront délivrés ultérieurement. Ainsi, à moins <strong>de</strong> trouver k collisions pour<br />

l’algorithme <strong>de</strong> hachage, il faudra construire une fausse suite à <strong>la</strong> chaîne<br />

chronologique afin d’éviter qu’à partir du k+1 ième élément successeur au jeton intrus<br />

<strong>la</strong> supercherie ne soit découverte.<br />

D’autre part, augmenter le nombre <strong>de</strong> jetons adjacents permet <strong>de</strong> relâcher les<br />

contraintes sur l’autorité en matière <strong>de</strong> stockage. En effet, en supposant que<br />

l’autorité ne conserve pas les jetons, même si un client perdait son jeton, <strong>la</strong> chaîne<br />

ne serait pas rompue. Il faudrait que k jetons successifs soient perdus pour qu’elle le<br />

soit.<br />

Les systèmes d’horodatage liés apportent une solution satisfaisante au problème<br />

du besoin <strong>de</strong> confiance sans pour autant répondre à tous les critères <strong>de</strong>mandés. En<br />

effet, ils restent gourmands en ressources, au niveau du stockage, <strong>de</strong> <strong>la</strong> vérification<br />

et <strong><strong>de</strong>s</strong> communications pour <strong>la</strong> récupération <strong><strong>de</strong>s</strong> jetons. Ce sont d’ailleurs ces raisons<br />

qui font que ces modèles sont généralement utilisés dans le cadre d’un système à<br />

temps re<strong>la</strong>tif, permettant ainsi <strong>de</strong> vérifier <strong>la</strong> re<strong>la</strong>tion <strong>de</strong> précé<strong>de</strong>nce entre <strong>de</strong>ux<br />

documents horodatés. Le nombre d’étapes nécessaires à <strong>la</strong> vérification <strong>de</strong> <strong>la</strong><br />

précé<strong>de</strong>nce entre <strong>de</strong>ux jetons est alors linéairement dépendant du nombre <strong>de</strong> jetons<br />

entre eux. Ainsi, le coût <strong>de</strong> vérification peut être, dans certains cas, réduit. Pour<br />

remédier aux inconvénients <strong><strong>de</strong>s</strong> systèmes liés, d’autres systèmes fondés sur <strong>la</strong> notion<br />

d’agrégation ont vu le jour.<br />

5. <strong>Systèmes</strong> agrégés<br />

Le principe sur lequel reposent ces modèles est le suivant : on associe un jeton<br />

d’horodatage non seulement à une requête donnée, mais aussi à un ensemble <strong>de</strong><br />

requêtes formant ce qu’on appelle un tour. Un tour est défini par une durée<br />

temporelle préa<strong>la</strong>blement fixée, par un nombre bien déterminé <strong>de</strong> requêtes, ou<br />

encore par une combinaison <strong><strong>de</strong>s</strong> <strong>de</strong>ux. Les jetons associés aux tours sont conservés<br />

par l’autorité. Les jetons individuels associés aux empreintes digitales sont retournés<br />

aux clients. Chaque jeton individuel contient <strong><strong>de</strong>s</strong> informations permettant <strong>de</strong> prouver<br />

qu’il a participé à <strong>la</strong> création du jeton associé au tour.<br />

Plusieurs modèles d’agrégation ont été proposés. Nous en distinguerons <strong>de</strong>ux<br />

familles : ceux issus <strong>de</strong> <strong>la</strong> théorie <strong><strong>de</strong>s</strong> graphes et ceux basés sur <strong><strong>de</strong>s</strong> fonctions<br />

d’accumu<strong>la</strong>tion.<br />

5.1. <strong>Systèmes</strong> utilisant <strong><strong>de</strong>s</strong> graphes<br />

Ces métho<strong><strong>de</strong>s</strong> utilisent <strong><strong>de</strong>s</strong> fonctions <strong>de</strong> hachage afin <strong>de</strong> regrouper les jetons<br />

d’horodatage délivrés au cours d’un cycle. Parmi ces métho<strong><strong>de</strong>s</strong>, nous trouvons le<br />

modèle en arbre binaire. Cette métho<strong>de</strong> regroupe les requêtes dans une structure


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 13<br />

d’arbre <strong>de</strong> Merkle, initialement utilisée dans le cadre <strong>de</strong> <strong>la</strong> certification [Mer80,<br />

Mer89].<br />

Deux variantes <strong>de</strong> ce modèle ont été proposées dans (Benaloh et al., 1991)<br />

(Bayer et al., 1992). Elles sont décrites dans les figures 3 et 4. La première figure<br />

correspond à <strong>la</strong> variante présentée par Benaloh et <strong>de</strong> Mare dans (Benaloh et al.,<br />

1991) et <strong>la</strong> secon<strong>de</strong> correspond à celle présentée par Bayer, Haber et Stornetta dans<br />

(Bayer et al., 1992).<br />

Rr-1<br />

hr,5<br />

Rr<br />

hr,6<br />

hr,1 hr,2 hr,3 hr,4<br />

hr<br />

y<br />

r,1 yr,2 yr,3 yr,4 yr,5 yr,6 yr,7 Yr,8<br />

Figure 3. Modèle en arbre binaire<br />

Dans tous les cas, l’autorité, disposant <strong>de</strong> toutes les requêtes reçues durant un<br />

tour donné crée ce qu’on appelle un arbre binaire. Evi<strong>de</strong>mment, les requêtes<br />

contiennent non pas les documents à horodater mais plutôt les empreintes associées.<br />

Prenons le cas d’un tour r à huit requêtes dont les empreintes sont notées yr,1, …, yr,8.<br />

Ainsi, on aura :<br />

(Figure3) (Figure4)<br />

Rr = H(Rr-1, hr) Rr = H(hr,5, hr,6)<br />

hr = H(hr,5, hr,6) hr = Rr


14 Technique et science informatiques. Volume X – n° X/2005<br />

hr,6 = H(hr,3,hr,4) hr,6 = H(hr,3,hr,4)<br />

hr,5 = H(hr,1, hr,2) hr,5 = H(hr,1, hr,2)<br />

hr,1 = H(yr,1, yr,2) hr,1 = H(yr,1, yr,2)<br />

hr,2 = H(yr,3, yr,4) hr,2 = H(yr,3, yr,4)<br />

hr,3 = H(yr,5, yr,6) hr,3 = H(yr,5, yr,6)<br />

hr,4 = H(yr,7, yr,8) hr,4 = H(yr,7, yr,8)<br />

yr,i=yi yr,i=H(yi, Rr-1)<br />

Avec :<br />

Rr,Rr-1 : jetons associés aux tours r et r-1 ;<br />

H(x,y) : empreinte digitale associée à <strong>la</strong> concaténation <strong><strong>de</strong>s</strong> chaînes x et y ;<br />

yi : empreinte digitale associée à <strong>la</strong> requête d’ordre i.<br />

Rr<br />

hr,5 hr,6<br />

hr,1 hr,2 hr,3 hr,4<br />

yr,1 yr,2 yr,3 yr,4 yr,5 yr,6 yr,7 yr,8<br />

Rr-1<br />

Figure 4. Autre modèle en arbre binaire<br />

Le passage d’un niveau à un autre est fait <strong>de</strong> <strong>la</strong> façon suivante : les éléments<br />

étant traités <strong>de</strong>ux à <strong>de</strong>ux, l’empreinte digitale associée à <strong>la</strong> concaténation <strong>de</strong><br />

l’élément gauche et <strong>de</strong> l’élément droit est récupérée. Ainsi, hr,1 désigne l’empreinte<br />

digitale associée à <strong>la</strong> concaténation <strong>de</strong> yr,1 et yr,2.


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 15<br />

La différence entre les <strong>de</strong>ux variantes rési<strong>de</strong> dans <strong>la</strong> façon <strong>de</strong> lier le jeton associé<br />

au tour courant à celui du tour précé<strong>de</strong>nt. En effet, dans le premier cas <strong>de</strong> figure, le<br />

jeton du tour r est obtenu en hachant <strong>la</strong> racine <strong>de</strong> l’arbre, notée hr, avec le jeton Rr-1<br />

associé au tour r-1. Dans le second cas, ce sont les feuilles <strong>de</strong> l’arbre, en d’autres<br />

termes les yi qui sont hachées avec Rr-1.<br />

Une fois les jetons associés aux différents tours calculés, ils sont conservés par<br />

l’autorité d’horodatage. Toute information nécessaire pour vérifier qu’un document<br />

a été horodaté durant un tour donné est incluse dans le jeton individuel qui est<br />

retourné au client. Ainsi, pour <strong>la</strong> requête d’Alice, contenant l’empreinte yr,6, le jeton<br />

qui lui est retourné est <strong>de</strong> <strong>la</strong> forme :<br />

Rj = (r, (yr,5,G), (hr,4,D), (hr,5,G)) avec :<br />

Rj : jeton individuel retourné au jème client du tour r ;<br />

r : ordre du tour courant ;<br />

yr,i : empreinte digitale associée à <strong>la</strong> requête d’ordre i, modifiée comme décrit<br />

précé<strong>de</strong>mment dans le cas <strong>de</strong> l’utilisation <strong>de</strong> <strong>la</strong> <strong>de</strong>uxième métho<strong>de</strong> ;<br />

D,G : respectivement pour Droite et Gauche, désignant les sens <strong><strong>de</strong>s</strong> concaténations à<br />

réaliser.<br />

Si Bob veut vérifier ultérieurement le document d’Alice, ainsi que tout autre<br />

document inclus dans le tour en question, il <strong>de</strong>vra simplement évaluer les égalités<br />

suivantes respectivement dans le cas <strong>de</strong> l’utilisation <strong>de</strong> <strong>la</strong> première ou <strong>de</strong> <strong>la</strong> secon<strong>de</strong><br />

métho<strong>de</strong> :<br />

Rr = H( H(hr,5, H( H(yr,5, yr,6), hr,4)), Rr-1) (Figure3)<br />

et Rr = H( H(hr,5, H( H(yr,5, yr,6), hr,4))) (Figure4) avec :<br />

Rr,Rr-1 : jetons associés aux tours r et r-1<br />

H(x,y) : empreinte digitale associée à <strong>la</strong> concaténation <strong><strong>de</strong>s</strong> chaînes x et y<br />

hr,i : empreintes intermédiaires calculées comme décrit précé<strong>de</strong>mment<br />

yr,i : empreinte associée à <strong>la</strong> requête d’ordre i, modifiée comme décrit précé<strong>de</strong>mment<br />

dans le cas <strong>de</strong> l’utilisation <strong>de</strong> <strong>la</strong> <strong>de</strong>uxième métho<strong>de</strong>.<br />

L’avantage <strong>de</strong> <strong>la</strong> première métho<strong>de</strong> repose sur le fait que si l’on veut vérifier<br />

ultérieurement <strong>la</strong> dépendance entre les différents tours, on peut éviter le passage par<br />

les feuilles <strong>de</strong> l’arbre binaire. Cependant l’autorité doit alors stocker pour chaque


16 Technique et science informatiques. Volume X – n° X/2005<br />

tour <strong>de</strong>ux éléments différents : le jeton Rr ainsi que hr. Cette variante est <strong>la</strong> plus<br />

étudiée dans <strong>la</strong> littérature.<br />

La production <strong>de</strong> faux jetons est possible si l’autorité arrive à générer <strong>de</strong> faux<br />

arbres binaires. Le recours à <strong>la</strong> publication est alors, comme dans le cas du schéma<br />

<strong>de</strong> liaison linéaire, <strong>la</strong> solution <strong>la</strong> plus sûre. La publication systématique <strong>de</strong> tous les<br />

jetons <strong>de</strong> tours étant trop coûteuse, une publication périodique est mise en p<strong>la</strong>ce.<br />

Contrairement au schéma <strong>de</strong> liaison linéaire, il n’existe pas d’ordre<br />

chronologique <strong><strong>de</strong>s</strong> jetons à l’intérieur d’un tour. Si <strong>la</strong> publication <strong><strong>de</strong>s</strong> jetons <strong>de</strong> tour<br />

permet <strong>de</strong> prouver l’existence d’un ordre chronologique entre les tours, il n’existe<br />

aucun moyen pour vérifier l’ordre chronologique <strong><strong>de</strong>s</strong> requêtes à l’intérieur d’un tour<br />

donné. En effet, l’autorité ne peut pas prouver que les requêtes ont été traitées dans<br />

l’ordre <strong>de</strong> leur réception.<br />

La granu<strong>la</strong>rité dans un tel système est donc moins fine. Il est bien sur possible <strong>de</strong><br />

réduire <strong>la</strong> durée <strong><strong>de</strong>s</strong> tours mais ce<strong>la</strong> peut avoir pour conséquence un nombre trop<br />

faible <strong>de</strong> requêtes par tour et un coût <strong>de</strong> construction <strong>de</strong> jeton trop élevé. Ainsi, à<br />

moins <strong>de</strong> disposer d’un système assurant un nombre et une fréquence <strong>de</strong> réception<br />

<strong>de</strong> requêtes élevés, <strong>la</strong> précision temporelle d’un tel schéma n’est pas satisfaisante.<br />

Par <strong>la</strong> suite, plusieurs modèles agrégés ont été créés, tels que les schémas <strong>de</strong><br />

liaisons binaires (Buldas et al., 1998), ou <strong>la</strong> métho<strong>de</strong> <strong>de</strong> l’arbre binaire tissé (Buldas et<br />

al., 2000). Ces modèles, par ailleurs beaucoup plus complexes à imp<strong>la</strong>nter et à<br />

mettre en œuvre ont été conçus dans le but <strong>de</strong> minimiser le nombre d’étapes<br />

nécessaires à <strong>la</strong> vérification et <strong>de</strong> réduire <strong>la</strong> taille <strong><strong>de</strong>s</strong> jetons. Ils permettent ainsi <strong>de</strong><br />

combiner les avantages <strong><strong>de</strong>s</strong> systèmes linéaires simples et <strong><strong>de</strong>s</strong> systèmes agrégés.<br />

Dans un schéma <strong>de</strong> liaison binaire, l’algorithme <strong>de</strong> vérification i<strong>de</strong>ntifie le plus<br />

court chemin entre <strong>de</strong>ux jetons sélectionnés. Ainsi, par rapport à un schéma <strong>de</strong><br />

liaison linéaire, le nombre d’étapes nécessaires à <strong>la</strong> vérification est réduit, ainsi que<br />

le nombre <strong>de</strong> jetons sollicités. Dans un schéma <strong>de</strong> liaison linéaire le nombre <strong>de</strong><br />

jetons examinés durant <strong>la</strong> phase <strong>de</strong> vérification est linéairement dépendant <strong>de</strong> n, où n<br />

désigne l’ordre du jeton délivré dans <strong>la</strong> chaîne chronologique, alors que pour un<br />

schéma <strong>de</strong> liaison binaire le nombre <strong>de</strong> jetons examinés dépend <strong>de</strong> log n.<br />

Comparé à <strong>la</strong> métho<strong>de</strong> d’arbre binaire, un schéma <strong>de</strong> liaison binaire génère <strong><strong>de</strong>s</strong><br />

jetons d’horodatage plus longs. La métho<strong>de</strong> <strong>de</strong> l’arbre binaire tissé a alors été conçu<br />

en tant qu’amélioration du schéma <strong>de</strong> liaison binaire. Mais cette amélioration ne<br />

permet toujours pas d’atteindre <strong>la</strong> taille optimale <strong><strong>de</strong>s</strong> jetons générés par <strong>la</strong> métho<strong>de</strong><br />

<strong>de</strong> l’arbre binaire simple.<br />

Ainsi, <strong>de</strong> part leur efficacité re<strong>la</strong>tive et une réelle difficulté d’imp<strong>la</strong>ntation, ces<br />

nouveaux modèles ne sont pas très utilisés aujourd’hui.


5.2. <strong>Systèmes</strong> à accumu<strong>la</strong>teurs<br />

<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 17<br />

Les accumu<strong>la</strong>teurs ont été introduits par Benaloh et <strong>de</strong> Mare dans (Benaloh et al.,<br />

1993). Ces <strong>de</strong>rniers définissent les fonctions d’accumu<strong>la</strong>tion comme étant <strong><strong>de</strong>s</strong><br />

fonctions quasi-commutatives. Cette propriété permet <strong>de</strong> montrer facilement qu’un<br />

élément appartient à un ensemble donné. Dans le cas <strong>de</strong> l’horodatage, on veut<br />

prouver qu’un cachet appartient à un tour donné.<br />

Une fonction quasi commutative f : X×Y → X est définie pour tout x Є X et tout<br />

y1,y2 Є Y, par f(f(x,y1),y2) = f(f(x,y2),y1).<br />

L’addition, <strong>la</strong> multiplication, et l’exponentiation modulo n sont <strong><strong>de</strong>s</strong> exemples <strong>de</strong><br />

fonctions répondant à cette définition. Mais parmi ces fonctions, l’exponentiation<br />

modu<strong>la</strong>ire est <strong>la</strong> seule à présenter une caractéristique <strong>de</strong> non réversibilité. Elle est<br />

appelée fonction d’accumu<strong>la</strong>tion à sens unique. Benaloh et <strong>de</strong> Mare l’utilisent dans<br />

leur protocole d’horodatage décrit ci-<strong><strong>de</strong>s</strong>sous:<br />

– Alice émet <strong>la</strong> requête d’ordre j dans le tour courant, dans le but d’horodater le<br />

document xj. Elle calcule alors l’empreinte digitale yj associée et l’envoie à<br />

l’autorité d’horodatage.<br />

– L’autorité réceptionne les requêtes <strong><strong>de</strong>s</strong> clients jusqu’à <strong>la</strong> fin du tour courant.<br />

– L’autorité calcule le jeton d’horodatage associé <strong>de</strong> <strong>la</strong> manière suivante et le<br />

stocke :<br />

Rr = x Y mod n, avec :<br />

Rr : jeton associé au tour r ;<br />

x : valeur fixée au début d’un tour ;<br />

Y : produit <strong><strong>de</strong>s</strong> empreintes digitales. Y= y1*y2*...yn ;<br />

yi : empreinte digitale associée à <strong>la</strong> requête d’ordre i ;<br />

n : nombre d’empreintes traitées dans un tour donné.<br />

– Finalement, l’autorité calcule le jeton d’horodatage associé à <strong>la</strong> requête<br />

d’Alice <strong>de</strong> <strong>la</strong> manière suivante et le lui renvoie :<br />

Rj = x Yj mod n avec :<br />

Rj : jeton retourné au j ième client du tour r ;<br />

x : valeur fixée au début d’un tour ;


18 Technique et science informatiques. Volume X – n° X/2005<br />

Yj : produit <strong><strong>de</strong>s</strong> empreintes digitales d’un tour donné privé <strong>de</strong> <strong>la</strong> j ième empreinte.<br />

Yj=y1*y2*…yj-i*yj+1*…yn ;<br />

yi : empreinte digitale associée à <strong>la</strong> requête d’ordre i ;<br />

n : nombre d’empreintes traitées dans un tour donné.<br />

Ultérieurement, si Bob veut vérifier <strong>la</strong> validité du jeton d’Alice, il <strong>de</strong>vra opérer<br />

<strong>de</strong> <strong>la</strong> façon suivante :<br />

– Alice envoie à Bob le document en question xj ainsi que le jeton individuel Rj<br />

qui lui est associé.<br />

– L’autorité envoie à Bob le jeton Rr associé au tour r.<br />

– Bob calcule, à partir <strong>de</strong> xj l’empreinte digitale yj associée et teste l’égalité<br />

suivante :<br />

Rj y j=Rr, avec :<br />

Rj : jeton retourné au jème client du tour r<br />

Rr : jeton associé au tour r<br />

yj : empreinte digitale associée à <strong>la</strong> requête d’ordre j.<br />

L’utilisation <strong>de</strong> <strong>la</strong> fonction d’exponentiation modu<strong>la</strong>ire dans ce protocole pose<br />

un certains nombre <strong>de</strong> problèmes. En effet, le problème <strong>de</strong> trouver <strong><strong>de</strong>s</strong> racines<br />

modulo n <strong>de</strong> nombres quelconques doit être difficile. Il sera considéré comme tel si<br />

<strong>la</strong> factorisation <strong>de</strong> n n’est pas connue 6 (Massias, 2000). La connaissance <strong>de</strong> <strong>la</strong><br />

factorisation <strong>de</strong> n permet donc <strong>de</strong> générer <strong>de</strong> faux jetons.<br />

Par ailleurs, ce schéma utilisant une composée d’exponentiations modu<strong>la</strong>ires, le<br />

module n doit être choisi d’une manière appropriée afin <strong>de</strong> rendre difficile <strong>la</strong><br />

détermination <strong>de</strong> collisions, même aléatoirement. Dans (Benaloh et al., 1993), les<br />

auteurs proposent d’utiliser <strong><strong>de</strong>s</strong> entiers rigi<strong><strong>de</strong>s</strong> (rigid integers) qui se construisent à<br />

partir <strong>de</strong> nombre premiers p et q sûrs (safe primes). Généralement, on <strong>de</strong>man<strong>de</strong> aussi<br />

que p+1 et q+1 admettent chacun un grand diviseur premier.<br />

Un problème pratique se pose alors : à qui est confiée <strong>la</strong> charge <strong>de</strong> déterminer le<br />

module n ? Il existe <strong>de</strong>ux possibilités. La première est <strong>de</strong> faire confiance à l’autorité.<br />

Cette solution est <strong>la</strong> plus simple mais n’est pas satisfaisante. En effet, une <strong><strong>de</strong>s</strong><br />

propriétés d’un bon système d’horodatage est <strong>de</strong> limiter le besoin <strong>de</strong> confiance dans<br />

une quelconque partie. La <strong>de</strong>uxième métho<strong>de</strong> permet <strong>de</strong> répondre à cette contrainte.<br />

Elle consiste à générer le module d’une manière distribuée, c'est-à-dire en utilisant<br />

plusieurs parties (il existe <strong><strong>de</strong>s</strong> métho<strong><strong>de</strong>s</strong> distribuées <strong>de</strong> génération d’un module<br />

RSA). L’inconvénient <strong>de</strong> cette métho<strong>de</strong> est un coût plus important.<br />

6. La sécurité <strong>de</strong> RSA repose sur ce problème.


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 19<br />

Par ailleurs, l’exponentiation modu<strong>la</strong>ire est plus lente que le simple fait <strong>de</strong><br />

hacher un document. Les métho<strong><strong>de</strong>s</strong> basées sur le hachage semblent donc être mieux<br />

adaptées pour l’horodatage <strong><strong>de</strong>s</strong> documents électroniques.<br />

Il existe d’autres métho<strong><strong>de</strong>s</strong> basées sur les accumu<strong>la</strong>teurs tels que les<br />

accumu<strong>la</strong>teurs <strong>de</strong> Nyberg (Nyberg, 1996) ou celle se basant sur <strong>la</strong> métho<strong>de</strong> <strong><strong>de</strong>s</strong><br />

restes chinois (Massias, 2000). Aucune d’entre elles ne semble être adaptée à une<br />

utilisation dans le cadre <strong>de</strong> l’horodatage <strong><strong>de</strong>s</strong> documents électroniques (Massias,<br />

2000). En effet, pour être efficace, les accumu<strong>la</strong>teurs <strong>de</strong> Nyberg imposent d’utiliser<br />

<strong><strong>de</strong>s</strong> chaînes <strong>de</strong> taille importante appartenant aux documents à horodater. La métho<strong>de</strong><br />

<strong><strong>de</strong>s</strong> restes chinois est moins efficace en terme <strong>de</strong> coût opératoire que celle <strong><strong>de</strong>s</strong> arbres<br />

binaires.<br />

6. <strong>Systèmes</strong> distribués<br />

Jusqu’à présent nous nous sommes intéressé à <strong><strong>de</strong>s</strong> schémas appelés centralisés<br />

car ils ne font appel qu’à un seul serveur d’horodatage. Or un unique serveur est<br />

vulnérable. Il peut être victime d’une panne et/ou d’une attaque en déni <strong>de</strong> service.<br />

Les schémas distribués représentent une alternative intéressante que nous étudions<br />

dans cette section.<br />

Un schéma d’horodatage distribué est constitué <strong>de</strong> plusieurs serveurs<br />

d’horodatage appartenant généralement à <strong><strong>de</strong>s</strong> organismes et pays distincts. Il est<br />

donc plus robuste face à <strong><strong>de</strong>s</strong> catastrophes naturelles, <strong><strong>de</strong>s</strong> pannes matérielles ou <strong><strong>de</strong>s</strong><br />

attaques réseau. Il permet en outre <strong>de</strong> gérer un nombre plus important <strong>de</strong> requêtes à<br />

un moment donné. De plus, l’intégrité du service repose sur le comportement<br />

d’entités indépendantes. Celles-ci n’ont à priori aucune raison <strong>de</strong> s’associer dans une<br />

action malveil<strong>la</strong>nte.<br />

Haber et Stornetta (Haber et al., 1991) suggèrent d’utiliser <strong><strong>de</strong>s</strong> systèmes<br />

distribués pour l’horodatage <strong><strong>de</strong>s</strong> documents électroniques. Le principe est le suivant<br />

: il n’existe pas <strong>de</strong> notion d’autorité, l’ensemble <strong><strong>de</strong>s</strong> clients constituant le système<br />

d’horodatage. Ainsi, si Alice veut horodater un document xi, elle envoie l’empreinte<br />

yi associée à un nombre k <strong>de</strong> clients. Chacun <strong>de</strong> ces clients lui retourne alors ce<br />

qu’on appelle un fragment <strong>de</strong> jeton. L’ensemble <strong><strong>de</strong>s</strong> fragments constitue le jeton<br />

final. Ainsi le fragment Sj créé par le Bill, par exemple, est formé par l’empreinte<br />

digitale yi, le temps tj apposé par Bill, et l’i<strong>de</strong>ntificateur idj qui lui est associé, le tout<br />

signé pour l’authentifier. Le jeton final S a alors <strong>la</strong> forme suivante :<br />

S = ( (yi, idi) , (S1, …, Sk)), avec :<br />

S : jeton final associé à <strong>la</strong> requête d’ordre i ;<br />

yi : empreinte d’ordre i à horodater ;


20 Technique et science informatiques. Volume X – n° X/2005<br />

idi : i<strong>de</strong>ntificateur associé au client émetteur <strong>de</strong> <strong>la</strong> i ème requête ;<br />

S1,…,Sk : fragments <strong>de</strong> jetons retournés par les différents clients ;<br />

k : nombre <strong>de</strong> clients qui col<strong>la</strong>borent pour créer le jeton final.<br />

Dans un tel système il suffirait qu’Alice choisisse volontairement k clients<br />

corrompus et en association malveil<strong>la</strong>nte pour pouvoir produire un faux jeton<br />

d’horodatage. Afin d’éliminer ce risque, Haber et Stornetta proposent <strong>de</strong> choisir les<br />

k clients parmi les n possibles en se basant sur l’utilisation <strong>de</strong> générateurs pseudoaléatoires.<br />

De tels générateurs permettent, en prenant en paramètre ce qu’on appelle<br />

un germe, <strong>de</strong> générer une séquence qui peut être considérée comme aléatoire. Dans<br />

le cadre d’un système distribué d’horodatage, ils peuvent être utilisés <strong>de</strong> <strong>la</strong> façon<br />

suivante : l’empreinte digitale à horodater <strong>de</strong>vient le paramètre d’entrée du<br />

générateur en question. La sortie peut alors être interprétée comme un k-uplet<br />

d’i<strong>de</strong>ntificateurs <strong>de</strong> clients.<br />

En d’autres termes, si G est le générateur aléatoire utilisé, on aura :<br />

G(yi)= (id1, …, idk), avec :<br />

G : générateur pseudo aléatoire ;<br />

yi : empreinte digitale associée à <strong>la</strong> requête d’ordre i ;<br />

id1,…, idk : i<strong>de</strong>ntificateurs associés aux clients qui vont générer <strong><strong>de</strong>s</strong> fragments <strong>de</strong><br />

jeton pour <strong>la</strong> requête i ;<br />

k : nombre <strong>de</strong> clients qui col<strong>la</strong>borent pour créer le jeton final.<br />

Ainsi, le seul moyen <strong>de</strong> produire un faux jeton d’horodatage serait d’utiliser une<br />

empreinte digitale y telle que G(y) i<strong>de</strong>ntifie k clients corrompus qui coopéreraient<br />

pour produire le jeton final. La robustesse d’un tel système repose sur <strong>la</strong> difficulté<br />

d’obtenir une telle situation.<br />

Sur le p<strong>la</strong>n pratique cependant, concevoir un tel système implique un certain<br />

nombre <strong>de</strong> contraintes. En premier lieu, il faut disposer d’un répertoire public<br />

i<strong>de</strong>ntifiant les différents clients du système. Une solution à ce problème a d’ailleurs<br />

été proposée dans (Benaloh et al., 1993), se basant sur l’utilisation <strong><strong>de</strong>s</strong><br />

accumu<strong>la</strong>teurs. Il faut aussi prévoir le cas où <strong><strong>de</strong>s</strong> clients ne sont plus accessibles<br />

durant <strong>la</strong> phase d’horodatage ou encore durant <strong>la</strong> phase <strong>de</strong> vérification. Les clients<br />

constituant le système à un moment donné peuvent en effet ne plus en faire partie<br />

ultérieurement. Les clients doivent aussi disposer <strong>de</strong> sources temporelles fiables, ce<br />

qui est difficile à contrôler. Il faut pouvoir retrouver, à partir <strong><strong>de</strong>s</strong> informations<br />

temporelles reçues dans les différents fragments le temps absolu qui sera associé au<br />

jeton final, et qui constituera une preuve au sens juridique du terme. Il faut étudier <strong>la</strong><br />

vulnérabilité du système face à certaines attaques. Par exemple si l’un <strong><strong>de</strong>s</strong> clients est


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 21<br />

corrompu, il faut être en mesure <strong>de</strong> l’i<strong>de</strong>ntifier et l’éliminer. Il faut <strong>de</strong> plus résoudre<br />

le problème lié à l’utilisation et à <strong>la</strong> pérennité <strong><strong>de</strong>s</strong> signatures électroniques.<br />

Plusieurs modèles <strong>de</strong> systèmes distribués ont été conçus, faisant coopérer <strong><strong>de</strong>s</strong><br />

autorités d’horodatage. Chaque autorité utilise individuellement l’un <strong><strong>de</strong>s</strong> protocoles<br />

centralisés présentés précé<strong>de</strong>mment et coopère avec les autres pour créer <strong><strong>de</strong>s</strong> jetons<br />

fiables. Ainsi, dans (Benaloh et al., 1993), un modèle décentralisé se basant sur les<br />

schémas d’accumu<strong>la</strong>tion est proposé. Dans (Benaloh et al., 1991), c’est le concept<br />

<strong>de</strong> <strong>la</strong> diffusion qui est utilisé. Dans (Maniatis et al., 2001), ce sont les réseaux pair à<br />

pair (P2P) 7 qui sont utilisés.<br />

Notons cependant qu’aucun <strong>de</strong> ces modèles ne semble être assez abouti pour<br />

tirer avantage <strong>de</strong> toutes les possibilités qu’offrent les systèmes distribués, à <strong>la</strong> fois<br />

pour réduire le besoin <strong>de</strong> confiance et pour optimiser l’utilisation <strong><strong>de</strong>s</strong> ressources <strong>de</strong><br />

stockage et <strong>de</strong> communication.<br />

7. Standardisation<br />

L’IETF a publié en Août 2001 l’RFC 3161 re<strong>la</strong>tif à l’horodatage dans le cadre<br />

d’une infrastructure Internet à clef publique X.509.<br />

Le document édité par l’IETF décrit le format d’une requête envoyée à une<br />

autorité d’horodatage et celui <strong>de</strong> <strong>la</strong> réponse <strong>de</strong> cette même autorité. Il établit par<br />

ailleurs plusieurs recommandations afin <strong>de</strong> sécuriser le processus <strong>de</strong> génération <strong><strong>de</strong>s</strong><br />

cachets d’horodatage. On se propose dans cette partie <strong>de</strong> les résumer.<br />

En partant du fait qu’un protocole d’horodatage opère globalement comme suit :<br />

– Un client émet une requête TimeStampReq.<br />

– A <strong>la</strong> réception <strong>de</strong> <strong>la</strong> requête, l’autorité effectue certaines opérations afin <strong>de</strong><br />

générer <strong>la</strong> réponse associée, en d’autres termes un TimeStampResp.<br />

L’IETF décrète qu’une autorité d’horodatage est appelée à :<br />

– tester <strong>la</strong> validité <strong>de</strong> <strong>la</strong> requête et générer un jeton pour chaque requête vali<strong>de</strong><br />

reçue,<br />

– n’horodater que l’empreinte digitale associée à un document calculée à partir<br />

d’une fonction <strong>de</strong> hachage sûre dont l’i<strong>de</strong>ntificateur (OID) est inclus dans <strong>la</strong> requête.<br />

L’autorité peut refuser d’émettre un jeton et le signaler à l’émetteur par une erreur<br />

dans le cas où <strong>la</strong> fonction <strong>de</strong> hachage utilisée n’est pas assez robuste ou sûre,<br />

– vérifier <strong>la</strong> validité <strong>de</strong> l’i<strong>de</strong>ntificateur (OID) et <strong>la</strong> validité <strong>de</strong> l’empreinte reçue.<br />

La taille <strong>de</strong> cette <strong>de</strong>rnière doit correspondre à <strong>la</strong> fonction utilisée,<br />

– ne pas opérer d’autres opérations sur l’empreinte en question,<br />

7. Le P2P (peer to peer) est un modèle distribué <strong>de</strong> communications dans lequel chaque partie<br />

possè<strong>de</strong> les mêmes capacités et peut initier une session.


22 Technique et science informatiques. Volume X – n° X/2005<br />

– inclure un i<strong>de</strong>ntificateur unique pour chaque jeton délivré,<br />

– inclure une indication temporelle issue d’une source temporelle sûre dans<br />

chaque jeton. Le temps doit être exprimé en UTC (Coordinated Universal Time),<br />

– inclure dans chaque jeton un i<strong>de</strong>ntifiant unique <strong>de</strong> <strong>la</strong> politique <strong>de</strong> sécurité<br />

utilisée pour générer le jeton. En effet, l’autorité peut disposer <strong>de</strong> plusieurs<br />

algorithmes <strong>de</strong> signature différents qui sont plus ou moins robustes, <strong>de</strong> différentes<br />

clefs <strong>de</strong> différentes tailles…,<br />

– inclure <strong><strong>de</strong>s</strong> informations additionnelles dans le jeton uniquement sur <strong>la</strong><br />

<strong>de</strong>man<strong>de</strong> du client et lorsque l’autorité peut les prendre en charge. Dans<br />

l’impossibilité, ceci doit être signalé par une erreur dans <strong>la</strong> réponse,<br />

– ne pas inclure d’i<strong>de</strong>ntificateur <strong>de</strong> l’entité émettrice <strong>de</strong> <strong>la</strong> requête dans le jeton<br />

délivré,<br />

– signer chaque jeton délivré en utilisant une clef exclusivement dans ce but, et<br />

disposer du certificat re<strong>la</strong>tif au droit d’utilisation <strong>de</strong> <strong>la</strong> clef correspondante.<br />

A <strong>la</strong> réception <strong>de</strong> <strong>la</strong> réponse <strong>de</strong> l’autorité, le client est amené à réaliser les<br />

opérations suivantes :<br />

– Il doit commencer par vérifier si <strong><strong>de</strong>s</strong> erreurs lui ont été signalées par <strong>la</strong> TSA<br />

dans <strong>la</strong> réponse reçue.<br />

– Si aucune erreur n’y figure, il doit vérifier les différents champs présents dans<br />

<strong>la</strong> réponse, <strong>la</strong> validité <strong>de</strong> <strong>la</strong> signature <strong>de</strong> <strong>la</strong> TSA, et le fait que le jeton reçu<br />

correspond bien à <strong>la</strong> requête émise. En d’autres termes, il doit vérifier que le jeton<br />

contient <strong>la</strong> bonne empreinte digitale, le bon OID, et le certificat vali<strong>de</strong> <strong>de</strong> l’autorité.<br />

En particulier, il faut vérifier que ce <strong>de</strong>rnier ne figure pas dans les listes <strong>de</strong><br />

révocations <strong>de</strong> certificats.<br />

– Finalement, le client doit vérifier <strong>la</strong> validité du temps inclus dans <strong>la</strong> réponse,<br />

ainsi que l’i<strong>de</strong>ntificateur <strong>de</strong> <strong>la</strong> politique <strong>de</strong> sécurité afin <strong>de</strong> vérifier que cette <strong>de</strong>rnière<br />

correspond à ses exigences.<br />

Le RFC 3161 spécifie par ailleurs plusieurs protocoles qui peuvent constituer<br />

une base <strong>de</strong> transport pour le protocole d’horodatage proprement dit, tel que http,<br />

ftp, smtp ou simplement tcp.<br />

Par ailleurs, le document introduit certaines recommandations permettant <strong>de</strong><br />

garantir <strong>la</strong> pérennité du système.<br />

Ainsi, concernant l’utilisation <strong><strong>de</strong>s</strong> signatures électroniques, l’IETF stipule que<br />

certaines contraintes doivent être respectées :<br />

– Quand une autorité d’horodatage n’est plus opérationnelle, elle doit, même si<br />

les clefs dont elle dispose sont toujours vali<strong><strong>de</strong>s</strong>, veiller à afficher ses certificats dans<br />

une liste <strong>de</strong> révocations. Ainsi, à n’importe quel moment ultérieur à <strong>la</strong> date <strong>de</strong><br />

révocation, tout jeton généré antérieurement sera considéré comme vali<strong>de</strong>, et tout<br />

jeton qui l’a été ultérieurement ne le sera pas.


<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 23<br />

– Quand <strong>la</strong> clef privée associée à une autorité est compromise, Aucun <strong><strong>de</strong>s</strong> jetons<br />

signés avec <strong>la</strong> clef en question ne peut être considéré comme vali<strong>de</strong>, qu’il ait été<br />

généré antérieurement ou ultérieurement à <strong>la</strong> compromission. Le protocole doit<br />

spécifier un moyen <strong>de</strong> vérifier <strong>la</strong> validité d’un jeton même après <strong>la</strong> compromission<br />

<strong>de</strong> <strong>la</strong> clef utilisée pour le générer. Le recours à plusieurs horodatages d’un même<br />

document auprès <strong>de</strong> différentes autorités par exemple pourrait constituer une<br />

solution.<br />

– La durée <strong>de</strong> vie d’une signature étant directement liée à <strong>la</strong> taille <strong>de</strong> <strong>la</strong> clef<br />

utilisée, cette <strong>de</strong>rnière doit être suffisamment gran<strong>de</strong> pour garantir une robustesse<br />

conséquente. Dans tous les cas, <strong>la</strong> durée <strong>de</strong> vie d’une signature étant limitée, chaque<br />

jeton délivré par une autorité doit être signé ou horodaté <strong>de</strong> façon périodique afin <strong>de</strong><br />

renouveler sa validité.<br />

Le document fait aussi référence aux malveil<strong>la</strong>nces causant le retard, voir <strong>la</strong><br />

perte d’une requête d’horodatage. Celles-ci peuvent être dûes à <strong><strong>de</strong>s</strong> attaques <strong>de</strong> type<br />

« man in the middle » ou à <strong><strong>de</strong>s</strong> attaques <strong>de</strong> déni <strong>de</strong> service. L’enjeu ici est d’autant<br />

plus grave qu’il peut s’agir <strong>de</strong> requêtes dont <strong>la</strong> précision temporelle est critique. La<br />

solution qui y est préconisée serait, au niveau <strong><strong>de</strong>s</strong> applications clientes, <strong>de</strong> fixer <strong><strong>de</strong>s</strong><br />

dé<strong>la</strong>is d’attente pour <strong>la</strong> réception <strong><strong>de</strong>s</strong> jetons une fois <strong>la</strong> requête émise. Ainsi, si <strong>la</strong><br />

réponse accuse un temps supérieur à celui qui <strong>de</strong>vrait être mis dépendamment du<br />

protocole <strong>de</strong> transport utilisé, on peut présumer qu’il y a un problème. Mais dans ce<br />

cas, aucune para<strong>de</strong> n’existe, puisque l’autorité ne doit pas pouvoir antidater un<br />

document.<br />

8. <strong>Systèmes</strong> d'horodatage existants<br />

Il existe aujourd’hui plusieurs systèmes d’horodatage accessibles à travers<br />

Internet. Utilisant <strong><strong>de</strong>s</strong> protocoles simples, liés ou distribués, les implémentations<br />

varient. Nous fournissons dans cette section <strong>de</strong> brefs <strong><strong>de</strong>s</strong>criptifs pour les plus cités<br />

d’entre eux dans le cadre <strong>de</strong> <strong>la</strong> littérature associée à ce domaine.<br />

8.1. Services d’horodatage simples<br />

Plusieurs <strong>de</strong> ces services sont accessibles via le réseau Internet, parmi lesquels<br />

Authentidate, OpenTSA, e-Timestamp, Kotio-secureBox...<br />

Nous présentons ici le produit <strong>de</strong> Itconsult8. Il se base sur l’utilisation <strong>de</strong> PGP et<br />

du protocole SMTP. Il opère comme suit :<br />

– Un numéro <strong>de</strong> séquence est associé à chaque requête reçue.<br />

– Une date est ensuite apposée, le tout est signé et renvoyé au client.<br />

8. Il a été créé en 1995 et est accessible à l’adresse http://www.itconsult.co.uk/stamper.htm.


24 Technique et science informatiques. Volume X – n° X/2005<br />

– Une ‘signature détachée’ est gardée par l’autorité, comportant, le numéro <strong>de</strong><br />

séquence attribué, <strong>la</strong> date et l’heure à <strong>la</strong>quelle elle a été produite.<br />

– Chaque jour, <strong>de</strong>ux fichiers sont générés, l’un contenant le numéro <strong>de</strong> <strong>la</strong><br />

<strong>de</strong>rnière signature issue, et l’autre contenant toutes les signatures détachées créées ce<br />

jour là.<br />

– Ces fichiers sont publiés sur le site et hebdomadairement transmis à un groupe<br />

d’information.<br />

Ainsi, le fait d’utiliser <strong><strong>de</strong>s</strong> numéros <strong>de</strong> séquence reproduisant un ordre<br />

chronologique et <strong>de</strong> recourir à leur publication peut empêcher l’autorité <strong>de</strong> générer<br />

ultérieurement <strong>de</strong> faux jetons qui briseraient <strong>la</strong> chaîne chronologique.<br />

Mais rien dans ce schéma n’empêche l’autorité <strong>de</strong> se compromettre avec un <strong><strong>de</strong>s</strong><br />

possesseurs d’un jeton pour modifier le contenu <strong>de</strong> son message, faussant ainsi<br />

l’information qui a été horodatée.<br />

De plus, un tel schéma ne prévoit pas le cas où <strong>la</strong> validité <strong>de</strong> <strong>la</strong> signature <strong>de</strong><br />

l’autorité est critique entraînant ainsi une remise en question totale <strong>de</strong> tous les jetons<br />

délivrés.<br />

8.2. Digital Notary 9<br />

Digital Notary utilise le modèle en arbre binaire où <strong>la</strong> granu<strong>la</strong>rité temporelle est<br />

d’une secon<strong>de</strong>. Ce système opère comme suit :<br />

– L’utilisateur dispose d’un logiciel client, permettant <strong>de</strong> le connecter via<br />

Internet au service d’horodatage. Ce logiciel permet d’envoyer l’empreinte digitale<br />

associée au document à horodater.<br />

– La durée d’un tour étant d’une secon<strong>de</strong>, toutes les empreintes reçues pendant<br />

un tour donné sont traitées selon le modèle en arbre binaire.<br />

– Chaque jeton associé à un tour est publié sur le réseau Internet.<br />

– Les jetons associés aux tours sont aussi traités <strong>de</strong> <strong>la</strong> même façon, et un jeton<br />

global est généré toutes les semaines. Il est publié dans le New York Times,<br />

permettant ainsi <strong>de</strong> vali<strong>de</strong>r tous les jetons précé<strong>de</strong>nts.<br />

Ce système a été conçu par Haber et Stornetta qui ont déposé un brevet re<strong>la</strong>tif à<br />

l’utilisation <strong>de</strong> <strong>la</strong> métho<strong>de</strong> en arbre binaire (Haber et al, 1998). Il allie les avantages<br />

et les inconvénients <strong>de</strong> cette métho<strong>de</strong> (section 4.1).<br />

9. Digital Notary est un service <strong>de</strong> Surety Technologies, accessible au http://www.surety.com.


8.3. Prokopius<br />

<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 25<br />

Prokopius est un système d’horodatage essentiellement basé sur l’utilisation du<br />

P2P. La décentralisation est l’un <strong><strong>de</strong>s</strong> avantages majeurs <strong>de</strong> ce modèle, permettant<br />

ainsi <strong>de</strong> passer outre le problème du besoin <strong>de</strong> confiance qui se pose dans le cas d’un<br />

système centralisé.<br />

Prokopius est un système d’horodatage à clef publique, basé sur l’utilisation du<br />

protocole en arbre binaire, et fournissant par ailleurs un service d’archivage <strong><strong>de</strong>s</strong><br />

certificats numériques sécurisé et distribué. Ainsi, il permet <strong>de</strong> vérifier les<br />

documents signés ou horodatés, non seulement lorsque les clefs ont été changées,<br />

mais aussi dans le cas où les autorités responsables ne sont plus opérationnelles.<br />

En effet, du fait <strong>de</strong> <strong>la</strong> précarité <strong><strong>de</strong>s</strong> clefs associées aux signatures, <strong>la</strong> plupart <strong><strong>de</strong>s</strong><br />

gens en changent périodiquement. Soit un utilisateur A disposant d’une paire <strong>de</strong> clef<br />

Pr/Pb (respectivement privée et publique). L’utilisateur A utilise sa clef privée Pr<br />

pour signer un document x à horodater. Toute personne en possession <strong>de</strong> Pb pourrait<br />

alors le vérifier. Lorsque <strong>la</strong> clef Pr <strong>de</strong>vient obsolète, une autre paire <strong>de</strong> clefs est<br />

assignée à l’utilisateur A.<br />

Un vérificateur désirant vérifier <strong>la</strong> signature <strong>de</strong> A sur le document x doit pouvoir<br />

retrouver <strong>la</strong> clef publique Pb qui appartenait à A lors <strong>de</strong> <strong>la</strong> signature <strong>de</strong> ce document.<br />

Associer le certificat <strong>de</strong> l’utilisateur au document en question avant <strong>de</strong> l’horodater<br />

pourrait constituer une solution. Mais ce certificat, afin d’être considéré comme<br />

vali<strong>de</strong>, doit être signé par l’autorité <strong>de</strong> certification qui l’a délivré. Le problème est<br />

maintenant rétroactif, dans le sens où les clefs qu’utilisent les autorités <strong>de</strong><br />

certification, ainsi que les autorités en elles même sont vo<strong>la</strong>tiles. Dans un tel cadre,<br />

il semble donc nécessaire <strong>de</strong> concevoir un système d’archivage <strong><strong>de</strong>s</strong> certificats<br />

associés aux autorités <strong>de</strong> certification. C’est typiquement le service que fournit<br />

Prokopius.<br />

Prokopius, du fait <strong>de</strong> sa distribution, apporte aussi une solution au problème <strong>de</strong><br />

publication en fournissant un service d’archivage <strong><strong>de</strong>s</strong> jetons, ce qui permet <strong>de</strong><br />

résoudre le problème <strong>de</strong> survie associé à <strong>la</strong> publication. Les jetons sont donc<br />

répliqués et stockés au niveau <strong><strong>de</strong>s</strong> différents nœuds qui constituent le système<br />

global. Lors <strong>de</strong> <strong>la</strong> phase <strong>de</strong> vérification, un consensus entre les différents nœuds du<br />

système est établi afin <strong>de</strong> pouvoir retrouver le jeton final, même en présence <strong>de</strong><br />

nœuds corrompus. La non dépendance est ainsi garantie.<br />

Prokopius est préconisé pour être utilisé comme système d’horodatage et <strong>de</strong><br />

publication pour les autorités d’horodatage elles mêmes, fournissant ainsi un support<br />

pour l’archivage et <strong>la</strong> publication <strong>de</strong> leurs jetons ainsi que <strong>de</strong> leurs certificats. Par<br />

ailleurs, son architecture distribuée permet <strong>de</strong> garantir <strong>la</strong> disponibilité du système.<br />

Les limites <strong>de</strong> ce modèle se ressentent au niveau <strong><strong>de</strong>s</strong> ressources nécessaires pour<br />

le stockage et <strong>la</strong> transmission. En effet, tout jeton généré doit être envoyé à tous les<br />

nœuds du système et stocké par chacun d’entre eux. Plus le nombre <strong>de</strong> nœuds


26 Technique et science informatiques. Volume X – n° X/2005<br />

augmente plus <strong>la</strong> consommation <strong><strong>de</strong>s</strong> ressources <strong>de</strong> stockage et <strong>de</strong> transmission en<br />

sera affectée.<br />

Par ailleurs, il serait probablement intéressant d’exploiter l’architecture<br />

distribuée du système pour <strong>la</strong> génération <strong><strong>de</strong>s</strong> jetons et non pas uniquement pour leur<br />

stockage.<br />

Conclusion<br />

Dans cet article, nous avons étudié les différentes techniques d’horodatage<br />

existantes.<br />

Nous avons présenté les différentes contraintes que doit respecter un système<br />

d’horodatage. Elles sont généralement c<strong>la</strong>ssifiées en contrainte <strong>de</strong> confi<strong>de</strong>ntialité,<br />

contrainte <strong>de</strong> confiance, contraintes <strong>de</strong> ressources et contrainte <strong>de</strong> non dépendance<br />

du jeton.<br />

La confi<strong>de</strong>ntialité est généralement garantie par le recours à <strong><strong>de</strong>s</strong> moyens<br />

cryptographiques. Pour ce qui est du besoin <strong>de</strong> confiance, les solutions peuvent être<br />

c<strong>la</strong>ssifiées en solutions protoco<strong>la</strong>ires ou architecturales. Les solutions protoco<strong>la</strong>ires<br />

permettent <strong>de</strong> lier les jetons entre eux, créant ainsi un graphe <strong>de</strong> liaisons, <strong>de</strong> façon à<br />

empêcher l’autorité <strong>de</strong> modifier, supprimer ou introduire <strong><strong>de</strong>s</strong> jetons à posteriori. Les<br />

solutions architecturales permettent, quant à elles <strong>de</strong> faire col<strong>la</strong>borer plusieurs<br />

autorités entre elles dans le cadre d’un système distribué, réduisant ainsi les risques<br />

<strong>de</strong> malveil<strong>la</strong>nce. Plusieurs variantes protoco<strong>la</strong>ires et distribuées ont ainsi vu le jour,<br />

se distinguant par <strong>la</strong> façon dont elles répon<strong>de</strong>nt aux contraintes <strong>de</strong> ressources et <strong>de</strong><br />

non dépendance. Quoique plusieurs <strong>de</strong> ces solutions aient été imp<strong>la</strong>ntées, aucune<br />

d’entre elles ne permet, moyennant <strong><strong>de</strong>s</strong> coûts moindres, <strong>de</strong> répondre <strong>de</strong> façon<br />

définitive à toutes les contraintes. Les recherches se poursuivent dans ce sens, afin<br />

<strong>de</strong> proposer <strong><strong>de</strong>s</strong> solutions issues <strong>de</strong> <strong>la</strong> théorie <strong><strong>de</strong>s</strong> graphes, <strong>de</strong> l’informatique<br />

distribuée et <strong>de</strong> <strong>la</strong> cryptographie.<br />

Nous pensons que l’informatique distribuée est à même <strong>de</strong> contribuer à<br />

l’émergence <strong>de</strong> solutions efficaces dans le domaine <strong>de</strong> l’horodatage. Les solutions<br />

proposées jusqu’ici dans cette direction sont trop limitées et ne tirent pas avantage<br />

<strong>de</strong> toutes les possibilités qu’offrent les systèmes distribués. Par ailleurs, les <strong>de</strong>rnières<br />

avancées en cryptographie dans les domaines <strong>de</strong> <strong>la</strong> cryptographie à seuil, <strong><strong>de</strong>s</strong><br />

systèmes à base d’i<strong>de</strong>ntité, ou du calcul multipartite sécurisé, pourraient aussi être<br />

utilisées pour contribuer à <strong>la</strong> robustesse d’un schéma d’horodatage distribué.


Bibliographie<br />

<strong>Etu<strong>de</strong></strong> <strong><strong>de</strong>s</strong> systèmes d’horodatage 27<br />

Benaloh J., De Mare M., « Efficient Broadcast time-stamping », Technical report 1, C<strong>la</strong>rkson University Department of<br />

Mathematics and Computer Science, 1991.<br />

Benaloh J., De Mare M., « One-way accumu<strong>la</strong>tors: A <strong>de</strong>centralized alternative to digital signatures », Advances in<br />

Cryptology, volume 765 of Lecture Notes in Computer Science, EUROCRYPT 93, pages 274-285, Mai 1993.<br />

Bayer D., Haber S., Stornetta W S., « Improving the efficiency and reliability of digital time-stamping », Methods in<br />

Communication, Security and Computer Science, Sequences’91, pages 329-334, 1992.<br />

Buldas A., Laud P., « New Linking Schemes for Digital Time-Stamping », First International Conference on Information<br />

Security and Cryptology, pages 3-14, December 1998.<br />

Buldas A., Laud P., Lipmaa H., Villemson J., « Time Stamping with Binary-Linking Schemes », Advances on cryptology,<br />

Volume 1462 of Lecture Notes in Computer Science, Crypto’98, pages 486-501, 1998.<br />

Buldas A., Lipmaa H., Schoenmakers B., « Optimally efficient accountable time-stamping », Public Key Cryptography<br />

'2000, volume 1751 of Lecture Notes in Computer Science, pages 293-305, 2000.<br />

Haber S., Stornetta W S., « How to Time-stamp a Digital Document », Journal of Cryptology : the Journal of the<br />

International Association for Cryptologic Research 3(2), pages 99-112, 1991.<br />

Haber S., Stornetta W S., « Digital document authentication system », US-patent n o 5,781,629, 1998.<br />

Lipmaa H., « Secure and Efficient Time Stamping Systems », Ph.d, University of Tartu, Estonia, 1999.<br />

Massias H., « La certification cryptographique du temps ». Phd, Louvain-<strong>la</strong>-Neuve, Belgique, 2000.<br />

Nyberg k., « Commutativity in cryptography ». Proceedings of the First International Workshop on Functional Analysis at<br />

Trier University, pages 331-342, 1996.<br />

Nyberg k., « Fast accumu<strong>la</strong>ted hashing », Third Fast Software Encryption Workshop, volume LNCS 1039, pages 83-88,<br />

1996.<br />

Maniatis P., Giuli T J., Baker M., « Enabling the long-term archival of signed documents through Time Stamping »,<br />

Technical Report arXiv:cs.DC/0106058, Computer Science Department, Stanford University, California, USA, 2001.<br />

Just M., « Some timestamping protocol failures »,. Internet Society Symposium on Network and Distributed System Security,<br />

1998.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!