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 ...
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.