Etude des Systèmes d'Horodatage - Semantic Scholar

technique cryptographique permettant de prouver qu'un document a été créé à une certaine ... 2 Technique et science informatiques. ...... La connaissance de la.
375KB taille 4 téléchargements 246 vues
Etude des Systèmes d’Horodatage* Kaouther Blibech* — Alban Gabillon* — Alexis Bonnecaze** * LIUPPA/CSYSEC, université de Pau, IUT de Mont de Marsan 371 rue du ruisseau, BP 201 40004 Mont de Marsan CEDEX [email protected], [email protected] ** Laboratoire Eurecom-CNRS 2229 route des cretes, BP 193 06904 Sophia Antipolis CEDEX [email protected] Cet article représente une synthèse des résultats de la communauté scientifique dans le domaine de l’horodatage électronique. L’horodatage de documents électroniques est une technique cryptographique permettant de prouver qu’un document a été créé à une certaine date et qu’il n’a pas été modifié depuis cette date. Le développement de systèmes d'horodatage sûrs représente un enjeu important pour nos sociétés qui font de plus en plus appel aux nouvelles technologies de l’information et des communications. Dans cet article, nous classifions et étudions les différents schémas d’horodatage existants et présentons certains systèmes effectivement implantés. Nous nous intéressons particulièrement aux contraintes à respecter lors de la mise en place d’un système d’horodatage sûr. RÉSUMÉ.

This paper is a survey of the state of the art in electronic time-stamping. Timestamping of electronic documents is a cryptographic technique which is used to prove that a document was created at a certain date and that it has not been modified since then. The development of secure time-stamping systems represents a significant challenge for our societies which are increasingly using new communication and information technologies. In this paper, we classify and study the various existing time-stamping schemes and present some implemented systems. We particularly focus on the constraints which are to be satisfied when developing a secure time-stamping system. ABSTRACT.

Horodatage, confiance, système centralisé, système distribué, schéma de liaison, arbre binaire, accumulateurs.

MOTS-CLÉS :

KEYWORDS: Time stamping, trust, Centralized, distributed, linking scheme, binary tree, accumulators.

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

2

Technique et science informatiques. Volume X – n° X/2005

1. Introduction Tout comme il est parfois nécessaire de dater un document papier, il peut aussi être nécessaire de dater un document numérique. Toutefois, ajouter une date au début ou à la fin d’un document électronique à l’aide d’un simple logiciel de traitement de texte ne permet pas de dater de façon fiable le document tant il est aisé de supprimer ou modifier cette date. Dans le cas d’un document manuscrit daté, la fiabilité de la date provient des propriétés du support physique utilisé (papier) et de la confiance accordée à une autorité (notaire, administration …). L’horodatage électronique désigne une technique cryptographique permettant d’apposer de façon fiable une date à un document électronique. Horodater un document électronique permet de certifier que ce document a été créé à une certaine date et qu’il n’a pas été modifié depuis la date de sa création. Tout protocole d’horodatage existant met en jeu une autorité tierce (souvent appelée notaire électronique) en charge de dater les documents électroniques. Typiquement, si Alice a besoin de faire dater un document alors elle doit procéder de la façon suivante : 1. A l’aide d’une fonction de hachage sans collision1 et à sens unique2, Alice calcule une empreinte d du document original à dater x. 2. Alice envoie l’empreinte d au notaire électronique. Envoyer l’empreinte d plutôt que le document x offre deux avantages : -

La confidentialité du document x est préservée.

La ressource réseau est ménagée dans la mesure où une empreinte est toujours petite (quelques octets) et de taille fixe (pour une fonction de hachage donnée). 3. Le notaire renvoie à Alice un certificat d’horodatage Tx qui a été construit à l’aide d’un protocole d’horodatage particulier. Ce certificat d’horodatage atteste que le document x a été créé à une certaine date. 4. Alice peut présenter x et Tx à un vérificateur quelconque qui aurait besoin de savoir quand a été créé le document x. 5. Afin de s’assurer que le document x a bien été créé à la date contenue dans le certificat et que le document n’a pas été modifié depuis cette date, le vérificateur recalcule d et utilise le protocole de vérification qui est associé au protocole d’horodatage employé par le notaire. 1. Une fonction de hachage h est sans collision s’il est impossible de trouver x et x’ tels que h(x)=h(x’) 2. Une fonction de hachage h est à sens unique s’il est impossible de reconstruire x ou une portion de x à partir de d, avec h(x)=d

Etude des systèmes d’horodatage

3

Dans beaucoup de pays, l’horodatage n’est pas complètement reconnu sur le plan juridique. Cependant il est vraisemblable qu’il aura bientôt acquis la même force légale que la signature électronique qui, elle-même, est en train d’acquérir la même force légale que la signature manuscrite. En 1996, la CNUDCI (Commission des Nations Unies pour le Commerce International) a élaboré les premiers projets de règles uniformes internationales sur les signatures électroniques. Sur l’échelle européenne, la directive 1999/93/CE du 13 décembre 1999 a introduit un cadre communautaire pour les signatures électroniques. La législation française, en se basant sur cette directive, a adopté la loi 2000-230 le 13 mars 2000, assurant ainsi la reconnaissance juridique de la signature électronique. Le décret 2001-272 du 30 mars 2001 permet d’appuyer cette loi en définissant les conditions de présomption de fiabilité d’un procédé de signature électronique. Pour ce qui est de l’horodatage des documents électroniques, il n’existe pas de législations explicites. Cependant, les législations associées à la signature électronique, notamment la législation française, y font allusion. Par exemple, l’article 6 du décret 2001-272 exige, sans donner plus de détails, la détermination précise de la date et de l’heure de délivrance et de révocation d’un certificat électronique. Dans ce contexte mondial de légalisation de l’usage des signatures électroniques, l’horodatage n’a donc pas encore trouvé clairement sa place. Pourtant horodatage et signature électronique sont intimement liés. En effet, une signature électronique a une durée de vie limitée. Plus précisément, la clé privée utilisée pour signer a une durée de vie limitée puisque cette clé peut être révoquée ou compromise à tout instant. Afin de pouvoir garantir dans le temps l’intégrité d’une signature électronique, il devient donc essentiel de pouvoir prouver qu’un document a bien été signé avant la date d’expiration de la validité de la clé privée utilisée. En théorie, l’horodatage apporte une solution à ce problème. L’horodatage permet de fournir la preuve qu’un document a bien été signé à une date antérieure à la date de révocation ou de compromission de la clé privée. L’horodatage constitue ainsi un moyen permettant d’assurer dans le temps l’intégrité d’une signature électronique. Bien entendu, l’usage de l’horodatage ne se limite pas à étendre la durée de vie des signatures électroniques. L’horodatage est également utile dans de multiples autres domaines dès lors qu’il est nécessaire de dater et de garantir l’intégrité d’une information électronique. Ses applications sont multiples, dans le monde de l’archivage, du commerce, de la santé ou de la finance. Notons enfin que les administrations de certains pays européens commencent à adopter le mode électronique afin d’économiser les supports physiques (principalement le papier) et être plus efficaces. Ainsi, l’élaboration de systèmes d’horodatage fiables répond à un besoin sans cesse grandissant de nos sociétés. L’objectif de cet article est de faire une présentation des principaux protocoles d’horodatage existants ainsi que des protocoles de vérification qui leur sont associés. Nous verrons que certains protocoles requièrent d’avoir une très grande confiance dans le notaire électronique alors que d’autres protocoles permettent de réduire ce besoin de confiance. Nous verrons également que certains protocoles de vérification

4

Technique et science informatiques. Volume X – n° X/2005

n’impliquent pas le notaire électronique alors que d’autres exigent son intervention. Pour chaque protocole étudié, nous évaluerons les possibilités de fraude, que celle-ci soit commise par le notaire électronique ou par tout autre entité. Ces fraudes peuvent être commises lors de la construction du cachet ou postérieurement à celle-ci. Dans le premier cas nous verrons que la fraude utilise généralement une faille dans le protocole d’horodatage. Dans le second cas, elle peut s’appuyer sur une faiblesse du protocole de vérification ou sur un problème d’origine cryptographique. L’article est organisé de la manière suivante. Nous présentons tout d’abord les moyens dont doit disposer une autorité d’horodatage afin de mener à bien sa tâche. Puis, nous proposons une classification des systèmes d’horodatage en deux classes : les systèmes centralisés et les systèmes distribués. La première classe peut être divisée en trois modèles : les modèles simples, les modèles liés et les modèles agrégés. Les quatre premières sections du présent article en présentent les variantes et les spécificités. La cinquième section permet d’introduire ce qui a été fait dans le cadre de la standardisation des systèmes d’horodatage. Finalement, la dernière section présentera quelques systèmes d’horodatage ayant été mis en œuvre ces dernières années. 2. Sources temporelles Intuitivement, un horodatage fiable nécessite l’intervention d’une autorité tierce et de confiance qui aura la charge d’apposer une information temporelle à un document électronique donné. Le but est d’établir la preuve que la création du document en question est antérieure à l’indication temporelle ajoutée par l’autorité, et de pouvoir assurer qu’il n’a pas été altéré ultérieurement. Le cachet d’horodatage permet d’obtenir cette preuve. La date et l’heure utilisées pour construire le cachet d’horodatage doivent être fiables. Il existe plusieurs standards temporels, le UTC (Coordinated Universal Time) étant le plus utilisé. Le BIPM (Bureau International des Poids et des Mesures) gère ce standard au niveau international. Ainsi, le temps est déterminé grâce au GPS (Global Positionning System), un ensemble de satellites permettant de fournir l’heure avec une précision d’une microseconde. A un niveau inférieur, les horloges atomiques nationales sont gérées par les instituts de mesure nationaux, sous la tutelle du BIPM. Au troisième niveau de la hiérarchie, le niveau distribution est formé par des organismes fiables de distribution de temps. Ce sont les serveurs de temps. Une autorité d’horodatage devra donc s’y connecter ou en faire partie. Au niveau protocolaire, c’est le protocole STIME3 qui est conseillé pour transmettre la date et l’heure entre les unités concernées de façon fiable. Ce 3. Il n’existe pas encore de RFC pour ce protocole, il est toujours en cours d’étude par l’IETF.

Etude des systèmes d’horodatage

5

protocole ajoute au protocole NTP (Network Time Protocol), normalisé par l’IETF dans le RFC 305, une couche de sécurité permettant d’authentifier mutuellement les acteurs de l’échange. La figure 1 résume ce schéma protocolaire.

Alice

T S A

T

T

STIME M

STIME M

S

S

GPS

GPS

Figure 1. Les sources de temps : TSA (Time Stamp Authority) désigne une autorité d’horodatage et TMS (Time Measurement System) désigne un système de mesure temporel de premier niveau (géré par le BIPM), de deuxième niveau (horloges atomiques nationales) ou de troisième niveau (simples serveurs de temps).Une autorité d’horodatage est alors reliée soit à un serveur de temps soit directement à une horloge atomique nationale. 3. Systèmes d’horodatage simples Un système simple d’horodatage opère en deux phases : la phase d’horodatage et la phase de vérification. Durant la première phase, le système opère de la façon suivante : – Alice émet une requête contenant le document x à horodater. – L’autorité construit un cachet d’horodatage et en conserve une copie. – L’autorité envoie à Alice le cachet d’horodatage. La phase de vérification n’entre en jeu que lorsque l’intégrité du document xn est remise en question par une tierce personne, que nous nommerons Bob. Dans ce cas, Bob récupère la copie dont dispose l’autorité et la compare à celle que lui a fourni Alice. Si elles sont identiques, la preuve est faite que le document n’a pas été modifié depuis qu’il a été horodaté. D’un point de vue purement fonctionnel, cette méthode répond aux attentes des clients. Cependant, elle n’intègre pas de mécanismes pouvant garantir sa pérennité, sa mise à l’échelle ou sa sécurité. 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

– Le système d’horodatage doit garantir la confidentialité des documents horodatés. – Les ressources réseaux consommées pour l’émission des requêtes ainsi que celles nécessaires pour le stockage des preuves d’horodatage doivent être gérées de manière optimale. – Un jeton doit contenir toutes les informations nécessaires pour prouver la datation du document ainsi que la validation du jeton. Un jeton doit donc pouvoir être prouvé et validé même en l’absence de l’autorité émettrice. Afin de satisfaire à ces contraintes, de nouveaux modèles d’horodatage ont été proposés dans un premier temps par Haber et Stornetta dans (Haber et al., 1991). Haber et Stornetta proposent d’utiliser des techniques cryptographiques. Ils emploient des algorithmes de hachage pour garantir la confidentialité des documents à horodater et des mécanismes de signature pour permettre l’authentification de l’autorité. Leur schéma se décompose en trois étapes : – Au lieu d’émettre le document xn à horodater, Alice émet l’empreinte digitale4 yn associée au document. Ainsi, la confidentialité du document est préservée et la ressource réseau est ménagée. – Ayant reçu l’empreinte yn, l’autorité y appose une date ainsi que certaines autres informations. Elle signe le tout, formant ainsi le jeton Sn : Sn = SigTSS Cn où Cn = ( n, tn, idn, yn ), avec : Sn : jeton final renvoyé au client ; SigTSS : signature de l’autorité ; Cn : information signée ; n : numéro associé à la requête, appelé numéro de séquence. Nous supposons que l’autorité les attribue de façon incrémentale ; tn : date apposée par l’autorité à la requête n ; idn : identificateur associé au client. Il contient les données permettant de contacter le client émetteur de la requête ; yn : nième empreinte à horodater. 4. Une empreinte digitale est une chaîne binaire de taille fixe et limitée, calculée en utilisant une fonction de hachage à partir d’une autre chaîne binaire de longueur quelconque. Les fonctions de hachage utilisées aujourd’hui, notamment en cryptographie, se basent sur des hypothèses mathématiques fortes de non réversibilité et de non collisions. En d’autres termes, disposant de l’empreinte digitale, il serait impossible de reconstruire la chaîne initiale correspondante. Par ailleurs, il serait aussi pratiquement infaisable de générer deux chaînes initiales qui produiraient la même empreinte digitale.

Etude des systèmes d’horodatage

7

– L’autorité envoie Sn à Alice qui se charge de sa conservation. Un tel schéma permet d’authentifier l’autorité d’horodatage et de la dégager de la responsabilité de la conservation des jetons. Si ultérieurement Bob a besoin de savoir quand a été créé le document xn, Alice lui fournira xn et Sn. Bob recalculera alors l’empreinte digitale de xn et, en récupérant le certificat associé à l’autorité d’horodatage, vérifiera qu’elle correspond bien à celle incluse dans Sn. Cependant, un tel schéma présente un certain nombre de points faibles qu’il convient de relever : – Le premier point concerne la nature du jeton. Une autorité malveillante ou simplement défaillante peut construire de faux jetons en antidatant le document. Le jeton est alors reconnu valide car correctement signé par l’autorité alors que la date apposée par l’autorité est erronée. La validité du jeton repose donc sur la confiance accordée à l’autorité. Or, dans un système d’horodatage idéal, on ne doit pas avoir besoin de faire confiance à l’autorité d’horodatage. Il existe des solutions relativement efficaces pour répondre à ce genre de problème. On en distingue trois catégories : les systèmes centralisés qui utilisent des protocoles de liaisons simples, les solutions liées agrégées, et les systèmes distribués. Plusieurs variantes en seront présentées dans les sections suivantes. – Le deuxième point concerne l’utilisation des signatures dont la durée de vie peut être relativement courte. Ce problème doit être pris en compte lors d’archivage à long terme de documents horodatés. Il faut éviter qu’une tierce personne ne puisse construire un faux jeton en utilisant la clé obsolète de l’autorité. Faire stocker tous les jetons par l’autorité peut constituer une solution. Cette solution demande de faire confiance à l’autorité pour s’assurer de la validité d’un jeton. De plus, si l’autorité disparaît alors aucune preuve ne peut plus être fournie. Cette solution ne répond donc pas à la deuxième et à la quatrième contrainte édictées au début de la présente section. La simple signature du jeton ne constitue donc pas une solution adéquate pour obtenir un système d’horodatage sécurisé. – Le troisième point concerne l’utilisation des algorithmes de hachage. Le problème, soulevé dans (Haber et al., 1991), est le suivant : les fonctions de hachage à sens unique n’étant pas injectives, il faut s’assurer qu’elles possèdent une propriété appelée résistance à la collision. Ce problème doit être pris en considération car des jetons pourraient être remis en cause au sens juridique du terme, puisque l’unicité du document générateur ne pourrait être formellement prouvée. La longueur des empreintes est un facteur important de la sécurité. Par exemple des fonctions de

8

Technique et science informatiques. Volume X – n° X/2005

hachage à 64 bits sont trop petites pour survivre à une attaque des anniversaires5. Par contre une fonction à 160 bits comme SHA est bien plus robuste. Une autre solution consiste, pour un même document, à construire deux jetons utilisant chacun deux fonctions de hachage sûres. Par ailleurs, une politique de régénération périodique de jetons semble souhaitable. 4. Systèmes liés Les premières solutions de ce type ont été présentées par Haber et Stornetta dans (Haber et al., 1991). Elles reposent sur le principe suivant : les jetons créés sont chronologiquement liés entre eux, formant une chaîne chronologique. Les preuves d’appartenance à la chaîne sont incluses dans les jetons, de façon à permettre la reconstruction de la chaîne lors de la vérification. Ainsi, en modifiant, insérant ou supprimant un jeton, la chaîne est rompue, ce qui permet de détecter toute malveillance. De tels schémas reposent sur l’utilisation d’algorithmes de hachage au niveau de l’autorité d’horodatage. Typiquement, cela se passe de la façon suivante :

– Alice émet la requête d’ordre n, dans le but d’horodater le document xn. Elle calcule alors l’empreinte digitale yn associée et l’envoie à l’autorité d’horodatage. – L’autorité calcule le jeton d’horodatage associé de la manière suivante : Sn = SigTSS Cn où Cn = ( n, tn, idn, yn, Ln ) et Ln = ( tn-1, idn-1, yn-1, H(Ln-1 )) avec : Sn : jeton renvoyé au client ; SigTSS : signature de l’autorité ; Cn : information signée ; n, n-1 : numéros de séquences associés aux requêtes ; tn, tn-1 : dates apposées par l’autorité respectivement aux requêtes n et n-1 ; idn, idn-1 : identificateurs associés aux clients émetteurs de la nième et de la n-1ième requête ; yn, yn-1 : nième et n-1ième empreintes à horodater ;

5. Cette attaque est basée sur des calculs de probabilité. Elle repose sur le paradoxe de la date d’anniversaire qui stipule que dans une classe, la probabilité qu'un élève soit né tel jour est faible, mais la probabilité que deux élèves aient la même date de naissance est plus élevée. Cette dernière est en effet supérieure à 0.5 pour une classe de 23 élèves. On démontre alors que pour une empreinte de taille n, après 2n/2 essais, on aura une chance sur deux de trouver deux empreintes identiques.

Etude des systèmes d’horodatage

9

Ln, Ln-1 : éléments de chaînage ; H(x) : empreinte digitale associée à x. En d’autres termes, en plus des informations usuelles associées à un jeton d’horodatage, l’autorité rajoute un élément de chaînage. Cet élément a pour rôle de lier le certificat courant au certificat précédemment délivré par l’autorité.

– Bill émet la requête d’ordre n+1, dans le but d’horodater le document xn+1. Il calcule alors l’empreinte digitale yn+1 associée et l’envoie à l’autorité d’horodatage. – L’autorité renvoie à Alice le numéro d’identification signé associé à la dernière requête (celle de Bill), et renvoie ensuite à Bill le jeton Sn+1 associé. Le jeton final dont dispose Alice est alors de la forme (Sn, SigTSS idn+1). Lors d’une vérification ultérieure, et afin de s’assurer que l’autorité ne s’est pas entendue avec Alice pour produire un faux jeton, Bob contacte Bill grâce au numéro d’identification inclus dans le jeton final. Ayant récupéré le jeton de Bill (Sn+1, SigTSS idn+2), Bob peut vérifier que l’information de chaînage qui y figure fait référence au jeton d’Alice. Parallèlement, Bob contacte le client d’identificateur idn-1 afin de vérifier la validité de l’information de chaînage présente dans le jeton d’Alice. Pour une sécurité accrue, Bob peut ne pas se limiter aux jetons adjacents à celui d’Alice dans la séquence chaînée, réalisant ainsi une série de vérifications récursives, pouvant amener à la reconstruction de toute la séquence en question. Dans un tel schéma, deux cas de figure peuvent se présenter : soit l’autorité ne conserve aucune information soit elle conserve une copie de toute la chaîne. Le premier cas de figure est impossible dans la pratique puisqu’il suffirait qu’un client égare son jeton ou soit simplement injoignable pour compromettre la phase de vérification. L’autorité doit donc conserver une copie de toute la chaîne. La phase de vérification requière alors l’intervention de l’autorité d’horodatage, ce qui est un inconvénient. Dans un tel schéma, produire un faux jeton (en général un jeton antidaté) nécessite que l’autorité d’horodatage soit compromise :

– Si la fréquence de réception des requêtes est faible, l’autorité peut antidater un jeton puisqu’elle dispose d’un intervalle de temps, borné à gauche par la date du dernier jeton généré. Elle ne pourra cependant pas remonter au-delà sans que cela se répercute sur la chaîne temporelle. – Si la fréquence de réception des requêtes est élevée, le seul moyen de créer un faux jeton est de créer une fausse séquence temporelle. Il faut en effet modifier les jetons adjacents au faux jeton intrus. Ceci ne peut se faire sans la complicité de certains clients. Considérons le cas d’une intrusion de jeton entre le jeton d’Alice et celui de Bill (Figure 2) : - Au niveau du jeton d’Alice, l’autorité aura à modifier l’information qui permet de lier ce dernier à celui de Bill. En d’autres termes, l’autorité devra modifier l’identificateur associé à la requête suivante (qui fait actuellement référence à Bill), ou attribuer cet identificateur au jeton à insérer.

10

Technique et science informatiques. Volume X – n° X/2005

Jetons avant compromission : Alice(idn)

Bill(idn+1)

Eve(idn+2) …

(Sn, SigTSS idn+1) Sn= SigTSS Cn Cn=(n, tn, idn, yn, Ln) Ln=(tn-1, idn-1, yn-1, H(Ln-1))

(Sn+1, SigTSS idn+2) Sn+1= SigTSS Cn+1 Cn+1=(n+1, tn+1, idn+1, yn+1, Ln+1) Ln+1=(tn, idn, yn, H(Ln))

(Sn+2, SigTSS idn+3) Sn+2= 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))

Jetons après intrusion du jeton i : Alice(idn)

Bill(idn+1)

Eve(idn+2) …

(Sn, SigTSS idi) Sn= SigTSS Cn Cn=(n, tn, idn, yn, Ln) Ln=(tn-1, idn-1, yn-1, H(Ln-1))

(Sn+1, SigTSS idn+2) (Sn+2, SigTSS idn+3) Sn+1= SSn+1= SigTSS Cn+1 Sn+2= SigTSS Cn+2 Cn+1=(n+1, tn+1, idn+1, yn+1, Ln+1’) Cn+2=(n+2, tn+2, idn+2, yn+2, Ln+2) Ln+1’=(ti, idi, yi, H(Li)) Ln+2=(tn+1, idn+1, yn+1, H(Ln+1))

Chaîne initiale

Intrusion détectée car Ln+1 a été modifié

Jeton intrus i Chaîne intruse

Robert(idn+2) … (Sn+2, SigTSS idn+3) Sn+2= 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’))

Figure 2. Intrusion dans un système lié

- Au niveau du jeton de Bill, l’information qui permet de le lier au jeton précédent (celui d’Alice avant compromission) est l’information de chaînage. L’empreinte de cette information est présente à son tour dans le jeton suivant. Ainsi, à moins de trouver une collision pour l’algorithme de hachage, il n’est pas possible de modifier uniquement l’information de chaînage. Il serait alors nécessaire de modifier toute la chaîne à partir du jeton intrus. La modification étant impossible, le

Etude des systèmes d’horodatage

11

seul moyen d’agir serait alors de générer une fausse chaîne de jetons, assez longue cependant pour duper un vérificateur même s’il s’acharne à remonter toute la séquence. Générer une telle chaîne serait possible en créant de faux clients par exemple. Il existe néanmoins une méthode qui permet d’empêcher la falsification de la chaîne temporelle. Le principe de cette méthode consiste à publier périodiquement un jeton d’horodatage ou l’empreinte digitale associée à plusieurs d’entre eux sur un support non modifiable et aisément consultable par un grand nombre de personnes. L’exemple type d’un tel support est un journal de la presse écrite. Les valeurs publiées deviennent de facto infalsifiables et doivent être utilisées dans les procédures de vérification. Le principe de la publication est une solution qui permet donc d’éviter ou de rendre très difficile la production de fausses chaînes temporelles (la falsification de la chaîne depuis la dernière valeur publiée et avant publication de la prochaine valeur reste toutefois possible). Les coûts de publication pouvant être élevés, il convient donc de déterminer une fréquence de publication suffisante pour atteindre le niveau de sécurité requis. Pour augmenter la robustesse des systèmes liés, Haber et Stornetta (Haber et al., 1991) proposent un autre schéma de liaison. Dans ce schéma, un jeton est lié non plus à un prédécesseur, mais à k prédécesseurs de la façon suivante : Sn = SigTSS Cn où Cn = (n, tn, idn, yn, Ln) et Ln = [(tn-k, idn-k, yn-k, H(Ln-k)), …, (tn-1, idn-1, yn-1, H(Ln-1))], avec: Sn : jeton renvoyé au client ; SigTSS : signature de l’autorité ; Cn : information signée ; n-k,…, n : numéros de séquences associés aux requêtes ; tn-k,…, tn : dates apposées par l’autorité aux requêtes n-k à n ; idn-k,…, idn : identificateurs associés aux clients émetteurs des requêtes n-k à n ; yn-k,…, yn : n-k ième à nième empreintes à horodater ; Ln-k,…, Ln : éléments de chaînage ; H(x) : empreinte digitale associée à x. Le jeton final est de la forme (Sn, SigTSS idn+1,…, SigTSS idn+k), où idn+1,…, idn+k sont les identificateurs associés aux k requêtes ultérieures. Un tel protocole permet d’avoir 2k jetons directement adjacents à un jeton donné. Modifier un jeton reviendrait à modifier les k jetons prédécesseurs de façon à ce qu’ils fassent référence au jeton intrus, ainsi que les k jetons successeurs dont l’information de chaînage fait référence au jeton intrus. Rappelons que les

12

Technique et science informatiques. Volume X – n° X/2005

empreintes de ces informations de chaînages seront présentes à leur tour dans les jetons qui seront délivrés ultérieurement. Ainsi, à moins de trouver k collisions pour l’algorithme de hachage, il faudra construire une fausse suite à la chaîne chronologique afin d’éviter qu’à partir du k+1ième élément successeur au jeton intrus la supercherie ne soit découverte. D’autre part, augmenter le nombre de jetons adjacents permet de relâcher les contraintes sur l’autorité en matière de stockage. En effet, en supposant que l’autorité ne conserve pas les jetons, même si un client perdait son jeton, la chaîne ne serait pas rompue. Il faudrait que k jetons successifs soient perdus pour qu’elle le soit. Les systèmes d’horodatage liés apportent une solution satisfaisante au problème du besoin de confiance sans pour autant répondre à tous les critères demandés. En effet, ils restent gourmands en ressources, au niveau du stockage, de la vérification et des communications pour la récupération des jetons. Ce sont d’ailleurs ces raisons qui font que ces modèles sont généralement utilisés dans le cadre d’un système à temps relatif, permettant ainsi de vérifier la relation de précédence entre deux documents horodatés. Le nombre d’étapes nécessaires à la vérification de la précédence entre deux jetons est alors linéairement dépendant du nombre de jetons entre eux. Ainsi, le coût de vérification peut être, dans certains cas, réduit. Pour remédier aux inconvénients des systèmes liés, d’autres systèmes fondés sur la notion d’agrégation ont vu le jour. 5. Systèmes agrégés Le principe sur lequel reposent ces modèles est le suivant : on associe un jeton d’horodatage non seulement à une requête donnée, mais aussi à un ensemble de requêtes formant ce qu’on appelle un tour. Un tour est défini par une durée temporelle préalablement fixée, par un nombre bien déterminé de requêtes, ou encore par une combinaison des deux. Les jetons associés aux tours sont conservés par l’autorité. Les jetons individuels associés aux empreintes digitales sont retournés aux clients. Chaque jeton individuel contient des informations permettant de prouver qu’il a participé à la création du jeton associé au tour. Plusieurs modèles d’agrégation ont été proposés. Nous en distinguerons deux familles : ceux issus de la théorie des graphes et ceux basés sur des fonctions d’accumulation. 5.1. Systèmes utilisant des graphes Ces méthodes utilisent des fonctions de hachage afin de regrouper les jetons d’horodatage délivrés au cours d’un cycle. Parmi ces méthodes, nous trouvons le modèle en arbre binaire. Cette méthode regroupe les requêtes dans une structure

Etude des systèmes d’horodatage

13

d’arbre de Merkle, initialement utilisée dans le cadre de la certification [Mer80, Mer89]. Deux variantes de ce modèle ont été proposées dans (Benaloh et al., 1991) (Bayer et al., 1992). Elles sont décrites dans les figures 3 et 4. La première figure correspond à la variante présentée par Benaloh et de Mare dans (Benaloh et al., 1991) et la seconde correspond à celle présentée par Bayer, Haber et Stornetta dans (Bayer et al., 1992).

Rr-1

Rr hr

hr,5

hr,6 hr,2

hr,1

yr,1

yr,2

yr,3

hr,3

yr,4

yr,5

hr,4

yr,6

yr,7

Yr,8

Figure 3. Modèle en arbre binaire Dans tous les cas, l’autorité, disposant de toutes les requêtes reçues durant un tour donné crée ce qu’on appelle un arbre binaire. Evidemment, les requêtes contiennent non pas les documents à horodater mais plutôt les empreintes associées. Prenons le cas d’un tour r à huit requêtes dont les empreintes sont notées yr,1, …, yr,8. Ainsi, on aura : (Figure3) Rr = H(Rr-1, hr) hr = H(hr,5, hr,6)

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

14

Technique et science informatiques. Volume X – n° X/2005

hr,6 = H(hr,3,hr,4) hr,5 = H(hr,1, hr,2) hr,1 = H(yr,1, yr,2) hr,2 = H(yr,3, yr,4) hr,3 = H(yr,5, yr,6) hr,4 = H(yr,7, yr,8) yr,i=yi

hr,6 = H(hr,3,hr,4) hr,5 = H(hr,1, hr,2) hr,1 = H(yr,1, yr,2) hr,2 = H(yr,3, yr,4) hr,3 = H(yr,5, yr,6) hr,4 = H(yr,7, yr,8) yr,i=H(yi, Rr-1)

Avec : Rr,Rr-1 : jetons associés aux tours r et r-1 ; H(x,y) : empreinte digitale associée à la concaténation des chaînes x et y ; yi : empreinte digitale associée à la requête d’ordre i.

Rr

hr,5

hr,6

hr,1

yr,1

hr,2

yr,2

yr,3

hr,3

yr,4

yr,5

hr,4

yr,6

yr,7

yr,8

Rr-1 Figure 4. Autre modèle en arbre binaire Le passage d’un niveau à un autre est fait de la façon suivante : les éléments étant traités deux à deux, l’empreinte digitale associée à la concaténation de l’élément gauche et de l’élément droit est récupérée. Ainsi, hr,1 désigne l’empreinte digitale associée à la concaténation de yr,1 et yr,2.

Etude des systèmes d’horodatage

15

La différence entre les deux variantes réside dans la façon de lier le jeton associé au tour courant à celui du tour précédent. En effet, dans le premier cas de figure, le jeton du tour r est obtenu en hachant la racine de l’arbre, notée hr, avec le jeton Rr-1 associé au tour r-1. Dans le second cas, ce sont les feuilles de l’arbre, en d’autres termes les yi qui sont hachées avec Rr-1. Une fois les jetons associés aux différents tours calculés, ils sont conservés par l’autorité d’horodatage. Toute information nécessaire pour vérifier qu’un document a été horodaté durant un tour donné est incluse dans le jeton individuel qui est retourné au client. Ainsi, pour la requête d’Alice, contenant l’empreinte yr,6, le jeton qui lui est retourné est de la forme : Rj = (r, (yr,5,G), (hr,4,D), (hr,5,G)) avec : Rj : jeton individuel retourné au jème client du tour r ; r : ordre du tour courant ; yr,i : empreinte digitale associée à la requête d’ordre i, modifiée comme décrit précédemment dans le cas de l’utilisation de la deuxième méthode ; D,G : respectivement pour Droite et Gauche, désignant les sens des concaténations à réaliser. Si Bob veut vérifier ultérieurement le document d’Alice, ainsi que tout autre document inclus dans le tour en question, il devra simplement évaluer les égalités suivantes respectivement dans le cas de l’utilisation de la première ou de la seconde méthode : Rr = H( H(hr,5, H( H(yr,5, yr,6), hr,4)), Rr-1) (Figure3) et Rr = H( H(hr,5, H( H(yr,5, yr,6), hr,4))) (Figure4) avec : Rr,Rr-1 : jetons associés aux tours r et r-1 H(x,y) : empreinte digitale associée à la concaténation des chaînes x et y hr,i : empreintes intermédiaires calculées comme décrit précédemment yr,i : empreinte associée à la requête d’ordre i, modifiée comme décrit précédemment dans le cas de l’utilisation de la deuxième méthode. L’avantage de la première méthode repose sur le fait que si l’on veut vérifier ultérieurement la dépendance entre les différents tours, on peut éviter le passage par les feuilles de l’arbre binaire. Cependant l’autorité doit alors stocker pour chaque

16

Technique et science informatiques. Volume X – n° X/2005

tour deux éléments différents : le jeton Rr ainsi que hr. Cette variante est la plus étudiée dans la littérature. La production de faux jetons est possible si l’autorité arrive à générer de faux arbres binaires. Le recours à la publication est alors, comme dans le cas du schéma de liaison linéaire, la solution la plus sûre. La publication systématique de tous les jetons de tours étant trop coûteuse, une publication périodique est mise en place. Contrairement au schéma de liaison linéaire, il n’existe pas d’ordre chronologique des jetons à l’intérieur d’un tour. Si la publication des jetons de tour permet de prouver l’existence d’un ordre chronologique entre les tours, il n’existe aucun moyen pour vérifier l’ordre chronologique des requêtes à l’intérieur d’un tour donné. En effet, l’autorité ne peut pas prouver que les requêtes ont été traitées dans l’ordre de leur réception. La granularité dans un tel système est donc moins fine. Il est bien sur possible de réduire la durée des tours mais cela peut avoir pour conséquence un nombre trop faible de requêtes par tour et un coût de construction de jeton trop élevé. Ainsi, à moins de disposer d’un système assurant un nombre et une fréquence de réception de requêtes élevés, la précision temporelle d’un tel schéma n’est pas satisfaisante. Par la suite, plusieurs modèles agrégés ont été créés, tels que les schémas de liaisons binaires (Buldas et al., 1998), ou la méthode de l’arbre binaire tissé (Buldas et al., 2000). Ces modèles, par ailleurs beaucoup plus complexes à implanter et à mettre en œuvre ont été conçus dans le but de minimiser le nombre d’étapes nécessaires à la vérification et de réduire la taille des jetons. Ils permettent ainsi de combiner les avantages des systèmes linéaires simples et des systèmes agrégés. Dans un schéma de liaison binaire, l’algorithme de vérification identifie le plus court chemin entre deux jetons sélectionnés. Ainsi, par rapport à un schéma de liaison linéaire, le nombre d’étapes nécessaires à la vérification est réduit, ainsi que le nombre de jetons sollicités. Dans un schéma de liaison linéaire le nombre de jetons examinés durant la phase de vérification est linéairement dépendant de n, où n désigne l’ordre du jeton délivré dans la chaîne chronologique, alors que pour un schéma de liaison binaire le nombre de jetons examinés dépend de log n. Comparé à la méthode d’arbre binaire, un schéma de liaison binaire génère des jetons d’horodatage plus longs. La méthode de l’arbre binaire tissé a alors été conçu en tant qu’amélioration du schéma de liaison binaire. Mais cette amélioration ne permet toujours pas d’atteindre la taille optimale des jetons générés par la méthode de l’arbre binaire simple. Ainsi, de part leur efficacité relative et une réelle difficulté d’implantation, ces nouveaux modèles ne sont pas très utilisés aujourd’hui.

Etude des systèmes d’horodatage

17

5.2. Systèmes à accumulateurs Les accumulateurs ont été introduits par Benaloh et de Mare dans (Benaloh et al., 1993). Ces derniers définissent les fonctions d’accumulation comme étant des fonctions quasi-commutatives. Cette propriété permet de montrer facilement qu’un élément appartient à un ensemble donné. Dans le cas de l’horodatage, on veut prouver qu’un cachet appartient à un tour donné. Une fonction quasi commutative f : X×Y → X est définie pour tout x Є X et tout y1,y2 Є Y, par f(f(x,y1),y2) = f(f(x,y2),y1). L’addition, la multiplication, et l’exponentiation modulo n sont des exemples de fonctions répondant à cette définition. Mais parmi ces fonctions, l’exponentiation modulaire est la seule à présenter une caractéristique de non réversibilité. Elle est appelée fonction d’accumulation à sens unique. Benaloh et de Mare l’utilisent dans leur protocole d’horodatage décrit ci-dessous:

– Alice émet la requête d’ordre j dans le tour courant, dans le but d’horodater le document xj. Elle calcule alors l’empreinte digitale yj associée et l’envoie à l’autorité d’horodatage. – L’autorité réceptionne les requêtes des clients jusqu’à la fin du tour courant. – L’autorité calcule le jeton d’horodatage associé de la manière suivante et le stocke : Rr = xY mod n, avec : Rr : jeton associé au tour r ; x : valeur fixée au début d’un tour ; Y : produit des empreintes digitales. Y= y1*y2*...yn ; yi : empreinte digitale associée à la requête d’ordre i ; n : nombre d’empreintes traitées dans un tour donné.

– Finalement, l’autorité calcule le jeton d’horodatage associé à la requête d’Alice de la manière suivante et le lui renvoie : Rj = xYj mod n avec : Rj : jeton retourné au jième client du tour r ; x : valeur fixée au début d’un tour ;

18

Technique et science informatiques. Volume X – n° X/2005

Yj : produit des empreintes digitales d’un tour donné privé de la jième empreinte. Yj=y1*y2*…yj-i*yj+1*…yn ; yi : empreinte digitale associée à la requête d’ordre i ; n : nombre d’empreintes traitées dans un tour donné. Ultérieurement, si Bob veut vérifier la validité du jeton d’Alice, il devra opérer de la façon suivante :

– Alice envoie à Bob le document en question xj ainsi que le jeton individuel Rj qui lui est associé. – L’autorité envoie à Bob le jeton Rr associé au tour r. – Bob calcule, à partir de xj l’empreinte digitale yj associée et teste l’égalité suivante : Rjyj=Rr, avec : Rj : jeton retourné au jème client du tour r Rr : jeton associé au tour r yj : empreinte digitale associée à la requête d’ordre j. L’utilisation de la fonction d’exponentiation modulaire dans ce protocole pose un certains nombre de problèmes. En effet, le problème de trouver des racines modulo n de nombres quelconques doit être difficile. Il sera considéré comme tel si la factorisation de n n’est pas connue6 (Massias, 2000). La connaissance de la factorisation de n permet donc de générer de faux jetons. Par ailleurs, ce schéma utilisant une composée d’exponentiations modulaires, le module n doit être choisi d’une manière appropriée afin de rendre difficile la détermination de collisions, même aléatoirement. Dans (Benaloh et al., 1993), les auteurs proposent d’utiliser des entiers rigides (rigid integers) qui se construisent à partir de nombre premiers p et q sûrs (safe primes). Généralement, on demande aussi que p+1 et q+1 admettent chacun un grand diviseur premier. Un problème pratique se pose alors : à qui est confiée la charge de déterminer le module n ? Il existe deux possibilités. La première est de faire confiance à l’autorité. Cette solution est la plus simple mais n’est pas satisfaisante. En effet, une des propriétés d’un bon système d’horodatage est de limiter le besoin de confiance dans une quelconque partie. La deuxième méthode permet de répondre à cette contrainte. Elle consiste à générer le module d’une manière distribuée, c'est-à-dire en utilisant plusieurs parties (il existe des méthodes distribuées de génération d’un module RSA). L’inconvénient de cette méthode est un coût plus important. 6. La sécurité de RSA repose sur ce problème.

Etude des systèmes d’horodatage

19

Par ailleurs, l’exponentiation modulaire est plus lente que le simple fait de hacher un document. Les méthodes basées sur le hachage semblent donc être mieux adaptées pour l’horodatage des documents électroniques. Il existe d’autres méthodes basées sur les accumulateurs tels que les accumulateurs de Nyberg (Nyberg, 1996) ou celle se basant sur la méthode des restes chinois (Massias, 2000). Aucune d’entre elles ne semble être adaptée à une utilisation dans le cadre de l’horodatage des documents électroniques (Massias, 2000). En effet, pour être efficace, les accumulateurs de Nyberg imposent d’utiliser des chaînes de taille importante appartenant aux documents à horodater. La méthode des restes chinois est moins efficace en terme de coût opératoire que celle des arbres binaires. 6. Systèmes distribués Jusqu’à présent nous nous sommes intéressé à des schémas appelés centralisés car ils ne font appel qu’à un seul serveur d’horodatage. Or un unique serveur est vulnérable. Il peut être victime d’une panne et/ou d’une attaque en déni de service. Les schémas distribués représentent une alternative intéressante que nous étudions dans cette section. Un schéma d’horodatage distribué est constitué de plusieurs serveurs d’horodatage appartenant généralement à des organismes et pays distincts. Il est donc plus robuste face à des catastrophes naturelles, des pannes matérielles ou des attaques réseau. Il permet en outre de gérer un nombre plus important de requêtes à un moment donné. De plus, l’intégrité du service repose sur le comportement d’entités indépendantes. Celles-ci n’ont à priori aucune raison de s’associer dans une action malveillante. Haber et Stornetta (Haber et al., 1991) suggèrent d’utiliser des systèmes distribués pour l’horodatage des documents électroniques. Le principe est le suivant : il n’existe pas de notion d’autorité, l’ensemble des clients constituant le système d’horodatage. Ainsi, si Alice veut horodater un document xi, elle envoie l’empreinte yi associée à un nombre k de clients. Chacun de ces clients lui retourne alors ce qu’on appelle un fragment de jeton. L’ensemble des fragments constitue le jeton final. Ainsi le fragment Sj créé par le Bill, par exemple, est formé par l’empreinte digitale yi, le temps tj apposé par Bill, et l’identificateur idj qui lui est associé, le tout signé pour l’authentifier. Le jeton final S a alors la forme suivante : S = ( (yi, idi) , (S1, …, Sk)), avec : S : jeton final associé à la requête d’ordre i ; yi : empreinte d’ordre i à horodater ;

20

Technique et science informatiques. Volume X – n° X/2005

idi : identificateur associé au client émetteur de la ième requête ; S1,…,Sk : fragments de jetons retournés par les différents clients ; k : nombre de clients qui collaborent pour créer le jeton final. Dans un tel système il suffirait qu’Alice choisisse volontairement k clients corrompus et en association malveillante pour pouvoir produire un faux jeton d’horodatage. Afin d’éliminer ce risque, Haber et Stornetta proposent de choisir les k clients parmi les n possibles en se basant sur l’utilisation de générateurs pseudoaléatoires. De tels générateurs permettent, en prenant en paramètre ce qu’on appelle un germe, de générer une séquence qui peut être considérée comme aléatoire. Dans le cadre d’un système distribué d’horodatage, ils peuvent être utilisés de la façon suivante : l’empreinte digitale à horodater devient le paramètre d’entrée du générateur en question. La sortie peut alors être interprétée comme un k-uplet d’identificateurs de clients. En d’autres termes, si G est le générateur aléatoire utilisé, on aura :

G(yi)= (id1, …, idk), avec : G : générateur pseudo aléatoire ; yi : empreinte digitale associée à la requête d’ordre i ; id1,…, idk : identificateurs associés aux clients qui vont générer des jeton pour la requête i ; k : nombre de clients qui collaborent pour créer le jeton final.

fragments de

Ainsi, le seul moyen de produire un faux jeton d’horodatage serait d’utiliser une empreinte digitale y telle que G(y) identifie k clients corrompus qui coopéreraient pour produire le jeton final. La robustesse d’un tel système repose sur la difficulté d’obtenir une telle situation. Sur le plan pratique cependant, concevoir un tel système implique un certain nombre de contraintes. En premier lieu, il faut disposer d’un répertoire public identifiant les différents clients du système. Une solution à ce problème a d’ailleurs été proposée dans (Benaloh et al., 1993), se basant sur l’utilisation des accumulateurs. Il faut aussi prévoir le cas où des clients ne sont plus accessibles durant la phase d’horodatage ou encore durant la phase de vérification. Les clients constituant le système à un moment donné peuvent en effet ne plus en faire partie ultérieurement. Les clients doivent aussi disposer de sources temporelles fiables, ce qui est difficile à contrôler. Il faut pouvoir retrouver, à partir des informations temporelles reçues dans les différents fragments le temps absolu qui sera associé au jeton final, et qui constituera une preuve au sens juridique du terme. Il faut étudier la vulnérabilité du système face à certaines attaques. Par exemple si l’un des clients est

Etude des systèmes d’horodatage

21

corrompu, il faut être en mesure de l’identifier et l’éliminer. Il faut de plus résoudre le problème lié à l’utilisation et à la pérennité des signatures électroniques. Plusieurs modèles de systèmes distribués ont été conçus, faisant coopérer des autorités d’horodatage. Chaque autorité utilise individuellement l’un des protocoles centralisés présentés précédemment et coopère avec les autres pour créer des jetons fiables. Ainsi, dans (Benaloh et al., 1993), un modèle décentralisé se basant sur les schémas d’accumulation est proposé. Dans (Benaloh et al., 1991), c’est le concept de la diffusion qui est utilisé. Dans (Maniatis et al., 2001), ce sont les réseaux pair à pair (P2P)7 qui sont utilisés. Notons cependant qu’aucun de ces modèles ne semble être assez abouti pour tirer avantage de toutes les possibilités qu’offrent les systèmes distribués, à la fois pour réduire le besoin de confiance et pour optimiser l’utilisation des ressources de stockage et de communication. 7. Standardisation L’IETF a publié en Août 2001 l’RFC 3161 relatif à l’horodatage dans le cadre d’une infrastructure Internet à clef publique X.509. Le document édité par l’IETF décrit le format d’une requête envoyée à une autorité d’horodatage et celui de la réponse de cette même autorité. Il établit par ailleurs plusieurs recommandations afin de sécuriser le processus de génération des cachets d’horodatage. On se propose dans cette partie de les résumer. En partant du fait qu’un protocole d’horodatage opère globalement comme suit :

– Un client émet une requête TimeStampReq. – A la réception de la requête, l’autorité effectue certaines opérations afin de générer la réponse associée, en d’autres termes un TimeStampResp. L’IETF décrète qu’une autorité d’horodatage est appelée à :

– tester la validité de la requête et générer un jeton pour chaque requête valide reçue, – n’horodater que l’empreinte digitale associée à un document calculée à partir d’une fonction de hachage sûre dont l’identificateur (OID) est inclus dans la requête. L’autorité peut refuser d’émettre un jeton et le signaler à l’émetteur par une erreur dans le cas où la fonction de hachage utilisée n’est pas assez robuste ou sûre, – vérifier la validité de l’identificateur (OID) et la validité de l’empreinte reçue. La taille de cette dernière doit correspondre à la fonction utilisée, – ne pas opérer d’autres opérations sur l’empreinte en question, 7. Le P2P (peer to peer) est un modèle distribué de communications dans lequel chaque partie possède les mêmes capacités et peut initier une session.

22

Technique et science informatiques. Volume X – n° X/2005

– inclure un identificateur unique pour chaque jeton délivré, – inclure une indication temporelle issue d’une source temporelle sûre dans chaque jeton. Le temps doit être exprimé en UTC (Coordinated Universal Time), – inclure dans chaque jeton un identifiant unique de la politique de sécurité utilisée pour générer le jeton. En effet, l’autorité peut disposer de plusieurs algorithmes de signature différents qui sont plus ou moins robustes, de différentes clefs de différentes tailles…, – inclure des informations additionnelles dans le jeton uniquement sur la demande du client et lorsque l’autorité peut les prendre en charge. Dans l’impossibilité, ceci doit être signalé par une erreur dans la réponse, – ne pas inclure d’identificateur de l’entité émettrice de la requête dans le jeton délivré, – signer chaque jeton délivré en utilisant une clef exclusivement dans ce but, et disposer du certificat relatif au droit d’utilisation de la clef correspondante. A la réception de la réponse de l’autorité, le client est amené à réaliser les opérations suivantes : – Il doit commencer par vérifier si des erreurs lui ont été signalées par la TSA dans la réponse reçue. – Si aucune erreur n’y figure, il doit vérifier les différents champs présents dans la réponse, la validité de la signature de la TSA, et le fait que le jeton reçu correspond bien à la requête émise. En d’autres termes, il doit vérifier que le jeton contient la bonne empreinte digitale, le bon OID, et le certificat valide de l’autorité. En particulier, il faut vérifier que ce dernier ne figure pas dans les listes de révocations de certificats. – Finalement, le client doit vérifier la validité du temps inclus dans la réponse, ainsi que l’identificateur de la politique de sécurité afin de vérifier que cette dernière correspond à ses exigences. Le RFC 3161 spécifie par ailleurs plusieurs protocoles qui peuvent constituer une base de transport pour le protocole d’horodatage proprement dit, tel que http, ftp, smtp ou simplement tcp. Par ailleurs, le document introduit certaines recommandations permettant de garantir la pérennité du système. Ainsi, concernant l’utilisation des signatures électroniques, l’IETF stipule que certaines contraintes doivent être respectées :

– Quand une autorité d’horodatage n’est plus opérationnelle, elle doit, même si les clefs dont elle dispose sont toujours valides, veiller à afficher ses certificats dans une liste de révocations. Ainsi, à n’importe quel moment ultérieur à la date de révocation, tout jeton généré antérieurement sera considéré comme valide, et tout jeton qui l’a été ultérieurement ne le sera pas.

Etude des systèmes d’horodatage

23

– Quand la clef privée associée à une autorité est compromise, Aucun des jetons signés avec la clef en question ne peut être considéré comme valide, qu’il ait été généré antérieurement ou ultérieurement à la compromission. Le protocole doit spécifier un moyen de vérifier la validité d’un jeton même après la compromission de la clef utilisée pour le générer. Le recours à plusieurs horodatages d’un même document auprès de différentes autorités par exemple pourrait constituer une solution. – La durée de vie d’une signature étant directement liée à la taille de la clef utilisée, cette dernière doit être suffisamment grande pour garantir une robustesse conséquente. Dans tous les cas, la durée de vie d’une signature étant limitée, chaque jeton délivré par une autorité doit être signé ou horodaté de façon périodique afin de renouveler sa validité. Le document fait aussi référence aux malveillances causant le retard, voir la perte d’une requête d’horodatage. Celles-ci peuvent être dûes à des attaques de type « man in the middle » ou à des attaques de déni de service. L’enjeu ici est d’autant plus grave qu’il peut s’agir de requêtes dont la précision temporelle est critique. La solution qui y est préconisée serait, au niveau des applications clientes, de fixer des délais d’attente pour la réception des jetons une fois la requête émise. Ainsi, si la réponse accuse un temps supérieur à celui qui devrait être mis dépendamment du protocole de transport utilisé, on peut présumer qu’il y a un problème. Mais dans ce cas, aucune parade n’existe, puisque l’autorité ne doit pas pouvoir antidater un document. 8. Systèmes d'horodatage existants Il existe aujourd’hui plusieurs systèmes d’horodatage accessibles à travers Internet. Utilisant des protocoles simples, liés ou distribués, les implémentations varient. Nous fournissons dans cette section de brefs descriptifs pour les plus cités d’entre eux dans le cadre de la littérature associée à ce domaine. 8.1. Services d’horodatage simples Plusieurs de ces services sont accessibles via le réseau Internet, parmi lesquels Authentidate, OpenTSA, e-Timestamp, Kotio-secureBox... Nous présentons ici le produit de Itconsult8. Il se base sur l’utilisation de PGP et du protocole SMTP. Il opère comme suit :

– Un numéro de séquence est associé à chaque requête reçue. – Une date est ensuite apposée, le tout est signé et renvoyé au client.

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

– Une ‘signature détachée’ est gardée par l’autorité, comportant, le numéro de séquence attribué, la date et l’heure à laquelle elle a été produite. – Chaque jour, deux fichiers sont générés, l’un contenant le numéro de la dernière signature issue, et l’autre contenant toutes les signatures détachées créées ce jour là. – Ces fichiers sont publiés sur le site et hebdomadairement transmis à un groupe d’information. Ainsi, le fait d’utiliser des numéros de séquence reproduisant un ordre chronologique et de recourir à leur publication peut empêcher l’autorité de générer ultérieurement de faux jetons qui briseraient la chaîne chronologique. Mais rien dans ce schéma n’empêche l’autorité de se compromettre avec un des possesseurs d’un jeton pour modifier le contenu de son message, faussant ainsi l’information qui a été horodatée. De plus, un tel schéma ne prévoit pas le cas où la validité de la signature de l’autorité est critique entraînant ainsi une remise en question totale de tous les jetons délivrés. 8.2. Digital Notary9 Digital Notary utilise le modèle en arbre binaire où la granularité temporelle est d’une seconde. Ce système opère comme suit :

– L’utilisateur dispose d’un logiciel client, permettant de le connecter via Internet au service d’horodatage. Ce logiciel permet d’envoyer l’empreinte digitale associée au document à horodater. – La durée d’un tour étant d’une seconde, toutes les empreintes reçues pendant un tour donné sont traitées selon le modèle en arbre binaire. – Chaque jeton associé à un tour est publié sur le réseau Internet. – Les jetons associés aux tours sont aussi traités de la même façon, et un jeton global est généré toutes les semaines. Il est publié dans le New York Times, permettant ainsi de valider tous les jetons précédents. Ce système a été conçu par Haber et Stornetta qui ont déposé un brevet relatif à l’utilisation de la méthode en arbre binaire (Haber et al, 1998). Il allie les avantages et les inconvénients de cette méthode (section 4.1).

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

Etude des systèmes d’horodatage

25

8.3. Prokopius Prokopius est un système d’horodatage essentiellement basé sur l’utilisation du P2P. La décentralisation est l’un des avantages majeurs de ce modèle, permettant ainsi de passer outre le problème du besoin de confiance qui se pose dans le cas d’un système centralisé. Prokopius est un système d’horodatage à clef publique, basé sur l’utilisation du protocole en arbre binaire, et fournissant par ailleurs un service d’archivage des certificats numériques sécurisé et distribué. Ainsi, il permet de vérifier les documents signés ou horodatés, non seulement lorsque les clefs ont été changées, mais aussi dans le cas où les autorités responsables ne sont plus opérationnelles. En effet, du fait de la précarité des clefs associées aux signatures, la plupart des gens en changent périodiquement. Soit un utilisateur A disposant d’une paire de clef Pr/Pb (respectivement privée et publique). L’utilisateur A utilise sa clef privée Pr pour signer un document x à horodater. Toute personne en possession de Pb pourrait alors le vérifier. Lorsque la clef Pr devient obsolète, une autre paire de clefs est assignée à l’utilisateur A. Un vérificateur désirant vérifier la signature de A sur le document x doit pouvoir retrouver la clef publique Pb qui appartenait à A lors de la signature de ce document. Associer le certificat de l’utilisateur au document en question avant de l’horodater pourrait constituer une solution. Mais ce certificat, afin d’être considéré comme valide, doit être signé par l’autorité de certification qui l’a délivré. Le problème est maintenant rétroactif, dans le sens où les clefs qu’utilisent les autorités de certification, ainsi que les autorités en elles même sont volatiles. Dans un tel cadre, il semble donc nécessaire de concevoir un système d’archivage des certificats associés aux autorités de certification. C’est typiquement le service que fournit Prokopius. Prokopius, du fait de sa distribution, apporte aussi une solution au problème de publication en fournissant un service d’archivage des jetons, ce qui permet de résoudre le problème de survie associé à la publication. Les jetons sont donc répliqués et stockés au niveau des différents nœuds qui constituent le système global. Lors de la phase de vérification, un consensus entre les différents nœuds du système est établi afin de pouvoir retrouver le jeton final, même en présence de nœuds corrompus. La non dépendance est ainsi garantie. Prokopius est préconisé pour être utilisé comme système d’horodatage et de publication pour les autorités d’horodatage elles mêmes, fournissant ainsi un support pour l’archivage et la publication de leurs jetons ainsi que de leurs certificats. Par ailleurs, son architecture distribuée permet de garantir la disponibilité du système. Les limites de ce modèle se ressentent au niveau des ressources nécessaires pour le stockage et la transmission. En effet, tout jeton généré doit être envoyé à tous les nœuds du système et stocké par chacun d’entre eux. Plus le nombre de nœuds

26

Technique et science informatiques. Volume X – n° X/2005

augmente plus la consommation des ressources de stockage et de transmission en sera affectée. Par ailleurs, il serait probablement intéressant d’exploiter l’architecture distribuée du système pour la génération des jetons et non pas uniquement pour leur stockage. Conclusion Dans cet article, nous avons étudié les différentes techniques d’horodatage existantes. Nous avons présenté les différentes contraintes que doit respecter un système d’horodatage. Elles sont généralement classifiées en contrainte de confidentialité, contrainte de confiance, contraintes de ressources et contrainte de non dépendance du jeton. La confidentialité est généralement garantie par le recours à des moyens cryptographiques. Pour ce qui est du besoin de confiance, les solutions peuvent être classifiées en solutions protocolaires ou architecturales. Les solutions protocolaires permettent de lier les jetons entre eux, créant ainsi un graphe de liaisons, de façon à empêcher l’autorité de modifier, supprimer ou introduire des jetons à posteriori. Les solutions architecturales permettent, quant à elles de faire collaborer plusieurs autorités entre elles dans le cadre d’un système distribué, réduisant ainsi les risques de malveillance. Plusieurs variantes protocolaires et distribuées ont ainsi vu le jour, se distinguant par la façon dont elles répondent aux contraintes de ressources et de non dépendance. Quoique plusieurs de ces solutions aient été implantées, aucune d’entre elles ne permet, moyennant des coûts moindres, de répondre de façon définitive à toutes les contraintes. Les recherches se poursuivent dans ce sens, afin de proposer des solutions issues de la théorie des graphes, de l’informatique distribuée et de la cryptographie. Nous pensons que l’informatique distribuée est à même de contribuer à l’émergence de solutions efficaces dans le domaine de l’horodatage. Les solutions proposées jusqu’ici dans cette direction sont trop limitées et ne tirent pas avantage de toutes les possibilités qu’offrent les systèmes distribués. Par ailleurs, les dernières avancées en cryptographie dans les domaines de la cryptographie à seuil, des systèmes à base d’identité, ou du calcul multipartite sécurisé, pourraient aussi être utilisées pour contribuer à la robustesse d’un schéma d’horodatage distribué.

Etude des systèmes d’horodatage

27

Bibliographie Benaloh J., De Mare M., « Efficient Broadcast time-stamping », Technical report 1, Clarkson University Department of Mathematics and Computer Science, 1991. Benaloh J., De Mare M., « One-way accumulators: A decentralized alternative to digital signatures », Advances in Cryptology, volume 765 of Lecture Notes in Computer Science, EUROCRYPT 93, pages 274-285, Mai 1993. Bayer D., Haber S., Stornetta W S., « Improving the efficiency and reliability of digital time-stamping », Methods in Communication, Security and Computer Science, Sequences’91, pages 329-334, 1992. Buldas A., Laud P., « New Linking Schemes for Digital Time-Stamping », First International Conference on Information Security and Cryptology, pages 3-14, December 1998. Buldas A., Laud P., Lipmaa H., Villemson J., « Time Stamping with Binary-Linking Schemes », Advances on cryptology, Volume 1462 of Lecture Notes in Computer Science, Crypto’98, pages 486-501, 1998. Buldas A., Lipmaa H., Schoenmakers B., « Optimally efficient accountable time-stamping », Public Key Cryptography '2000, volume 1751 of Lecture Notes in Computer Science, pages 293-305, 2000. Haber S., Stornetta W S., « How to Time-stamp a Digital Document », Journal of Cryptology : the Journal of the International Association for Cryptologic Research 3(2), pages 99-112, 1991. Haber S., Stornetta W S., « Digital document authentication system », US-patent no 5,781,629, 1998. Lipmaa H., « Secure and Efficient Time Stamping Systems », Ph.d, University of Tartu, Estonia, 1999. Massias H., « La certification cryptographique du temps ». Phd, Louvain-la-Neuve, Belgique, 2000. Nyberg k., « Commutativity in cryptography ». Proceedings of the First International Workshop on Functional Analysis at Trier University, pages 331-342, 1996. Nyberg k., « Fast accumulated hashing », Third Fast Software Encryption Workshop, volume LNCS 1039, pages 83-88, 1996. Maniatis P., Giuli T J., Baker M., « Enabling the long-term archival of signed documents through Time Stamping », Technical Report arXiv:cs.DC/0106058, Computer Science Department, Stanford University, California, USA, 2001. Just M., « Some timestamping protocol failures »,. Internet Society Symposium on Network and Distributed System Security, 1998.