Academia.eduAcademia.edu

Les protocoles de non-répudiation

2001

Table des matières Glossaire Notations Liste des protocoles Les fonctions de hachage Une fonction de hachage est une fonction qui accepte des données binaires de tailles quelconques et qui produit des résultats binaires de taille fixe (propriété de compression). L'évaluation de cette fonction doit être aisée (la complexité de l'algorithme d'évaluation de cette fonction doit s'exprimer polynomialement, et de préférence linéairement, en fonction de la taille des données). Une fonction de hachage peut être paramétrée ou non par une clé secrète, les fonctions de hachage s'appellent alors respectivement message authentication code (MAC) ou manipulation detection code (MDC) 3. Une fonction de hachage est dite résistante à la préimage si pour la plupart des valeurs produites par cette fonction il est calculatoirement impossible de trouver une donnée de départ produisant cette valeur de résultat. Une fonction de hachage est dite résistante à la seconde préimage si à partir d'une donnée de départ connue il est calculatoirement impossible de trouver une donnée de départ distincte produisant le même résultat. Une fonction MDC est dite à sens unique si elle respecte les propriétés de résistance à la préimage et de résistance à la seconde préimage. Une fonction MDC à sens unique est résistante aux collisions, s'il est calculatoirement impossible de trouver deux valeurs de départ distinctes produisant le même résultat. Une telle fonction de hachage sera dite sûre 4. 2 Les schémas de signatures utilisent aussi des clés publiques et privées. La clé privée est utilisée pour générer la signature et la clé publique est utilisée pour la vérifier. 3 Ces fonctions de hachage peuvent aussi s'appeler CRC ou checksum dans la littérature. 4 Les fonctions de hachage sont parfois classées en deux catégories : les fonctions de hachage fortement à sens unique, que nous appelons ici fonctions de hachage sûres ; et les fonctions de hachage faiblement à sens unique, que nous appelons ici fonctions de hachage à sens unique.

UNIVERSITÉ LIBRE DE BRUXELLES Faculté des Sciences Les protocoles de non-répudiation Thèse présentée en vue de l’obtention du grade de Docteur en Sciences Olivier MARKOWITCH Année académique 2000-2001 Remerciements Je tiens à remercier Elena, mes parents, ma soeur, mes beaux-parents, mes beaux-frères, ma belle-soeur et aussi ma petite nièce, qui m’ont supporté dans tous les sens du terme durant ces dernières années. J’exprime toute ma gratitude à Yves Roggeman pour m’avoir accueilli au sein de son service, pour m’avoir suivi tout au long de ces années, pour avoir dirigé et maintes fois relu cette thèse et enfin pour l’excellente ambiance de travail qu’il crée au sein de son service. Ma reconnaissance va aussi à Raymond Devillers qui a consacré un temps non négligeable à de nombreuses relectures très attentives de mon manuscrit. Sa rigueur scientifique et son ouverture d’esprit sont pour moi des exemples. Je remercie bien entendu tous les membres de mon jury. Un grand merci à Dieter Gollmann pour avoir accepté sans hésiter de faire partie de mon jury, pour avoir patienté avant de recevoir le manuscrit et pour avoir accepté de lire cette thèse en français. Je remercie Guy Louchard pour avoir toujours répondu promptement et avec intérêt aux questions que j’ai été amené à lui poser au cours de ma recherche. Merci à Jean-Jacques Quisquater d’avoir accepté de faire partie de mon jury et d’avoir accepté de recevoir cette thèse si tardivement. Je tiens à ce que Steve et Shahrokh sachent tout le plaisir que j’ai à collaborer avec eux. Un grand merci aussi à Jianying Zhou pour les multiples, fructueux et chaleureux contacts que nous avons eus. Je remercie mes collègues assistants, professeurs, chercheurs et secrétaires pour avoir créé une atmosphère de travail incomparable et tellement agréable au cours de ces années. Je voudrais remercier (dans le désordre) Gregg, Laurent dit Récu, Joël, Marco, Steve, Jean, Jean-Yves, Christian, les Anthony, Antony, les Laurent, Frédéric, Christophe, Eric, Nicolas, Shahrokh, Abdelaziz, Malek, Gilles, Frank, Ismaël et tout récemment Ana, Manu et Gabriel pour tous ces moments de camaraderie qui ont épicé nos journées de travail. Un merci aussi à Pascaline qui m’a contacté dès qu’une place d’assistant s’est libérée au département d’Informatique. Je veux à nouveau exprimer mon affection à ma famille et mes amis pour l’amour qu’ils me témoignent. À Jacques Markowitch Table des matières Glossaire 1 Notations 3 Liste des protocoles 5 1 Introduction 2 La répudiation 7 13 2.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3 Le service de non-répudiation . . . . . . . . . . . . . . . . . . . . 15 2.3.1 Les tierces parties de confiance . . . . . . . . . . . . . . . 16 2.3.2 Les preuves de non-répudiation . . . . . . . . . . . . . . . 18 2.3.3 Les disputes . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.4 Le temps . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4 L’équité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.5 Les protocoles de non-répudiation . . . . . . . . . . . . . . . . . . 23 2.6 Protocoles de non-répudiation et équité 2.7 Le courrier électronique recommandé . . . . . . . . . . . . . . . . 24 2.8 Les protocoles d’échange équitable . . . . . . . . . . . . . . . . . 25 2.9 Protocoles d’échange équitable et de non-répudiation . . . . . . . 26 . . . . . . . . . . . . . . 23 2.10 Les types d’information . . . . . . . . . . . . . . . . . . . . . . . 27 2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 Formalisation et propriétés 29 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 La communication . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ii Table des matières 3.3 Les protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4 Les protocoles d’échange . . . . . . . . . . . . . . . . . . . . . . . 37 3.5 Vérification de protocoles d’échange . . . . . . . . . . . . . . . . 43 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4 Non-répudiation avec tierce partie de confiance 45 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Méthodes avec tierce partie de confiance in-line . . . . . . . . . . 47 4.2.1 4.3 4.4 4.5 4.6 4.7 Le protocole de non-répudiation de Coffey et Saidha . . . 47 Méthodes avec tierce partie de confiance on-line . . . . . . . . . . 53 4.3.1 Le protocole de non-répudiation par balises . . . . . . . . 54 4.3.2 Le protocole de non-répudiation de Zhang et Shi . . . . . 61 4.3.3 Le protocole de non-répudiation de Zhou et Gollmann . . 67 4.3.4 Le protocole de Zhou et Gollmann avec révocation des clés de signature . . . . . . . . . . . . . . . . . . . . . . . 73 Méthodes avec tierce partie de confiance off-line . . . . . . . . . . 74 4.4.1 Le protocole optimiste d’échange équitable d’Asokan . . . 74 4.4.2 Le protocole optimiste de non-répudiation de Zhou et Gollmann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.4.3 Un protocole optimiste et efficace de non-répudiation . . . 89 4.4.4 La révocation des clés de signature dans un protocole optimiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 L’équité véritable . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.5.1 Le protocole générique d’échange équitable de Boyd et Foo 98 4.5.2 Le protocole concret d’échange équitable de Boyd et Foo . 105 Notre approche de l’équité véritable . . . . . . . . . . . . . . . . 108 4.6.1 Le protocole générique d’échange équitable . . . . . . . . 109 4.6.2 Notre premier protocole concret . . . . . . . . . . . . . . . 113 4.6.3 Notre second protocole concret . . . . . . . . . . . . . . . 116 4.6.4 Le protocole de non-répudiation . . . . . . . . . . . . . . . 119 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 5 Non-répudiation sans tierce partie de confiance 127 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2 L’approche calculatoire . . . . . . . . . . . . . . . . . . . . . . . . 127 5.3 L’approche probabiliste de la signature digitale de contrat . . . . 130 Table des matières 5.4 5.5 5.6 iii La mise en gage faible . . . . . . . . . . . . . . . . . . . . . . . . 132 5.4.1 Un protocole d’échange rationnel . . . . . . . . . . . . . . 132 5.4.2 Un protocole d’échange équitable . . . . . . . . . . . . . . 134 5.4.3 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Notre protocole probabiliste de non-répudiation . . . . . . . . . . 136 5.5.1 Le protocole générique . . . . . . . . . . . . . . . . . . . . 136 5.5.2 Le protocole concret . . . . . . . . . . . . . . . . . . . . . 142 5.5.3 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6 Non-répudiation de groupe 149 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.2 Les échanges cycliques . . . . . . . . . . . . . . . . . . . . . . . . 150 6.3 Un protocole d’échange équitable de groupe . . . . . . . . . . . . 150 6.4 Un protocole avec tierce partie de confiance on-line . . . . . . . . 153 6.5 6.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.4.2 Le protocole . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.4.3 Un chiffrement de groupe . . . . . . . . . . . . . . . . . . 159 Un protocole avec tierce partie de confiance off-line . . . . . . . . 160 6.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 160 6.6 Protocoles sans tierce partie de confiance . . . . . . . . . . . . . . 171 6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 7 Conclusion 177 Glossaire Chiffrement et déchiffrement Un système cryptographique est un quintuplet (M, E, K, C, D) tel que M est l’ensemble des messages « clairs », E l’ensemble des chiffrés, K l’ensemble des clés, C l’ensemble des fonctions de chiffrement et D l’ensemble des fonctions de déchiffrement. Une fonction de chiffrement C ∈ C : M × K → E, et la fonction de déchiffrement associée D ∈ D : E × K → M sont telles que pour tout message m ∈ M et toute clé de chiffrement k ∈ K associée à sa clé de déchiffrement k ′ ∈ K nous avons e = C(m, k) ∈ E et m = D(e, k ′ ). Un système cryptographique est sûr s’il est calculatoirement impossible 1 à partir de la plupart des chiffrés e ∈ E de retrouver le message m ∈ M correspondant et/ou la clé k ∈ K utilisée. Un schéma de chiffrement symétrique est un schéma de chiffrement tel que la clé de déchiffrement peut être calculée facilement à partir de la clé de chiffrement. Ainsi les deux clés doivent demeurer secrètes ; seules les entités habilitées à chiffrer et à déchiffrer les possèdent. On parle aussi dans ce contexte de chiffrement à clés secrètes. Un schéma de chiffrement asymétrique est un schéma de chiffrement tel que la clé de chiffrement associée à une entité est publique et connue de tous ; on l’appelle la clé publique de cette entité ; et tel que la clé de déchiffrement associée ne peut être facilement déduite de la clé publique ; on l’appelle la clé privée de déchiffrement, connue uniquement de l’entité habilité à déchiffrer. Toute entité désirant envoyer confidentiellement un message à une autre entité utilisera la clé publique de cette dernière pour chiffrer le message. Le destinataire d’un message ainsi chiffré utilisera sa clé privée pour le déchiffrer. Les signatures digitales Un schéma de signature digitale consiste en un algorithme de génération de signature et un algorithme de vérification associé. 1 Calculatoirement impossible signifie que les délais nécessaires afin de retrouver un message clair ou une clé dépassent la durée de validité du message et/ou de la clé, et ce sur base de la technologie actuelle et celle supposée par extrapolation pendant cette durée. 2 Glossaire Un algorithme de génération de signature produit, sur base de la clé privée 2 du signataire et pour un message donné, un string binaire qui associe ce message au signataire, ou plus précisément à sa clé publique de signature. L’algorithme de vérification est une méthode qui vérifie, au moyen de la clé publique de signature du signataire, si une signature donnée sur un message est valide. Un schéma de signature est dit avec appendice si l’algorithme de vérification se base sur la signature digitale produite ainsi que sur le message correspondant pour déterminer la validité de cette signature. Le message peut ainsi être dissocié de la signature. Un schéma de signature est dit avec recouvrement si l’algorithme de vérification ne se base que sur la signature digitale produite pour déterminer sa validité. La procédure de vérification extraira en outre de cette signature digitale le message qui a été signé (le message est donc intégré dans la signature). Ces techniques utilisent des fonctions de redondance afin de s’assurer de la validité des signatures. Les fonctions de hachage Une fonction de hachage est une fonction qui accepte des données binaires de tailles quelconques et qui produit des résultats binaires de taille fixe (propriété de compression). L’évaluation de cette fonction doit être aisée (la complexité de l’algorithme d’évaluation de cette fonction doit s’exprimer polynomialement, et de préférence linéairement, en fonction de la taille des données). Une fonction de hachage peut être paramétrée ou non par une clé secrète, les fonctions de hachage s’appellent alors respectivement message authentication code (MAC) ou manipulation detection code (MDC)3 . Une fonction de hachage est dite résistante à la préimage si pour la plupart des valeurs produites par cette fonction il est calculatoirement impossible de trouver une donnée de départ produisant cette valeur de résultat. Une fonction de hachage est dite résistante à la seconde préimage si à partir d’une donnée de départ connue il est calculatoirement impossible de trouver une donnée de départ distincte produisant le même résultat. Une fonction MDC est dite à sens unique si elle respecte les propriétés de résistance à la préimage et de résistance à la seconde préimage. Une fonction MDC à sens unique est résistante aux collisions, s’il est calculatoirement impossible de trouver deux valeurs de départ distinctes produisant le même résultat. Une telle fonction de hachage sera dite sûre 4 . 2 Les schémas de signatures utilisent aussi des clés publiques et privées. La clé privée est utilisée pour générer la signature et la clé publique est utilisée pour la vérifier. 3 Ces fonctions de hachage peuvent aussi s’appeler CRC ou checksum dans la littérature. 4 Les fonctions de hachage sont parfois classées en deux catégories : les fonctions de hachage fortement à sens unique, que nous appelons ici fonctions de hachage sûres ; et les fonctions de hachage faiblement à sens unique, que nous appelons ici fonctions de hachage à sens unique. Notations Les entités A, B, O, C : Alice, Bob, Oscar et Colin TPC : une tierce partie de confiance AGT : une autorité de gestion du temps X et Y : deux entités génériques β : un ensemble d’entités Les clés KX : la clé5 publique de l’entité X ′ KX : la clé privée de X associée à la clé publique KX KX1 ...Xn : la clé secrète de session partagée par les n entités X1 . . . Xn K ou k : une clé de session échangée au cours d’un protocole Le chiffrement et déchiffrement K̃ : une clé d’un des types décrits ci-dessus CK̃ (m) : le chiffrement du message m au moyen de la clé K̃ DK̃ (m) : le déchiffrement du message m au moyen de la clé K̃ Cβ (m) : le chiffrement du message m pour les membres de β Les signatures digitales et fonctions de hachage SigX (m) : la signature digitale avec appendice réalisée par X sur le message m f X (m) : la signature digitale avec recouvrement réalisée par X sur le message Sig m h(m) : une fonction de hachage cryptographiquement sûre 6 sans clé sur le message m Les envois A → B : Alice envoie un message à Bob 5 Par souci de lisibilité, les clés publiques, privées et secrètes seront indistinctement notées en majuscules ou en minuscules (certains protocoles usant parfois de la lettre K majuscule pour représenter d’autres concepts qu’une clé publique). 6 Voir le glossaire. 4 Glossaire A ↔ B : Bob prend une information sur un répertoire public 7 d’Alice A ⇔ B : Alice et Bob exécutent un protocole A ⇒ β : Alice diffuse8 un message vers un groupe de récipiendaires β 7 Certains protocoles que nous étudions font usage d’un répertoire public (un répertoire géré par une entité et accessible en lecture à d’autres entités au travers d’un réseau). Dans la littérature, les consultations dans ces répertoires sont notées par ↔, nous conservons ainsi cette notation qui peut cependant ne pas être intuitive. 8 multicast en anglais. Liste des protocoles 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 5.1 5.2 5.3 5.4 6.1 6.2 6.3 6.4 Le protocole de Coffey et Saidha . . . . . . . . . . . . . . . . Le protocole par balises de Rabin . . . . . . . . . . . . . . . . Le protocole de Zhang et Shi . . . . . . . . . . . . . . . . . . Le protocole de Zhou et Gollmann . . . . . . . . . . . . . . . Le protocole modifié de Zhou et Gollmann . . . . . . . . . . . Le protocole d’Asokan et. al . . . . . . . . . . . . . . . . . . . Le protocole optimiste de Zhou et Gollmann . . . . . . . . . . Un protocole optimiste et efficace de non-répudiation . . . . . Le protocole générique de Boyd et Foo . . . . . . . . . . . . . Le protocole générique modifié de Boyd et Foo . . . . . . . . Le protocole concret de Boyd et Foo . . . . . . . . . . . . . . Un protocole générique implémentant l’équité véritable . . . . Un premier protocole concret implémentant l’équité véritable Un second protocole concret implémentant l’équité véritable . Un protocole de non-répudiation respectant l’équité véritable Le protocole d’échange rationnel de Syverson . . . . . . . . . Le protocole d’échange équitable de Syverson . . . . . . . . . Un protocole générique sans tierce partie de confiance . . . . Un protocole concret sans tierce partie de confiance . . . . . . Le protocole d’échange équitable de groupe d’Asokan et. al . . Un protocole de non-répudiation de groupe avec TPC on-line Un protocole de non-répudiation de groupe avec TPC off-line Un protocole d’échange sans tierce partie de confiance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 54 61 67 74 75 85 90 100 102 105 109 114 117 120 133 134 136 142 151 154 161 172 Chapitre 1 Introduction Ce travail est consacré à l’étude des protocoles de non-répudiation. Le but de tels protocoles est simple : des entités qui communiquent désirent s’assurer que les messages qu’elles envoient soient bien reçus et veulent connaître avec certitude l’origine des messages qu’elles reçoivent. Les informations produites au cours de ces protocoles devront aussi permettre à ces entités de prouver à des entités tierces qu’elles ont reçu un message d’une entité ou qu’un message qu’elles ont envoyé a été reçu. Si ces buts paraissent simples et leur utilité évidente, il a cependant fallu attendre la deuxième moitié des années nonantes pour que l’étude des protocoles de non-répudiation débute réellement. Dans un contexte informatisé, les entités en communication peuvent se trouver à de grandes distances, les réseaux utilisés pour les connecter offrent des qualités de service variables en terme de rapidité, fiabilité et de confidentialité. Ainsi les mécanismes à mettre en œuvre, afin de s’assurer du succès des communications et de la non-répudiabilité des envois, ne sont pas élémentaires. L’étude des protocoles de non-répudiation est intéressante, en outre, à plusieurs titres. Tout d’abord, un intérêt pratique est induit par l’essor du commerce électronique. Ensuite, comme nous le verrons tout au long de cette étude, de nombreux outils cryptographiques sont utilisés pour mettre au point les protocoles de non-répudiation. Les protocoles de non-répudiation sont en effet, entre autres, basés sur des mécanismes d’intégrité, les signatures digitales, le chiffrement symétrique et asymétrique. . . Ces outils seront cependant souvent utilisés de manière générique : la plupart des protocoles étudiés ou proposés supposeront l’existence de ces outils, mais ne seront pas dépendants d’un algorithme précis. La sécurité des protocoles ne dépendra donc pas de la robustesse (sécuritaire) d’un algorithme particulier, mais plutôt de l’existence (même théorique) d’un tel algorithme robuste. Enfin, le sujet n’étant étudié que depuis peu de temps, nous présenterons dans ce travail la quasi totalité des résultats en relation avec les protocoles de nonrépudiation au moment de sa rédaction. Notre but a été triple. Nous nous sommes, dans un premier temps, proposé de présenter la somme des connaissances existantes liées aux protocoles de non- 8 Chapitre 1 : Introduction répudiation. Cette présentation de l’existant est faite au-travers des différents chapitres et est itérative. En effet, au cours des années, les desiderata liés aux protocoles de non-répudiation ont évolué. Au sein de chaque chapitre nous suivons cette évolution comme fil conducteur. La plupart des protocoles existants font usage d’une tierce partie de confiance qui assure la bonne marche du protocole. Nous présentons les contraintes de plus en plus restrictives imposées aux tierces parties de confiance. D’un autre côté, nous décrivons les rares protocoles sans tierce partie de confiance existant dans des domaines connexes à la non-répudiation. Dans un deuxième temps, nous présentons de nouveaux protocoles en relation avec chaque évolution « clé ». Nous proposons des protocoles avec tierce partie de confiance, le premier protocole de non-répudiation sans tierce partie de confiance ainsi que les premiers protocoles de non-répudiation à plus de deux parties. Enfin, dans un troisième temps, nous modélisons les protocoles d’échange et nous nous basons sur ce modèle pour définir la notion d’équité. Les protocoles d’échange d’information qui respectent la propriété d’équité sont tels qu’ils empêchent des entités malhonnêtes impliquées dans le protocole de nuire aux entités honnêtes. Les définitions basées sur le modèle proposé sont utilisées tout au long de l’étude afin de vérifier la validité des protocoles. Chaque protocole de non-répudiation sera étudié sous plusieurs aspects : – Nous vérifierons tout d’abord le respect de la propriété d’équité. – Nous nous assurerons aussi que le protocole se termine en un temps fini (le protocole sera alors dit temporellement fini). – Nous considérerons par la suite les disputes qui peuvent survenir après la réalisation du protocole. En effet, le but des protocoles de non-répudiation est de faire en sorte qu’aucune des entités en communication ne puisse affirmer quelque chose de faux à propos des échanges de messages. Ainsi, après le protocole, si des entités ne sont pas d’accord sur l’origine ou la réception d’un message, elles pourront présenter le différent à un juge qui sera en mesure de déterminer objectivement, pour peu que le protocole utilisé lors de l’échange de messages soit correct, ce qui s’est passé au cours du protocole. – Nous verrons aussi dans quelle mesure le protocole réalise l’échange des informations avec succès lorsque toutes les entités en communication sont honnêtes. Cette propriété, appelée viabilité, n’est pas automatiquement impliquée par la propriété d’équité : un protocole d’échange équitable peut être tel qu’aucun échange n’ait lieu au cours du protocole même si les entités participantes sont toutes honnêtes. Nous verrons que cette propriété toute simple ne sera parfois vérifiée que si des contraintes additionnelles sont greffées au protocole. – Certains protocoles font usage d’une tierce partie de confiance pour assurer l’équité. Cette tierce partie intervient dans le protocole pour aider les entités à échanger les informations et est considérée comme étant toujours honnête. 9 Pour chaque protocole utilisant une telle tierce partie nous ébaucherons cependant l’étude de l’impact d’une déviance du comportement de cette tierce partie de confiance. Pour chaque cas de déviance identifié, nous déterminerons dans quelle mesure les entités peuvent le détecter. L’étude est composée des cinq chapitres principaux suivants, numérotés de deux à six. Au chapitre 2, nous introduisons les concepts propres aux protocoles de nonrépudiation. Nous situons les protocoles de non-répudiation dans le cadre des protocoles d’échange. Nous introduisons la propriété d’équité, la notion de preuve de non-répudiation et le rôle éventuel des tierces parties de confiance. Le chapitre 3 reprend les différentes formalisations que nous proposons. Nous y modélisons un acteur, une communication, un protocole, un protocole d’échange et un protocole de non-répudiation. Sur base ce modèle, nous proposons une définition de l’équité, de la borne dans le temps et de la viabilité. L’étude des protocoles de non-répudiation à deux entités faisant usage de tierces parties de confiance est réalisée au chapitre 4. Ce chapitre reprend la quasi totalité des protocoles de non-répudiation existants. Ces protocoles sont étudiés à la lumière du modèle et des définitions proposés au chapitre précédent. Nous progressons au cours de ce quatrième chapitre en suivant l’évolution qu’ont connue les protocoles de non-répudiation ces dernières années. Nous mettons ainsi en évidence l’effort réalisé pour diminuer la lourdeur induite par les tierces parties de confiance, tout en ne s’en passant jamais tout à fait : – Les premiers protocoles de non-répudiation font usage d’une tierce partie de confiance comme intermédiaire à chaque envoi de message ; nous présentons dans ce contexte le protocole de Coffey et Saidha. – Puis les protocoles ont été voulus tels que la tierce partie de confiance intervienne mais plus comme intermédiaire obligé. Nous illustrons cela par le protocole par balises de Rabin, le protocole de Zhang et Shi, et le protocole de Zhou et Gollmann. – Une évolution des protocoles de non-répudiation avec tierce partie de confiance a été réalisée en proposant que la tierce partie de confiance n’intervienne plus qu’en cas de problème au cours du protocole. Ainsi des entités honnêtes réaliseraient le protocole sans intervention de la tierce partie. Nous présentons à ce propos les protocoles d’Asokan et al., et de Zhou et Gollmann, ainsi qu’un nouveau protocole que nous avons conçu en collaboration avec Steve Kremer et qui corrige certains manquements des protocoles précédents. Ce protocole a été développé indépendemment d’un autre protocole réalisé par Zhou et al. lequel corrige d’une manière assez proche les manquements existants. – Nous introduisons alors la notion d’équité véritable qui impose que, quelle que soit la manière dont se déroule le protocole, les informations échangées soient 10 Chapitre 1 : Introduction toujours les mêmes (que la tierce partie de confiance soit intervenue ou non). Nous évoquons les travaux de Chen et présentons les protocoles proposés par Boyd et Foo. Nous proposons alors trois nouveaux protocoles dans cette famille, dont un protocole de non-répudiation respectant l’équité véritable. Ces protocoles résultent de travaux réalisés en grande partie en collaboration avec Shahrokh Saeednia. Au chapitre 5 sont abordés les protocoles de non-répudiation à deux entités sans tierce partie de confiance. Aucun protocole de non-répudiation n’avait été proposé dans ce contexte. Nous présentons les travaux existants les plus proches de nos besoins de non-répudiation et décrivons les premières techniques allant dans cette direction, proposées au cours des années quatre-vingts, mais qui ont des exigences trop sévères en terme de puissance de calcul des diverses entités pour être réalistes. Nous étudions ensuite une approche probabiliste de l’équité dans les protocoles d’échange de signatures digitales sur un contrat, qui ne s’applique cependant pas aux protocoles de non-répudiation. Nous présentons alors une approche originale de Syverson qui permet une brisure de l’équité afin de s’affranchir de la tierce partie de confiance. Enfin nous proposons un protocole générique de non-répudiation permettant de se passer de la tierce partie de confiance au risque d’une perte probabiliste d’équité. La probabilité que le protocole ne soit pas équitable peut être paramétrée et être rendue aussi petite que voulue au prix d’une augmentation des échanges et des calculs à réaliser. Nous proposons alors un protocole concret basé sur ce protocole générique et qui est performant dans le sens où, si on désire réduire le risque de perte d’équité, seule la quantité d’information à transmettre augmente et non la quantité de calcul à réaliser. Ce travail a été réalisé en collaboration avec Yves Roggeman. Les protocoles proposés sont à l’heure actuelle les seuls protocoles connus de non-répudiation sans tierce partie de confiance. Le sixième chapitre étudie les protocoles de non-répudiation où plus de deux entités désirent communiquer. Nous examinons l’unique protocole d’échange existant s’approchant de nos besoins. Nous mettons en évidence les manques de ces protocoles par rapport aux protocoles de non-répudiation de groupe et nous proposons deux nouveaux protocoles de non-répudiation de groupe avec tierce partie de confiance. Ces travaux résultent également d’une collaboration avec Steve Kremer. Nous évoquons alors la non-répudiation de groupe sans tierce partie de confiance basée sur les protocoles définis au cinquième chapitre, puis nous proposons un protocole d’échange de groupe sans tierce partie de confiance au cours duquel l’équité peut être brisée à tout moment en connaissance de cause par les entités en communication (d’une manière similaire à celle proposée par Syverson au cinquième chapitre). Aucune généralisation à plus de deux entités en communication n’avait préalablement été proposée dans le cadre des protocoles de non-répudiation. Nous concluons alors et identifions quelques travaux qui pourraient être réalisés dans un proche futur. Ce travail s’articule autour de la modélisation des protocoles d’échange, propo- 11 sée au troisième chapitre. Ces formalismes servent de canevas aux analyses de protocoles réalisées dans tous les chapitres suivants. L’apport de ce travail est donc étroitement lié aux buts que nous nous étions fixés. À savoir, proposer un modèle à la lumière duquel tous les protocoles existants ou proposés sont abordés et critiqués ; présenter, au sein de cette mise en forme, l’ensemble des protocoles de non-répudiation connus au moment de la rédaction de cette thèse, offrant ainsi au lecteur une vision globale et structurée du sujet ; enfin, proposer plusieurs protocoles de non-répudiation innovants, ou généralisant des notions existantes. Ainsi, la notion de points de complétude définis à la section 3.4 est à la base du principe de la démonstration d’équité exposée à la section 3.5 et utilisée aux chapitres 4 à 6. D’un autre côté, tout au long des chapitre 4 et 6, nous avons systématiquement envisagé différents comportements malhonnêtes de la tierce partie de confiance. Notre travail original démontre aussi la faisabilité de plusieurs généralisations ainsi que de la réduction de contraintes irréalistes. À la section 4.4.3 nous proposons un protocole de non-répudiation avec tierce partie de confiance qui allège les contraintes pesant sur les canaux de communication nécessaires au protocole qui était précédemment le plus abouti. À la section 4.6, dans le cadre de protocoles respectant une propriété d’équité dite véritable, nous présentons un protocole d’échange équitable plus efficace (en termes de calculs et de communications) que les protocoles existants. Nous proposons, à la même section, le premier protocole de non-répudiation respectant l’équité véritable. Un protocole de non-répudiation ne nécessitant pas de tierce partie de confiance et respectant la propriété d’équité de manière probabiliste est proposé et décrit à la section 5.5. Enfin, différentes généralisations des protocoles de non-répudiation à plus de deux entités (outre l’éventuelle tierce partie de confiance) sont envisagées aux sections 6.4 et 6.5. Nous y présentons deux protocoles de non-répudiation, utilisant une tierce partie de confiance, au cours desquels une entité communique simultanément avec n autres entités. Ceci sera à nouveau développé dans notre septième et dernier chapitre en guise de conclusion. Chapitre 2 La répudiation 2.1 Préambule Au cours de ce chapitre nous allons introduire les différents concepts nécessaires à la compréhension des protocoles de non-répudiation. Ces notions seront décrites informellement ici et seront pour la plupart d’entre elles reprises formellement au chapitre 3. Cependant certaines définitions de moindre importance, dans le cadre de ce travail, ne seront décrites que dans ce chapitre (tels les types d’information, etc.). 2.2 Introduction La répudiation est un des écueils sur lesquels un protocole de communication peut échouer, et ce pour diverses raisons qui seront abordées dans ce chapitre. Informellement, nous pouvons dire que, dans le contexte de la sécurité informatique, la répudiation est le comportement d’une partie qui a été impliquée dans une communication au travers d’un réseau et qui, par la suite, nie malhonnêtement avoir pris part à cette communication (en niant avoir reçu et/ou envoyé certaines informations au cours de celle-ci). La répudiation n’est évidemment pas le seul obstacle au bon déroulement d’une telle communication. D’autres besoins sécuritaires sont éventuellement à gérer : la confidentialité des informations émises, l’identification des parties en présence, l’authenticité des informations. . . Les outils de sécurité envisagés pour résoudre ces difficultés sont appelés « services de sécurité ». Nous trouvons comme tels services [20] : – l’intégrité des données1 . Ce service permet de détecter toutes modifications, insertions, duplications ou suppressions d’informations qui auraient été opérées sur des données transmises. 1 Il est à noter que le service de sécurité assurant l’intégrité des données se nomme parfois authentification de données. 14 Chapitre 2 : La répudiation – l’authentification des entités2 . L’authentification des entités consiste en la vérification de l’identité des parties en communication. – les signatures digitales. Une signature digitale associée à une information assure les récipiendaires de l’origine et de l’authenticité des informations reçues. L’auteur des données réalise une transformation de son message telle que le résultat obtenu lie son identité au contenu du message. Ainsi toute modification du message ou de l’identité de l’auteur devra être détectée. En conséquence, ce service de sécurité utilise, entre autres, des solutions apportées pour assurer l’intégrité des données. – la confidentialité. Ce service fournit des mesures de protection contre une révélation non-autorisée d’informations. – le contrôle d’accès offre des outils permettant d’empêcher l’usage nonautorisé de ressources. – la non-répudiation est le service de sécurité qui propose des solutions aux problèmes posés par les risques de répudiation. Contrairement à la non-répudiation, les services d’intégrité, d’authentification, de confidentialité et de contrôle d’accès ont été et sont toujours largement étudiés [54, 66, 67]. Nous notons cependant depuis quelques années un intérêt croissant pour l’étude de la non-répudiation. Cet intérêt est principalement motivé par l’émergence et le développement rapide du commerce (et en corollaire du paiement) électronique. Ces applications doivent protéger les clients, les banques et les fournisseurs de services d’un éventuel comportement malhonnête de l’une ou l’autre partie impliquée. Actuellement, en pratique, beaucoup de paiements dits électroniques sont des paiements différés. Le client sélectionne et commande un produit via Internet, puis lorsque le produit est livré, la carte de crédit, dont le numéro est indiqué par le client au moment de la commande, est débitée. L’organisme gestionnaire des cartes de crédit garantit le succès de l’opération. Les applications basées sur les mécanismes d’échange correspondent plutôt à des gestions en-ligne des opérations. Le client commande un produit qui peut directement lui être livré digitalement en échange d’un paiement valide. Les aspects de nonrépudiation de ces mécanismes permettent aux clients et aux fournisseurs de s’assurer non seulement de l’identité des uns et des autres, mais aussi du succès de l’envoi des produits commandés et des paiements correspondants. Souvent, les mécanismes utilisés pour offrir des services de sécurité au cours d’une communication prennent place dans le cadre d’un protocole. Un protocole est informellement une succession de messages envoyés et reçus par des entités qui communiquent au travers d’un réseau. Au cours de cette étude nous nous placerons volontairement dans un cadre le plus général possible (englobant au besoin le contexte de commerce électronique). Nous nous intéresserons au travers de l’étude du service de non-répudiation à un aspect important de la sécurité informatique impliqué dans les problèmes de répudiation : les protocoles de non-répudiation. 2 Ce service porte aussi le nom d’identification. 2.3 Le service de non-répudiation 2.3 15 Le service de non-répudiation Il est important que les parties impliquées dans une communication au travers d’un réseau ne puissent déclarer à tort avoir été étrangères à tout ou partie de la communication. Comme nous l’avons vu à la section précédente, pour empêcher de tels comportements, des méthodes particulières de sécurité peuvent être mises sur pied, regroupées au sein du « service de non-répudiation ». Au cours d’une communication, une partie peut affirmer avoir reçu un message provenant d’une autre partie impliquée dans la communication (cette dernière répudiant éventuellement être à l’origine de ce message). Une partie peut aussi affirmer avoir envoyé avec succès un message à une autre partie (cette dernière répudiant avoir reçu ce message). Les mécanismes de non-répudiation permettent de s’assurer de la véracité de telles affirmations en obligeant chacune des parties à émettre des preuves statuant sur l’état de la communication (ce qui a été émis et reçu) au moment de l’envoi de ces preuves (la poursuite de la communication étant subordonnée au succès de la vérification des preuves par la partie concernée). Outre la négation d’être à l’origine d’un message ou de l’avoir reçu 3 , une répudiation peut porter sur le moment où le message est émis ou reçu. D’une manière tout à fait générale une partie impliquée dans une communication peut nier qu’un événement particulier ait pris place à un moment précis. Il est donc important de noter que, contrairement à la plupart des autres services de sécurité, le but essentiel du service de non-répudiation est d’assurer une protection vis à vis d’une autre partie impliquée dans la communication (ou d’une panne du médium de communication qui les relie), plutôt que d’un attaquant extérieur4 . Un service de non-répudiation fournit donc des preuves permettant de gérer ultérieurement les éventuelles disputes entre les parties à propos d’un événement ou du moment où cet événement aurait pris place au cours d’une communication. Les mécanismes mis en œuvre pour assurer la non-répudiation doivent donc générer, maintenir et valider ces éléments de preuves dans le but de résoudre des disputes. Les preuves fournies par les mécanismes de non-répudiation permettront de convaincre une tierce partie de la réalité de l’occurrence (et éventuellement du moment de l’occurrence) d’événements passés. Il faut cependant, et surtout dans le contexte de la non-répudiation, se méfier du terme « tierce partie ». Nous rencontrerons par la suite des tierces parties impliquées de manières diverses dans les protocoles de communication. Leur rôle peut être actif ou plus passif au sein de la communication en cours. Nous devrons faire la distinction entre d’une part une tierce partie de confiance (TPC 5 en abrégé), qui aidera les parties honnêtes à transmettre les preuves de nonrépudiation ainsi que les informations (et qui sera donc activement impliquée), 3 denial of sending or receiving en anglais. Les mécanismes de non-répudiation assurent aussi la détection de messages venant de parties extérieures et potentiellement hostiles. 5 TTP : Trusted Third Party en anglais. 4 16 Chapitre 2 : La répudiation et d’autre part un juge6 qui, à l’image d’un arbitre, statuera dans le cadre d’une dispute, évaluant la validité des preuves de non-répudiation présentées par les parties en dispute (ayant ainsi un comportement passif par rapport à la communication). 2.3.1 Les tierces parties de confiance Une tierce partie de confiance est une entité ayant les prérogatives d’une autorité. Cette reconnaissance d’autorité est basée sur un concept informel de confiance. À l’image des organisations humaines (le notaire rendant possible une vente, un prêt hypothécaire. . . ) nous ne pouvons pas (toujours) nous passer de tierce partie de confiance dans les communications au travers de réseaux. Une tierce partie de confiance peut être [45, 50, 54, 75] : – une autorité de certification qui génère, maintient et révoque des certificats attestant de l’authenticité des clés utilisées lors des communications ; – un notaire qui produit et/ou vérifie des éléments de communication (preuve, cachet temporisé7 , signature. . . ) à la place de l’une ou l’autre partie impliquée dans une communication. Ce genre d’autorité intervient donc activement dans la communication8 ; – une autorité de livraison9 qui, à l’image de la poste, assure le transport et la livraison de messages10 ; – un juge qui résout les disputes pouvant survenir après la fin d’une communication, sur base des preuves produites lors de la communication. Un juge ne prend donc pas une part active dans la communication, mais statue sur ce qui s’y est passé. Un tel comportement est dit passif par rapport à la communication. Quatre attitudes existent par rapport au concept de tierce partie de confiance. La plupart des méthodes ayant recours à une tierce partie lui accordent une confiance absolue, dans le sens où, à moins d’une remise en cause publique de la tierce partie de confiance ou d’un problème les concernant directement, leur confiance en la tierce partie de confiance reste entière. [23, 27, 29, 12, 74, 75] Quelques méthodes ont été mises sur pied afin d’être à même de pouvoir se passer complètement d’une tierce partie de confiance activement impliquée dans une communication. Une telle approche est adoptée au cinquième chapitre. Le prix à payer pour éviter le risque, difficilement mesurable, que représente une tierce partie de confiance, ainsi que pour éliminer l’étranglement des communications 6 adjudicator en anglais dans le contexte de la non-répudiation. Un cachet temporisé, time stamp en anglais, est une information temporelle (heure, date. . . ) signée digitalement par une partie de confiance. 8 Si l’usage actif d’une autorité est nécessaire à chaque exécution du protocole, l’autorité est dite on-line ; si l’autorité est optionnellement invoquée activement dans le protocole, elle est dite off-line. 9 delivrery authority en anglais. 10 Une telle autorité est dite in-line quand elle intervient à chaque exécution du protocole comme intermédiaire obligé lors d’envois de messages entre les parties. 7 2.3 Le service de non-répudiation 17 qu’elle génère, consiste bien souvent en une augmentation de la complexité en calculs et/ou en communications des protocoles proposés, combinée à un risque mesurable d’échec du protocole (qu’il faut mettre en regard du risque nonmesurable représenté par la tierce partie de confiance). [35, 52] Enfin, depuis peu, il est proposé [5] de tenter de mesurer la fiabilité de la tierce partie de confiance. Les protocoles doivent être conçus de manière à ce que si la tierce partie de confiance ne se comporte pas honnêtement, il doit être possible de le détecter sur base des informations qu’elle produit. Un tel mécanisme n’est pas toujours réalisable ; de plus la confiance qu’une partie en communication porte à une tierce partie de confiance n’est évaluable qu’après détection d’un éventuel comportement malhonnête. Cette mesure de fiabilité offre donc des moyens de détection mais non de prévention (comme il est proposé, en partie, dans [39]). Abadi et Needham décrivent [1] la notion de confiance comme étant, en toute généralité, « diffuse » et « insaisissable ». Ils précisent que la vérification du comportement d’une partie de confiance est souvent difficile ou impossible. Une confiance pourrait être éventuellement mesurée lorsque la partie de confiance agit sur le contenu d’un message provenant d’une autre partie. Ils énoncent le principe suivant : « le concepteur de protocoles doit avoir conscience des relations de confiance dont dépend son protocole et en quoi ces relations de confiance sont nécessaires. Les raisons rendant l’usage de telles relations de confiance acceptables doivent être explicites, bien que fondées sur un jugement plutôt que sur la logique » ([1], page 19). L’usage d’une tierce partie de confiance est souvent justifiée par l’affirmation que les méthodes n’en usant pas nécessitent que les diverses parties en communication aient la même puissance de calcul. Cette contrainte, en effet peu réaliste en pratique et qui était présente dans des protocoles d’échange [15, 69, 70], n’est plus de mise actuellement (comme nous le verrons au cinquième chapitre). D’un autre côté, de nombreuses méthodes usant d’une tierce partie de confiance [5, 75] nécessitent que les canaux reliant la tierce partie de confiance et les diverses entités en communication soient sûrs, les messages y circulant ne pouvant être ni observés, ni modifiés. Une telle contrainte nécessite donc l’usage de mécanismes de confidentialité et d’intégrité. D’autres méthodes, avec tierce partie de confiance, souffrent de faiblesses de sécurité lorsqu’un tricheur bloque temporairement une information [46, 79]. De manière générale, l’usage d’une tierce partie de confiance impose qu’une information ne puisse être définitivement bloquée sur les canaux de communication la reliant aux autres parties en communication. En pratique, il n’est donc pas aisé de mettre en œuvre des mécanismes avec tierce partie de confiance, les grands réseaux existants n’offrant pas une qualité de service empêchant le blocage d’informations et assurant que les messages émis sont bien délivrés à une entité précise. 18 2.3.2 Chapitre 2 : La répudiation Les preuves de non-répudiation À la section précédente, nous avons vu qu’un juge peut statuer sur ce qui s’est passé au cours d’une communication passée, sur base de preuves 11 échangées lors de celle-ci. Le but des méthodes réalisant le service de non-répudiation est d’amener les parties en communication à échanger ces preuves. Nous distinguons quatre types de preuves utilisées dans le cadre de la nonrépudiation : les preuves de – – – – non-répudiation non-répudiation non-répudiation non-répudiation à à à à l’origine12 la réception13 la livraison14 la soumission15 Nous retrouvons les deux premiers types de preuves dans toutes les méthodes assurant la non-répudiation. La preuve de non-répudiation à l’origine permet au récipiendaire d’un message d’apporter la preuve (à un juge) de l’identité de l’auteur du message (comme argument contre une tentative de ce dernier de nier en être l’auteur). La preuve de non-répudiation à la réception permet à l’auteur d’un message de prouver (à un juge) que le récipiendaire a bien reçu le message (comme argument contre une tentative de ce dernier de nier l’avoir reçu). Certaines méthodes assurant la non-répudiation au moyen d’une tierce partie de confiance assurent aussi l’émission des deux dernières preuves. Les preuves de non-répudiation à la soumission puis à la livraison permettent à l’auteur d’un message de prouver (à un juge) que le message a bien été soumis (et accepté) à l’autorité de livraison puis délivré par l’autorité de livraison au récipiendaire. Comme souvent la tierce partie de confiance génère ces deux preuves, le problème de leur émission ne relève pas d’un problème d’échange mutuel entre deux parties potentiellement malhonnêtes. En se basant sur le concept de confiance nous pouvons être sûrs que la tierce partie générera et transmettra ces preuves. Aucun mécanisme particulier d’échange ne devra dès lors être mis en œuvre. Dans [75], une preuve de non-répudiation est définie comme étant une information qui permet d’établir, seule ou en conjonction avec d’autres informations, la réalité de l’occurrence d’un événement. Une telle preuve doit attester de son origine, de son intégrité, de sa validité ; elle doit être non falsifiable et ne peut être niée. Diverses techniques cryptographiques peuvent être utilisées pour construire des preuves de non-répudiation. Dans le cadre de preuves de non-répudiation à l’origine, deux techniques sont usuellement proposées. La première technique, basée sur les cryptosystèmes symétriques, utilise les « enveloppes sécurisées ». La preuve qui lie l’identité de l’auteur au message est le résultat du chiffrement du hachage du message au moyen d’une clé connue 11 evidence en anglais. non-repudiation of origin en anglais. 13 non-repudiation of receipt en anglais. 14 non-repudiation of delivery en anglais. 15 non-repudiation of submission en anglais. 12 2.3 Le service de non-répudiation 19 par la tierce partie de confiance16 ; l’enveloppe sécurisée est donc Envk (info) = info, Ck (h(info)). En conséquence la tierce partie de confiance devra être sollicitée chaque fois qu’une vérification de la preuve devra être faite. Comme la clé ne peut être partagée par les deux entités communicantes sans permettre à chacune d’elles de modifier l’origine ou le contenu, seule la tierce partie de confiance peut générer et vérifier l’enveloppe, sur base d’une clé connue par elle seule. Cette méthode est inutilement contraignante et le processus décrit infra évite l’usage de la tierce partie de confiance à la génération de l’enveloppe tout en assurant une vérification adéquate. La deuxième technique se base sur les techniques asymétriques et fait usage de signatures digitales. Au moyen de cette technique, la génération de la preuve est réalisée (et ne peut être réalisée que) par l’auteur et cette preuve est directement vérifiable par le récipiendaire. La clé utilisée pour la vérification doit être certifiée par une autorité adéquate. Cependant ce contrôle de validité, bien que devant être réalisé régulièrement, ne doit pas nécessairement l’être au cours de la communication en cours. Une preuve de non-répudiation (de l’occurrence d’un événement) contient usuellement, outre l’identification de l’occurrence de l’événement concerné, le type de non-répudiation proposé (cf. supra), l’identité de l’auteur, l’identité du récipiendaire et l’identité de l’entité ayant généré la preuve (si elle est différente de celle de l’auteur). Les protocoles faisant usage d’une tierce partie de confiance préciseront l’identité de cette tierce partie de confiance. Enfin, si les preuves de non-répudiation concernent aussi les moments où les actions non-répudiables ont pris place, il faut adjoindre à ces preuves un cachet temporisé indiquant le moment de la génération de la preuve ainsi que le moment où l’événement a eu lieu (par exemple, le moment de l’envoi du message). Un protocole de non-répudiation est cassé si une fausse preuve (ne correspondant pas à la réalité de la communication ou forgée par une partie extérieure) est acceptée. La sécurité repose aussi fortement sur la sécurité des clés utilisées. Il doit ainsi être possible de les révoquer. Par mesure de sécurité, il est donc bienvenu de leur imposer une limite de validité dans le temps. Une méthode réalisant le service de non-répudiation suit souvent le canevas suivant. Les preuves sont générées puis transférées. Lors de leur réception elles sont vérifiées puis stockées. Un protocole de résolution de disputes est prévu en coordination avec un juge. Mis à part la gestion d’une preuve reçue mais incorrecte, il faut aussi gérer le problème de preuves n’arrivant pas à destination. Une telle situation est liée à l’état du réseau mis en conjonction avec le comportement honnête ou non des parties en communication. Les différentes méthodes doivent gérer les différents cas de figures. La situation la plus complexe à gérer étant, bien entendu, un contexte où les parties sont éventuellement malhonnêtes et le réseau potentiel16 Une autre technique permettant de construire des enveloppes digitales consiste à utiliser des fonctions de hachage à sens unique verrouillées par une clé (keyed one-way hash function en anglais) ou des codes d’authentification de message (message authentication code - MAC en anglais) : Envk (info) = info, h(info, k). 20 Chapitre 2 : La répudiation lement incertain. Deux hypothèses sont parfois imposées au réseau. Le réseau est dit opérationnel17 pour indiquer qu’un message transmis arrivera dans un délai fixé. Un réseau réactif18 est tel que les messages transmis arriveront après avoir été éventuellement bloqués un temps fini, raisonnable mais non prévisible. 2.3.3 Les disputes Les preuves ayant été échangées, il peut arriver qu’une des parties en communication décide de requérir les services d’un juge pour arbitrer un différent. Nous insistons sur le fait que le juge n’intervient pas activement dans la communication. Il n’aidera pas à échanger des messages ou à terminer la communication. Il se bornera à indiquer qui est en droit et/ou qui est en faute sur base des preuves présentées par les parties. La manière dont les disputes sont résolues (i.e. la procédure à suivre ainsi que les calculs qui seront réalisés par le juge) doit être connue par les parties. En pratique, le service de non-répudiation inclut une police 19 décrivant la manière dont les disputes se résolvent grâce au juge. Notons aussi qu’un juge peut faire appel à une autre tierce partie de confiance (par exemple un notaire, pour obtenir un cachet temporisé). Sur base de la description des preuves (voir la section précédente) nous rappelons qu’une dispute peut porter sur l’occurrence d’un événement mais aussi sur le moment de cette occurrence. 2.3.4 Le temps Comme précisé dans la section 2.3.2, il est raisonnable d’imposer une durée de vie aux clés utilisées pour générer les preuves de non-répudiation (la sécurité des preuves produites reposant entièrement sur ces clés). Remarquons que l’expiration et la révocation de clés ne concernent que la génération et la vérification de la date de génération de la preuve de non-répudiation. En effet, il est possible de devoir vérifier une preuve dont la clé privée utilisée lors de la génération de la signature digitale, est expirée ou révoquée depuis. Dans ce cas il faut cependant envisager qu’une preuve, dont la clé de génération est expirée, puisse avoir été générée malhonnêtement, après l’expiration de la clé de signature, par une entité malhonnête ayant retrouvé après un certain temps la clé privée de génération de signatures d’une autre entité 20 . Le temps peut être à la source de problèmes lors de l’écriture de protocoles proposant le service de non-répudiation. Tout d’abord si un cachet temporisé 17 operational channel en anglais. resilient channel en anglais. 19 Dans le sens de police d’assurance ou convention. 20 Il peut donc être nécessaire qu’au moment de la révocation de la clé de signature, une autorité, signe à nouveau la preuve en y incluant un cachet temporisé. 18 2.4 L’équité 21 est généré et envoyé par une des parties en communication, cela n’apporte que peu d’information sur la réalité des faits. Si le cachet est généré par une tierce partie de confiance, il faut que cette tierce partie de confiance, outre cette fonction de notaire, soit aussi une autorité de livraison qui transmettra la preuve contenant le cachet temporisé demandé. En effet, une entité pourrait demander très à l’avance à la tierce partie de confiance un cachet temporisé et l’envoyer à discrétion plus tard (enlevant une partie de sa sémantique à ce cachet). Ce cas de figure est un des problèmes liés à l’arrivée tardive d’un message (et donc éventuellement d’une preuve). Un autre problème apparaît lorsqu’un délai maximum est fixé quant à l’émission d’un message. Il est difficile de différencier un message émis trop tard d’un message émis à temps mais reçu en retard. Nous observerons au cours des prochains chapitres la manière dont les protocoles proposés gèrent ces différents problèmes. 2.4 L’équité L’équité21 est une propriété fondamentale devant être respectée par les protocoles offrant le service de non-répudiation. Intuitivement, il apparaît que la mise en place de méthodes assurant la nonrépudiation pose comme principal problème le fait que les parties en présence doivent s’échanger des preuves. Dans un système composé de deux parties en communication (contexte le plus étudié), sans tierce partie de confiance in-line, nous nous rendons compte que l’auteur d’un message n’a pas intérêt à envoyer la preuve de non-répudiation à l’origine avant d’avoir reçu la preuve de nonrépudiation à la réception du récipiendaire (lequel une fois la preuve de nonrépudiation à la réception reçue n’aurait plus de raison - à part l’honnêteté - d’émettre sa preuve, puisqu’il est sûr de pouvoir gagner une dispute). Pour les mêmes raisons le récipiendaire ne désirera pas émettre la preuve de nonrépudiation à la réception avant d’avoir reçu la preuve de non-répudiation à l’origine. Un protocole de communication ayant la propriété d’équité est tel qu’il assure à une partie honnête, ayant émis l’information qui est attendue d’elle, de recevoir l’information qu’elle-même escompte (notons qu’il ne faut pas amalgamer la propriété d’équité dans notre contexte d’échange d’information avec les propriétés d’équité que l’on peut déduire des modélisations de systèmes concurrents [37]). Toujours dans notre contexte, nous pouvons catégoriser l’équité selon plusieurs formes (malheureusement l’usage veut que certaines de ces différentes formes portent les mêmes noms que ceux utilisés dans le contexte des systèmes concurrents22 ). Nous définissons pour chaque partie honnête impliquée dans une communica21 22 fairness en anglais. Où l’équité faible est aussi appelée justice et l’équité forte est aussi appelée compassion. 22 Chapitre 2 : La répudiation tion : – l’équité forte23 – l’équité faible24 – l’équité probabiliste25 Si le protocole est équitable pour toutes les parties en communication (qui se comporteraient honnêtement) alors le protocole est dit équitable. Un protocole d’échange assure une équité forte si, soit toutes les parties honnêtes reçoivent l’information attendue soit aucune partie ne reçoit rien de significatif à propos de l’information attendue. Un protocole d’échange vérifiant l’équité faible est tel que, si l’échange n’est pas accompli pour toutes les parties, les parties flouées peuvent non seulement prouver à un juge jusqu’où le protocole a été exécuté mais aussi que les informations qu’elles devaient émettre ont été ou seront reçues sans plus d’intervention de leur part. Un protocole est équitable de manière probabiliste si, soit les parties reçoivent les informations attendues, soit la probabilité de perdre l’équité au cours du protocole est inférieure à une valeur donnée. Il faut cependant considérer les deux situations suivantes. Soit le protocole s’exécute entièrement jusqu’à une de ses fins possibles, soit le protocole est arrêté brutalement en cours d’exécution. En pratique, l’équité n’est assurée que lorsqu’une partie honnête arrive à une des fins possibles du protocole. Certains protocoles d’échange prévoient de pouvoir entamer un protocole de recouvrement26 avec une tierce partie de confiance offline qui restaure l’équité du protocole d’échange, si ce dernier est brutalement interrompu. Les méthodes assurant l’équité en supposant l’usage d’une tierce partie de confiance en cas d’arrêt brutal de protocole sont telles que l’équité repose entièrement sur la confiance que l’on porte à la tierce partie de confiance. Dans « le monde réel » une tierce partie de confiance n’est pas toujours sûre ; en conséquence il peut être adéquat de distribuer la confiance entre différentes tierces parties de « confiance », en morcelant les informations secrètes nécessaires à l’accomplissement de la tâche des tierces parties de confiance et en usant de méthodes basées sur le partage de secret27 et/ou sur les schémas à seuils28 . La mise en œuvre de tels mécanismes est lourde et coûteuse en performance (de la même manière que les méthodes n’usant pas de tierce partie de confiance). 23 strong fairness en anglais. weak fairness en anglais. 25 probabilistic fairness en anglais. 26 recovery protocol en anglais. 27 secret sharing en anglais. 28 threshold schemes en anglais. 24 2.5 Les protocoles de non-répudiation 2.5 23 Les protocoles de non-répudiation Cette section et les suivantes décrivent des catégories de protocoles proposant le service de non-répudiation. Nous verrons dans les chapitres qui suivent des exemples concrets de tels protocoles. Nous nous contenterons ici d’en observer les caractéristiques. Tout d’abord, rappelons que dans le cadre du problème de la non-répudiation, l’aspect de confidentialité des données échangées n’est pas requise. L’anonymat des parties en présence vis-à-vis des observateurs extérieurs n’est pas non plus, a priori, à considérer (l’anonymat entre parties en communication étant bien entendu exclu par la nature même du service de non-répudiation). Notons cependant qu’il est tout à fait envisageable de greffer les techniques assurant ces aspects de sécurité aux techniques utilisées pour assurer la non-répudiation. Au cours des prochains chapitres nous étudierons des variantes de protocoles d’échange offrant de tels ajouts de mécanismes de sécurité. Nous nous forcerons cependant à rester génériques et nous veillerons à ne pas verser dans le particularisme propre aux applications tout à fait précises de protocoles d’échange. Les protocoles de non-répudiation offrent le service de non-répudiation dans la situation précise suivante : une entité prend l’initiative d’envoyer un message et désire recevoir la preuve de non-répudiation à la réception, tandis que le récipiendaire désire recevoir la preuve de non-répudiation à l’origine (relative au message reçu). Eventuellement les preuves de non-répudiation à la soumission et à la livraison seront aussi transmises. Zhou [75] affirme que, dans le cadre des protocoles de non-répudiation, il est inutile de se préoccuper des problèmes de ré-émission d’information 29 . Nous remarquons cependant que la sécurité d’un protocole d’échange est remise en question lorsqu’une exécution sûre du protocole met en cause la sécurité d’une exécution ultérieure. Il faut en effet s’assurer que les informations émises au cours d’une exécution du protocole ne puissent être réutilisées ultérieurement par une des parties en communication ou par un observateur extérieur lors d’une autre exécution de ce protocole. 2.6 Protocoles de non-répudiation et équité Les protocoles de non-répudiation prévoient l’échange de preuves entre les parties en communication. Nous nous attendons donc à ce que ces protocoles respectent une des propriétés d’équité définies à la section 2.4, afin de ne pas léser une ou plusieurs parties. Dans [75] un protocole de non-répudiation est dit équitable s’il fournit à l’émetteur et au récipiendaire des preuves irréfutables après exécution complète du protocole tout en ne donnant aucun avantage à l’une ou l’autre partie, à aucun moment de l’exécution du protocole. 29 replay attack en anglais. 24 Chapitre 2 : La répudiation Cette définition est fort restrictive car, en cas d’arrêt du protocole avant la fin de son exécution, il semble difficile de n’assurer aucun avantage à l’une ou l’autre partie, l’une des parties devant s’engager avant l’autre au cours du protocole. Ainsi trois approches sont usuellement proposées dans la littérature pour gérer le problème de la priorité lors des échanges. Soit les preuves à échanger sont révélées petit à petit. Dans ce cas, si le protocole s’arrête avant sa fin, il y aura bien une partie en communication ayant reçu une partie, même infime, de la preuve attendue avant d’avoir émis sa portion de preuve. Les méthodes basées sur une divulgation progressive de l’information attendue, comme nous en étudierons au cinquième chapitre, ont comme contrainte que les parties en communication doivent avoir une puissance de calcul comparable. Soit l’équité est assurée de manière probabiliste, mais alors on ne peut affirmer avec certitude qu’en cas d’arrêt subit du protocole aucune partie n’aura d’avantage. La prise ou non d’avantages en cas d’arrêt du protocole devra ici être exprimée en fonction d’une probabilité. Enfin, une tierce partie de confiance peut être utilisée pour assurer l’équité. Si cette tierce partie est off-line, alors il est du ressort des parties en communication d’engager, en cas d’arrêt du protocole avant sa fin, un protocole de recouvrement afin de rétablir une situation équitable. Entre l’arrêt du protocole de communication principal et la fin du protocole de récupération (pour peu qu’il soit initié) un déséquilibre existe entre les parties (une partie est désavantagée par rapport à l’autre). Nous pensons que la propriété d’équité ne peut se définir que relativement à une des fins possibles du protocole d’échange. Il est du ressort des parties de mener le protocole à une de ses fins en fonction de la situation. 2.7 Le courrier électronique recommandé Une catégorie de protocoles assez proches des protocoles de non-répudiation sont les protocoles de courrier électronique recommandé 30 . Le principe en est que l’auteur d’un message le soumet à une tierce partie de confiance qui servira d’autorité de livraison et de notaire en terme d’assignation de cachets temporisés. La tierce partie de confiance délivrera le message au récipiendaire si celui-ci accuse préalablement réception (ce qui est envisageable s’il fait confiance à la tierce partie de confiance). L’accusé de réception sera délivré à l’émetteur comme preuve de non-répudiation à la réception. Si on s’en tient à la définition d’un courrier recommandé, l’identité de l’émetteur ne peut être connue avant la réception du message (ce qui n’interfère pas avec le service de non-répudiation pour peu que l’assurance de la distribution de cette identité soit finalement assurée par la tierce partie de confiance). Remarquons enfin que ces protocoles assurent aussi la distribution des preuves de non-répudiation à la soumission et à la livraison. De nombreux travaux ont été consacrés à ce sujet [10, 31, 60, 78] 30 certified mail en anglais. 2.8 Les protocoles d’échange équitable 25 Les protocoles de non-répudiation n’imposent pas l’usage d’une autorité de livraison et permettent au récipiendaire d’une information de connaître l’identité de l’initiateur du protocole avant l’émission des preuves de non-répudiation (permettant ainsi au récipiendaire de décider s’il continue ou non le protocole sur base de cette identité). L’usage d’une autorité de livraison dans les protocoles de courrier électronique recommandé est requise car, bien souvent, ces protocoles sont copiés sur le service postal traditionnel, où une tierce partie de confiance était indispensable, puis sur le protocole de courrier électronique SMTP, où un serveur de mails est utilisé. Remarquons que les services de non-répudiation remplissent la plupart31 des desiderata du courrier électronique recommandé ; les protocoles de non-répudiation peuvent donc présenter une alternative pratique pour assurer la distribution du courrier électronique recommandé. 2.8 Les protocoles d’échange équitable Les protocoles d’échange équitable32 sont utilisés pour permettre à une ou plusieurs parties de s’échanger de l’information de même nature ou de nature différente au-travers d’un réseau. Il existe de nombreuses formes d’échange d’information : – la signature digitale de contrat33 : deux parties (ou plus) désirent s’échanger leur signature sur un contrat déterminé et connu des parties, sans que l’une ou l’autre partie se retrouve seule à avoir signé le contrat ; – le troc34 où deux parties s’échangent de l’information après accord sur la nature de cette dernière ; – le paiement électronique où de l’information est échangée contre un paiement ; – l’échange de signatures sur des documents différents ; – ... Outre l’aspect « échange », le point commun à tous ces types d’échange est bien sûr le respect de la propriété d’équité. Il existe de nombreuses propositions de protocoles d’échange équitable assurant de plus la confidentialité vis-à-vis d’entités extérieures. De la même manière que pour les protocoles de non-répudiation, nous pouvons dire que la confidentialité et l’anonymat ne sont pas indispensables lors de la conception théorique de protocoles d’échange équitable. L’étude de tels protocoles ne doit, à notre sens, pas se focaliser sur ces aspects. Ce sont bien les applications précises de ces protocoles qui doivent, en fonction des situations et des besoins, prévoir l’un ou l’autre mécanisme de sécurité supplémentaire. 31 En pratique, lors de la remise d’un courrier recommandé non-électronique, l’anonymat de l’émetteur est assuré tant que l’accusé de réception (la signature manuelle) n’est pas produit par le destinataire. Nous verrons que les protocoles de non-répudiation ne vérifient pas toujours cette contrainte. 32 fair exchange protocol en anglais. 33 digital contract signing en anglais. 34 barter en anglais. 26 Chapitre 2 : La répudiation La gestion de la vie des clés utilisées ainsi que la protection vis à vis de réémissions éventuelles d’informations transmises doivent par contre être envisagées. 2.9 Protocoles d’échange équitable et de non-répudiation Plusieurs différences sont à noter entre les protocoles de non-répudiation et les protocoles d’échange équitable. Une première différence fondamentale apparaît vis-à-vis de l’attitude du récipiendaire d’un message. Les protocoles de non-répudiation sont prévus pour forcer (entre autres) le récipiendaire d’un message à accuser réception de celui-ci, quel que soit le message. Le récipiendaire ne contrôle aucun critère du message qu’il va recevoir (à l’extrême il accuse réception d’un message incohérent, et les preuves de non-répudiation échangées statueront de l’envoi et de la réception de ce message incohérent). Dans un protocole d’échange équitable, par contre, les parties devant recevoir un message ont conscience de ce qu’elles vont recevoir. Chaque partie s’attend à une information précise. Bien souvent au cours de protocoles d’échange équitable les parties font une demande concrète de ce qu’elles désirent recevoir sur base d’une description de l’information (un exemple serait la consultation d’un catalogue électronique de logiciels, l’acheteur choisirait le logiciel qu’il désire et le recevrait en échange de l’envoi de l’information de paiement électronique vers le vendeur - qui s’attendrait lui aussi à cette information). Une autre différence concerne le nombre d’échanges potentiellement réalisés. Au cours d’un protocole de non-répudiation nous échangeons un message et sa preuve de non-répudiation à l’origine contre la preuve de non-répudiation à la réception. Dans le cadre des protocoles d’échange équitable, la non-répudiation est un service qui éventuellement se greffe en plus de l’échange prévu afin de résoudre les éventuelles disputes. Ce qui est échangé consiste alors en les deux informations qui sont attendues de part et d’autre, ainsi que les preuves de non-répudiation qui doivent elles-aussi être émises vers chaque partie. Cependant un exemple dégénéré d’échange équitable apparaît dans certains protocoles de commerce électronique [5] où l’acheteur reçoit l’information et la preuve de non-répudiation à l’origine, alors que le vendeur reçoit de l’acheteur un accusé de réception contenant la description du message demandé. Ce schéma ressemble donc aux protocoles de non-répudiation, excepté que le client sait ce qu’il va recevoir et peut donc inclure dans la preuve de non-répudiation à la réception la description de ce qu’il attend. Les propriétés d’équité et de gestion du temps décrites respectivement aux sections 2.4 et 2.3.4 doivent être vérifiées de la même manière par les protocoles de non-répudiation et d’échange équitable à partir du moment où tous deux offrent potentiellement le service de non-répudiation. 2.10 Les types d’information 2.10 27 Les types d’information Asokan [5] caractérise les informations susceptibles d’être émises ou échangées de la manière suivante. – Une information est idempotente si le fait de la renvoyer en répétant le protocole est sans danger. – Une information est retransférable35 si elle est vérifiable par la tierce partie de confiance et idempotente. – Une information peut être révocable si, une fois émise, l’information peut perdre sa validité. Dans ce cas, l’équité forte peut toujours être obtenue (puisqu’en cas de déséquilibre à la fin du protocole d’échange, les informations surnuméraires émises peuvent être révoquées). – Une information peut aussi être engendrable36 s’il est possible de la générer à nouveau en cas de besoin. Dans ce cas, l’équité forte est aussi toujours obtenue (une tierce partie pouvant, par exemple, générer les éléments devant être échangés mais n’ayant pas été reçus). Cependant l’équité forte assurée lors de l’usage d’informations révocables ou générables peut en pratique être remise en question si une partie ayant reçu une information, et n’émettant pas celle qui est attendue d’elle, a la possibilité de comptabiliser l’information reçue à un moment précis. Après ce moment, l’information unilatéralement reçue peut ne plus être révoquée et sa régénération sans plus de valeur. Ces aspects temporels ne doivent jamais être oubliés lors de la conception pratique de protocoles offrant le service de non-répudiation. Typiquement, considérant les preuves de non-répudiation, ces remarques prennent tout leur sens. Une preuve de non-répudiation sera parfois générable, cependant la validité de cette preuve étant limitée dans le temps, il faudra s’assurer que sa régénération intervienne dans les délais adéquats. 2.11 Conclusion Au cours de ce chapitre, nous avons défini informellement les concepts de répudiation, de protocole de non-répudiation, de protocole d’échange équitable. Nous avons mis en évidence la finalité du service de non-répudiation qui, pour permettre un arbitrage des éventuelles disputes entre les parties en communication, oblige ces parties à s’échanger des preuves de non-répudiation attestant les différents événements intervenus au cours du protocole. Notons enfin que les preuves de non-répudiation peuvent aussi concerner des concepts autres que l’origine et la réception. Il peut, par exemple, être utile de générer des preuves lors de consultation d’informations auprès d’une base de données ou lors d’accès à des ressources. Ces aspects, ne concernant pas directement les protocoles d’échange, ne seront pas abordés ici 37 . 35 forwardable en anglais. generatable en anglais. 37 En pratique, les systèmes d’exploitation sécurisés réalisent des opérations d’archivage et 36 28 d’audit sur les ressources [42, 57]. Chapitre 2 : La répudiation Chapitre 3 Formalisation et propriétés 3.1 Introduction Nous allons à présent formaliser différents éléments décrits au chapitre précédent. Notre volonté étant d’unifier les définitions relatives aux protocoles d’échange, permettant ainsi d’exprimer au moyen d’un même formalisme les différentes techniques existantes, nous avons pris la liberté d’utiliser d’autres termes pour définir plus précisément certaines notions afin de construire un cadre cohérent. Nous évoluerons par étapes. Nous commencerons par étudier le concept de communication, nous définirons ensuite la notion de protocole pour finalement aboutir à la formalisation d’un protocole d’échange. 3.2 La communication À la base d’une communication se trouve ce que nous avons appelé jusqu’ici les « parties en communication ». Nous les appellerons dorénavant les acteurs. Nous définissons assez classiquement un acteur au moyen d’une machine de Turing interactive probabiliste. Pour ce faire nous allons suivre les formalismes proposés dans [2] et [40]. Afin de définir une telle machine de Turing nous allons, à présent, en définir les composantes. Définition 3.1 Une machine de Turing déterministe à k bandes1 , où k ≥ 2, consiste en : – un ensemble fini d’états Q ; – des états distincts q0 et qf ∈ Q, correspondant respectivement à l’état initial et à l’état final de la machine ; 1 deterministic k-tapes Turing machine en anglais. 30 Chapitre 3 : Formalisation et propriétés – un contrôleur2 qui se trouve à tout moment dans un état de Q et qui détermine les opérations à réaliser ; – k bandes infinies à droite et à gauche, composées de cellules numérotées séquentiellement par un entier de Z et accessibles en lecture et/ou en écriture ; – un ensemble fini Γ de symboles utilisés sur les bandes de la machine ; – un sous-ensemble Σ ⊂ Γ de symboles de données de départ ; – un symbole particulier (blanc, null. . . ) b ∈ Γ \ Σ ; – une tête par bande qui lit et/ou écrit un symbole dans la cellule sur laquelle elle est positionnée ; – une fonction de transition δ : (Q−{qf })×Γk → Q×(Γ × {−1, 0, +1})k utilisée par le contrôleur (-1, 0 et +1 représentant respectivement à un mouvement d’une tête vers la gauche, le maintien d’une tête à sa place, ou le mouvement d’une tête vers la droite). Le nombre de symboles ∈ Γ \ {b} présents sur les bandes est fini. Nous définissons donc une machine de Turing déterministe par le septuple (Q, Γ, Σ, δ, k, q0 , qf ). ¤ La fonction δ de transition se comprend de la manière suivante. Avant la transition le contrôleur de la machine de Turing est dans un état (∈ Q) autre que final et sous chacune des k têtes se trouve un symbole (∈ Γ). Sur base de l’état du contrôleur et des symboles présents sous les têtes (ou de certains de ces symboles3 ), le contrôleur peut changer d’état, en atteignant éventuellement l’état final. Après cette transition, chacune des k têtes écrit un symbole de Γ (éventuellement le symbole lu), puis bouge d’une position vers la droite, vers la gauche ou reste en place. Par exemple, soit une machine de Turing à deux bandes dont le contrôleur se trouve dans l’état q1 ∈ Q et sous les têtes (représentées par ▽ dans les figures ci-dessous) de laquelle se trouvent respectivement les symboles β et µ ∈ Γ : ▽ Bande 1 : . . . Contrôleur : α β γ ... ν ... q1 ▽ Bande 2 : . . . λ µ Si δ(q1 , β, µ) = (q2 , (β, 0), (ρ, +1)), la machine réalise une transition (q1 , β, µ) ⊢ (q2 , (β, 0), (ρ, +1)) et change donc d’état pour se retrouver dans l’état q 2 ∈ Q, la deuxième tête écrivant le symbole ρ ∈ Γ avant de bouger d’une position vers la droite : 2 finite state control en anglais. La transition peut, en effet, être indépendante de la valeur des symboles sous certaines têtes ; la transition sera identique quels que soient ces symboles. 3 3.2 La communication 31 ▽ Bande 1 : . . . Contrôleur : α β γ ... q2 ▽ Bande 2 : . . . λ ρ ν ... Remarquons que la première tête ne bouge pas et n’écrit pas, ce qui est modélisé par la réécriture du symbole lu en cette position et un « non-déplacement » (noté 0). Il est possible de modéliser le fait que le symbole µ n’est pas lu en spécifiant que δ(q1 , β, µ) = δ(q1 , β, µ′ ) ∀µ, µ′ ∈ Γ. Parmi les k bandes possibles de la machine, nous en utilisons une comme bande de données de départ et une autre comme bande de résultat 4 . – Une bande est dite accessible uniquement en lecture, si les symboles qu’elle contient peuvent être lus, mais ne sont jamais modifiés, c’est-à-dire que la fonction de transition, δ, est telle que le contrôleur y réécrit tel quel tout symbole lu sur cette bande ; on peut s’y déplacer sans restriction. – Une bande est accessible uniquement en écriture, si la fonction de transition est telle que le contrôleur y écrit des symboles 6= b les uns à la suite des autres, toujours vers la droite, sans que le résultat produit par la machine ne dépende des symboles qui y ont été lus5 . – Une bande est accessible en lecture et en écriture si la fonction de transition est telle que des symboles peuvent y être lus et écrits, en s’y déplaçant sans restriction. Au départ, les k têtes sont positionnées sur la cellule numéro 1 des bandes. La bande de données de départ contient, au démarrage, un string x ∈ Σ ∗ placé sur les cellules 1 à |x| (un symbole par cellule), les autres cellules contenant le symbole b. La bande de résultat contient, au démarrage, des symboles b sur toutes ses cellules. Les k − 2 autres bandes contiennent un nombre fini (et éventuellement nul) de symboles 6= b de Γ et des symboles b sur les autres cellules (ces symboles de Γ ne doivent pas nécessairement se trouver sur des cellules numérotées à partir de 1). La machine évolue pas à pas en suivant la fonction de transition δ. À chaque pas, chacune des k têtes réalise éventuellement une lecture et/ou une écriture d’un symbole dans la cellule se trouvant sous elle et bouge éventuellement d’une position vers la gauche ou vers la droite. La machine change alors éventuellement d’état. La machine s’arrête lorsque l’état qf est atteint. Le résultat des opérations se trouve alors sur la bande résultat, dont le contenu dépend du string x de départ 4 input tape et output tape en anglais. à l’exception du maintien de la tête à sa place, auquel cas le symbole présent dans la cellule sous la tête est réécrit dans la cellule. 5 32 Chapitre 3 : Formalisation et propriétés et des autres symboles 6= b des bandes intermédiaires ; il peut aussi dépendre du comportement d’autres machines de Turing, si des bandes sont partagées entre celles-ci. Définition 3.2 Une machine de Turing interactive est une machine de Turing déterministe à k ≥ 4 bandes, avec une bande de données de départ accessible en lecture uniquement, une bande de résultat accessible en écriture uniquement, une bande de travail accessible à la fois en lecture et en écriture, une bande d’aléas6 accessible uniquement en lecture, un certain nombre (≥ 0) de bandes de communication accessibles uniquement en lecture et un certain nombre (≥ 0) de bandes de communication accessibles uniquement en écriture. ¤ Lorsqu’une machine de Turing interactive démarre (dans l’état q 0 ), à l’exception des bandes de données de départ, d’aléas et éventuellement de communication accessibles uniquement en lecture, toutes les bandes sont initialisées avec des symboles b. Deux machines de Turing interactives pourront se partager des bandes de communication de la manière suivante : une bande de communication accessible uniquement en écriture de la première machine peut être mise en commun avec la deuxième machine de Turing interactive, qui considère cette bande comme une bande de communication accessible uniquement en lecture. On supposera toujours qu’une machine ne peut lire sur une bande, à un endroit, pendant qu’une autre machine y écrit, au même endroit ; les accès conflictuels sont séquentialisés. Au démarrage, une machine de Turing interactive écrit sur chaque bande de communication accessible uniquement en écriture, lorsqu’elle déplace la tête, à partir de la cellule numéro 1. Elle n’écrit que des symboles 6= b, permettant ainsi à la machine de Turing interactive qui utilise cette bande comme bande de communication accessible en lecture de détecter le début et la fin de ce qui y est écrit et d’« attendre » l’écriture d’un symbole 6= b . Remarquons que, dans ce cas, le comportement d’une machine de Turing interactive ne peut être déterminé indépendamment des autres machines avec lesquelles elle partage des bandes de communication, puisque le contenu des bandes de communication en lecture peut changer au cours du temps au gré des écritures des autres machines. C’est ainsi le système composé par toutes les machines communicantes qui détermine le comportement de chacune d’entre elles ; ce comportement pourra être non déterministe si les machines ne sont pas synchronisées (c’est-à-dire si elles évoluent chacunes à des vitesses variables). Définition 3.3 Une machine de Turing interactive est probabiliste si le contenu de sa bande d’aléas est initialisé, suivant une distribution de probabilité fixée, indépendamment du contenu de la bande d’aléas de toutes les autres machines de Turing interactives probabilistes considérées dans le système. ¤ 6 random tape en anglais. 3.2 La communication 33 Les machines probabilistes sont donc indépendantes entre elles. Toutefois, cette dernière définition n’empêche pas que les éléments de la bande d’aléas d’une machine de Turing interactive probabiliste puissent être corrélés entre eux. Définition 3.4 Un canal de communication entre deux machines de Turing interactives probabilistes, A et B, est une machine de Turing interactive probabiliste à deux bandes de communication dont la première, accessible uniquement en lecture, correspond à une des bandes de communication accessible uniquement en écriture de la machine A, et la deuxième bande, accessible uniquement en écriture, correspond à une des bandes de communication accessible uniquement en lecture de la machine B. Cette machine de Turing interactive probabiliste lit les symboles présents sur sa bande de communication accessible uniquement en lecture et, éventuellement, sur base du contenu des bandes de données de départ, de travail et d’aléas, écrit des symboles sur sa bande de communication accessible uniquement en écriture. La fonction de transition, δ, d’un canal de communication est telle que si, lors d’un pas de la machine, un symbole non blanc est écrit sur sa bande de communication accessible uniquement en écriture cela implique que la machine change d’état à ce pas, et si la machine change d’état alors un symbole non blanc est écrit, lors de ce pas, sur sa bande de communication accessible uniquement en écriture (ce qui nous permettra de modéliser la qualité du canal de communication). ¤ Donc, pour un canal de communication, changer d’état est équivalent à écrire sur sa bande de communication accessible uniquement en écriture un symbole non blanc. En toute généralité, aucun synchronisme n’est supposé entre les trois machines considérées dans la définition précédente. Le comportement de B dépend donc, non seulement, des symboles transmis par A, mais aussi des instants où ces symboles sont transmis et où le canal de communication et B effectuent leurs propres transitions. On ne peut donc, en toute généralité, déterminer la probabilité d’un résultat. Ainsi la bande d’aléas peut sembler inutile puisque l’évolution du système est non déterministe. Cependant nous verrons que dans certaines situations (i.e. le cas de protocoles bien formés) le comportement du système (ou du moins de morceaux nous intéressant) est déterministe et une probabilité liée à la distribution des bandes d’aléas trouve alors son sens. Considérons, par exemple, un canal de communication C, entre deux machines de Turing interactives probabilistes, M1 et M2 , ayant chacune deux bandes de communication. La figure ci-dessous reprend les bandes de communication de ces différentes machines (les bandes de données de départ, de résultat, d’aléas et de travail étant omises pour plus de clarté) : r1 → M1 → w1 /rC → C → wC /r2 → M2 → w2 où r indique une bande de communication en lecture seule, w représente une bande de communication en écriture seule et les indices 1, C et 2 se réfèrent aux 34 Chapitre 3 : Formalisation et propriétés machines M1 , C et M2 pour lesquelles ces rôles sont joués. À chaque pas, la machine de Turing interactive probabiliste modélisant le canal de communication lit éventuellement les symboles se trouvant sous les têtes de la bande d’aléas, de la bande de données de départ et de la bande de communication accessible uniquement en lecture, où M1 a pu écrire séquentiellement des informations. Sur base de ces lectures, le contrôleur modifiera ou non l’état de la machine. Lorsque la machine change d’état, et uniquement lorsque la machine change d’état, elle écrit un symbole sur la bande de communication accessible uniquement en écriture, à la suite des précédents ; ce symbole pourra ultérieurement être lu par M2 . Définition 3.5 Si le nombre de pas effectués par un canal de communication, dès qu’un symbole non blanc est présent sur sa bande de communication accessible uniquement en lecture, sans changer d’état est fini, constant et ne dépend que de la bande de données de départ, si chaque symbole écrit sur la bande de communication accessible uniquement en écriture est le dernier symbole lu, à ce moment, sur la bande communication accessible uniquement en lecture, et si la tête correspondant à la bande de communication accessible uniquement en lecture ne se déplace pas vers la gauche et réalise un et un seul déplacement vers la droite entre deux changements d’état, le canal de communication est dit opérationnel. ¤ Le nombre de pas effectués par un canal de communication opérationnel entre deux changements d’état, ainsi que les écritures qu’il réalise sur sa bande de communication accessible uniquement en écriture ne dépendent donc pas de la bande d’aléas. Intuitivement, un canal opérationnel correspond à une « ligne de retard » où toute information émise d’un côté de la ligne, arrive à l’autre extrémité après un délai constant (du moins si le canal est cadencé de manière constante). Définition 3.6 Si le nombre de pas effectués par un canal de communication, dès qu’un symbole non blanc est présent sur sa bande de communication accessible uniquement en lecture, sans changer d’état, tout en restant fini, dépend des différentes bandes décrites (y compris la bande d’aléas), si le symbole écrit sur la bande de communication accessible uniquement en écriture est le dernier symbole lu, à ce moment, sur la bande communication accessible seulement en lecture, et si la tête correspondant à la bande de communication accessible uniquement en lecture ne se déplace pas vers la gauche et réalise un et un seul déplacement vers la droite entre deux changements d’état, le canal de communication est dit réactif. ¤ Définition 3.7 Si un canal de communication n’est ni opérationnel, ni réactif, il est dit incertain7 . ¤ 7 unreliable en anglais. 3.2 La communication 35 La plupart des réseaux existants en pratique aujourd’hui sont incertains. La bande d’aléas d’un canal de communication peut intervenir au niveau du contrôleur, à la fois pour déterminer les changements d’état, mais aussi, dans le cas d’un canal incertain, sous forme de bruit pour éventuellement altérer la communication (la bande d’aléas étant utilisée par la fonction de transition pour positionner les têtes correspondant aux bandes de communication et pour déterminer le symbole à écrire sur la bande de communication accessible uniquement en écriture). Définition 3.8 Une machine de Turing interactive probabiliste connectée, au moyen de ses bandes de communication, à un ou plusieurs canaux de communication est appelée un acteur. ¤ Définition 3.9 Le triplet composé par un canal de communication et des deux acteurs associés se nomme un axe de communication. ¤ Nous avons à présent tous les éléments nécessaires à la définition d’une communication. Définition 3.10 Une communication consiste en un graphe orienté dont les n (> 1) sommets sont des acteurs et dont les arcs sont les canaux de communication (le sens du trafic des symboles transitant d’un acteur à l’autre correspondant au sens de l’arc du graphe orienté). ¤ En pratique, il sera requis que les graphes soient au moins faiblement connexes. La définition d’une communication regroupe donc une multitude de topologies possibles : – un anneau, où chaque acteur appartient à deux axes de communication – une « étoile », où seul un des acteurs membres de la communication appartient à tous les axes de communication – ... Les acteurs membres d’un axe de communication s’échangent, via le canal de communication, des messages au cours d’envois et de réceptions successifs. Définition 3.11 Un message est une suite non vide de symboles 6= b de Γ entourée par deux symboles particuliers qui n’apparaissent jamais dans les messages et qui servent de sentinelles indiquant le début et la fin du message. Les deux symboles particuliers délimitant le message ne sont pas considérés comme en faisant partie. ¤ Définition 3.12 Un envoi consiste en l’écriture par un acteur d’un message sur une de ses bandes de communication accessibles uniquement en écriture. ¤ Définition 3.13 Une réception consiste en la lecture par un acteur d’un message sur une de ses bandes de communication en lecture seule. ¤ 36 Chapitre 3 : Formalisation et propriétés Aucun symbole b n’apparaissant dans et entre les messages, le lecteur sait, s’il lit un symbole b sur la bande de communication, que le symbole suivant du message courant n’est pas encore écrit sur cette bande. Le modèle présenté ne prévoit pas l’observation (par un ou plusieurs opposants) des informations transitant sur un canal. Nous pouvons cependant considérer qu’une telle observation se modélise en considérant que la machine de Turing interactive probabiliste modélisant l’épieur possède une tête sur la bande de la machine de Turing interactive probabiliste modélisant le canal épié. L’épieur passif n’écrit jamais de symbole sur la bande épiée, l’épieur actif peut éventuellement la modifier. 3.3 Les protocoles Nous allons, à présent, définir successivement les éléments nécessaires à la formalisation de la notion de protocole. Définition 3.14 Une étape correspond à un envoi réalisé par un acteur, sur base éventuellement d’une ou plusieurs réceptions et du contenu des autres bandes de l’acteur. ¤ Définition 3.15 Un protocole local consiste en la définition d’une séquence finie d’étapes associées à un acteur membre d’une communication. Le début d’un protocole local est identifié par la lecture d’un string particulier sur la bande de données de départ de l’acteur. La fin du protocole est déterminée par l’écriture d’un string de fin de protocole sur la bande de résultat de l’acteur. ¤ Un protocole local peut ainsi être modélisé par (un morceau d’) une machine de Turing interactive probabiliste. Définition 3.16 Un protocole consiste en n (> 1) protocoles locaux associés aux n acteurs distincts membres d’une communication. ¤ Lors de l’exécution du protocole8 , un acteur détermine, à chaque étape de son protocole local et sur base du contenu de ses bandes, ce qu’il va envoyer et à qui cet envoi sera destiné. Dans le cadre d’études sécuritaires de protocoles de communication, il est nécessaire de déterminer le comportement des acteurs impliqués dans ces protocoles. Définition 3.17 Un acteur est honnête s’il réalise les étapes du protocole local auquel il est associé, sinon il est dit malhonnête. ¤ 8 Appelée aussi instance ou session du protocole. 3.4 Les protocoles d’échange 3.4 37 Les protocoles d’échange Un protocole d’échange est un protocole au cours duquel des informations doivent être échangées par des acteurs. Une information sera le contenu d’un envoi (donc un message). Notons qu’un protocole quelconque peut servir, par exemple, à transmettre une information d’un acteur à un autre (nous pouvons imaginer un protocole au cours duquel un acteur transmet sa clé publique à un acteur tiers), par contre un protocole d’échange implique que certains acteurs (que nous appellerons par la suite acteurs cibles), non seulement transmettent des informations, mais aussi en reçoivent. Définition 3.18 Une information cible est un message particulier 9 explicitement lié à un acteur cible émetteur qui envoie cette information, ainsi qu’à un acteur cible receveur qui doit obtenir le message sur une de ses bandes de communication accessibles uniquement en lecture. Cette information cible est telle qu’il existe un algorithme (un accepteur) qui, sur base de l’information cible et de l’identité de l’émetteur et du receveur (fournies comme données de départ), produit comme résultat, en un temps exprimé polynomialement en fonction de la taille des données de départ, un string de succès si l’information cible est bien associée aux acteurs cibles précisés comme données de départ et un string d’échec sinon. Ces deux strings sont fixés, distincts et constants. ¤ Une preuve de non-répudiation sera ainsi une information cible. L’information cible de l’émetteur d’un message est la preuve de non-répudiation à la réception et les informations cibles d’un récipiendaire sont le message et la preuve de non-répudiation à l’origine associée. Définition 3.19 Un protocole d’échange, auquel participent n acteurs, est un protocole au cours duquel m ≤ n de ces acteurs, s’ils sont honnêtes, s’échangent, entre autres, des informations cibles, l’échange étant tel qu’au cours du protocole, chacun des m acteurs reçoit une ou plusieurs de ces informations cibles et envoie une ou plusieurs informations cibles relatives à un ou plusieurs des m acteurs. Aucun acteur ne s’envoie de l’information à lui-même, ni ne reçoit d’information de lui même. Les n − m acteurs non concernés par les informations cibles, participent au protocole comme intermédiaires lors des envois. Au cours du protocole d’échange, des informations non cibles peuvent aussi être transmises. ¤ Définition 3.20 Les m acteurs d’un protocole d’échange devant s’échanger de l’information sont appelés acteurs cibles. Les n−m autres acteurs sont appelés acteurs participants. ¤ Définition 3.21 Les échanges d’informations cibles réalisés au cours du protocole d’échange sont décrits par un ensemble Π de graphes d’échange πi , 9 Les informations cibles seront essentiellement les preuves de non-répudiation dans les protocoles que nous étudierons dans les prochains chapitres. 38 Chapitre 3 : Formalisation et propriétés 1 ≤ i ≤ |Π|, dont les sommets sont les acteurs cibles et dont les arcs sont les envois d’informations cibles tels que ∀ 1 ≤ i 6= j ≤ |Π| : πi ∩ πj = ∅ en terme d’arcs. Chaque acteur cible du protocole d’échange se retrouve dans au moins un graphe d’échange πi ∈ Π. Chaque graphe d’échange πi est fortement connexe. Au cours d’un protocole d’échange auquel participent des acteurs honnêtes, tous les échanges décrits par Π sont réalisés (une seule fois chacun). ¤ En fait, Π peut être vu comme le graphe résultant de la somme (unions disjointes) des graphes d’échange. Les graphes d’échange ne spécifient ni la manière (ni l’ordre) dont doivent être conduits les échanges à réaliser au cours du protocole, mais correspondent à une formalisation de ce qui doit être échangé une fois le protocole terminé (quelle qu’en soit la manière). Ainsi, plusieurs protocoles différents peuvent vérifier un même ensemble de graphes d’échange. Définition 3.22 On appelle matrice d’échange une matrice d’adjacence (reprenant, outre l’information d’adjacence, les informations cibles) d’un graphe d’échange πi associé à un protocole d’échange. ¤ Une matrice d’échange décrit donc les échanges à réaliser mais ne donne aucune indication sur la manière de réaliser ces échanges. Au cours d’un protocole d’échange, il peut arriver qu’un acteur cible envoie des informations à des acteurs participants, qui servent alors d’intermédiaires. Ainsi, un acteur cible peut donc recevoir ses informations cibles d’un acteur, qu’il soit cible ou participant. Considérons le protocole d’échange, informellement décrit ci-dessous, auquel participent l’acteur cible Alice, A, l’acteur cible Bob, B, et l’acteur participant10 Colin, C. Le protocole prévoit, suivant le graphe d’échange représenté par la matrice d’échange décrite ci-après, l’envoi par Alice de l’information cible iA et l’envoi par Bob de l’information cible iB . La matrice d’échange, M , est, dans ce cas ci, une matrice 2 × 2 dont les lignes et les colonnes correspondent respectivement à Alice et Bob. Les deux entrées non vides de la matrice sont M [A, B] = iA et M [B, A] = iB . Alice et Bob sont donc deux acteurs cibles et Colin est un acteur participant honnête qui sert, ici, d’intermédiaire entre Alice et Bob : 1. A → C : iA 2. C → B : A 3. B → C : iB 4. C → A : iB 5. C → B : iA 10 Par exemple une tierce partie de confiance. 3.4 Les protocoles d’échange La matrice d’échange, indicée dans l’ordre par A et B, sera donc : 39 µ ∅ iA iB ∅ ¶ Remarquons que le deuxième envoi, correspondant à Colin signalant à Bob « Alice m’envoie une information à votre intention », n’apparaît pas dans la matrice d’échange (puisque ce n’est pas une information cible). Définition 3.23 La description d’une information cible est une suite unique de symboles 6= b de Γ entourée par deux symboles particuliers qui n’apparaissent jamais dans la description et qui servent de sentinelles indiquant le début et la fin de la description (ces symboles particuliers ne sont pas considérés comme faisant partie de la description), tel qu’un algorithme sur base de l’information cible et de sa description (fournies comme données de départ) produit comme résultat, en un temps exprimé polynomialement en fonction de la taille des données de départ, un string de succès si la description correspond de manière univoque à l’information cible, et un string d’échec sinon. Ces deux strings sont fixés, distincts et constants. ¤ Nous pouvons voir les descriptions et leur vérification comme un langage récursif associé à un accepteur. Définition 3.24 Un protocole d’échange est dit avec préaccords mutuels si chacun des m acteurs cibles connaît la description de chacune des informations cibles qu’il devrait recevoir au cours du protocole. Un protocole d’échange sera dit sans préaccords mutuels si seuls les membres d’un sous-ensemble, éventuellement vide, des m acteurs cibles connaissent la description des informations cibles qu’ils devraient recevoir au cours du protocole. ¤ Pour définir les propriétés liées aux protocoles d’échange, nous allons introduire la notion de point de complétude d’un protocole d’échange. Définition 3.25 Un point de forte complétude pour un acteur cible A, honnête, dans un protocole d’échange, correspond à un envoi d’une étape du protocole après lequel : – si A a reçu certaines de ses informations cibles, alors tous les acteurs cibles (y compris A) appartenant aux graphes d’échange de Π reprenant les informations cibles reçues par A, ont aussi reçu leurs informations cibles présentes dans les graphes d’échange considérés et aucune autre information cible des autres graphes d’échange auxquels appartient A n’a été reçue par un acteur cible impliqué dans ces graphes, – si A n’a reçu aucune de ses informations cibles, alors aucune information cible n’a été reçue par un acteur cible impliqué dans les graphes d’échange auxquels il appartient. ¤ 40 Chapitre 3 : Formalisation et propriétés Par exemple, considérons le protocole d’échange suivant, impliquant les acteurs cibles Alice et Bob et au cours duquel Alice envoie à Bob l’information cible (destinée à Bob) iA . Bob envoie en échange à Alice l’information cible (destinée à Alice) iB . Le canal de communication entre Alice et Bob est supposé réactif : 1. A → B : iA 2. B → A : iB Remarquons que la matrice d’échange relative à ce protocole est la même que la matrice d’échange de l’exemple précédent, alors que le protocole est différent. Le deuxième envoi de ce protocole d’échange est un point de forte complétude pour Alice et pour Bob. Par contre, après le premier envoi nous n’avons ni un point de forte complétude pour Alice car elle n’a (encore) rien reçu 11 , alors que Bob a reçu l’information cible iA ; ni un point de forte complétude pour Bob, car alors qu’il a reçu l’information cible iA , Alice n’a pas encore reçu son information cible iB . Définition 3.26 Un point de forte complétude universel d’un protocole d’échange correspond à un envoi d’une étape du protocole qui est un point de forte complétude pour tous les acteurs cibles, s’ils sont honnêtes. ¤ Définition 3.27 Un point de faible complétude d’un protocole d’échange, correspond à un envoi d’une étape du protocole après lequel 0 < m′ < m acteurs cibles n’ont pas reçu une ou plusieurs de leurs informations cibles présentes dans les graphes d’échange de Π, alors qu’ils ont tous envoyé, à des acteurs cibles ou participants, toutes les informations cibles, présentes dans ces mêmes graphes d’échange. Cependant le protocole sera tel que ces m′ acteurs cibles « floués » peuvent prouver à un acteur particulier (appelé juge), au moyen d’un autre protocole, que les informations cibles qu’ils ont envoyées peuvent être reçues par les acteurs cibles concernés sans plus d’intervention de leur part. ¤ Considérons le protocole d’échange suivant impliquant les acteurs cibles Alice et Bob, et un acteur intermédiaire honnête, Colin (noté C). Le protocole prévoit l’envoi par Alice de l’information cible iA à Bob, et l’envoi par Bob de l’information cible iB à Alice : 1. A → C : iA 2. C → A : preuve 12 3. C → B : iA 4. B → A : iB 11 12 Nous nous préoccupons de la disponibilité de l’information et non de sa lecture effective. Cette preuve est une information non cible. 3.4 Les protocoles d’échange 41 Au cours du protocole, Colin n’envoie la preuve que s’il a reçu l’information i A d’Alice. Si les canaux de communications entre Colin et Alice d’une part et entre Colin et Bob d’autre part, sont réactifs ou opérationnels 13 , le deuxième envoi est un point de faible complétude. En effet, si Alice arrête sa participation au protocole après cet envoi, Bob recevra de Colin l’information cible i A et Alice pourra prouver cela au moyen de la preuve reçue de Colin au deuxième envoi. Un autre scénario consiste en Bob n’envoyant pas iB à Alice, alors qu’Alice, honnête, a transmis iA ; Alice pourra, alors, à nouveau utiliser la preuve reçue de Colin pour prouver avoir envoyé iA , tout en n’ayant éventuellement14 pas reçu iB de Bob. Définition 3.28 Un point de complétude probabiliste dans un protocole d’échange correspond à un envoi d’une étape du protocole après lequel la probabilité, suivant la distribution de probabilité jointe des bandes d’aléas des acteurs et des canaux, d’être en un point de forte complétude, universel ou non, est ≥ 1 − ε (où ε est connu et inférieur à 1). Nous parlerons aussi d’un point d’ε-complétude. ¤ Nous sommes maintenant à même de définir les différentes notions d’équité vues au chapitre précédent. Définition 3.29 Un protocole d’échange est fortement équitable pour un acteur cible honnête quand cet acteur, en suivant les étapes du protocole, arrive toujours à atteindre un point de forte complétude relatif aux acteurs cibles des graphes d’échange le concernant, universel ou non, que les autres acteurs cibles soient honnêtes ou non. Le comportement (honnête ou non) des acteurs intermédiaires et la qualité (opérationnel, réactif ou incertain) des différents canaux de communication doivent être précisés. ¤ Définition 3.30 Un protocole d’échange est fortement équitable si le protocole est fortement équitable pour chacun des m acteurs cibles impliqués, s’ils sont honnêtes15 . ¤ Définition 3.31 Un protocole d’échange est dit faiblement équitable pour un acteur cible honnête quand cet acteur, en suivant les étapes du protocole, arrive toujours à atteindre soit un point de forte complétude relatif aux acteurs cibles des graphes d’échange le concernant, universel ou non, soit un point de faible complétude relatif aux acteurs cibles des graphes d’échange le concernant, que les autres acteurs cibles soient honnêtes ou non. Le comportement (honnête ou non) des acteurs intermédiaires et la qualité (opérationnel, réactif ou incertain) des différents canaux de communication doivent être précisés. ¤ 13 La qualité des canaux de communication devra toujours, au cours des prochains chapitres, être précisée lors de la description des protocoles. 14 Alice ne sera, cependant, pas en mesure de prouver qu’elle n’a pas reçu iB . 15 Il n’est pas nécessaire que les acteurs cibles soient tous honnêtes pour que le protocole soit fortement équitable. 42 Chapitre 3 : Formalisation et propriétés Définition 3.32 Un protocole d’échange est faiblement équitable si le protocole est faiblement équitable pour au moins un des m acteurs cibles impliqués, s’il est honnête, et faiblement ou fortement équitable pour chacun des autres acteurs cibles, s’ils sont honnêtes. ¤ Définition 3.33 Un protocole d’échange est équitable de manière probabiliste pour un acteur cible honnête quand cet acteur, en suivant les étapes du protocole, arrive toujours à atteindre soit un point de forte complétude relatif aux acteurs cibles des graphes d’échange le concernant, universel ou non, soit un point de faible complétude relatif aux acteurs cibles des graphes d’échange le concernant, soit un point de complétude probabiliste relatif aux acteurs cibles des graphes d’échange le concernant. Le protocole sera alors dit ε-équitable pour cet acteur cible honnête, où ε est le maximum des probabilités (de non-équité) liées aux différents points de complétude probabiliste que peut atteindre l’acteur cible (par convention, le maximum d’un ensemble vide sera 0). ¤ Comme ε correspond à la probabilité que le protocole d’échange ne soit pas équitable, si le protocole est tel que plusieurs points de complétude probabiliste peuvent être atteints, nous prenons le maximum des probabilités pour exprimer le risque le plus grand de perte d’équité induit par le protocole (nous verrons, au chapitre 5, que la perte d’équité, dans ce contexte, sera consécutive au comportement d’un acteur malhonnête qui tente d’atteindre un point de complétude probabiliste tel qu’il a le plus de chance de briser l’équité). Définition 3.34 Un protocole d’échange est équitable de manière probabiliste si le protocole est équitable de manière probabiliste pour au moins un des m acteurs cibles impliqués, s’il est honnête, et respecte un des trois types d’équité pour chacun des autres acteurs cibles, s’ils sont honnêtes. Le protocole sera alors dit ε-équitable, où ε est le maximum des probabilités (de non-équité) liées aux différents points de complétude probabiliste de tous les acteurs cibles. ¤ Définition 3.35 Un protocole d’échange est viable16 si, la qualité des canaux de communication et l’honnêteté des intermédiaires étant fixées, lorsque tous les acteurs cibles sont honnêtes et qu’ils ont tous soit envoyé, soit reçu au moins un message (cible ou non), ces acteurs cibles, en suivant les étapes du protocole, arrivent toujours à atteindre un point de complétude tel que toutes les informations cibles présentes dans tous les graphes d’échange de Π ont été reçues. ¤ Cette propriété a surtout un intérêt théorique. En pratique peu de protocoles d’échange la respectent si les canaux utilisés pour faire transiter les informations n’ont pas de contrainte en terme de qualité de service assurant le succès des transmissions dans un délai fixé (à savoir, un canal opérationnel). 16 viability ou completeness en anglais. 3.5 Vérification de protocoles d’échange 43 Remarquons, par exemple dans le cas d’un protocole d’échange entre deux acteurs cibles, que si le canal de communication entre les deux acteurs cibles n’est pas réactif ou opérationnel, le premier message du protocole peut ne jamais arriver à son destinataire. Le protocole n’aura en fait commencé que pour un seul des deux acteurs cibles. Nous considérerons dès lors, toujours dans le contexte de protocoles d’échange entre deux acteurs cibles, que la viabilité ne sera considérée qu’après la réception correcte du premier message émis. Définition 3.36 Un protocole d’échange est temporellement fini17 si, la qualité des canaux de communication et l’honnêteté des intermédiaires étant fixées, les acteurs cibles honnêtes, en suivant les étapes du protocole, arrivent toujours à atteindre un point de complétude relatif aux acteurs cibles des graphes d’échange les concernant en un nombre fini18 de transitions de leur contrôleur. ¤ Cette dernière définition assure que le protocole finira, pour tous les acteurs cibles honnêtes, en un temps fini, que les échanges aient eu lieu ou non (l’équité étant cependant assurée par le point de complétude). 3.5 Vérification de protocoles d’échange Sur base de ces définitions, nous vérifierons au cours des prochains chapitres si les protocoles d’échange étudiés respectent une des propriétés d’équité proposées. Les points de complétudes représentent le mécanisme pivot des preuves d’équité. Lors de l’étude de l’équité d’un protocole d’échange, nous commencerons par identifier tous les points de complétude. Nous isolerons donc ainsi les parties du protocole qui sont à risque (les étapes du protocole ne correspondant pas à un point de complétude), puis nous vérifierons que chaque acteur cible pourra toujours, s’il est honnête, atteindre l’un ou l’autre point de complétude, universel ou non, du protocole. Pour démontrer l’équité, nous supposerons que l’hypothèse de conservation définie ci-dessous est toujours vérifiée. L’hypothèse de conservation d’un acteur honnête suppose qu’un acteur honnête réalise toujours des étapes d’un protocole d’échange qui lui permettent d’atteindre, si cela est possible, un point de complétude (universel ou non). 3.6 Conclusion Nous voyons donc, en jetant un pont entre ce chapitre et le chapitre précédent, qu’une tierce partie de confiance sera un acteur participant. Par contre un juge 17 18 timeliness en anglais. de borne non nécessairement connue. 44 Chapitre 3 : Formalisation et propriétés ne fait pas partie du protocole d’échange et la résolution de disputes se réalise au cours d’un protocole distinct. Nous utiliserons ces définitions pour démontrer les propriétés de non-répudiation et d’équité des protocoles d’échange que nous allons étudier aux cours des prochains chapitres. Les machines de Turing, ainsi que les graphes et matrices d’échange, ne seront plus utilisées en tant que tels dans la suite. Ils nous ont servi à modéliser les acteurs et les canaux puis les protocoles et enfin nous avons pu formaliser les propriétés d’équité, viabilité et fin de protocole. Nous allons à présent toujours décrire les protocoles, informellement, au moyen de notations fléchées. Notons enfin que la notion de protocole de non-répudiation se rattache au concept de protocole d’échange sans préaccord mutuel 19 , alors que les protocoles d’échange équitable sont vus comme des protocoles d’échange avec préaccord mutuel. 19 Au cours d’un protocole de non-répudiation, l’envoi d’une information est réalisée à l’initiative de l’émetteur ; les receveurs ne s’attendent pas à une information particulière et accusent réception de ce qu’ils reçoivent. Chapitre 4 Non-répudiation avec tierce partie de confiance 4.1 Introduction Nous allons, au cours de ce chapitre, étudier chronologiquement les principaux protocoles d’échange faisant usage de tierces parties de confiance (TPC). Cette approche chronologique correspond aux évolutions logiques opérées sur les protocoles. Nous observerons au cours de cette étude l’évolution de l’activité de l’autorité de confiance. D’agent de synchronisation, elle deviendra signataire mandatée par les acteurs cibles. Il sera aussi intéressant de noter l’évolution des besoins au cours des échanges. Les premiers protocoles d’échange assurant la non-répudiation permettent à la TPC d’émettre des signatures en son nom propre. Ces signatures sont considérées aussi valides 1 , même si structurellement différentes, que celles qui auraient dû être émises par les acteurs cibles euxmêmes. Les protocoles les plus récents assurent aux acteurs cibles de recevoir en toute circonstance la signature attendue (et non plus la signature de remplacement produite par la TPC). Nous ne considérerons dans un premier temps que les acteurs impliqués dans la communication au cours de laquelle l’échange aura lieu. En cas de dispute, le juge sera un acteur d’une autre communication au cours de laquelle la dispute sera résolue. La plupart des protocoles seront des protocoles d’échange, où interagiront Alice (qui sera à l’origine de l’échange), Bob (le récipiendaire) et une TPC. Le protocole 4.1, détaillé à la section 4.2.1, sera exceptionnellement un protocole d’échange dans lequel interviendront deux autorités de confiance. Remarquons qu’une TPC est dite neutre si l’aide qu’elle apporte à la bonne réalisation d’un protocole d’échange n’est pas conditionnée par sa connaissance des informations à échanger. Comme nous le verrons, les TPC utilisées dans les 1 Cette signature de remplacement est appelée affidavit, terme juridique anglais, ensuite adopté dans de nombreuses langues, provenant du latin affidare (il a attesté). 46 Chapitre 4 : Non-répudiation avec tierce partie de confiance prochains protocoles de non-répudiation seront souvent neutres. La réalisation pratique du service de non-répudiation (et donc de l’équité qu’il assure) impose aux acteurs de s’accorder sur une « police 2 de non-répudiation » décrivant les preuves, la manière de les générer, de les vérifier ainsi que la procédure de résolution des disputes. Les acteurs cibles choisissent aussi les autorités de confiance à utiliser : agent de livraison, autorité assurant l’équité, juge, notaire. . . Enfin, toutes les clés nécessaires à l’aboutissement de l’échange doivent être échangées avant et/ou au cours des protocoles [54, 71, 24, 14]. Nous ne décrirons que les échanges de clés devant se dérouler au cours des protocoles. Si une clé, correspondant à un schéma de chiffrement symétrique, est supposée être préalablement partagée par divers acteurs, nous ne décrirons pas cet échange préalable. Nous ne décrirons pas non plus les échanges satellites nécessaires à la transmission des certificats produits par des autorités de certification qui associent une clé publique à l’acteur possédant la clé secrète correspondante [54, 32, 41, 36, 56, 34]. Enfin, nous supposerons que les aléas et nonces 3 utilisés au cours des protocoles sont produits par des générateurs adéquats (en terme de production des valeurs), mais nous n’étudierons pas le fonctionnement de tels générateurs [54, 1, 4, 81, 72, 17]. Lorsqu’au cours des protocoles il est dit « choisir une valeur aléatoire » il sera souvent entendu de choisir aléatoirement une valeur selon une distribution uniforme sur le domaine fini des valeurs admissibles. Nous détaillerons chaque protocole étudié sous ses aspects d’équité, nous vérifierons si le protocole est temporellement fini et s’il respecte la propriété de viabilité. Nous envisagerons enfin les problèmes pouvant résulter d’une déviance du comportement non seulement des protagonistes mais également de la TPC. Toutes les preuves présentées pour vérifier ces propriétés sont basées sur le modèle que nous avons proposé au chapitre précédent. Certaines de ces propriétés ont parfois aussi été prouvées, au moyen de raisonnements hétéroclites, par les auteurs des protocoles dans la littérature. Chaque protocole sera, avant d’être analysé, présenté de manière concise au sein d’une figure reprenant les envois et une représentation des points de complétude. Nous utiliserons les conventions suivantes : – ¨ : point de forte complétude universel – ¨X : point de forte complétude pour un acteur cible X – ♦ : point de faible complétude – P ♦ : point de complétude probabiliste Dans tous les protocoles qui vont suivre, impliquant les acteurs cibles Alice et Bob, les informations cibles seront les preuves de non-répudiation à l’origine et à la réception, ainsi que le message qu’Alice désire faire parvenir à Bob, auquel se rapportent ces preuves. 2 Toujours dans le sens de convention. Un « nonce », mot anglais provenant de « no more than once », désigne une valeur, souvent aléatoire, qui ne peut être utilisée qu’une seule fois pour un même usage. Son but consiste essentiellement à éviter les attaques par réémission. 3 4.2 Méthodes avec tierce partie de confiance in-line 47 Enfin, nous supposerons que les juges connaissent le protocole utilisé par les acteurs. Un acteur sollicite un juge afin de prouver qu’un autre acteur nie avoir pris part à une communication. Pour réaliser cela, l’acteur plaignant présente au juge des preuves émises par l’acteur répudiant la communication. Ces preuves n’ont de sens que dans le cadre de l’usage d’un protocole précis, l’acteur plaignant n’a donc aucun intérêt à mentir au juge sur le protocole utilisé. 4.2 Méthodes avec tierce partie de confiance in-line La classe de protocoles que nous allons à présent aborder est celle des protocoles faisant usage de TPC lors de chaque transmission d’un message, la TPC est alors dite in-line. Ces méthodes, plus anciennes, présentent plusieurs inconvénients. Tout d’abord elles requièrent la gestion de grandes bases de données par la TPC. En effet, cette dernière doit conserver les messages transitant par elle, ainsi que les moments de chaque événement. Elle devra de plus gérer les clés utilisées au cours du protocole. La gestion d’une telle base de donnée centralisée représente un risque sécuritaire important. En effet, si une telle TPC vient à être attaquée avec succès, la somme d’informations accessibles est plus importante qu’elle ne le serait avec une TPC moins omnisciente. Il convient donc de veiller tout particulièrement à la protection des informations gérées par une telle partie de confiance. Enfin, l’effet d’étranglement, dû au flux d’informations qui transitent en masse par la TPC, est maximum. Une TPC in-line requiert, en conséquence, une confiance particulièrement importante de la part des acteurs ainsi qu’une quantité de ressources centralisées considérable. 4.2.1 Le protocole de non-répudiation de Coffey et Saidha Ce protocole d’échange, proposé en 1996, illustre bien l’usage de TPC in-line. Coffey et Saidha [29] utilisent la TPC comme serveur de non-répudiation. Les preuves de non-répudiation ne sont retransmises par la TPC que lorsqu’Alice et Bob les lui ont fournies. La TPC va donc collecter les preuves et ne les transmettre que par la suite. Nous faisons l’hypothèse que les canaux de communication entre chaque entité et les tierces parties de confiance sollicitées sont réactifs. Le protocole fait usage de cachets temporisés émis par une autorité de confiance gardienne du temps4 (autorité de gestion du temps, AGT en abrégé). L’autorité de gestion des cachets temporisés ne se préoccupe pas du contenu des messages qui lui sont soumis (contrairement à ce qui est parfois attendu d’une TPC), elle se contente d’ajouter un cachet temporisé à un message signé par l’acteur avec lequel elle communique. 4 time stamping authority en anglais. 48 Chapitre 4 : Non-répudiation avec tierce partie de confiance Protocole 4.1 Le protocole de Coffey et Saidha 1. A → AGT : CKAGT (NRO PS ) 2. AGT → A : CKA (NRO) 3. A → TPC : requête d’un transfert non-répudiable 4. TPC → A : CKA (n³ 1) ´ f A (n1 , NRO, NRR P ) 5. A → TPC : CKTPC Sig ´ ³ f TPC (n2 , NRR P ) 6. TPC → B : CKB Sig 7. 8. 9. B → AGT : CKAGT (NRR PS ) AGT → B : CKB (NRR) ´ ³ f B (n2 , NRR) B → TPC : CK Sig ¨ ¨ ¨ ¨ ¨B ¨B ¨B ¨B TPC 10. 11. TPC → B : CKB (NRO) TPC → A : CKA (NRR) ¨ Les preuves Le protocole assure l’échange de preuves de non-répudiation à l’origine ainsi qu’à la réception, mais pour ce faire, il utilise des messages intermédiaires qui sont des preuves partielles de non-répudiation. De telles preuves sont dites partielles car elles entrent dans la composition des preuves de non-répudiation. La preuve partielle de non-répudiation à l’origine signée est : f A (fNRO , A, B, m) NRO PS = Sig où fNRO est un code indiquant le but du message (à savoir apporter la preuve de non-répudiation à l’origine), A et B sont des strings désignant respectivement Alice et Bob et m est le message, concerné par les preuves de non-répudiation, transmis par Alice à Bob. Les virgules dénotent des concaténations. La preuve de non-répudiation à l’origine5 est : f AGT (NRO PS , AGT , ct1 ) NRO = Sig où ct1 est un cachet temporisé, assurant la fraîcheur du message, apposé par l’autorité de gestion du temps. La preuve partielle de non-répudiation à la réception non signée consiste en : NRR P = fNRR , B, A, h (NRO) où fNRR indique que le but de cette preuve est d’apporter la non-répudiation à la réception. La preuve partielle de non-répudiation à la réception signée : 5 f B (NRR P ) NRR PS = Sig NRO pour non-repudiation of origin evidence en anglais. 4.2 Méthodes avec tierce partie de confiance in-line 49 Enfin, la preuve de non-répudiation à la réception6 est : f AGT (NRR PS , AGT , ct2 ) NRR = Sig où ct2 est, comme ct1 , un cachet temporisé apposé par l’autorité de gestion du temps. Le protocole À chaque pas du protocole décrit ci-dessous, la réception d’un message incorrect (invalidité d’une signature, etc.) entraîne l’arrêt du protocole par le récipiendaire. 1. Alice initie le protocole en soumettant à l’autorité de gestion du temps la preuve partielle signée de non-répudiation à l’origine pour qu’elle soit datée et signée par cette autorité : A → AGT : CKAGT (NRO PS ) 2. L’autorité de gestion du temps, si la signature d’Alice est valide, répond par la preuve de non-répudiation à l’origine, chiffrée pour qu’elle ne soit accessible qu’à Alice : AGT → A : CKA (NRO) 3. Si la preuve de non-répudiation est valide (y compris le cachet temporisé), Alice demande à la TPC l’initialisation d’une communication nonrépudiable : A → TPC : requête d’un transfert non-répudiable 4. Si la TPC reçoit une telle requête, elle répond par l’envoi chiffré d’un nonce aléatoire, n1 (utilisé donc exclusivement pour cette session du protocole). Cette valeur aléatoire, temporairement conservée par la TPC, ne pourra être obtenue que par Alice qui, seule, peut déchiffrer ce message : TPC → A : CKA (n1 ) 5. Alice inclut dans sa réponse à la TPC ce nombre aléatoire n1 (garantissant à la TPC que ce message ne provient pas d’une autre session du protocole). Elle envoie la preuve complète de non-répudiation à l’origine et la preuve partielle de non-répudiation à la réception. La TPC pourrait calculer cette preuve partielle de non-répudiation à la réception, mais Alice le réalise pour diminuer la charge de la tierce partie : 6 NRR pour non-repudiation of receipt evidence en anglais. 50 Chapitre 4 : Non-répudiation avec tierce partie de confiance ´ ³ f A (n1 , NRO, NRR P ) A → TPC : CKTPC Sig 6. Si le message envoyé par Alice et sa signature sont valides, la TPC initie la génération de la preuve de non-répudiation à la réception. Pour ce faire elle envoie à Bob un deuxième nonce aléatoire, n2 , propre à cette session du protocole, ainsi que la preuve partielle de non-répudiation à la réception : ´ ³ f TPC (n2 , NRR P ) TPC → B : CKB Sig 7. Bob signe la preuve partielle de non-répudiation à la réception et l’envoie à l’autorité de gestion du temps pour que celle-ci y appose un cachet temporisé signé : B → AGT : CKAGT (NRR PS ) 8. Si le message est reçu et si sa signature est correcte, Bob reçoit en retour la preuve de non-répudiation à la réception signée et datée, le tout formant la preuve complète de non-répudiation à la réception : AGT → B : CKB (NRR) 9. Bob soumet la preuve obtenue, si cette dernière est valide, à la TPC en incluant le nombre aléatoire n2 : ´ ³ f B (n2 , NRR) B → TPC : CKTPC Sig 10. La TPC peut « oublier » n1 et n2 , et envoie la preuve de non-répudiation à l’origine à Bob : TPC → B : CKB (NRO) 11. Puis elle envoie la preuve de non-répudiation à la réception à Alice : TPC → A : CKA (NRR) Remarquons que l’ordre des deux derniers envois n’a pas d’importance. L’équité Rappelons que les autorités intervenant dans le protocole, l’AGT et la TPC, sont supposées honnêtes. Les raisonnements qui vont suivre se baseront, entre autres, sur la certitude d’un comportement adéquat de leur part. Théorème 4.1 Le dernier envoi du protocole ainsi que les envois du protocole précédant le cinquième envoi sont des points de forte complétude universels. 4.2 Méthodes avec tierce partie de confiance in-line 51 Preuve : Si Alice arrête le protocole avant le cinquième envoi, la TPC ne reçoit pas la preuve de non-répudiation à l’origine et ne continue pas le protocole. Bob n’a donc plus d’autre choix que d’arrêter aussi le protocole (il ne sera pas contacté par la tierce partie). Ni Alice, ni Bob n’ont les preuves attendues. De même si Bob arrête le protocole avant le cinquième envoi, Alice pourra contacter la TPC lors du sixième envoi. Mais cette dernière, n’obtenant aucune réponse de Bob, ne pourra rien transmettre en retour à Alice. Après le onzième envoi, les preuves sont reçues par les acteurs cibles et le protocole prend fin naturellement. ¤ Théorème 4.2 Les cinquième, sixième, septième et huitième envois sont des points de fortes complétudes pour Bob. Preuve : Si Bob met fin au protocole avant le neuvième envoi (et après le cinquième envoi), il ne fournit pas la preuve de non-répudiation à la réception à la TPC, qui ne peut donc la transmettre à Alice, et ne reçoit donc pas la preuve de non-répudiation à la réception. Alice n’a plus d’autre choix que d’arrêter aussi le protocole. Par contre Alice ne peut spontanément arrêter de prendre part au protocole après le cinquième envoi car elle ne peut prévoir le comportement de Bob, qui s’il réalise le neuvième envoi, recevra la preuve de non-répudiation à l’origine. ¤ Théorème 4.3 Le protocole est fortement équitable. Preuve : Avant le neuvième envoi, le protocole peut être arrêté sans risque (puisque chacun de ces envois correspond à un point de complétude). Si Bob réalise le neuvième envoi, la TPC y répondra aux envois dix et onze : le point de complétude universel correspondant à l’exécution du onzième envoi est donc atteint. Par l’hypothèse de conservation, Alice n’abandonnera plus le protocole après le cinquième envoi ; de même Bob ne l’abandonnera plus après le neuvième envoi. Puisque, par hypothèse, les canaux entre la TPC et respectivement Alice et Bob sont réactifs, les preuves de non-répudiation attendues seront reçues par Alice et Bob. ¤ La fin du protocole Les auteurs n’ont pas proposé d’user de délais maxima après lesquels on considère un message comme perdu. Tel que présenté par les auteurs, le protocole ne peut donc être prouvé temporellement fini. Théorème 4.4 Si un délai maximum d’attente ti est fixé pour chaque envoi i, le protocole est temporellement fini. 52 Chapitre 4 : Non-répudiation avec tierce partie de confiance Preuve : Puisque les canaux de communication entre les tierces parties de confiance (TPC et AGT) et respectivement Alice et Bob sont réactifs, les envois 2, 4, 6, 8, 10 et 11 sont réalisés et arrivent en un temps fini non prévisible. Les autres envois i (qui ne sont pas émis par une autorité de confiance) sont éventuellement reçus avant ti unités de temps ; si ce n’est pas le cas, le protocole est arrêté. Le protocole se termine ainsi en un temps fini. ¤ Les disputes Si Alice affirme avoir envoyé avec succès le message m à Bob, le juge lui demande ou demande à la TPC la preuve de non-répudiation à la réception ainsi que la preuve de non-répudiation à l’origine. Si ces preuves ne peuvent être fournies, le juge rejette l’affirmation d’Alice. Dans le cas contraire, le juge vérifie les signatures d’Alice et de l’autorité de gestion du temps sur la preuve de nonrépudiation à l’origine. Puis il vérifie si le hachage de cette preuve de nonrépudiation à l’origine correspond au hachage présent dans la preuve de nonrépudiation à la réception7 . Enfin, il vérifie les signatures de Bob et de l’autorité de gestion du temps sur la preuve de non-répudiation à la réception. Si toutes ces vérifications réussissent l’affirmation est acceptée. Si Bob affirme avoir reçu le message m d’Alice, le juge demande à Bob ou à la TPC la preuve de non-répudiation à l’origine. Si cette preuve ne peut être fournie, l’affirmation est rejetée. Sinon, le juge vérifie si le message précisé dans la preuve de non-répudiation à l’origine correspond au m annoncé par Bob. Puis il vérifie les signatures d’Alice et de l’autorité de gestion du temps sur cette preuve de non-répudiation. Si toutes ces vérifications réussissent l’affirmation est acceptée. La viabilité Théorème 4.5 Le protocole est viable. Preuve : Par hypothèse, puisque les acteurs sont tous honnêtes et comme aucun message n’est définitivement bloqué, tous les envois du protocole sont réalisés, les preuves sont émises par la TPC et finalement reçues par Alice et Bob. Notons que, sans canaux réactifs, un message pourrait être perdu lors de sa transmission, mettant ainsi fin au protocole malgré l’honnêteté des acteurs. ¤ Le comportement de la tierce partie de confiance Un protocole in-line est très sensible à une déviance de comportement d’une autorité de confiance. 7 Rappelons que la preuve de non-répudiation à la réception NRR est basée sur la preuve partielle de non-répudiation à la réception signée NRR PS qui est composée de la preuve partielle de non-répudiation non signée contenant le hachage de la preuve de non-répudiation à l’origine NRO. 4.3 Méthodes avec tierce partie de confiance on-line 53 La TPC peut s’allier avec Alice et lui envoyer un n1 déjà utilisé et/ou accepter un cachet temporisé dépassé et le transmettre à Bob en fin de protocole. Elle peut accepter une signature non valide d’Alice et finalement la transmettre à Bob. Ces attitudes résulteront en une perte de l’équité au profit d’Alice. Si elle s’allie avec Bob, les mêmes comportements à l’avantage de Bob mèneront à déséquilibrer le processus. Tous ces comportements sont détectables par Alice et Bob s’ils reçoivent une signature non valide (dont la vérification échoue ou encore réalisées sur base de clés révoquées). Cependant il ne semble pas aisé, pour une partie flouée par une TPC, de le prouver à des tiers. La tierce partie peut aussi faire échouer l’échange en ne transmettant rien en fin de protocole ou en transmettant des signatures non valides à la fin du protocole. À nouveau, ce comportement se détecte aisément. Remarques La confidentialité est assurée tout au long du protocole. Le message m est inclus dans NRO ainsi que dans NRO P S , lesquels sont toujours transmis chiffrés. Les cachets temporisés ct1 et ct2 apposés par l’AGT sont aussi nécessaires pour distinguer les preuves de non-répudiation produites par différentes sessions du protocole. En effet, les valeurs n1 et n2 émises au cours du protocole ne sont pas reprises dans les preuves de non-répudiation. L’autorité de gestion du temps et la TPC interagissent directement avec Alice et Bob, et de plus la TPC vérifie des signatures provenant d’Alice et Bob : aucun anonymat n’est donc possible à cet endroit. Un observateur extérieur ne voit que des messages chiffrés ; il ne peut donc en déduire l’origine. L’anonymat est donc garanti vis à vis de cet observateur. Remarquons que pour un même niveau de sécurité, des techniques plus légères pourraient être utilisées. Ne tentons pas de modifier ce protocole, mais étudions plutôt les protocoles suivants qui font usage d’une TPC on-line, dont deux (sections 4.3.2 et 4.3.3) peuvent être vus comme des améliorations de ce protocole-ci. 4.3 Méthodes avec tierce partie de confiance on-line Les protocoles basés sur des TPC on-line sont tels que la tierce partie n’agit plus comme une autorité de livraison des messages (en tant qu’intermédiaire lors de chaque échange entre les acteurs), mais intervient à un moment ou un autre à chaque session du protocole. Nous allons à présent étudier trois protocoles de non-répudiation représentatifs de l’usage qui peut être fait d’une telle TPC. 54 4.3.1 Chapitre 4 : Non-répudiation avec tierce partie de confiance Le protocole de non-répudiation par balises Pour introduire pratiquement cette section sur les protocoles de non-répudiation avec TPC on-line, nous allons exceptionnellement faire un retour dans le temps et présenter un protocole proposé par Rabin [59] en 1983. Il propose une méthode originale, appelée méthode par balises8 , permettant de réaliser l’échange d’une information contre un accusé de réception. Cette approche, par l’usage qui est fait de la TPC, est fort différente des méthodes traditionnellement développées. La balise est une TPC qui, au moyen d’un canal radio ou via un réseau, diffuse 9 , à intervalle de temps régulier et fixé ∆, un message : f TPC (p1 , . . . , pk , d, j, t) Sig Ce message est composé du moment t de transmission de ce signal, de k clés publiques de chiffrement pi choisies aléatoirement10 et d’une clé de déchiffrement d correspondant à la j ième clé publique p′j (j choisi aléatoirement entre 1 et k) transmise lors de l’émission précédente, au moment t − ∆. Les prémices Un protocole de mise en accord est préalablement réalisé entre les acteurs. Si Alice désire envoyer à Bob le message m, elle lui enverra préalablement ce message m chiffré pour Bob, puis à nouveau chiffré au moyen d’une clé de session K choisie par Alice (avec un schéma de chiffrement symétrique) : CK (CKB (m)) ainsi que : (4.1) digest = h (CK (CKB (m))) Protocole 4.2 Le protocole par balises de Rabin Un tour du protocole consiste en : 1. B → A : i f B (digest, i, t + ∆) 2. B → A : Sig ¢ ¡ f A digest, Cp′ (K) , i, t 3. A → B : Sig i f TPC (p1 , . . . , pk , d, j, t + ∆) 4. TPC diffuse Sig 8 entre t et t + ∆ 6 entre t + ∆ et t+ 6 ∆ entre t + 3 et t + au moment t + ∆ ∆ 3 2∆ 3 ¨ P♦ ¨ beacons en anglais. Diffusion dans le sens de broadcasting en anglais. 10 Exceptionnellement dans cette sous-section, pour respecter les notations originales de Rabin, nous n’utiliserons pas k comme une clé. 9 4.3 Méthodes avec tierce partie de confiance on-line 55 Les preuves La preuve de non-répudiation à l’origine du message m, composable après le moment t + ∆, est : ( ¢ ¡ f A digest, Cp′ (K) , i, t Sig i NRO = (4.2) f TPC (p1 , . . . , pk , d, i, t + ∆) Sig pour un moment t, un entier i et une clé de session K chiffrée au moyen de la clé publique de chiffrement p′ i . La preuve de non-répudiation à la réception du message m, composable après le moment t + ∆ est : ( f B (digest, i, t + ∆) Sig (4.3) NRR = f TPC (p1 , . . . , pk , d, i, t + ∆) Sig pour un moment t et un entier i. Le protocole Un protocole d’échange s’engage entre Alice et Bob (A et B) de la manière suivante : 1. Bob envoie à Alice, entre le moment t et t + rement (au moment t) ∈ [1, k] : ∆ 6, un entier i choisi aléatoi- B→A:i 2. Bob envoie à Alice, entre le moment t + ∆ 6 et t + ∆ 3, sa signature : f B (digest, i, t + ∆) B → A : Sig f TPC (p′ , . . . , p′ , d′ , j ′ , t) de la balise, 3. Si Alice a reçu i et le message Sig 1 k ième elle extrait alors la i clé publique p′i de l’envoi de la balise, et calcule 2∆ Cp′i (K) qu’elle envoie a Bob, entre le moment t + ∆ 3 et t + 3 au moyen du message : ³ ´ f A digest, Cp′ (K) , i, t A → B : Sig i D’un autre côté, si Alice n’a pas reçu la signature de Bob (du deuxième ∆ envoi) entre t + ∆ 6 et t + 3 , elle ne continue pas le protocole. 4. Bob attend jusqu’au moment t + ∆ le message suivant émis par la balise (s’il n’a rien reçu, il arrête le protocole) : f TPC (p1 , . . . , pk , d, j, t + ∆) Sig 56 Chapitre 4 : Non-répudiation avec tierce partie de confiance À ce moment, si j = i alors le protocole se termine. En effet, d est la clé de déchiffrement de p′i et dans ce cas Bob peut utiliser d pour retrouver la clé de session K incluse dans la signature d’Alice (du troisième envoi) et ainsi retrouver le message m. De son côté Alice a déjà obtenu la signature de Bob sur le message prouvant qu’il l’a bien reçu. Si j 6= i le protocole décrit est itéré et ce jusqu’à ce qu’une clé valide de déchiffrement soit émise par la balise. Remarquons que le protocole prévoit l’envoi à deux reprises de i (aux deux premiers envois). La raison en est « historique » ; en effet ce protocole fut réalisé par Rabin sur base d’un protocole d’échange de signatures digitales sur un contrat, présenté dans le même article. Dans ce protocole, deux valeurs i1 et i2 sont émises aux premiers envois pour fixer la valeur de i = i1 + i2 . Rabin, n’ayant plus besoin de deux valeurs distinctes dans le protocole d’échange présenté ici, a néanmoins conservé les deux envois. L’équité Théorème 4.6 À chaque tour du protocole, le premier et le dernier envoi sont des points de forte complétude universels. Preuve : Nous pouvons considérer que le premier envoi de chaque tour du protocole est équivalent au premier envoi du premier tour, puisque si un nouveau tour doit être initié cela signifie que la balise n’a pas émis la clé de déchiffrement attendue et que les informations échangées au tour précédent sont obsolètes. Après le premier envoi, Bob a envoyé l’entier i qui sera utilisé lors des prochains échanges. Sur base de cette valeur, Alice ne peut contrefaire la signature du digest générée par Bob (puisqu’elle ne connaît pas la clé secrète que Bob utilise pour générer ses signatures). Ni Alice, ni Bob n’ont reçu l’information attendue. Si Bob arrête le protocole après ce premier envoi, Alice ne recevant plus rien arrêtera le protocole. Si Alice arrête le protocole, Bob ne recevant plus rien et n’ayant encore rien obtenu, arrêtera aussi le protocole. Après le quatrième envoi, la balise a émis son message et il ne reste plus qu’à comparer i et j. Soit les preuves de non-répudiation sont échangées soit aucun des messages envoyé n’a la valeur d’une telle preuve. ¤ Théorème 4.7 À chaque tour du protocole, le deuxième envoi est un point de complétude probabiliste. Cet envoi est un point de k1 -complétude. Preuve : Après le deuxième envoi, si Alice arrête le protocole et si la balise émet au moment t + ∆ un j 6= i alors le protocole reste équitable. Mais si le j émis par la balise est égal au i choisi par Bob à ce tour du protocole alors l’équité est brisée et seule Alice reçoit la preuve attendue. Une telle situation survient avec une probabilité égale à k1 . Si Alice arrête le protocole après ce deuxième 4.3 Méthodes avec tierce partie de confiance on-line 57 envoi, Bob ne recevant plus rien arrêtera le protocole. Par contre, si Bob ne prend plus part au protocole après le deuxième envoi, Alice peut quant à elle éventuellement obtenir de la TPC la preuve de non-répudiation à la réception (avec une probabilité égale à k1 ). ¤ Théorème 4.8 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, le protocole implémente une équité probabiliste : le protocole est k1 -équitable. Preuve : À chaque tour du protocole, seul le troisième envoi n’est pas un point de complétude (probabiliste ou non). Cependant, si Alice ou Bob décident d’arrêter le protocole après le troisième envoi, il y a un risque de perte d’équité en l’unique défaveur de l’acteur ayant arrêté le protocole. Ainsi, aucune partie n’a intérêt à arrêter le protocole (tous les messages ont été échangés entre Alice et Bob, et la validité de ceux-ci se décide sur base du message qui va être émis par la balise au quatrième envoi). Par l’hypothèse de conservation le protocole continuera. Ainsi, avec une probabilité 1 − k1 , il est toujours possible d’atteindre un des trois points de complétude énoncés aux théorèmes 4.6 et 4.7. ¤ Remarquons que même si le message émis par la TPC n’est pas arrivé à temps et si les parties entament un nouveau tour11 , lorsque ce message-balise arrive finalement, il reste valide (les acteurs ont donc tout intérêt à ne pas « jeter » les informations reçues avant d’avoir reçu le message de la balise). La fin du protocole Théorème 4.9 Le protocole de Rabin ne peut être prouvé temporellement fini. Preuve : Si Alice et Bob sont honnêtes et si les messages envoyés sont reçus dans les délais attendus, alors le protocole se termine avec succès en moyenne en k · ∆ unités de temps. Dans tous les autres cas de figure le protocole se termine avant ce moment. Cependant, le protocole ne peut être prouvé temporellement fini car la probabilité que, après n tours du protocole, nous ayons toujours i 6= j, bien que diminuant quand n grandit, ne s’annule jamais (cela est dû au comportement asymptotique de la distribution géométrique). ¤ Les disputes Si Alice prétend avoir envoyé avec succès le message m à Bob, la preuve de non-répudiation à la réception est acceptée par toutes les parties, pour autant que les signatures de Bob et de la TPC soient valides, que les preuves soient de 11 Les deux premiers envois d’un tour peuvent être réalisés indépendamment du tour précédent. Le troisième envoi nécessite une des clés émises par la balise au tour précédent. 58 Chapitre 4 : Non-répudiation avec tierce partie de confiance la forme indiquée en 4.2 et 4.3, que i = j et que i et t + ∆ soient présents dans les messages signés. Remarquons que cette résolution de dispute ne permet pas de s’assurer que le message m indiqué par Alice correspond à celui reçu par Bob. En effet, si Alice a chiffré, au cours des prémices, le message m avec une clé K̄ différente de la clé K qu’elle transmet à Bob au cours du protocole, ce dernier peut alors présenter au juge la signature d’Alice : ³ ´ f A digest, Cp′ (K) , i, t Sig (4.4) i avec K̄ 6= K, ce qui invalidera l’affirmation d’Alice (le juge se rendra compte aussi que le digest ne peut être reconstruit avec la clé K). Dans cette situation, ni Alice, ni Bob n’auront de preuve mais Alice est alors reconnue malhonnête. Si Bob prétend avoir reçu le message m d’Alice, il présente au juge la preuve de non-répudiation à l’origine. Le juge vérifie si les signatures d’Alice et de la TPC sont correctes et si i = j, si les t sont les mêmes et si la clé K extraite de la signature d’Alice permet de reconstruire le digest de m. La sécurité Alice ou Bob ne peuvent utiliser à mauvais escient un message d’une session du protocole lors d’une session ultérieure puisque les messages signés qu’ils reçoivent contiennent le moment t ou t + ∆ de leur émission. Nous mettons cependant en évidence un cas de figure qui, à notre connaissance n’avait pas encore été identifié, au cours duquel un opposant, Oscar (O), peut perturber le protocole en tirant éventuellement un bénéfice de cette perturbation au détriment d’Alice et Bob. Supposons qu’Oscar soit en mesure d’intercepter un message provenant d’Alice ou Bob et de le bloquer (le canal entre Alice et Bob est incertain). Considérons alors la séquence d’échange suivante, durant laquelle Alice veut envoyer un message m à Bob : 1’. A → O → B : CK (CKB (m)) 2’. A → O → B : digest = h (CK (CKB (m))) 1. B → O : i f B (digest, i, t + ∆) 2. B → O : Sig Si le message de la balise en t + ∆ est tel que j = i, alors la preuve de nonrépudiation à la réception émise par Bob et obtenue uniquement par Oscar est acceptée par tous. Une telle situation survient avec une probabilité égale à k1 . Un tour du protocole de Rabin peut être très aisément modifié pour se prémunir d’une telle attaque (les contraintes temporelles sont les mêmes que celles décrites plus haut, nous les omettons ici par souci de lisibilité) : 1. B → A : i f B (A, digest, i, t + ∆) 2. B → A : Sig 4.3 Méthodes avec tierce partie de confiance on-line 59 ³ ´ f A B, digest, Cp′ (K) , i, t 3. A → B : Sig i f TPC (p1 , . . . , pk , d, j, t + ∆) 4. La TPC émet Sig Ces modifications sont inspirées des recommandations d’Abadi et de Needham [1]. Les messages 2 et 3 incluent le nom des récipiendaires. La présence du nom du récipiendaire A dans le deuxième message empêche Oscar de présenter la preuve comme en étant le récipiendaire. Les autres protocoles étudiés dans ce chapitre sont plus récents que celui de Rabin, aussi de telles attaques par un homme au milieu ne seront pas réalisables. Le comportement de la tierce partie de confiance Un comportement malhonnête de la TPC peut s’exprimer de plusieurs façons. Alliée avec Alice, elle peut lui fournir la preuve de non-répudiation à la réception tout en empêchant Bob de recevoir la preuve de non-répudiation à l’origine. Pour ce faire, il suffit à la TPC d’indiquer au début d’un tour de protocole que l’envoi de balise qu’elle va réaliser sera celui où j = i, ainsi Alice arrête le protocole après le deuxième envoi. Alice reçoit sa preuve alors que Bob ne reçoit rien. Un tel comportement occasionnel de la TPC est indétectable. Si la TPC s’allie avec Bob, elle peut lui transmettre la clé de déchiffrement d puis émettre un message balise tel que j 6= i, Bob arrête le protocole à la fin de ce tour du protocole. Il possède alors le message m, mais ne peut prétendre avoir reçu ce message d’Alice puisqu’il n’a pas la preuve de non-répudiation à l’origine (il ne pourrait prouver à un juge posséder une telle preuve puisqu’il ne peut présenter une signature d’Alice et une signature de la TPC telles que i = j). La TPC peut encore envoyer personnellement à Bob le message balise attendu qui contient la clé de déchiffrement d attendue par Bob puis arrêter le protocole pour qu’Alice ne reçoive rien. Bob possède alors seul la preuve de non-répudiation, mais ce comportement de la tierce partie est évidemment directement détectable. Sans être alliée à un acteur cible, la TPC peut observer à chaque tour du protocole le i choisi par Bob et transmettre chaque fois un j 6= i ; le protocole reste équitable mais ne se termine jamais. Une telle situation survient normalement avec une probabilité infime mais non nulle ; si la tierce partie se comporte ainsi de manière répétée, cela pourra être détecté par observations. La viabilité Théorème 4.10 Si les canaux de communication entre tous les acteurs sont réactifs, le protocole est viable. Preuve : Si Alice et Bob sont honnêtes, lorsque l’entier i choisi et émis par Bob est égal au j choisi et émis par la TPC, alors le point de complétude correspondant à la réalisation du dernier envoi d’un tour de protocole est atteint 60 Chapitre 4 : Non-répudiation avec tierce partie de confiance et le protocole se termine puisque les preuves de non-répudiation à l’origine (4.2) et à la réception (4.3) sont reçues respectivement par Bob et Alice. L’événement i = j correspond à l’expérience consistant à tirer aléatoirement, suivant une distribution uniforme entre 1 et k, et indépendemment, deux valeurs identiques. La probabilité qu’au nième ¡ ¢ tirage, les deux valeurs soient pour la 1 1 n−1 première fois égales vaut k · 1 − k . Cette probabilité, paramétrée par k et n, s’exprime par une distribution géométrique en n dont le facteur de succès vaut k1 . La moyenne d’une telle distribution vaut 11 = k. Ainsi l’événement i = j est attendu en moyenne après k tours. k Si le canal de communication entre les parties n’est pas réactif, un message émis par la TPC pourrait être intercepté et définitivement bloqué. Par contre un retard n’a pas de conséquence fâcheuse. ¤ Remarques Ce protocole, présenté comme un protocole d’échange équitable 12 , s’apparente à notre définition d’un protocole de non-répudiation. Si Alice triche et envoie une « fausse » clé K̃ de déchiffrement13 , la preuve de non-répudiation à la réception porte bien sur un message résultant du déchiffrement D K̃ (CK (CKB (m))) au moyen de cette clé14 . Le protocole est tel que le message m reste confidentiel et n’est récupérable que par Bob. Cette confidentialité n’est a priori pas requise par un protocole de non-répudiation. Cette approche probabiliste de l’équité doit être mise en regard avec la méthode 5.5 proposée au chapitre suivant. Comme pour toutes les méthodes basées sur les TPC, la sécurité du protocole repose entièrement sur la confiance que l’on porte à cette dernière. La TPC ne recevant aucun message d’Alice ou de Bob, l’anonymat vis à vis d’elle est assuré. Un observateur, Oscar, du protocole voit des messages signés par Alice et Bob circuler sur le réseau. Si ces signatures digitales sont classiques, elles sont universellement vérifiables. L’anonymat n’est donc formellement pas assuré face à un observateur. Notons cependant que si Oscar ignore l’identité du signataire, il ne peut savoir quelle clé publique utiliser pour vérifier la signature. La version modifiée n’assure pas d’anonymat face à un observateur. Notons enfin que la nécessité de synchronisation est une contrainte lourde à réaliser. Aussi le délai ∆ doit être paramétré de manière à ce que l’acteur ayant la plus petite puissance de calcul puisse fournir les messages nécessaires dans les délais attendus. 12 appelé confidential disclosure. dans [59] Alice chiffrerait donc le message m au moyen de la clé K et transmettrait au cours du protocole une clé K̃. 14 En supposant que le digest soit aussi basé sur cette clé K̃ : digest = h (CK̃ (CKB (DK̃ (CK (CKB (m)))))). 13 4.3 Méthodes avec tierce partie de confiance on-line 4.3.2 61 Le protocole de non-répudiation de Zhang et Shi Zhang et Shi ont proposé [74] en 1996 un protocole où une TPC publie (au moment adéquat et en le rendant accessible à quiconque à la manière d’un panneau d’affichage15 ) les clés de session, et maintient une base de donnée contenant les clés de session utilisées au cours des sessions de ce protocole ainsi que les moments où ces clés ont été déposées dans la base de données 16 . Cette base de données n’est accessible qu’en lecture. Soit Alice l’auteur du message m qu’elle désire envoyer à Bob ; elle choisit une clé de session (basée sur un cryptosystème symétrique) et envoie à Bob le chiffré du message au moyen de cette clé de session. Ce chiffrement s’apparente à une mise en gage de m plutôt qu’à une recherche de confidentialité. Bob accusera réception de ce chiffré en envoyant une signature qui ne sera considérée comme valable que si la clé de session est rendue publique au plus tard à un moment fixé et à la condition que cette clé de session déchiffre correctement le message. Lorsque cette signature « conditionnelle » est reçue par Alice, elle transmet la clé de session à la TPC, qui la publie. Bob obtiendra cette clé en consultant le répertoire public de la TPC. Protocole 4.3 Le protocole de Zhang et Shi f A (h (CK (m)) , nA ) 1. A → B : CKB (CK (m)) , Sig f B (h (CK (m)) , nA , nB , tB ) 2. B → A : Sig f A (h (CK (m)) , K, tB ) 3. A → TPC : CK (label , tB ) , Sig ¨ ¨A TPC 4. TPC ↔ B : label , IA ¨ Les preuves La preuve de non-répudiation à l’origine est : ( f A (h (CK (m)) , K, tB ) Sig NRO = CK (m) (4.5) où K est une clé secrète finalement partagée par Alice et Bob, relative à un schéma de chiffrement symétrique, et tB est une information temporelle précisant le moment auquel les preuves doivent être consultables auprès de la TPC. Cette signature d’Alice sera extraite d’un message signé par la TPC : ³ ´ f TPC label , Sig f A (h (CK (m)) , K, tB ) Sig où le label (construit au cours du protocole) identifie de manière unique le message m. 15 public board en anglais. Contrairement aux protocoles suivants, le juge doit consulter la TPC pour déterminer si une preuve est acceptable. La TPC ne peut donc pas effacer les informations de la base de données à la fin du protocole. Cette base de données grandit donc indéfiniment. 16 62 Chapitre 4 : Non-répudiation avec tierce partie de confiance La preuve de non-répudiation à la réception est : ( f B (h (CK (m)) , nA , nB , tB ) Sig NRR = CK (m) (4.6) où nA et nB sont des nonces aléatoires associés à la session du protocole. Le protocole Si un message est incorrect ou si un message attendu n’arrive pas, le récipiendaire potentiel arrête le protocole. 1. Alice choisit un nonce aléatoire, nA , qui permet de ne rendre la signature valide que pour une seule session du protocole. Alice transmet à Bob le message m chiffré avec la clé de session K et à nouveau chiffré au moyen de la clé publique de Bob, ainsi que sa signature sur le nonce nA et sur le hachage de m chiffré au moyen de la clé de session K : f A (h (CK (m)) , nA ) A → B : CKB (CK (m)) , Sig 2. Bob déchiffre la première partie du message reçu, en utilisant sa clé secrète K ′ B . Il vérifie l’identité d’Alice (en vérifiant la validité de la signature de la deuxième partie du message). Bob calcule h (CK (m)) et le compare au hachage extrait de la signature d’Alice. Si les deux hachages ne sont pas identiques ou si la signature n’est pas valide, le protocole est arrêté. Sinon, l’authenticité et l’intégrité de CK (m) sont prouvés. Bob choisit alors un nonce aléatoire nB (prévenant une éventuelle tricherie de la part d’Alice qui utiliserait un nA utilisé lors d’une précédente session), et fixe tB , un délai maximum précisé à l’intention de la TPC. tB représente le moment limite avant lequel Alice doit avoir fourni la clé de session K à la TPC, laquelle devra la publier avant ce moment si Alice veut obtenir un accusé de réception valide. Ce mécanisme permet à Bob de s’assurer qu’Alice ne peut retarder indéfiniment la publication de la clé de session : f B (h (CK (m)) , nA , nB , tB ) B → A : Sig 3. Alice vérifie la signature de Bob et détermine si CK (m) et nA extraits de la signature sont identiques aux premiers envoyés. Si ce n’est pas le cas la session du protocole prend fin et le protocole peut être éventuellement relancé. Ensuite Alice évalue si elle peut transmettre la clé K dans les délais prescrits. Si elle pense ne pas pouvoir le faire, elle met fin au protocole et en informe Bob (et relance éventuellement une nouvelle session du protocole). Si tout est en ordre, Alice calcule le label qui identifie l’information qui doit être publiée par la TPC. Ce label est calculé sur base de nA , nB et tB (valeurs auxquelles Alice et Bob ont chacun contribué) : label = f (nA , nB , tB ) où f réaliserait, par exemple, une addition 4.3 Méthodes avec tierce partie de confiance on-line 63 modulo 2 bit à bit. tB est inclus à la fois dans le message et la signature afin de permettre à la TPC de confirmer l’intégrité et l’origine du message. f A (h (CK (m)) , K, tB ) A → TPC : CKTPC (label , tB ) , Sig 4. Le message d’Alice reçu, la TPC enregistre le moment d’arrivée du message, puis vérifie la signature d’Alice ainsi que l’intégrité du message reçu en comparant tB du message à celui de la signature. Si une vérification échoue, la session est arrêtée. Si tout est en ordre, la TPC rend public le message IA . Si le moment d’arrivée du message de A est plus tardif que tB , alors : f TPC (label , late) IA = Sig (4.7) f TPC (label , tr , null ) IA = Sig (4.8) Si la TPC reçoit une requête de consultation et que rien ne lui est parvenu à ce propos (sur base du label reçu), alors : où tr correspond au moment où la TPC répond à la requête. Sinon : ³ ´ f TPC label , Sig f A (h (CK (m)) , K, tB ) IA = Sig (4.9) Une fois tB passé, Bob utilise le label pour obtenir l’information publique via la TPC (en consultant le répertoire public de la TPC 17 ). Il peut réaliser cette opération avant ce délai pour peu qu’Alice ait déjà soumis l’information adéquate à la TPC. TPC ↔ B : label , IA Ensuite la TPC sauvegarde le message, la signature et le moment d’arrivée du message d’Alice dans une base de données qui sera consultée en cas de disputes. Bob vérifie le label signé, consulte la TPC et s’assure que la clé de session a bien été publiée à temps (par l’absence de late ou null dans la signature). Il vérifie alors la signature d’Alice, afin de s’assurer qu’elle contient un hachage correct et le tB correspondant à cette session. Enfin Bob utilise la clé K pour déchiffrer le message m reçu lors de la première transaction. L’information temporelle tB doit tenir compte du décalage des horloges entre Alice, Bob et la TPC. Les auteurs précisent que de tels décalages sont au plus de l’ordre de la seconde lors de l’utilisation de mécanismes actuels de synchronisation au travers de réseaux. 17 Un risque de collision existe si f est mal choisi. L’addition bit à bit modulo 2 suggérée par Zhang et Shi semble inadéquate à cet égard. 64 Chapitre 4 : Non-répudiation avec tierce partie de confiance L’équité Théorème 4.11 Les points de forte complétude universels du protocole correspondent au premier et au dernier envois. Preuve : Après le premier envoi, si le protocole s’arrête (pour quelque raison que ce soit), Alice ne pourra recevoir de Bob les informations nécessaires afin de construire le message attendu par la TPC à l’envoi 3. Le protocole se termine donc sans aucune information échangée (ni 4.5, ni 4.6 ne sont émis). Après le dernier envoi, la TPC a publié IA et en fonction du contenu de ce message, les preuves de non-répudiation (4.5 et 4.6) prennent toutes deux leur sens ou non. ¤ Théorème 4.12 Le deuxième envoi du protocole est un point de forte complétude pour Alice. Preuve : Après le deuxième envoi, Bob a envoyé sa signature. Si Alice arrête le protocole après cet envoi, elle enlève toute valeur à cette signature puisque, en cas de dispute, sa preuve de non-répudiation à la réception ne sera prise en compte que combinée avec la signature émise par la TPC au quatrième envoi (4.6). Si le protocole s’arrête ici, Alice n’obtient pas une preuve de nonrépudiation à la réception « complète » et Bob n’obtient pas la preuve de nonrépudiation à l’origine. Si Bob arrête le protocole après le deuxième envoi, Alice peut continuer le protocole et elle obtient seule la preuve de non-répudiation. ¤ Théorème 4.13 Si le canal de communication entre la TPC et Bob est réactif, alors le protocole est fortement équitable. Preuve : Après le troisième envoi, il est sûr que la TPC va émettre un message qui validera ou non les preuves de non-répudiation. Bob, par hypothèse de conservation, n’arrêtera donc pas le protocole à cet endroit. Il consultera donc la TPC et atteindra le point de complétude correspondant à l’exécution du dernier envoi du protocole. Le canal de communication réactif assure la disponibilité du verdict de la TPC quant à la validité des preuves de non-répudiation. Par hypothèse de conservation, Bob n’arrêtera plus le protocole après le deuxième envoi ; si Alice a arrêté le protocole à ce moment, il atteint le point de complétude d’Alice, sinon il atteint le point de complétude correspondant au troisième envoi. ¤ La fin du protocole Le protocole ne peut être prouvé temporellement fini : en effet rien n’indique combien de temps Alice doit attendre avant de décider que le deuxième envoi n’arrivera jamais. 4.3 Méthodes avec tierce partie de confiance on-line 65 Théorème 4.14 Si le protocole est modifié afin de préciser le temps maximum d’attente du deuxième message, et si le canal de communication entre Bob et la TPC est réactif, alors le protocole est temporellement fini. Preuve : Si les acteurs n’agissent pas honnêtement ou si, suite à un retard, la TPC ne reçoit pas le message d’Alice à temps, alors la TPC publiera un message IA contenant late (à partir du moment tB ) ou null et le protocole se termine à ce moment. Si les parties agissent honnêtement et si la TPC reçoit à temps les informations nécessaires, elle publie en tB un message IA contenant la clé K. Le canal entre Bob et la TPC étant réactif, lorsque Bob fera la demande de consultation du répertoire public, il finira par retrouver IA , mais ce moment ne peut être prévu. ¤ Les disputes En cas de dispute, si Alice prétend avoir envoyé avec succès le message m à Bob, alors le juge concerné demande à Alice sa preuve de non-répudiation à la réception. Le juge vérifie la signature de Bob contenue dans cette preuve. La preuve de non-répudiation contient aussi le chiffré C K (m). Si Bob prétend avoir reçu le message m′ d’Alice, il transmet au juge sa preuve de non-répudiation à l’origine. Le juge y vérifie la validité de la signature d’Alice. Cette preuve de non-répudiation contient aussi le chiffré du message m. Sur base des informations reçues, il calcule le label et l’utilise pour interroger la TPC. – Si la TPC envoie un message IA de type (4.9), alors il vérifie la signature du message émis par la TPC et en extrait la clé de session K̆ 18 . Puis il compare le résultat du hachage de ce chiffré avec celui présent dans les preuves de non-répudiation. Il utilise alors la clé de session K̆ pour déchiffrer CK (m) et obtient le message m′ . Le juge atteste alors que les preuves de non-répudiation échangées correspondent au message m′ . Si Alice a envoyé à la TPC une clé K̆ 6= K alors m′ 6= m et Alice reçoit une preuve de non-répudiation à la réception correspondant à m′ (si elle prétend que la preuve de non-répudiation à la réception doit correspondre à m, elle doit reconnaître avoir triché en soumettant une mauvaise clé de session à la TPC). – Si la TPC envoie un message IA de type (4.7), alors le juge concluera à la non-validité des preuves de non-répudiation. Une telle situation peut arriver si Alice retarde malhonnêtement son envoi vers la TPC. – Si la TPC envoie un message IA de type (4.8), alors le juge concluera aussi à la non-validité des preuves de non-répudiation. Une telle situation peut arriver si Alice n’envoie aucune information à la TPC ou si elle utilise lors de cet 18 Nous notons ici K̆ la clé présente dans (4.9) pour la distinguer de la clé K utilisée par Alice pour chiffrer m. Si Alice est honnête, K̆ = K. 66 Chapitre 4 : Non-répudiation avec tierce partie de confiance envoi un « faux » label. Le comportement de la tierce partie de confiance Si la TPC est malhonnête, elle peut s’allier avec Bob, lui transmettre l’information, contenant la clé de session, qui devrait être publiée et ne rien publier ou publier une information inexacte. Bob bénéficie ainsi du message m, mais s’il désire prouver à un juge sa bonne foi il devra montrer qu’il possède un I A différent de celui obtenu par le juge au cours d’une résolution de dispute. De plus ce IA qu’il présenterait validerait aussi la preuve de non-répudiation à la réception d’Alice (perdant ainsi tout le bénéfice de la coalition). Si la TPC s’allie avec Alice, elle peut accepter une soumission de la clé de session en retard par rapport à tB . Alice bénéficierait alors d’un éventuel avantage temporel. Ce comportement est de plus difficilement détectable. Enfin, la tierce partie peut émettre un message IA qui ne correspond pas à la réalité, de manière à ce que ni Alice ni Bob ne reçoivent leur preuve. Un tel comportement malhonnête est difficile à détecter, car Bob peut supposer que le responsable en est Alice qui n’a pas transmis ou a transmis trop tard le message attendu. Les auteurs soulignent que les problèmes liés à l’éventuel comportement malhonnête de la TPC, doublé éventuellemement d’un canal de communication perturbé, peuvent être prévenus par l’usage de plusieurs TPC qui publieraient en même temps les informations afin d’augmenter la fiabilité du protocole 19 . La viabilité Théorème 4.15 Si le canal de communication est réactif entre la TPC et Bob, et opérationnel entre Alice et Bob d’une part, et entre Alice et la TPC d’autre part, alors le protocole est viable. Preuve : Si tous les acteurs sont honnêtes, le deuxième envoi est reçu par Alice après un délai connu (grâce au canal opérationnel) de manière à ce que le temps tB (déterminé par Bob qui, honnête, le choisit réaliste) soit accepté par Alice qui poursuit le protocole. Le troisième envoi est réalisé par Alice et est reçu après un délai connu (grâce au canal opérationnel) par la TPC. Celle-ci publie alors (4.9) qui sera finalement accessible par Bob (grâce au canal réactif). ¤ Remarques Le protocole assure la confidentialité du message transmis (même une fois la clé de session dévoilée, puisque le message chiffré est à nouveau chiffré au moyen 19 En alourdissant aussi considérablement les procédures et en générant de multiples goulets d’étranglement. 4.3 Méthodes avec tierce partie de confiance on-line 67 de KB ). Le protocole assure la confidentialité du message m aussi vis-à-vis de la TPC. La TPC ne reçoit qu’un hachage du message m chiffré, ce qui réduit l’effet d’étranglement. Un opposant, Oscar, ne peut intercepter la preuve de non-répudiation à l’origine et prétendre avoir reçu le message m d’Alice, car il ne possède pas le chiffré CK (m) qui lui sera demandé si il présente devant un juge une telle affirmation. De même, Oscar, ne peut s’attribuer la preuve de non-répudiation à la réception car dans le message rendu disponible par la TPC se trouve la signature d’Alice et non d’Oscar. Le protocole n’assure que l’anonymat de Bob par rapport à la TPC (puisqu’Alice lui envoie un message signé). Bob reste anonyme puisque seule la connaissance du label est nécessaire pour interroger la TPC. Vis à vis de l’extérieur, l’anonymat n’est garanti que si aucune information sur les signataires des messages n’est transmise. 4.3.3 Le protocole de non-répudiation de Zhou et Gollmann Un protocole majeur proposé en 1996 et résultant des travaux [75] de Zhou, sous la direction de Gollmann, consiste en un protocole avec TPC on-line. L’idée consiste à alléger au maximum le travail de la TPC. Alice et Bob réalisent chacun une mise en gage20 des preuves et du message. Cette mise en gage sera considérée comme une déclaration d’intention vis à vis de la TPC, qui terminera alors le protocole en émettant les preuves attendues tout en assurant l’équité. Ce protocole, tout comme celui de Coffey et Saidha (section 4.2.1), use à chaque message d’un indicateur qui précise l’objet du message envoyé. Un label fixe l’instance du protocole et le récipiendaire est spécifié dans chaque message signé, règles de « bonne pratique » d’écriture de protocole recommandées par Abadi et Needham [1]. Protocole 4.4 Le protocole de Zhou et Gollmann 1. A → B : fEOO , B, label , t, Ck (m) , EOO ¨ 2. B → A : fEOR , A, label , EOR ¨A 3. A → TPC : fsub k , B, label , t, k, sub k 4. TPC ↔ B : fcon k , A, B, label , k, con k 5. TPC ↔ A : fcon k , A, B, label , k, con k ¨ Les preuves Dans le protocole, les preuves suivantes sont échangées : 20 commitment en anglais. 68 Chapitre 4 : Non-répudiation avec tierce partie de confiance La preuve de non-répudiation à l’origine du chiffré 21 : EOO = SigA (fEOO , B, label , t, Ck (m)) (4.10) où fEOO est une information qui indique la nature du message 22 , B indique que Bob est le récipiendaire du message signé par Alice, label est une valeur associée à la session du protocole, t est le moment à partir duquel les informations (la preuve de non-répudiation à la réception de la clé k) nécessaires à la construction des preuves « finales » de non-répudiation sont accessibles auprès de la TPC (voir 4.13, ci-dessous) et Ck (m) est le chiffré du message m au moyen de la clé de session k. La preuve de non-répudiation à la réception du chiffré 23 : EOR = SigB (fEOR , A, label , t, Ck (m)) (4.11) La preuve de non-répudiation à l’origine de la clé de session k utilisée pour chiffrer symétriquement le message m (preuve considérée ici comme une preuve de non-répudiation de la soumission par Alice de la clé de session k à la TPC) : sub k = SigA (fsub k , B, label , t, k) (4.12) la preuve24 de non-répudiation à la réception de la clé de session k fournie par la TPC : con k = SigTPC (fcon k , A, B, label , t, k) (4.13) La preuve de non-répudiation à l’origine du message m sera, logiquement, la preuve de non-répudiation à l’origine du chiffré c combinée à la preuve de nonrépudiation à la réception, par la TPC, de la clé de session k : NRO = (EOO, con k ) (4.14) De la même manière la preuve de non-répudation à la réception du message m sera la preuve de non-répudiation à la réception du chiffré c combiné, de la même façon que pour la preuve ci-dessus, à la preuve de non-répudiation à la réception, par la TPC, de la clé de session k : NRR = (EOR, con k ) (4.15) Le protocole Si un message est incorrect ou si un message attendu n’arrive pas, le récipiendaire potentiel arrête le protocole. 21 EOO pour evidence of origin en anglais. Nous retrouverons aussi ces indicateurs de messages dans certains autres protocoles que nous étudierons. Ils se présenteront toujours sous la forme f... , où l’indice est en rapport avec la nature du message, en reprenant souvent le nom de la preuve convoyée par le message. 23 EOR pour evidence of receipt en anglais. 24 Cette preuve est aussi appelée preuve de confirmation de la réception, par la TPC, de la clé de session k. 22 4.3 Méthodes avec tierce partie de confiance on-line 69 1. Alice initie le protocole en envoyant directement à Bob le chiffré du message m par une clé de session k de son choix, le label (label = h(m, k)) qui sera associé à cette session du protocole, le moment t à partir duquel la TPC peut être consultée par Alice et Bob afin d’obtenir la preuve de non-répudiation à la réception de la clé de session k, ainsi que la preuve de non-répudiation à l’origine du chiffré : A → B : fEOO , B, label , t, Ck (m) , EOO 2. Si Bob accepte le moment t proposé par Alice, il envoie la preuve de nonrépudiation à la réception du chiffré : B → A : fEOR , A, label , EOR 3. Alice envoie alors à la TPC la clé de session k, ainsi que la preuve de non-répudiation à l’origine de cette clé. La TPC n’accepte, au cours d’une session d’un protocole, qu’une seule soumission de la part d’une entité et, lors d’une soumission, elle vérifie si les signatures sont valides ainsi que la cohérence du message reçu (en s’assurant que le moment t spécifié n’est pas dépassé) : A → TPC : fsub k , B, label , t, k, sub k 4. Bob peut alors aller chercher, après l’instant t, la preuve de non-répudiation à la réception de la clé de session qui lui est nécessaire pour construire sa preuve de non-répudiation à l’origine du message m : TPC ↔ B : fcon k , A, B, label, k, con k 5. Alice fait de même afin d’obtenir la preuve de non-répudiation à la réception NRR (4.15) : TPC ↔ A : fcon k , A, B, label , k, con k Aux cours des envois 4 et 5, ce sont donc bien Alice et Bob qui vont chercher la clé de déchiffrement et la preuve de non-répudiation à la réception de la clé k auprès de la TPC. Ainsi, de la même manière que le mécanisme de répertoire public utilisé par Zhang et Shi, les acteurs cibles consultent, le moment venu, un répertoire public géré par la TPC et uniquement accessible en lecture depuis l’extérieur. Comme dans le protocole de Zhang et Shi, si un acteur cible ne va pas chercher les évidences auprès de la TPC, il perdra une éventuelle dispute future à ce propos. L’activité de la TPC est ainsi réduite en rejetant la responsabilité de l’obtention des informations gérées par la TPC sur les acteurs cibles concernés. Le protocole nécessite pour sa bonne marche un canal de communication réactif entre la TPC et chacun des acteurs cibles. 70 Chapitre 4 : Non-répudiation avec tierce partie de confiance L’équité Théorème 4.16 Le premier envoi et le dernier envoi sont des points de forte complétude universels du protocole. Preuve : Après le premier envoi, Bob n’a rien reçu d’utilisable (seulement le chiffré du message m). Ni Alice, ni Bob n’ont reçu les preuves attendues. De même, si Bob n’a pas réalisé le deuxième envoi, Alice n’a aucun intérêt à continuer le protocole (même si elle possède toutes les informations nécessaires à l’émission du troisième envoi) car elle obtiendrait le con k mais, n’ayant pas le EOR, elle n’obtiendrait pas la preuve de non-répudiation à la réception (NRR). De son côté, si Alice cesse de prendre part au protocole, elle ne réagit pas au deuxième envoi, Bob ne retrouve rien auprès de la TPC (cette dernière n’ayant rien reçu d’Alice). Après le cinquième envoi, les preuves sont échangées et Bob peut retrouver m. ¤ Théorème 4.17 Le deuxième envoi est un point de forte complétude d’Alice. Preuve : Après le deuxième envoi, le protocole peut être arrêté par Alice. Si Bob a émis son EOR, il n’intervient plus dans le protocole que si Alice réalise le troisième envoi. Si elle ne le fait pas, Bob ne trouve rien auprès de la TPC et ne peut donc pas composer la preuve de non-répudiation à l’origine. De même, Alice qui a reçu le EOO, ne soumettant rien à la tierce partie, ne reçoit pas non plus con k et ne peut donc composer la preuve de non-répudiation à la réception. Dans tous les cas, Bob doit consulter la TPC (au cours du cinquième envoi) car il ne peut prévoir le comportement d’Alice ; Bob ne peut donc arrêter le protocole. ¤ Théorème 4.18 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, alors le protocole est fortement équitable. Preuve : Après le deuxième envoi, par hypothèse de conservation, Bob n’arrête plus le protocole spontanément. Si Alice ne prend plus part au protocole juste après le deuxième envoi, alors Alice et Bob atteignent le point de complétude d’Alice. Sinon ils continuent après le troisième envoi. Après le troisième envoi, ni Bob ni Alice n’ont intérêt à arrêter le protocole (et donc ne pas aller consulter la TPC à partir du moment t) sous peine, non seulement, de ne pas retrouver la preuve de non-répudiation attendue, mais aussi de perdre une éventuelle dispute. Alice et Bob ne peuvent s’empêcher mutuellement de consulter la TPC (grâce à la réactivité des canaux). Après le quatrième envoi, Alice n’arrêtera pas le protocole puisque Bob possède la preuve complète de non-répudiation à l’origine et qu’il ne peut l’empêcher de consulter la TPC pour obtenir la preuve de non-répudiation à la réception. 4.3 Méthodes avec tierce partie de confiance on-line 71 La réactivité des canaux entre la TPC et chaque acteur cible assure que lorsque ces derniers consulteront le répertoire public de la TPC, ils obtiendront l’information (les preuves) qui s’y trouve sans qu’elle soit modifiée. ¤ La fin du protocole Théorème 4.19 Si les canaux de communication, entre la TPC et respectivement Alice et Bob, sont réactifs alors le protocole est temporellement fini. Preuve : Si, du fait de la malhonnêteté des acteurs ou suite à un retard de transmission, la TPC ne reçoit pas un message à temps, alors elle ne publie rien à l’instant t et le protocole se termine à ce moment. Si les parties agissent honnêtement et si la TPC reçoit à temps les informations nécessaires à la publication de la clé et de la preuve de non-répudiation à la réception de cette clé, alors elle les publie au moment t. Par leur canal réactif, lorsqu’Alice et Bob feront la demande de consultation du répertoire public, ils finiront par retrouver les informations attendues, mais ce moment ne peut être prévu. ¤ Les disputes Si Alice prétend avoir envoyé avec succès le message m à Bob, le juge lui demande m, Ck (m), k, t et label , ainsi que la preuve de non-répudiation à la réception NRR. Si Alice ne peut fournir tout cela, le juge décide qu’elle a tort. Si elle fournit toutes les informations demandées, le juge vérifie la signature de Bob sur le EOR puis la signature de la TPC sur le con k et teste si label = h(Dk (C) , k). Puis il vérifie si m = Dk (Ck (m)). Pour que les signatures puissent être vérifiées, il faudra aussi que le moment t transmis par Alice au juge et ceux transmis à la TPC et à Bob au cours du protocole soient les mêmes. Si tous les tests et vérifications se concluent avec succès, le juge déclare que l’affirmation d’Alice est correcte. Si Bob prétend avoir reçu le message m′ d’Alice, le juge lui demande m′ , Ck (m′ ), k, t et label ainsi que la preuve de non-répudiation à l’origine NRO. Si Bob ne peut fournir tout cela, le juge décide qu’il a tort. S’il fournit toutes les informations demandées, le juge vérifie la signature d’Alice sur le EOO puis la signature de la TPC sur le con k et teste si label = h(Dk (C) , k). Puis il vérifie si m′ = Dk (Ck (m)). A nouveau les signatures pourront être vérifiées si le moment t présent dans les preuves correspond au moment t transmis par Bob au juge. Si tous les tests et vérifications se sont déroulés avec succès, le juge déclare que l’affirmation de Bob est correcte. Le comportement de la tierce partie de confiance Si la TPC s’allie avec Alice, elle peut retarder ou annuler la publication de k de manière à ce que Bob ne puisse retrouver sa preuve de non-répudiation 72 Chapitre 4 : Non-répudiation avec tierce partie de confiance à l’origine, alors que la tierce partie transmet uniquement à Alice le dernier message, lui permettant d’obtenir la preuve de non-répudiation à la réception. Ce comportement de la tierce partie est détectable par Bob. Si la tierce partie s’allie à Bob, lui transmet la clé k et publie une autre clé, Bob peut alors récupérer m mais ne pourrait prouver que m vient d’Alice. Si la tierce partie transmet directement k et con k à Bob, et ne dépose que très tard ou pas du tout ces informations sur le répertoire public, alors Bob reçoit la preuve de non-répudiation à la réception tandis qu’Alice ne reçoit rien. Un tel comportement est détectable par Alice. La tierce partie peut rendre disponible une information inadéquate sur le répertoire public. Ni Alice, ni Bob ne recevront leur preuve, et si ce comportement est occasionnel, il ne peut être détecté. Il est aussi difficile de détecter (et surtout de prouver) un dépôt tardif par la TPC d’informations sur le répertoire public. Ainsi si Alice ou Bob consultent la TPC et ne trouvent rien dans le répertoire public (correspondant au label) et s’ils sont méfiants vis à vis cette tierce partie, Alice ou Bob devront consulter régulièrement le répertoire pour s’assurer que les informations ne sont pas déposées plus tard (à la manière d’un polling dans un système client-serveur). La viabilité Théorème 4.20 Si le canal de communication entre les acteurs est opérationnel, alors le protocole est viable. Preuve : Si Alice et Bob sont honnêtes et répondent sans perdre de temps, alors Alice envoie un premier message avec un délai t raisonnable et elle soumet au plus tôt à la TPC la clé k de déchiffrement. Cette clé arrive sans délai à la TPC qui la reçoit avant t et rend publique cette information. Alice et Bob tentent à partir du moment t d’obtenir cette clé k et le con k auprès de la tierce partie, ce qui sera réalisé avec succès grâce au réseau opérationnel. Si le réseau est seulement réactif les messages émis aux troisième et quatrième envois peuvent prendre trop de temps pour arriver et ne pas permettre à la TPC de rendre disponible la clé k ainsi que la preuve de non-répudiation à la réception de la clé k à partir du moment t. ¤ Remarques Le protocole ne propose pas de mécanisme assurant la confidentialité. La clé k peut être accessible à tout observateur, tout comme Ck (m). Le chiffrement du message n’a donc pas pour but la confidentialité mais bien la réalisation d’une mise en gage du message m. Ce protocole est donc un protocole de nonrépudiation « brut ». Remarquons cependant que si une nécessité de confidentialité apparaît lors de l’usage d’un tel protocole, il reste possible de chiffrer le message à envoyer de manière à ce que seul le récipiendaire puisse le déchiffrer, 4.3 Méthodes avec tierce partie de confiance on-line 73 et ce sera ce chiffré qui sera à nouveau chiffré au moyen de la clé k lors du protocole. Comme chaque message signé contient le nom du récipiendaire, un opposant, Oscar, ne peut prendre la signature d’Alice (par exemple) et celle émise par la tierce partie et prétendre avoir une preuve de non-répudiation à l’origine sur m venant d’Alice, car c’est bien B et non O qui est indiqué dans le message signé. Le raisonnement est identique vis à vis de Bob pour la preuve de nonrépudiation à la réception. Oscar ne peut prétendre avoir cette preuve car le EOR est signé par Bob et B apparaît dans les messages signés par Bob et par la TPC. S’il ne peut bloquer la TPC, Oscar ne peut briser l’équité du protocole. La TPC reçoit non seulement des messages signés qu’elle vérifie, mais aussi le nom des acteurs cibles. Il n’y a donc pas d’anonymat à son égard. La situation est identique face à un observateur extérieur. 4.3.4 Le protocole de Zhou et Gollmann avec révocation des clés de signature Il peut arriver qu’une clé de génération de signatures soit compromise. Il faut alors révoquer le certificat de cette clé de signature ([55, 64]). Dans le contexte des protocoles de non-répudiation, il faut donc pouvoir identifier si une signature (présente dans une preuve de non-répudiation) a été générée avant ou après la révocation. Une solution classique [3, 19] consiste à utiliser une autorité de confiance apposant des cachets temporisés sur les preuves générées au cours des protocoles (comme le font Coffey et al., cf. section 4.2.1). La date présente dans un cachet est alors comparée à la date de révocation. You et al. ont proposé [73] un mécanisme où une telle autorité n’est pas nécessaire. L’approche consiste, au cours d’un protocole de non-répudiation, à lier les preuves entre elles et à ne valider toutes ces preuves qu’à la fin du protocole. Cette idée s’applique au protocole de Zhou et Gollmann, que nous venons de décrire, où la TPC finit par envoyer la clé k de déchiffrement. Cette clé sera émise au cours du protocole par Alice vers la TPC de manière chiffrée, sinon Bob peut l’intercepter et révoquer son certificat de clés de signature. Les preuves de non-répudiation du protocole de Zhou et Gollmann sont alors modifiées de manière à ce que EOO se trouve dans EOR, EOR ainsi que le certificat de la clé de signature de Bob, Cert B , se trouvent dans sub k . La TPC inclura dans con k non seulement EOR mais aussi un moment T à partir duquel toutes les preuves prennent leur sens. Bob pourra révoquer Cert B jusqu’au moment où la TPC génère con k . La TPC vérifiera la validité du certificat Cert B avant de produire con k ; Bob peut donc révoquer son certificat avant ce moment : la TPC arrêtera alors le protocole sans publier d’information. Le protocole de Zhou et Gollmann peut ainsi être transformé de la manière suivante. 74 Chapitre 4 : Non-répudiation avec tierce partie de confiance Les preuves sont donc : EOO = SigA (fEOO , B, label , Ck (m)) EOR = SigB (fEOR , A, label , Ck (m) , EOO) sub k = SigA (fsub k , B, label , k, EOR, Cert B ) con k = SigTPC (fcon k , A, B, label , k, EOR, T ) Les preuve de non-répudiation à l’origine et à la réception du message m restant : NRO = (EOO, con k ) et NRR = (EOR, con k ) Le protocole modifié est décrit à la figure 4.5. Protocole 4.5 Le protocole modifié de Zhou et Gollmann 1. A → B : fEOO , B, label , Ck (m) , EOO 2. B → A : fEOR , A, label , EOR 3. A → TPC : fsub k , B, label , CKTPC (k) , EOR, Cert B , sub k 4. TPC ↔ B : fcon k , A, B, label , k, T, con k 5. TPC ↔ A : fcon k , A, B, label , k, T, con k En cas de dispute, l’acteur (Alice ou Bob) qui contacte le juge lui fournit le message m, le chiffré c, la clé k, le label, le cachet temporisé T , les certificats de clés de signature, ainsi que les preuves EOO, EOR et con k . Nous pensons que ces derniers protocoles de non-répudiation à deux parties avec TPC on-line sont, actuellement, les plus aboutis 25 . 4.4 4.4.1 Méthodes avec tierce partie de confiance off-line Le protocole optimiste d’échange équitable d’Asokan Asokan est, en 1997, un des premiers à proposer l’approche dite optimiste 26 dans les protocoles d’échange [5]. L’idée consiste à alléger le travail de la TPC en supposant que les acteurs cibles ont « tendance » à être honnêtes. On considère donc que seuls les rares comportements malhonnêtes mèneront à user d’une TPC, qui interviendra alors dans le protocole afin d’assurer l’équité. Si les acteurs suivent honnêtement le protocole, la tierce partie ne sera pas du tout impliquée. Asokan propose une série d’applications possibles usant de cette approche. Nous étudierons ici le protocole d’échange équitable. 25 26 C’est la raison pour laquelle nous les qualifions de « majeurs ». optimistic approach en anglais. 4.4 Méthodes avec tierce partie de confiance off-line 75 Notations Soient : – commit un mécanisme de mise en gage ; – verifcomm un mécanisme de vérification, après la révélation de la mise en gage, de la validité de cette dernière27 ; – descr une fonction produisant une description unique d’une information. Cette description unique, qui ne peut laisser « transpirer » aucun bit de l’information, peut s’obtenir de diverses façons, cela peut être un string de description associé à un identificateur unique (qui peut être séquentiel), cela peut aussi être le résultat d’un hachage (cryptographiquement sûr) de l’information à décrire. Protocole 4.6 Le protocole d’Asokan et. al Le protocole principal : f A (A, B, TPC , hA , com A , dA , dB ) 1. A → B : m1 = Sig f B (m1 , com B , hB ) 2. B → A : m2 = Sig 3. A → B : m3 = iA , kA 4. B → A : m4 = iB , kB , rB 5. A → B : m5 = rA ¨B ¨ Le protocole de recouvrement : (X est l’acteur cible initiant le recouvrement, et Y l’autre acteur cible) 1. X → TPC : mr 1 = m1 , m2 , iX , kX , rX f TPC (aborted, ma1 ) et STOP, ou 2. TPC → X : ma2 = Sig TPC ⇔ Y : recouvrement f TPC (affidavit, mr1 ), ou 3. TPC → X : Sig TPC → X : mr2 = iY , kY , rY ♦ Le protocole d’abandon : f A (aborted, m1 ) 1. A → TPC : ma1 = Sig 2. TPC ⇔ A : recouvrement, ou f TPC (aborted, ma1 ) TPC → A : ma2 = Sig ¨A Le protocole principal Ce protocole décrit les échanges réalisés tant qu’Alice et Bob ne trichent pas 28 . Alice et Bob s’échangent les informations iA et iB dont les descriptions respec27 Stinson définit [66] la mise en gage d’un bit de la manière suivante : Alice désire s’engager, vis à vis de Bob, sur un bit b ; pour ce faire elle transmet à Bob le résultat de f (b, x) où x ∈ X et f : {0, 1} × X → Y ; X et Y étant des ensembles finis. La fonction f doit être telle que pour tout bit b, Bob ne puisse déterminer la valeur de b à partir de f (b, x) et lorsqu’Alice « ouvre » la mise en gage, en révélant la valeur x utilisée dans la fonction f , elle ne puisse l’ouvrir à la fois sur un bit à 0 et sur un bit à 1. 28 Un tel protocole est dit faultless en anglais. 76 Chapitre 4 : Non-répudiation avec tierce partie de confiance tives sont préalablement connues par les acteurs29 . Nous sommes donc bien confrontés à un protocole d’échange équitable et non un protocole de nonrépudiation. Si un message n’arrive pas ou arrive mais est incorrect (la vérification d’une signature échoue, le format du message ne correspond pas à ce qui est prévu par le protocole. . . ), le récipiendaire peut, en exécutant le protocole adéquat, soit abandonner le protocole soit recouvrer les informations si suffisamment d’échanges ont eu lieu. Un temps limite d’attente est spécifié à chaque envoi. 1. Alice choisit aléatoirement un entier rA et calcule : com A = commit (iA , kA ) (4.16) puis hA = h(rA ), et dA = descr (iA ). Elle utilise aussi dB qu’elle sait être la description de iB . Elle envoie à Bob : f A (A, B, TPC , hA , com A , dA , dB ) A → B : m1 = Sig 2. Si le message reçu est correct (la signature d’Alice est correcte, la description de iB correspond au dB reçu et dA correspond à la description de l’information attendue), Bob choisit aléatoirement un entier r B et évalue hB = h(rB ), puis calcule com B = commit (iB , kB ). Il envoie à Alice : f B (m1 , com B , hB ) B → A : m2 = Sig 3. Alice répond en envoyant la clé kA utilisée lors de la mise en gage de l’information iA ainsi que l’information elle-même : A → B : m3 = iA , kA 4. Si l’information iA reçue correspond à sa description et si la clé kA correspond à la mise en gage 4.16 réalisée par Alice (verifcomm(com A , iA , kA ) = vrai si iA et kA ouvrent la mise en gage com A ), alors Bob obtient sa preuve de non-répudiation à l’origine. Il répond en envoyant l’information i B attendue par Alice, la clé qu’il a utilisée pour la mise en gage kB et l’entier aléatoire rB utilisé par Bob pour identifier la session. B → A : m4 = iB , kB , rB 5. Si le message envoyé par Bob est correct, alors Alice a non seulement sa preuve de non-répudiation à l’origine, mais aussi sa preuve de nonrépudiation à la réception puisqu’elle a aussi reçu rB . Elle envoie alors rA 29 Dans le cadre d’un protocole d’échange équitable, un accord préalable sur les informations à échanger est réalisé par les acteurs cibles. On peut imaginer une situation où les acteurs cibles ont à leur disposition un catalogue décrivant les informations offertes par l’autre acteur cible (une information peut être un logiciel. . . ). Ces descriptions comprendraient une partie textuelle ainsi que la description mathématique utilisée dans le protocole. 4.4 Méthodes avec tierce partie de confiance off-line 77 à Bob pour que ce dernier puisse construire sa preuve de non-répudiation à la réception30 : A → B : m 5 = rA Le protocole d’abandon Au cours du protocole principal, seule Alice a la possibilité d’abandonner le protocole (si Bob arrête sa participation au protocole ou s’il envoie des messages incorrects). Dans ce cas, elle doit en avertir la TPC au moyen d’un protocole adéquat afin que, si Bob désire demander à la TPC de mener le protocole à son terme, cette dernière refuse en indiquant que le protocole est abandonné avant son aboutissement. Si Alice lance le protocole d’abandon après que Bob ait réalisé un protocole de recouvrement, alors la TPC indique à Alice qu’elle ne peut abandonner cette session du protocole et elles entament ensemble le protocole de recouvrement 31 . 1. Alice transmet à la TPC le message m1 préalablement envoyé ainsi que sa requête d’abandon (le tout signé) : f A (aborted, m1 ) A → TPC : ma1 = Sig 2. Si le protocole de recouvrement, décrit ci-dessous, a été préalablement initié par Bob, la tierce partie exécute ce protocole de recouvrement avec Alice32 : TPC ⇔ A : recouvrement Sinon, si la requête d’abandon est acceptée par la tierce partie, la signature d’Alice sur la requête d’abandon étant valide et le protocole de recouvrement n’ayant pas encore été réalisé par Bob, la TPC répond à la requête par sa signature sur le message reçu : f TPC (aborted, ma1 ) TPC → A : ma2 = Sig Le protocole ne prévoit pas d’envoi vers Bob au cours du protocole d’abandon : il faudra que celui-ci fasse un recouvrement (décrit ci-après) pour se faire notifier, par la TPC, l’abandon du protocole. Aussi, seule Alice est habilitée à faire un abandon car le protocole prévoit que ce soit elle qui initie le protocole principal ; elle se trouve donc, jusqu’à un certain point du protocole, en désavantage par 30 Ce protocole, bien que n’étant pas un protocole de non-répudiation, offre bien des services de non-répudiabilité. 31 Alice peut bien sûr refuser de réaliser ce recouvrement. Bob recevra alors l’affidavit de la TPC, ce qui lui indique, en outre, le refus d’Alice de participer au recouvrement. 32 La TPC retient, pour chaque session des protocoles au cours desquels elle est invoquée, quel protocole elle a déjà réalisé (abandon ou recouvrement) et qui a initié ce protocole. 78 Chapitre 4 : Non-répudiation avec tierce partie de confiance rapport à Bob. Ce désavantage est compensé par le privilège qui lui est accordé de pouvoir abandonner le protocole. Remarquons que, dans le protocole proposé dans [8], la TPC vérifie lors d’un abandon si Bob n’a pas fait précédemment un recouvrement. Il serait cependant adéquat de vérifier aussi si Alice n’a pas fait elle-même un recouvrement avant sa procédure d’abandon (détectant ainsi un comportement malhonnête d’Alice qui tenterait d’obtenir à la fois une signature finale et une preuve d’abandon ; Alice présentant, en fonction de la situation, l’une ou l’autre preuve). Remarquons aussi que si le protocole principal se déroule sans problème, rien n’empêche Alice de réaliser malgré tout un abandon et d’à nouveau bénéficier à la fois de la signature de Bob et de la preuve d’abandon. Le protocole de recouvrement Si soit Alice soit Bob, désirant mener l’échange à son terme, ne reçoit pas un des messages attendus au cours du protocole principal, alors il/elle requiert l’aide de la TPC, au moyen du protocole de recouvrement. Celle-ci interviendra, pour peu qu’Alice n’ait pas préalablement réalisé un abandon du protocole. En effet, si le protocole d’abandon a été préalablement réalisé, la TPC transmet à l’acteur demandant un recouvrement un message signé signalant l’abandon. Dans ce protocole de recouvrement, X représente la partie (Alice ou Bob) initiant le protocole de recouvrement, Y sera dès lors l’autre acteur cible,{X, Y } = {A, B} : 1. L’acteur demandant le recouvrement transmet à la TPC les messages m 1 et m2 , l’information iX qui est attendue par l’autre partie, sa clé kX et le nonce rX : X → TPC : mr 1 = m1 , m2 , iX , kX , rX 2. Si Alice a préalablement réalisé avec succès un abandon, que X soit Alice ou Bob, la TPC répond que le protocole est abandonné en utilisant le message ma1 émis lors de l’abandon33 : f TPC (aborted, ma1 ) TPC → X : ma2 = Sig Si l’acteur Y n’a pas encore exécuté un recouvrement, alors la TPC l’invite à le réaliser (au moyen du présent protocole) et permet ainsi à Y d’obtenir iX , kX et rX : TPC ⇔ Y : recouvrement 33 Dans le protocole 4.6, STOP signifie que la TPC arrête l’exécution du protocole de recouvrement. Elle examinera cependant toutes requêtes futures de recouvrement concernant le protocole en cours. 4.4 Méthodes avec tierce partie de confiance off-line 79 3. Si le protocole de recouvrement réalisé avec Y n’a pas abouti, la tierce partie envoie à X une signature de remplacement, l’affidavit, attestant de l’envoi par X de ses preuves et de son information, et prouvant jusqu’où le protocole s’est déroulé : f TPC (affidavit, mr1 ) TPC → X : Sig Par contre, si le recouvrement réalisé avec Y est un succès, la TPC envoie à X la clé kY , le nonce rY et l’information attendue iY : TPC → X : mr2 = iY , kY , rY Lors de l’invite à Y par la TPC de réaliser le protocole de recouvrement, la TPC attend au plus un délai précis avant de décider que Y ne collaborera pas. Les preuves Dans ce protocole d’échange équitable, Alice et Bob reçoivent tous deux une information, ils reçoivent donc aussi chacun une preuve de non-répudiation à l’origine (correspondant à l’information reçue) et une preuve de non-répudiation à la réception (correspondant à l’information qu’ils envoient). Les preuves de non-répudiation à obtenir sont : La preuve de non-répudiation à l’origine qu’Alice doit obtenir : NRO A = m1 , m2 , kB , com B La preuve de non-répudiation à l’origine que Bob doit obtenir : NRO B = m1 , m2 , kA , com A La preuve de non-répudiation à la réception qu’Alice doit obtenir : NRR A = m1 , m2 , rB , h(rB ) La preuve de non-répudiation à la réception que Bob doit obtenir : NRR B = m1 , m2 , rA , h(rA ) L’équité Théorème 4.21 Le dernier envoi du protocole principal est un point de forte complétude universel. Preuve : Après ce dernier envoi du protocole principal, les informations et les preuves sont échangées, il n’a donc plus aucun risque pour Alice et Bob de 80 Chapitre 4 : Non-répudiation avec tierce partie de confiance ne plus prendre part à l’un ou l’autre protocole de cette suite de protocoles. Si Alice présente malgré tout une preuve d’abandon, et que Bob peut présenter NRO A et NRR A cela signifie qu’Alice est bien allée jusqu’au bout du protocole (puisque c’est elle qui réalise le dernier envoi) et cela prouve une tentative de malhonnêteté de la part d’Alice. La possession des preuves de non-répudiation à l’origine et à la réception d’Alice sont une preuve que le protocole a été jusqu’à son terme et que l’échange a été réalisé. ¤ Théorème 4.22 Le dernier envoi du protocole de recouvrement est un point de faible complétude. Preuve : Après cet envoi du protocole de recouvrement, la TPC permet à l’échange de se finaliser ou transmet sa signature sur le message attestant que X a transmis l’information désirée mais sans avoir reçu l’information de Y au cours du protocole de recouvrement. Dans ce deuxième cas de figure nous sommes bien en présence d’un point de faible complétude. ¤ Théorème 4.23 Le dernier envoi du protocole d’abandon est un point de forte complétude pour Alice. Preuve : Après le dernier envoi du protocole d’abandon, Alice reçoit la preuve de l’abandon du protocole et Bob, lorsqu’il réalisera un recouvrement, le recevra aussi. Alice arrête alors de prendre part au protocole sans briser l’équité. ¤ Théorème 4.24 Le premier envoi du protocole principal est un point de forte complétude pour Bob. Preuve : Si Alice arrête le protocole, Bob peut réaliser un recouvrement et obtenir les informations attendues. Par contre si Bob arrête le protocole, Alice ne peut réaliser le recouvrement, car elle a besoin du message m2 pour initier le protocole de recouvrement. ¤ Cette dernière preuve met en évidence le problème suivant : Théorème 4.25 La suite de protocoles ne vérifie pas la propriété d’équité. Preuve : Si Alice exécute le protocole d’abandon alors que Bob a préalablement réalisé un recouvrement, la TPC demandera à Alice de faire un recouvrement. Pour ce faire, elle demandera à Alice les messages m1 et m2 . Cependant m2 peut ne pas être arrivé (ou ne pas être envoyé par Bob) ; Alice n’a alors ni le message d’abandon signé par la TPC, ni la signature de remplacement émise aussi par la tierce partie. Comme Alice ne peut répondre correctement, la TPC envoie à Bob une signature de remplacement et l’équité est brisée. ¤ Ce problème a été identifié pour la première fois par Zhou et al. dans [77]. Une proposition de correction consiste à ce que la TPC transmette, en cas de besoin, m2 et kB à Alice au début du protocole de recouvrement. 4.4 Méthodes avec tierce partie de confiance off-line 81 Théorème 4.26 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, la suite de protocoles modifiée (afin de permettre à Alice de réaliser un recouvrement après le premier envoi) est faiblement équitable. Preuve : Au cours du protocole principal, après le premier envoi et jusqu’après le quatrième envoi, nous identifions les situations suivantes. – Soit Alice et Bob peuvent continuer honnêtement le protocole et ainsi atteindre le point de forte complétude universel correspondant au dernier envoi. – Soit Alice peut réaliser un abandon et se retrouver après le premier envoi du protocole d’abandon, au cours duquel la TPC, honnête, répondra : – soit par une confirmation d’abandon, point du protocole qui correspond à un point de forte complétude pour Alice ; – soit par l’exécution d’un recouvrement avec Alice qui, si elle s’y prête, lui permettra d’obtenir les informations attendues signées par Bob. Ce point du protocole de recouvrement correspond au point de faible complétude universel décrit au théorème 4.22. – Ou encore, Alice et Bob peuvent réaliser le recouvrement, se retrouver après le premier envoi de ce protocole et recevoir en retour soit un message d’abandon, soit l’information attendue, ce qui est dans tous les cas un point de complétude. Ce point de complétude est fort si la réponse est un message d’abandon ou l’information signée par le deuxième acteur cible, et il est faible si la TPC répond par sa signature sur un message attestant à la fois de l’honnêteté de l’acteur cible réalisant le recouvrement et du fait que le protocole n’a pas pu aboutir pour cet acteur cible. ¤ La fin du protocole Théorème 4.27 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont réactifs, la suite de protocoles est temporellement finie. Preuve : Si un acteur décide de ne pas transmettre un message, l’acteur « récipiendaire » attend le délai prévu et arrête le protocole ou initie le protocole d’abandon ou le protocole de recouvrement. Ces protocoles se termineront grâce aux délais d’attente et aux canaux réactifs entre la TPC et respectivement Alice et Bob. ¤ Les disputes Si Alice prétend avoir envoyé iA avec succès à Bob, elle présente iA et NRR A au juge qui, sur base de m1 et m2 , vérifie si la fonction de hachage appliquée sur rB correspond au h(rB ) du message m2 . Grâce à m2 , le juge peut vérifier si m1 est valide et si rB est bien celui annoncé. Si Alice possède un rB valide, cela prouve que Bob a reçu l’information iA adéquate, et nous avons donc bien une preuve de non-répudiation à la réception. 82 Chapitre 4 : Non-répudiation avec tierce partie de confiance Si Bob prétend avoir reçu iA d’Alice, il présente iA et NRO B au juge qui vérifie si Bob possède kA qu’Alice a dû lui transmettre en même temps que l’information iA . Le juge vérifie alors la signature d’Alice sur m1 , ce qui assure la non-répudiation à l’origine. L’affirmation d’Alice prétendant avoir reçu iB de Bob ainsi que l’affirmation de Bob d’avoir envoyé iB avec succès à Alice se résolvent de la même manière que ci-dessus. Il n’est pas inutile de préciser que les preuves de non-répudiation prennent le pas sur une preuve d’abandon. Supposons qu’alors qu’Alice et Bob exécutent le protocole principal, mais que parallèlement Alice réalise un abandon tout en continuant le protocole principal. Si ce dernier se termine correctement, Alice et Bob possèdent respectivement les preuves de non-répudiation à la réception et à l’origine. Si une preuve d’abandon primait sur une preuve de non-répudiation en l’annulant, alors Bob devrait à chaque session du protocole réaliser un recouvrement pour s’assurer qu’Alice ne va pas brandir à tout moment une preuve d’abandon. Le protocole ne serait alors plus off-line. Le comportement de la tierce partie de confiance Si la TPC et Bob s’allient et développent ensemble une stratégie au cours de laquelle il est prévu que Bob ne réalise pas le quatrième envoi du protocole principal, puis exécute le protocole de recouvrement, Alice sera alors sollicitée par la TPC pour réaliser ce recouvrement. Les informations émises par Alice vers la tierce partie seront transmises à Bob alors que rien ne sera émis pour Alice. Bob aura ses preuves de non-répudiation alors qu’Alice ne les aura pas. Bob est sûr de gagner une dispute. Un tel comportent de la TPC est détectable par Alice qui ne peut suspecter que la TPC. Une coalition de la tierce partie avec Alice, qui n’exécuterait pas le deuxième envoi, se déroulerait de la même manière. La viabilité Théorème 4.28 Si Alice et Bob se savent mutuellement honnêtes, et si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont opérationnels, le protocole est viable. Preuve : Si Alice et Bob sont honnêtes et si seul le protocole principal est réalisé, ils atteignent le point de complétude qui clôture le protocole principal. Cependant si un message se perd entre Alice et Bob, ils réalisent le protocole de recouvrement qui aboutit avec succès grâce aux canaux opérationnels. Si le premier message envoyé par Bob au cours du protocole principal n’arrive pas à Alice, celle-ci sachant Bob honnête attendra qu’il initie le protocole de recouvrement et ne tentera pas d’exécuter le protocole d’abandon. Remarquons que, si les canaux entre la TPC et respectivement Alice et Bob 4.4 Méthodes avec tierce partie de confiance off-line 83 sont réactifs, lors du protocole de recouvrement réalisé, par exemple, par Alice, Bob est contacté par la TPC. Ce dernier, honnête, se prête au protocole de recouvrement. Cependant si les informations qu’il envoie prennent trop de temps pour arriver à la TPC, cette dernière peut décider d’envoyer à Alice l’affidavit qui ne contient pas iB . ¤ Si Alice et Bob sont honnêtes, mais ignorent le comportement de l’autre, si le premier message de Bob du protocole principal n’arrive pas, Alice initiera le protocole d’abandon. Il faut donc que le canal de communication entre Alice et Bob soit opérationnel : seul le protocole principal sera dès lors exécuté. Remarques Ce protocole ne propose pas de mécanisme assurant la confidentialité ; nous avons donc bien à faire à un protocole d’échange équitable « brut ». Si aucun abandon ni recouvrement n’est réalisé, la TPC n’a aucune interaction avec Alice et Bob, et l’anonymat de ces derniers est assuré si aucun indice n’est fourni sur les signataires des messages qui sont envoyés. Si un protocole d’abandon ou de recouvrement est réalisé, la TPC reçoit des messages signés : il n’y a donc plus d’anonymat vis à vis d’elle. Un observateur extérieur voit des messages signés. Si aucun indice à propos de l’auteur (certificat en clair. . . ) ne lui est fourni, l’anonymat est conservé. Asokan a réalisé de nombreuses variations basées sur son idée optimiste ; il propose, entre autres, un protocole d’échange de signatures sur un contrat ainsi qu’un protocole de courrier recommandé [5]. 4.4.2 Le protocole optimiste de non-répudiation de Zhou et Gollmann Après la présentation par Asokan de l’approche optimiste, Zhou et Gollmann ont modifié, en 1998, leur protocole de non-répudiation 4.3.3 afin de l’adapter au critère d’optimisme. Les preuves Dans le protocole, les preuves suivantes sont échangées : La preuve de non-répudiation à l’origine du chiffré du message : EOO = SigA (fEOO , B, label , t, Ck (m)) où f est un indicateur du type de message qui est transmis, B est le récipiendaire, label = h(m, k) identifie la session du protocole, t est le moment où l’information attendue est disponible sur le répertoire public de la TPC et C k (m) est le chiffré du message m au moyen de la clé de session k (réalisant ainsi une mise en gage de m). 84 Chapitre 4 : Non-répudiation avec tierce partie de confiance La preuve de non-répudiation à la réception du chiffré du message : EOR = SigB (fEOR , A, label , t, Ck (m)) La preuve de non-répudiation à l’origine de la clé de session k utilisée pour chiffrer symétriquement le message : EOO k = SigA (fEOO k , B, label , k) La preuve de non-répudiation à la réception de la clé de session k : EOR k = SigB (fEORk , A, label , k) La preuve de non-répudiation à l’origine de la clé de session k utilisée pour chiffrer symétriquement le message : sub k = SigA (fsub k , B, label , t, k) La preuve de non-répudiation à la réception de la clé de session k fournie par la TPC : con k = SigTPC (fcon k , A, B, label , t, k) Ce protocole, s’il aboutit correctement, produit les preuves suivantes : la preuve de non-répudiation à l’origine consiste en : NRO = (EOO, EOO k ) ou NRO = (EOO, con k ) La preuve de non-répudiation à la réception consiste en : NRR = (EOR, EOR k ) ou NRR = (EOR, con k ) Le protocole Le protocole décrivant les échanges entre Alice et Bob dans la situation optimiste se trouve à la figure 4.7. Le protocole de recouvrement décrit comment Alice demande à la TPC de mener le protocole à son terme en cas de comportement malhonnête de Bob ou si une information attendue n’arrive pas. Dans le contexte d’un protocole de nonrépudiation, seule Alice lance un tel protocole de recouvrement puisque Bob est en position avantageuse. Notons que cette suite de protocoles ne prévoit pas un protocole d’abandon 34 . Seule Alice peut initier le protocole de recouvrement puisqu’à partir du troisième envoi Alice a tout transmis à Bob (le message et la preuve de non-répudiation 34 L’absence d’un protocole d’abandon induira d’ailleurs, en partie, une faiblesse du protocole comme nous le verrons en vérifiant l’équité de la suite de protocoles et en étudiant le protocole de la section 4.4.3. 4.4 Méthodes avec tierce partie de confiance off-line 85 Protocole 4.7 Le protocole optimiste de Zhou et Gollmann Le protocole principal : 1. A → B : fEOO , B, label , t, Ck (m) , EOO ¨ 2. B → A : fEOR , A, label , EOR ¨A 3. A → B : fEOO k , B, label , k, EOO k 4. B → A : fEORk , A, label , EOR k ¨ Le protocole de recouvrement : 1. A → TPC : fsub k , B, label , t, k, sub k 2. TPC ↔ B : fcon k , A, B, label , k, con k 3. TPC ↔ A : fcon k , A, B, label , k, con k ¨ à l’origine associée) alors que Bob doit encore transmettre le dernier morceau de sa preuve de non-répudiation à la réception de ce message. Ce déséquilibre est corrigé par la possibilité offerte à Alice de recouvrer un protocole incomplet. Aussi, si une session du protocole principal ne se termine pas, Bob, s’il n’a pas obtenu les informations du troisième envoi du protocole principal, devra consulter spontanément, après le moment t, la tierce partie de confiance, comme prévu dans le protocole de recouvrement afin de vérifier35 si Alice n’a pas initié un recouvrement avant le moment t. L’équité Théorème 4.29 Le premier envoi du protocole principal, le dernier envoi du protocole principal et le dernier envoi du protocole de recouvrement sont des points de forte complétude universels. Preuve : Après le premier envoi du protocole principal, si Alice arrête le protocole, comme il n’est pas prévu que Bob puisse initier le protocole de recouvrement, le protocole est donc aussi terminé pour lui, et ni l’un, ni l’autre n’ont obtenu l’information attendue. Après le quatrième envoi du protocole principal, l’échange est réalisé. Après le troisième envoi du protocole de recouvrement, les informations sont échangées si elles sont soumises avant le moment t, puisque la TPC publie alors la preuve con k (qui avec EOO et EOR, déjà reçus par respectivement Bob et Alice, forment les preuves de non-répudiation à l’origine et à la réception). Si les informations sont reçues par la tierce partie après le moment t, la tierce partie ne dépose rien sur son répertoire public et aucune preuve de non-répudiation finale n’est obtenue puisqu’elles dépendent de la publication de con k . Nous avons donc bien un point de complétude dans tous les cas. ¤ Théorème 4.30 Le deuxième envoi du protocole principal est un point de forte complétude pour Alice. 35 Bob sait si Alice a réalisé un recouvrement en consultant le répertoire public de la TPC et en y retrouvant ou non les informations : fcon k , A, B, label , k, con k . 86 Chapitre 4 : Non-répudiation avec tierce partie de confiance Preuve : Si Alice arrête le protocole, ni elle ni Bob ne peuvent plus rien obtenir, tandis que si Bob arrête le protocole, Alice peut réaliser un recouvrement. ¤ Théorème 4.31 Si les canaux de communication entre la TPC et respectivement Alice et Bob ne sont pas opérationnels, le protocole n’est pas équitable. Preuve : Le canal de communication entre la TPC et Alice n’étant pas opérationnel, si le protocole principal n’a pu aboutir, mais a été réalisé jusqu’à l’avant dernier envoi (Bob ayant ainsi le message m et la preuve de non-répudiation à l’origine), le premier envoi du protocole de recouvrement réalisé par Alice peut arriver après l’instant t. La TPC ne publiera pas les éléments de preuves nécessaires et l’équité sera alors brisée. ¤ Zhou [79] propose d’utiliser des canaux réactifs et suggère de choisir un t suffisamment grand pour éviter ce problème d’équité. Cependant, il est théoriquement impossible de choisir un tel t, puisque le comportement d’un canal réactif, en terme de délai avant la livraison d’un message, est imprévisible. Pour obtenir l’équité, une hypothèse plus forte est nécessaire sur les canaux de communication qu’utilisent Alice et Bob pour communiquer avec la TPC. En effet, nous pouvons prouver que si ces canaux sont opérationnels 36 , la suite de protocoles respecte la propriété d’équité. Théorème 4.32 Si le canal communication entre la TPC et Alice est opérationnel, et celui entre la TPC et Bob est réactif, le protocole est fortement équitable37 . Preuve : Après le deuxième envoi, par l’hypothèse de conservation, Bob n’arrête pas le protocole. Il attend jusqu’en t la réponse d’Alice. Si la réponse arrive il continue le protocole et finira par atteindre le point de complétude correspondant au dernier envoi. Si rien n’arrive, il attend jusqu’au moment t et il consulte la TPC (où il trouve, ou non, les informations attendues) et il atteint le point de complétude correspondant au dernier envoi du protocole de recouvrement. Après le troisième envoi, Bob possède une preuve de non-répudiation complète, mais s’il arrête le protocole, Alice réalisera un recouvrement. Par l’hypothèse de conservation, Alice n’arrêtera pas le protocole. Lorsqu’Alice initie le protocole de recouvrement, son premier envoi arrivera avant un temps fixé et connu d’Alice. 36 Dans notre modèle, nous n’avons prévu que trois types de canaux de communication (incertains, réactifs et opérationnels). Dans le cas du protocole optimiste de Zhou et Gollmann, un canal de communication assurant une borne au délai avant lequel les messages émis à une extrémité du canal arrivent à l’autre extrémité serait suffisant pour assurer l’équité. 37 Une attaque ayant comme objectif de paralyser la TPC peut en pratique être envisageable si un canal non adéquat est utilisé entre Alice et la TPC. Une telle attaque consiste à « noyer » la machine serveur de la tierce partie sous les requêtes (flooding attack en anglais). La requête légitime de consultation est alors noyée dans les requêtes submergeant la TPC, empêchant éventuellement la TPC de traiter une requête d’initiation du protocole de recouvrement avant le moment t. 4.4 Méthodes avec tierce partie de confiance off-line 87 Alice peut donc éviter de se trouver dans une situation telle que le premier envoi du protocole de recouvrement arrive après l’instant t38 . Après le deuxième envoi du protocole de recouvrement, Alice, par l’hypothèse de conservation, n’arrêtera pas le protocole et atteindra le point de complétude qui correspond au troisième envoi du protocole de recouvrement. Si le canal de communication entre la TPC et Alice n’est pas opérationnel, le premier envoi du protocole de recouvrement peut arriver après le moment t. Si ceci arrive alors que le troisième envoi du protocole principal est réalisé, l’équité est brisée. ¤ La fin du protocole Théorème 4.33 Si les canaux de communication entre la TPC et respectivement Alice et Bob sont opérationnels, le protocole est temporellement fini. Preuve : Si le premier message n’arrive pas, le protocole se termine pour Alice au moment t. Pour les messages suivants du protocole principal, si un message n’arrive pas, Alice peut faire un recouvrement. Le protocole se termine alors, pour Alice et Bob, après le moment t (avec ou sans succès), après qu’ils aient consulté, au travers du canal opérationnel qui les relie à la TPC, le répertoire public de cette dernière. ¤ Les disputes Si Alice prétend avoir envoyé avec succès le message m à Bob, le juge lui demande m, Ck (m), k, t et label ainsi que EOR et EOR k ou con k . Si Alice ne peut fournir tout cela, le juge décide qu’elle a tort. Si elle fournit toutes les informations demandées, le juge vérifie la signature de Bob sur le EOR et la signature de Bob sur EOR k ou la signature de la TPC sur le con k (si le t indiqué lors du recouvrement est différent de celui proposé par Alice lors du protocole principal, la vérification de ces signatures échoue) et teste si label = h(D k (Ck (m)) , k). Puis il vérifie si m = Dk (Ck (m)). Si tous les tests et vérifications se déroulent avec succès, le juge déclare que l’affirmation d’Alice est correcte. Si Bob prétend avoir reçu le message m d’Alice, le juge lui demande m, Ck (m), k, t et label ainsi que EOO et EOO k ou con k . Si Bob ne peut fournir tout cela, le juge décide qu’il a tort. S’il fournit toutes les informations demandées, le juge vérifie la signature d’Alice sur le EOO et soit la signature d’Alice sur EOO k ou la signature de la TPC sur le con k (la correspondance entre le t indiqué dans le protocole principal et celui envoyé à la TPC lors du protocole de recouvrement est ainsi vérifié), et teste si label = h(Dk (Ck (m)) , k). Puis il vérifie si le message m reçu de Bob correspond au message obtenu par Dk (Ck (m)). Si tous les tests 38 Remarquons aussi que si Alice envoie à la TPC, lors du protocole de recouvrement, un t ′ différent du t négocié avec Bob, cette modification sera détectée par observation des preuves complètes de non-répudiation. En effet, con k émis par la TPC contiendra t′ alors que EOR contiendra t. 88 Chapitre 4 : Non-répudiation avec tierce partie de confiance et vérifications se sont passés avec succès, le juge déclare que l’affirmation de Bob est correcte. Le comportement de la tierce partie de confiance Si la TPC s’allie avec Alice ou Bob, elle peut ne rien publier ou publier les informations après le moment t et transmettre directement les informations à Alice (ou à Bob). Alice (ou Bob) aurait alors sa preuve de non-répudiation alors que Bob (ou Alice) n’aurait rien. La tierce partie peut rendre disponible une information inadéquate en fin de protocole. Ni Alice, ni Bob ne recevront leur preuve, et si ce comportement est occasionnel, il ne peut être détecté. Il est difficile de détecter (et surtout de prouver) que la TPC dépose les informations sur le répertoire public un certain temps après le moment t. Ainsi si Alice ou Bob consultent la TPC et ne trouvent rien dans le répertoire public (correspondant au label) et s’ils sont méfiants vis à vis cette tierce partie, Alice ou Bob devront consulter régulièrement le répertoire pour s’assurer que les informations ne sont pas déposées plus tard. La viabilité Théorème 4.34 Si tous les canaux de communication sont opérationnels, le protocole est viable. Preuve : Comme Alice et Bob sont honnêtes, seul le protocole principal est exécuté et tous les messages arrivent. Si le canal entre Alice et Bob n’est pas opérationnel, alors le deuxième message peut arriver après le moment t et le protocole se termine sans échange malgré l’honnêteté des acteurs. ¤ Remarques Le protocole ne propose pas de mécanisme assurant la confidentialité. La clé k peut être accessible à tout observateur, tout comme Ck (m). Le chiffrement du message n’a donc pas pour but la confidentialité, mais bien la réalisation d’une mise en gage du message m. Ce protocole est donc aussi un protocole de non-répudiation « brut ». Si un acteur ne va pas chercher les évidences auprès de la TPC, il perdra une future dispute à ce propos. Comme chaque message signé contient le nom du récipiendaire, un opposant, Oscar, ne peut prendre la signature d’Alice (par exemple) et celle émise par la tierce partie et prétendre avoir une preuve de non-répudiation à l’origine sur m venant d’Alice, car c’est bien B et non O qui est spécifié dans le message 4.4 Méthodes avec tierce partie de confiance off-line 89 signé. Le raisonnement est identique vis à vis de Bob pour la preuve de nonrépudiation à la réception. Oscar ne peut prétendre avoir cette preuve car le EOR est signé par Bob et B apparaît dans les messages signés par Bob et par la TPC. Remarquons que l’on suppose qu’un acteur ne peut empêcher d’envoyer de l’information (k et sig (k)) à la TPC. Par contre, s’il peut bloquer la TPC, Oscar peut briser l’équité du protocole. Une telle attaque peut être obtenue au moyen d’une attaque par inondation, en noyant la TPC sous des requêtes, et ainsi, si Bob a atteint le point après le troisième envoi du protocole principal et qu’Alice ne peut initier le recouvrement avant le moment t, alors l’équité est brisée. La TPC reçoit non seulement des messages signés qu’elle vérifie, mais aussi le nom des acteurs cibles. Il n’y a donc pas d’anonymat à son égard. La situation est identique face à un observateur extérieur. Zhou et Gollmann ont proposé des versions de leur protocole, qu’il soit optimiste ou non, qui ne font pas usage du moment t à partir duquel Alice et Bob peuvent consulter le répertoire public de la TPC. Ne sachant pas quand les informations sont disponibles, Alice et Bob réalisent alors des consultations successives (à la façon d’un polling dans un système client-serveur). 4.4.3 Un protocole optimiste et efficace de non-répudiation Nous proposons [48] ici une modification originale du protocole de Zhou et Gollmann avec TPC off-line, qui ne requiert pas un canal opérationnel entre la TPC et Alice pour que le protocole soit équitable, mais bien seulement un canal réactif. L’attitude passive39 de la TPC est une particularité des protocoles de Zhou et Gollmann (observée aussi dans le protocole non optimiste de Zhang et Shi). Si nous désirons conserver cette passivité tout en permettant l’usage d’un canal réactif entre la TPC et Alice, le protocole de recouvrement devrait être modifié de manière à ce que, lorsqu’Alice initie le protocole de recouvrement, si le premier envoi arrive après l’instant t, la TPC révoque les clés correspondant aux signatures utilisées dans les preuves de non-répudiation, et ainsi, si Bob possède la preuve de non-répudiation à l’origine, Alice n’est pas lésée. Mis à part la position avantageuse d’Alice qui peut révoquer à sa guise les preuves de non-répudiation, ce mécanisme souffre toujours d’un risque de perte d’équité, si Bob a fait usage de ses preuves avant qu’Alice n’ait eu l’occasion de les révoquer. Nous proposons en conséquence un nouveau protocole qui se base sur une TPC active. La tierce partie ne maintient donc plus un répertoire public accessible aux acteurs cibles, mais envoie à la demande des messages spécifiques à Alice et Bob au travers de canaux réactifs. 39 La TPC a une attitude passive car elle n’envoie aucun un message, mais gère un répertoire public accessible en lecture, qui est consulté par les acteurs cibles. Seuls les acteurs ont donc un comportement actif. 90 Chapitre 4 : Non-répudiation avec tierce partie de confiance Un protocole similaire à celui que nous allons à présent décrire a été proposé (de façon partiellement incorrecte) par Zhou et al. [76]. Étant donnés les délais de publication, notre protocole, réalisé indépendemment, a été publié [48] un an après celui de Zhou et al. Protocole 4.8 Un protocole optimiste et efficace de non-répudiation Le protocole principal : 1. A → B : fEOO , fsub , B, label , c, CKTPC (k) , EOO, sub ¨B 2. B → A : fEOR , A, label , EOR 3. A → B : fEOO k , B, label , k, EOO k 4. B → A : fEORk , A, label , EOR k ¨ Le protocole de recouvrement : (X est l’acteur cible initiant le recouvrement, et Y l’autre acteur cible) 1. X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO 2. TPC → A : fcon k , A, B, label , k, con k , EOR 3. TPC → B : fcon k , A, B, label , k, con k Le protocole d’abandon : 1. A → TPC : fabort , label , B, abort 2. TPC → A : fcon a , A, B, label , con a 3. TPC → B : fcon a , A, B, label , con a ¨ ¨ Les preuves Au cours du protocole, de nombreuses preuves de non-répudiation seront utilisées. La preuve de non-répudiation à l’origine du chiffré c : EOO = SigA (fEOO , B, label , h(c)) où, de la même manière que pour le protocole de Zhou et Gollmann, les labels utilisés résultent du hachage du message m et de la clé k utilisée pour mettre ce message en gage : label = h(m, k). Une instance du protocole est identifiée par le triplet (label , A, B). La preuve de non-répudiation à la réception du chiffré c : EOR = SigB (fEOR , A, label , h(c)) La preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la TPC : sub = SigA (fsub , B, label , CKTPC (k)) La preuve de non-répudiation à l’origine de la clé k : EOO k = SigA (fEOO k , B, label , k) 4.4 Méthodes avec tierce partie de confiance off-line 91 La preuve de non-répudiation à la réception de la clé k : EOR k = SigB (fEORk , A, label , k) La preuve de non-répudiation à l’origine de la demande de recouvrement : rec X = SigX (frec X , Y, label ) où X est soit Alice, soit Bob. La preuve de non-répudiation à l’origine de la clé k envoyée par la TPC : con k = SigTPC (fcon k , A, B, label , k) La preuve de non-répudiation à l’origine de la demande d’abandon du protocole : abort = SigA (fabort , B, label ) La preuve de non-répudiation à l’origine de la confirmation par la TPC de l’abandon du protocole : con a = SigTPC (fcon a , A, B, label ) La preuve de non-répudiation à l’origine du message m : NRO = (EOO, EOO k ) ou (EOO, con k ) La preuve de non-répudiation à la réception du message m : NRR = (EOR, EOR k ) ou (EOR, con k ) Le protocole principal Le protocole suit le canevas classique : le message chiffré est d’abord échangé contre un accusé de réception, puis la clé de déchiffrement est émise et un autre accusé de réception est attendu. Les envois sont associés à des délais d’attente après lesquels le récipiendaire potentiel suppose que l’information attendue n’arrivera pas et initie soit le protocole de recouvrement, soit le protocole d’abandon. 1. Alice envoie à Bob le chiffré c, la preuve de non-répudiation à l’origine de c, ainsi que la clé k de déchiffrement, elle-même chiffrée au moyen de la clé publique de chiffrement de la TPC : A → B : fEOO , fsub , B, l, c, CKTPC (k) , EOO, sub 2. Bob accuse réception du chiffré c, en envoyant sa preuve de non-répudiation à la réception de c : B → A : fEOR , A, label , EOR 92 Chapitre 4 : Non-répudiation avec tierce partie de confiance 3. Alice envoie alors la clé k qui permettra à Bob de déchiffrer c, ainsi que la preuve de non-répudiation à l’origine de cette clé k (cette preuve, associée à la preuve de non-répudiation à l’origine de c, forme la preuve de non-répudiation à l’origine de m) : A → B : fEOO k , B, label , k, EOO k 4. Bob envoie, pour finir, un accusé de réception de la clé k (cette preuve de non-répudiation à la réception de k, associée à la preuve de nonrépudiation à la réception de c, forme la preuve de non-répudiation à la réception de m) : B → A : fEORk , A, label , EOR k Le protocole d’abandon Si Alice ne reçoit pas le deuxième envoi dans les délais prévus, elle initie le protocole d’abandon. Remarquons qu’Alice ne peut initier à ce moment le protocole de recouvrement qui, lui, prévoit l’envoi de la preuve de non-répudiation à la réception de c, EOR, qu’elle n’a pas encore reçu. 1. Alice envoie donc une requête d’abandon signée à la TPC : A → TPC : fabort , label , B, abort 2. Si le protocole de recouvrement ou d’abandon n’a pas déjà été initié 40 , la TPC envoie à Alice une confirmation signée de l’abandon du protocole : TPC → A : fcon a , A, B, label , con a 3. Puis la TPC envoie le même message d’abandon à Bob : TPC → B : fcon a , A, B, label , con a Remarquons qu’Alice peut ne pas spécifier le bon B dans sa requête d’abandon, le vrai Bob ne recevra donc pas la confirmation de la TPC au cours de la session du protocole d’abandon. Cependant, comme nous le verrons, il pourra réaliser le protocole de recouvrement. 40 La TPC retient, pour chaque session des protocoles au cours desquels elle est invoquée, quel protocole elle a déjà réalisé (abandon ou recouvrement) et qui a initié ce protocole. 4.4 Méthodes avec tierce partie de confiance off-line 93 Le protocole de recouvrement Bob peut, à tout moment après avoir reçu le premier envoi du protocole principal, si un message n’arrive pas dans les délais attendus, initier le protocole de recouvrement. De même, Alice, à partir du moment où elle a reçu de Bob le deuxième envoi du protocole principal (car il lui faut EOR envoyé par Bob), peut aussi initier le protocole de recouvrement. 1. Le protocole est initié par Alice ou Bob, noté X. X envoie à la TPC le hachage du chiffré c, la clé k chiffrée à l’intention de la tierce partie, le label label , l’identité du deuxième acteur cible Y , la preuve de non-répudiation à l’origine de c (EOO), la preuve de non-répudiation à l’origine de la clé k (sub), la preuve de non-répudiation à la réception de c (EOR), ainsi que la preuve de non-répudiation à l’origine de la requête de recouvrement (rec X ) : X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO Remarquons que X ne peut envoyer une identité qui ne correspond pas au « vrai » Y puisque la TPC vérifie les signatures de X et de Y . 2. La TPC s’assure de la validité des informations reçues, puis, si le protocole d’abandon ou le protocole de recouvrement a déjà été réalisé, la TPC arrête le protocole de recouvrement. Sinon, le protocole continue et la TPC déchiffre la clé k chiffrée à son intention. Elle envoie alors à Alice sa preuve de non-répudiation à l’origine de la clé k (con k ) qui sera combinée à EOR afin d’obtenir la preuve de non-répudiation à la réception de m. Si Bob a initié le protocole de recouvrement, il peut ne pas encore avoir envoyé le EOR à Alice ; comme ce EOR doit être envoyé à la TPC au premier envoi de ce protocole de recouvrement, celle-ci la transmettra aussi à Alice : TPC → A : fcon k , A, B, label , k, con k , EOR 3. Puis la TPC envoie à Bob sa preuve de non-répudiation à l’origine de la clé k (con k ) qui sera combinée à EOO afin de produire la preuve de nonrépudiation à l’origine de m : TPC → B : fcon k , A, B, label, k, con k L’équité Théorème 4.35 Les derniers envois du protocole principal et du protocole de recouvrement sont des points de forte complétude universels. 94 Chapitre 4 : Non-répudiation avec tierce partie de confiance Preuve : Après ces deux derniers envois le message m est transmis et les preuves de non-répudiation sont échangées. ¤ Théorème 4.36 Le dernier envoi du protocole d’abandon est un point de forte complétude universel. Preuve : Après le troisième envoi du protocole d’abandon, qui ne peut être initié que par Alice, le protocole se termine alors qu’aucune preuve finale de non-répudiation, ni le message, n’ont été transmis. En effet, par l’hypothèse de conservation, Alice ne réalisera le protocole d’abandon que si cela ne donne pas d’avantage à Bob, et donc initiera le protocole d’abandon avant le troisième envoi. Ce protocole n’atteindra le troisième envoi que si Bob n’a pas préalablement réalisé un recouvrement. ¤ Théorème 4.37 Le premier envoi du protocole principal est un point de forte complétude pour Bob. Preuve : Après avoir reçu le premier envoi d’Alice, si Bob arrête le protocole, Alice n’ayant pas le EOR ne peut qu’arrêter le protocole (en initiant le protocole d’abandon). Ni Alice, ni Bob n’auront de preuve et le message m ne sera pas transmis. Alice ne peut spontanément arrêter de prendre part au protocole (sans exécuter le protocole d’abandon) car Bob peut réaliser un recouvrement et obtenir le message m et la preuve de non-répudiation à l’origine. ¤ Théorème 4.38 Le protocole est fortement équitable. Preuve : Après le premier envoi, le protocole principal peut s’arrêter, ou le protocole d’abandon peut être initié par Alice, ou encore le protocole de recouvrement peut être initié par Bob. Après le deuxième envoi, le protocole de recouvrement peut être initié par Alice et Bob ; Alice a, quant à elle, toujours la possibilité d’initier, sans risque de perte d’équité, le protocole d’abandon. Après le troisième envoi, Alice et Bob ont tous deux la possibilité de lancer le protocole de recouvrement, et avec le dernier envoi le point de forte complétude universel est atteint. Après le premier envoi du protocole d’abandon, la tierce partie honnête enverra, si aucun recouvrement n’a été réalisé, l’information d’abandon à Alice et Bob, atteignant ainsi le point de forte complétude universel de ce protocole. Après le premier envoi du protocole de recouvrement, la tierce partie, honnête, envoie les informations attendues à Alice et Bob, si un recouvrement ou un abandon n’ont pas encore eu lieu, et le point de forte complétude universel du protocole de recouvrement est atteint. ¤ La fin du protocole Théorème 4.39 Le protocole est temporellement fini. 4.4 Méthodes avec tierce partie de confiance off-line 95 Preuve : Trois cas de figure sont à considérer. Soit le protocole principal se termine naturellement avant que les délais d’attente ne soient expirés. Soit Alice réalise le protocole d’abandon et Alice et Bob sont avertis de l’abandon du protocole par un message signé par la TPC transitant au travers d’un canal réactif ; le protocole se termine donc en un temps fini. Soit encore le protocole de recouvrement est réalisé par Alice ou Bob ; dans ce cas Alice et Bob reçoivent les informations et les preuves attendues aussi en un temps fini (toujours grâce aux canaux réactifs). Un dernier cas est à considérer : supposons qu’Alice initie, après le premier envoi du protocole principal, le protocole de recouvrement en indiquant à la TPC un mauvais nom de récipiendaire (B̃ plutôt que B). Bob ne recevra donc rien de la TPC. Cependant, Bob peut à tout moment réaliser un protocole de recouvrement. Comme une session du protocole est identifiée par le triplet (label , A, B), l’abandon réalisé par Alice ne concerne pas le protocole auquel participe Bob, et le protocole de recouvrement est réalisé. Le protocole se termine donc pour Bob, dans ce cas, au cours du protocole de recouvrement. ¤ Les disputes Si Bob affirme avoir reçu le message m d’Alice, il doit présenter au juge la preuve de non répudiation à l’origine de c (EOO), le label label , le chiffré c, le message m, la clé de déchiffrement k et soit la preuve de non-répudiation à l’origine de la clé k générée par Alice (EOO k ) soit celle générée par la TPC (con k ). Si Bob présente toutes ces informations au juge, celui-ci accepte l’affirmation de Bob si les tests suivants sont vérifiés : – EOO = SigA (fEOO , B, label , c), – EOO k = SigA (fEOO k , B, label , k) ou con k = SigTPC (fcon k , A, B, label , k), – label = h(m, k), – c = Ck (m). alors le juge accepte l’affirmation de Bob. Si Alice prétend avoir envoyé avec succès le message m à Bob, elle doit présenter au juge la preuve de non-répudiation à la réception de c (EOR) , la preuve de non-répudiation à la réception de la clé k générée par Alice (EOR k ) ou la preuve de non-répudiation à l’origine de la clé k générée par la TPC (con k ) ainsi que le label label , le chiffré c, le message m et la clé k de déchiffrement. S’il reçoit toutes ces informations, le juge accepte l’affirmation d’Alice à la condition que : – EOR = SigB (fEOR , A, l), – EOR k = SigB (fEORk , A, label , k) or con k = SigTPC (fcon k , A, B, label , k), – label = h(m, k), – c = Ck (m). Le comportement de la tierce partie de confiance Si la TPC s’allie avec Bob, elle peut exécuter avec lui un recouvrement et envoyer un message d’abandon à Alice. Cette dernière détectera directement le 96 Chapitre 4 : Non-répudiation avec tierce partie de confiance méfait, puiqu’elle est seule habilitée à réaliser un abandon. De plus la supercherie est détectée par l’incohérence des preuves en possession des acteurs cibles. La TPC peut aussi, lorsqu’Alice réalise un abandon, contacter Bob pour réaliser un recouvrement, puis envoyer (ou non) à Alice les informations de recouvrement (si elle envoie les informations à Alice, le protocole reste équitable et Alice ne détecte rien ; sinon Alice, ne recevant rien de la TPC, peut supposer une tricherie). Enfin, la situation est semblable si la tierce partie s’allie avec Alice. La viabilité Théorème 4.40 Si Alice et Bob se savent mutuellement honnêtes, le protocole est viable. Preuve : Avec l’hypothèse des canaux réactifs entre la TPC et respectivement Alice et Bob, le protocole peut être prouvé viable. En effet, Alice et Bob étant honnêtes, soit le protocole principal s’exécute jusqu’à son terme, soit le protocole de recouvrement est exécuté par Alice ou Bob. Ce protocole de recouvrement se terminera avec succès grâce aux canaux réactifs utilisés. Remarquons que si le deuxième envoi du protocole principal n’arrive pas à Alice, cette dernière plutôt que d’initier le protocole d’abandon, attendra, sachant Bob honnête, qu’il réalise le protocole de recouvrement pour recevoir de la TPC les informations nécessaires. Après le deuxième envoi, Alice et Bob peuvent réaliser le recouvrement. ¤ Remarquons que si Alice et Bob sont honnêtes, mais ignorent le comportement de l’autre, Alice risque d’initier le protocole d’abandon si le premier message venant de Bob dans le protocole principal n’arrive pas. Ainsi, pour respecter la propriété de viabilité, il est nécessaire que le canal de communication entre Alice et Bob soit opérationnel, et ainsi seul le protocole principal s’exécutera. Remarques Le protocole proposé étant un protocole de non-répudiation brut, aucun mécanisme de confidentialité n’est prévu. De même, par la présence des noms des acteurs cibles dans les messages, aucun anonymat n’est non plus assuré. 4.4.4 La révocation des clés de signature dans un protocole optimiste Comme nous l’avons déjà évoqué dans la section sur les protocoles avec TPC on-line, il peut arriver qu’une clé de génération de signatures soit compromise. Il faut alors révoquer le certificat de cette clé de signature et, dans le contexte des protocoles de non-répudiation, il est nécessaire de pouvoir identifier si une signature (présente dans une preuve de non-répudiation) a été générée avant ou après la révocation. La méthode proposée à la section 4.3.4 nécessite une TPC 4.5 L’équité véritable 97 on-line qui finit par apposer un cachet temporisé validant toutes les preuves. L’approche optimiste complique le problème. La solution classique consistant à utiliser une autorité de confiance apposant des cachets temporisés sur les preuves générées au cours des protocoles, où la date présente dans un cachet est alors comparée à la date de révocation, pose le problème de l’usage on-line de cette autorité dans le contexte optimiste. Zhou et al. proposent [80] un mécanisme où l’on distingue des clés de signatures révocables et irrévocables. Les premières sont des clés de signatures classiques distribuées par une autorité de certification. Les secondes sont distribuées par le signataire et sont frappées d’un cachet temporisé. Ces dernières signatures ne pourront être révoquées jusqu’à leur expiration (information présente dans les certificats de clés). Les clés révocables sont considérées comme des clés à long terme, les clés irrévocables sont temporaires. Chaque acteur possède une clé révocable de signature. En dehors du protocole de non-répudiation, ces acteurs obtiennent un cachet temporisé qu’ils intègrent dans le certificat d’une clé irrévocable qu’ils génèrent. L’autorité apposant les cachets temporisés vérifie si la clé de signature classique et révocable de l’acteur est utilisable. L’acteur fixe dans son certificat de clé irrévocable une date d’expiration qui ne peut dépasser la date d’expiration de la clé révocable de signature. Le certificat de la clé irrévocable est signé par l’autorité apposant les cachets temporisés. Lors d’un protocole de non-répudiation, les acteurs signeront les messages au moyen de leur clé irrévocable (et transmettront aussi le certificat associé). Si un acteur reçoit un message signé par une clé irrévocable et estime la date d’expiration trop éloignée dans le temps, il peut décider d’arrêter le protocole. Même si une clé de signature irrévocable est compromise 41 , on ne se réfère pas à une liste de certificats révoqués (CRL) à chaque vérification. Les risques qui en découlent sont réduits, puisque seules quelques signatures ont éventuellement été générées après la compromission de la clé (la vie de la clé étant courte). 4.5 L’équité véritable L’équité véritable42 est la dernière évolution des protocoles d’échange avec TPC off-line. Précédemment, en cas de problème, la preuve de non-répudiation à la réception pouvait ne pas être signée par Bob mais par la TPC off-line. La volonté ici est d’obtenir dans tous les cas de figure une preuve signée par l’acteur cible adéquat et non une signature de remplacement acceptée comme étant aussi valable que celle attendue. C’est cela que nous nommons l’équité véritable. Cette idée a été proposée par Micali. Ensuite, Bao et al. ont été parmi les premiers à avoir développé un protocole sur cette idée [12]. En se basant sur les 41 42 La clé secrète de signature est connue par une partie tierce, par exemple. true fairness en anglais. 98 Chapitre 4 : Non-répudiation avec tierce partie de confiance protocoles d’échange off-line, ils proposent deux protocoles off-line vérifiant une forme d’équité véritable. La lourdeur de leur première proposition la rend impraticable. Leur seconde proposition a été cassée par Boyd et al. [23] peu de temps après. Dans un premier temps, la seule méthode envisagée pour permettre de générer, dans toutes les situations, les signatures d’Alice et de Bob, consistait à réaliser un chiffrement de la signature qui soit vérifiable par le récipiendaire [5]. Cette technique permet de vérifier si le message chiffré contient la signature attendue sans pour autant pouvoir déchiffrer ce message et donc sans être à même de récupérer cette signature. Le chiffrement doit être déchiffrable par la TPC ; ainsi si Alice (par exemple) ne transmet pas la signature qui est attendue d’elle par Bob, celui-ci enverra la signature d’Alice chiffrée, qu’il a préalablement reçue et vérifiée, à la TPC qui la déchiffrera et la transmettra en clair en retour à Bob. Le problème [23] de cette technique est aussi la lourdeur des calculs à réaliser, ces techniques étant en conséquence peu utiles en pratique. En conséquence, Chen [27] a proposé, en 1998, d’utiliser une primitive cryptographique développée par Chaum [25], appelée signature confirmable. Cette technique permet de vérifier qu’une signature temporaire pourra être rendue valide avec l’aide d’un « confirmeur » qui dans le cas de l’équité véritable est la TPC. Cette méthode, qu’il greffe sur l’approche optimiste, permet de réaliser un échange de signatures traditionnelles dans les cas de figure où aucune faute n’intervient au cours d’une session du protocole. Par contre, si la TPC est contactée, elle va générer une signature de Bob qui est différente de celle que Bob aurait émise si tout s’était bien passé. Cependant cette signature est bien une signature de Bob (elle est non-falsifiable et assure la non-répudiation à l’origine). Ainsi, la signature finale présente, par sa forme, une indication sur la manière dont le protocole s’est déroulé (ce qui peut être indésirable en pratique). C’est cela que les prochains protocoles que nous allons étudier vont tenter d’éviter. 4.5.1 Le protocole générique d’échange équitable de Boyd et Foo Boyd et Foo [23] ont amélioré en 1998 la technique d’équité véritable, en générant, en cas de problème, via la TPC, une signature identique à celle que Bob aurait émise dans une situation sans faute. Boyd et Foo désirent que la signature intermédiaire, traditionnellement émise lors des mises en gage, ne soit pas universellement vérifiable (elle aurait, sinon, valeur de signature traditionnelle et indiquerait que l’acteur s’est engagé dans le protocole). L’idée proposée consiste à utiliser des signatures convertibles. Alice devra alors pouvoir vérifier si, le cas échéant, elle pourra, avec l’aide de la TPC, convertir la signature intermédiaire de Bob en une signature universellement vérifiable. 4.5.1.1 Signatures incontestables et convertibles 4.5 L’équité véritable 99 Les auteurs utilisent une évolution dans le domaine des signatures, entamé par Chaum [26] avec les signatures incontestables43 où la vérification de la signature ne peut se faire qu’avec la participation du signataire (lequel ne peut cependant pas réfuter une de ses signatures valides). Un exemple de protocole implémentant un tel schéma de signature incontestable peut être le suivant : un générateur44 g public de Z∗p , où p est un grand premier, est choisi, et une clé secrète x, tel que x soit premier avec p − 1, ainsi qu’une clé publique y = g x mod p sont associées au signataire45 . La signature, inspirée du schéma de signature RSA, du message m 6= 1 est s = mx mod p La vérification de la signature se fait au cours du protocole de vérification suivant (où S est le signataire et V est le vérificateur) : Le vérificateur choisit aléatoirement et indépendamment a et b ∈ {1, . . . , p − 2} et envoie r = sa y b mod p au signataire : V →S :r Le signataire répond à cette question en envoyant t = r x teur46 : −1 dans Z∗p au vérifica- S→V :t Le vérificateur compare alors t à ma g b mod p et si les valeurs sont identiques, le vérificateur accepte la signature. Si l’égalité n’est pas établie, le vérificateur répète le protocole de vérification avec deux nouvelles valeurs a′ et b′ (à la place de a et b), et obtient ainsi une ′ ′ ′ réponse t′ à la question r ′ = sa y b mod p. Le vérificateur compare alors (tg −b )a ′ ′ à (t′ g −b )a et si les valeurs sont identiques (et vallent maa mod p), cela signifie que le signataire est honnête et que la signature s n’est pas la sienne 47 . 43 undeniable signature en ˘ anglais. ¯ Z∗p = {1, . . . , p − 1} = g 1 , . . . , g p−1 = g 0 = 1 mod p. 45 Calculer x = log g (y) à partir de y, p et g est une instance du logarithme discret modulo 44 p. 46 −1 x mod p − 1 = 1. Un opposant, qui ne connaît pas x−1 pourrait falsifier une telle signature en répondant correctement à la question r, mais pour ce faire, ne connaissant pas x−1 , il devrait connaître a et b ce qui n’est pas le cas. Une signature invalide ne peut être prouvée valide car si on suppose deux couples de valeurs distinctes, (a, b) et (a′ , b′ ), produisant une même question ′ ′ ′ ′ ′ ′ ′ r = sa y b = sa y b , alors si s = mx avec x 6= x′ , nous avons sa y b = mx a g xb = mx a g xb = ′ ′ ′ ′ ′ sa y b , donc mx (a−a ) = g x(b −b) ; mais si de plus la réponse est correcte pour les deux paires, ′ ′ ′ ′ nous avons ma g b = ma g b , donc ma−a = g b −b , ce qui contredit x 6= x′ . Enfin si le signataire 47 100 Chapitre 4 : Non-répudiation avec tierce partie de confiance Sur base des signatures incontestables ont été développées par la suite les signatures convertibles [21, 30] qui ne peuvent être vérifiées qu’avec la participation du signataire qui, de plus, à cette occasion, peut les transformer en signatures traditionnelles (à savoir vérifiables par le récipiendaire de la signature s’il possède la clé publique associée) ; puis une dernière évolution [25] a mené aux signatures à convertisseur désigné 48 avec lesquelles la transformation de la signature incontestable en signature traditionnelle peut être réalisée par le signataire ou par une tierce partie désignée (qui est le convertisseur désigné). Le protocole proposé par Boyd et Foo, et décrit ci-après, illustre cette technique. 4.5.1.2 Le protocole initial de Boyd et Foo L’avancée majeure consiste en la volonté de générer, en cas de faute, une signature identique à celle qui aurait été émise lors d’une session sans faute. Ainsi, ne pouvant distinguer une signature émise par la TPC d’une signature émise par Bob, les signatures générées au cours d’une session du protocole ne laissent transpirer aucune information sur la manière dont s’est déroulée cette session et ne permettent donc pas de tirer l’une ou l’autre conclusion au sujet des acteurs cibles, à propos de leur honnêteté. . . Protocole 4.9 Le protocole générique de Boyd et Foo Le protocole principal : 1. B → A : descr (m), SBA (descr (m)) ¨A 2. A ⇔ B : vérification de SBA (descr (m)) ¨A 3. A → B : CKB (m) 4. B → A : SigB (descr (m)) ¨ Le protocole de recouvrement : f A (SB (descr (m)) , CK 1. A → TPC : descr (m), Sig (m)) TPC A 2. TPC → A : SigB (descr (m)) 3. TPC → B : CKB (m) ¨ Le protocole générique principal Le protocole d’échange entre Alice et Bob d’un message m contre une signature de la description de m suppose que Bob connaît la description de m : descr (m). Il la connaît, par exemple, après avoir eu une interaction préalable avec Alice. tente de nier une signature valide, il doit produire des réponses t et t′ incorrectes telles que ′ ′ (tg −b )a est égal à (t′ g −b )a , mais après avoir répondu à la première question, et en supposant −1 −1 ′ ′ −1 −1 que le signataire connaisse a et b, nous avons t′ = (ta g −ba )a g b et ta g −ba est fixé à ′ ce moment, et donc produire un tel t revient à être à même de faire accepter une signature non valide. 48 designated converter signature en anglais. 4.5 L’équité véritable 101 Dans le protocole, SBA (descr (m)) est une signature partielle49 (ou temporaire) générée par Bob de la description du message m, qui est telle que seule Alice peut en vérifier sa validité. Cependant la TPC peut la transformer en une signature définitive qui est universellement vérifiable. 1. Pour commencer Bob génère une signature partielle (à convertisseur désigné, à savoir la TPC) de la description de l’information qu’il désire et l’envoie à Alice : B → A : descr (m), SBA (descr (m)) 2. Alice et Bob réalisent un protocole sans apport de connaissance 50 qui tente de convaincre Alice que la TPC pourra si nécessaire terminer le protocole : A ⇔ B : vérification de SBA (descr (m)) 3. Si la preuve est passée et qu’Alice est convaincue, elle envoie le message m chiffré à Bob : A → B : CKB (m) 4. Bob répond en émettant sa signature traditionnelle sur la description de m: B → A : SigB (descr (m)) Le protocole générique de recouvrement En cas de dispute, un protocole de recouvrement est réalisé. La TPC, à partir de la signature partielle, calculera la signature traditionnelle de Bob. 1. La TPC reçoit d’Alice le message m (chiffré à son intention) ainsi que la signature temporaire de Bob : f A (SB (descr (m)) , CK A → TPC : descr (m), Sig (m)) TPC A 2. Si la signature d’Alice et la signature temporaire de Bob sont valides, la TPC transforme la signature temporaire de Bob en sa signature traditionnelle et la transmet à Alice : TPC → A : SigB (descr (m)) 49 Nous introduisons cette notation afin de bien distinguer une signature partielle d’une signature « classique ». 50 zero knowledge proof en anglais. 102 Chapitre 4 : Non-répudiation avec tierce partie de confiance 3. Puis la TPC transmet à Bob le message m : TPC → B : CKB (m) Les preuves Ce protocole a été conçu dans l’idée d’échange d’un message m contre une signature de la description de ce message m. Le message m est vu comme un bien à vendre, la signature sur la description de m (description qui peut inclure le prix) est considérée comme un paiement. La preuve de non-répudiation à la réception est donc : NRR = SigB (descr (m)). Cependant, les auteurs n’ont pas prévu de preuve de non-répudiation à l’origine. Bob n’a donc aucune certitude quant à l’origine du message m et ne peut donc prouver à personne l’origine de m (dans le contexte du commerce électronique, Bob ne peut prouver avoir acheté un bien à un vendeur, et ne peut faire valoir sa garantie sur le produit, par exemple). 4.5.1.3 Le protocole modifié Nous proposons, en conséquence, au protocole 4.10, une modification du protocole de Boyd et Foo qui permet à Bob de recevoir cette preuve qui s’exprimerait par : NRO = SigA (descr (m)) Protocole 4.10 Le protocole générique modifié de Boyd et Foo Le protocole principal : 1. B → A : descr (m), SBA (descr (m)) ¨A 2. A ⇔ B : vérification de SBA (descr (m)) ¨A 3. A → B : CKB (m) , SigA (descr (m)) 4. B → A : SigB (descr (m)) ¨ Le protocole de recouvrement : f A (SB (descr (m)) , CK f A (descr (m)) 1. A → TPC : Sig (m)) , Sig TPC A 2. TPC → A : SigB (descr (m)) 3. TPC → B : CKB (m) , SigA (descr (m)) ¨ L’équité Les preuves exposées à présent concernent le protocole modifié ci-dessus. Ces preuves sont aussi valables pour le protocole initialement présenté par Boyd et Foo en enlevant les références à la preuve de non-répudiation à l’origine. 4.5 L’équité véritable 103 Théorème 4.41 Les derniers envois du protocole principal et du protocole de recouvrement sont des points de forte complétude universels. Preuve : Dans les deux cas les preuves sont échangées et le message m transmis. ¤ Théorème 4.42 Les premier et deuxième envois du protocole principal sont des points de forte complétude pour Alice. Preuve : Si Alice arrête le protocole après le premier envoi ou pendant la preuve interactive de la validité de la signature temporaire de Bob, Bob ne peut plus continuer le protocole, car il n’a plus aucun moyen de recevoir ni la signature d’Alice qui fait office de preuve de non-répudiation à la réception, ni le message m. Par contre, si Bob a émis une signature temporaire valide, il ne peut arrêter le protocole, car il ne peut empêcher Alice d’éventuellement réaliser un recouvrement avec sa signature temporaire (même si elle n’a pas encore la certitude de sa validité). ¤ Théorème 4.43 Si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont réactifs, le protocole est fortement équitable. Preuve : Après le troisième envoi du protocole principal, Bob possède la preuve de non-répudiation à l’origine d’Alice, et peut ainsi mettre fin au protocole. Alice n’ayant pas la preuve de non-répudiation à la réception, si elle ne reçoit pas la preuve de Bob, initiera un recouvrement en réalisant le premier envoi du protocole de recouvrement. Après le premier envoi du protocole de recouvrement, la TPC réalise les deuxième et troisième envois de ce protocole et le point de complétude correspondant à la fin du protocole de recouvrement est alors atteint. Les canaux doivent être réactifs pour permettre à Alice de réaliser un recouvrement après le troisième envoi si Bob arrête le protocole après avoir obtenu m et la preuve de non-répudiation à l’origine. ¤ La fin du protocole Théorème 4.44 Le protocole n’est pas temporellement fini. Preuve : Si Alice arrête le protocole après le deuxième envoi du protocole principal51 , Bob ne peut savoir si Alice arrête de prendre part au protocole ou si elle va tenter plus tard de réaliser un recouvrement. Ainsi Bob ne peut arrêter le protocole tant qu’il n’a pas reçu un message d’Alice ou de la TPC. ¤ 51 Le deuxième envoi du protocole principal représente l’exécution d’un protocole de vérification de la signature partielle de Bob. Ce protocole est supposé temporellement fini. 104 Chapitre 4 : Non-répudiation avec tierce partie de confiance Les disputes Si Alice affirme avoir envoyé un message m à Bob, elle présente la preuve de nonrépudiation à la réception ainsi que ce message m au juge. Celui-ci va vérifier la signature de Bob sur la description du message m et accepte l’affirmation si les tests sont concluants. Dans le protocole original, Bob ne reçoit aucune preuve ; il ne peut donc affirmer quoi que se soit devant un juge. Cependant, dans le protocole modifié, Bob reçoit une preuve de non-répudiation à l’origine. Si Bob affirme alors avoir reçu un message m d’Alice, il présente au juge la preuve de non-répudiation à l’origine ainsi que m au juge. Celui-ci vérifiera la signature d’Alice sur la description de m et acceptera l’affirmation de Bob, si tout est correct. La sécurité La signature temporaire ainsi que la signature classique de Bob peuvent être utilisées par quiconque désirant émettre, à un moment quelconque, le message m. Afin d’empêcher cela, ces signatures doivent être liées à la session en cours du protocole au moyen d’un label unique (basé par exemple sur le hachage du message et d’une clé propre à la session en cours du protocole) et d’un identifiant de l’origine du message m. Il est aussi de bonne pratique d’identifier le but et la destination de chaque envoi. Le comportement de la tierce partie de confiance Si la TPC envoie la signature de Bob sur la description de m à Alice et ne transmet pas m à Bob, ce dernier ne peut rien prouver mais Bob le détecte, si le canal est réactif, lorsqu’il prend conscience qu’Alice utilise sa preuve. Inversement, si la tierce partie envoie m à Bob et mais n’envoie rien à Alice, celle-ci n’obtient pas la preuve de non-répudiation à la réception. Ceci n’est détectable, si le canal est réactif, que si Alice se rend compte que Bob utilise sa preuve. La viabilité Théorème 4.45 Si les canaux de communication sont réactifs, le protocole est viable. Preuve : Si Alice et Bob sont honnêtes, ils exécutent le protocole principal. Chaque récipiendaire attend l’arrivée d’un message puis continue le protocole. Le protocole se terminera ainsi, réalisant l’échange avec succès. ¤ Remarques L’anonymat n’est assuré, dans le protocole de Boyd et Foo, que si aucune indication sur l’identité des signataires des messages n’est transmise. 4.5 L’équité véritable 4.5.2 105 Le protocole concret d’échange équitable de Boyd et Foo Nous allons à présent décrire une proposition d’instantiation du protocole générique proposée par Boyd et Foo. Cette instantiation se base sur le chiffrement et la signature RSA [61]. Protocole 4.11 Le protocole concret de Boyd et Foo Les prémices : 1. B → TPC : CertB (n, e) 2. TPC → B : CKB (d1 ) 3. B → TPC : ω, SBA (ω) 4. TPC → B : SigTPC (CertB (n, e), ω, SBA (ω)) Le protocole principal : 1. B → A : descr (m) , SBA (descr (m)) , SigTPC (CertB (n, e), ω, SBA (ω)) 2. A → B : Q 3. B → A : commit (D) 4. A → B : i, j 5. B → A : D 6. A → B : CKB (m) 7. B → A : SigB (descr (m)) ¨A ¨A ¨A ¨A ¨A ¨ Le protocole de recouvrement : 1. A → TPC : CertB (n, e), descr (m) , SigA (SBA (descr (m)) , CKTPC (m)) 2. TPC → A : SigB (descr (m)) 3. TPC → B : CKB (m) Les prémices du protocole concret Dans un premier temps, les récipiendaires potentiels doivent s’enregistrer auprès de la TPC. 1. Bob possède une paire de clés publique et privée RSA composée d’une clé secrète d et d’une clé publique e ainsi que d’un modulus n = pq composé de deux premiers forts52 distincts mais approximativement de la même taille. Bob connaît e, d, p et q. Les deux clés sont certifiées par une autorité de certification qui produit un certificat CertB (n, e)53 que Bob envoie à la TPC : B → TPC : CertB (n, e) 2. Quand la TPC reçoit ce certificat, elle génère aléatoirement un nombre impair d1 plus petit que n et tel que pgcd (d1 , φ (n)) = 1 ; comme φ (n) = 4p′ q ′ 52 53 où p = 2p′ + 1 et q = 2q ′ + 1 avec p, p′ , q, q ′ premiers de grande taille. L’autorité de certification signe les informations publiques de Bob. ¨ 106 Chapitre 4 : Non-répudiation avec tierce partie de confiance cette contrainte est généralement respectée (d1 doit être différent des multiples de p′ et q ′ ) malgré le fait que la TPC ignore φ(n) (il n’est cependant pas possible pour la TPC de vérifier si elle utilise un d1 adéquat). La TPC devra être capable de reconstruire d1 à partir de l’identité de Bob. Une manière, non aléatoire, de réaliser cela consiste à choisir d 1 = 2h(K, B) + 1 où K est un secret de la TPC. La TPC envoie donc cette clé d1 chiffrée à Bob : TPC → B : CKB (d1 ) 3. Bob va alors calculer54 d2 tel que d1 d2 e = 1 mod φ (n). Il choisit alors un message dit « de référence » ω et calcule la signature de référence (que nous appelons signature temporaire) SBA (ω) = ω d2 . Ce message de référence et la signature de référence seront utilisés par Alice pour vérifier que la TPC connaît d1 et pourra ainsi, le cas échéant, finir le protocole. Bob transmet à la TPC sa signature temporaire sur ω : B → TPC : ω, SBA (ω) 4. Lorsque la TPC reçoit le message et la signature de référence, elle vérifie leur validité en testant si (SBA (ω))d1 e mod n = ω. La TPC produit alors ce que Boyd et Foo appellent un ticket, qui sera utilisé par Bob lors de la réalisation du protocole. Ce ticket est composé du certificat de sa clé publique ainsi que du message et de la signature de référence, le tout signé par la TPC : TPC → B : SigTPC (CertB (n, e), ω, SBA (ω)) Le protocole concret principal Le protocole d’échange, entre Alice et Bob, d’un message m contre une signature de la description de m, suppose qu’Alice connaisse la description de m : descr (m), par exemple suite à une interaction préalable avec Bob. La méthode concrète proposée est basée sur les signatures et le chiffrement RSA. Dans le protocole, SBA (descr (m)) est une signature partielle (ou temporaire) qui ne peut être vérifiée qu’interactivement avec Bob. Cependant la TPC peut la transformer en une signature définitive qui est universellement vérifiable. 1 Pour commencer, Bob génère une signature partielle de la description de l’information qu’il désire : SBA (descr (m)) = descr (m)d2 mod n et l’envoie à Alice : B → A : descr (m) , SBA (descr (m)) , SigTPC (CertB (n, e), ω, SBA (ω)) 54 Ce qui est toujours possible puisque, par RSA [61], nous avons (e, φ (n)) = 1 et qu’il est imposé que (d1 , φ (n)) = 1. 4.5 L’équité véritable 107 2 Alice et Bob réalisent un protocole sans apport de connaissance (en quatre mouvements) qui tente de convaincre Alice que la TPC pourra si nécessaire terminer le protocole. 2.1 Pour ce faire, Alice choisit i et j aléatoirement et uniformément dans l’intervalle [1, . . . , n] et calcule : Q = SBA (descr (m))2i SBA (ω)j mod n qu’elle envoie à Bob : A→B :Q 2.2 Bob calcule D = Qd1 e et utilise une fonction de mise en gage commit (cf. 4.4.1) pour transmettre D à Alice : B → A : commit (D) 2.3 Alice transmet alors à Bob les i et j qu’elle a utilisés pour calculer Q : A → B : i, j 2.4 Bob « ouvre » alors sa mise en gage et révèle D : B→A:D 3 Alice vérifie si D = descr (m)2i ω j (mod n) et, dans ce cas55 , elle envoie m à Bob : A → B : CKB (m) 4 Bob répond en émettant sa signature traditionnelle sur la description de m: B → A : SigB (descr (m)) Le protocole concret de recouvrement En cas de problème, le protocole de recouvrement est réalisé. 1. Alice envoie : A → TPC : CertB (n, e), descr (m) , SigA (SBA (descr (m)) , CKTPC (m)) 2. La TPC, à partir du contenu du message reçu après le premier envoi, calcule d1 = 2h (K, C) + 1 et SBA (descr (m))d1 . Elle vérifie si SBA (descr (m))d1 = SigA (descr (m)) 55 D = Qd1 e = descr (m)d1 d2 e2i ω d1 d2 ej = descr (m)2i ω j . 108 Chapitre 4 : Non-répudiation avec tierce partie de confiance puisque, avec la signature RSA, SigA (descr (m)) = descr (m)d1 d2 . La TPC vérifie aussi si la description descr (m) correspond à m. Si les vérifications qui précèdent sont positives, la TPC envoie : TPC → A : SigB (descr (m)) 3. Puis elle envoie : TPC → B : CKB (m) Remarques Le message m n’est accessible qu’aux acteurs cibles et à la TPC (si elle intervient dans le protocole) ; la confidentialité vis à vis d’un observateur est assurée. Si le protocole de recouvrement n’est pas exécuté, la TPC ne connaît que Bob qui s’y est enregistré. Par contre après un recouvrement, la TPC connaît Alice et Bob. 4.6 Notre approche de l’équité véritable Nous proposons ici un nouveau type de protocole avec TPC off-line, qui permet l’échange d’une information contre une signature qui sera la preuve de non-répudiation à la réception. Nos protocoles respectent la propriété d’équité véritable. Nous proposons une méthode basée sur un schéma de signature digital traditionnel exploitant le problème du logarithme discret. Nos propositions concrètes utilisent le schéma de signature de Schnorr [65]. Comme cela était le cas dans les protocoles d’échange avec TPC off-line récemment proposés, Alice doit pouvoir vérifier la validité des signatures temporaires mises en gage sans être capable d’en extraire la signature finale. Plus précisément, Alice, ayant reçu une mise en gage de la signature de Bob, doit pouvoir être sûre que cette signature engagée est d’une forme telle que la TPC pourra, si nécessaire, ouvrir cette mise en gage et en extraire la signature traditionnelle de Bob. Dans [23], Boyd et Foo précisent que la signature mise en gage par Bob doit être d’une forme telle que seule Alice puisse en vérifier l’exactitude. Pour réaliser cela ils utilisent, comme nous l’avons vu, un protocole interactif qui tente de convaincre Alice que la TPC pourra convertir la signature mise en gage par Bob, en une signature finale qui sera universellement vérifiable. Nous ne suivons pas ce point de vue. Nous estimons que l’usage d’une vérification interactive augmente inutilement les communications et ne produit rien d’utile en échange. Ce qui est désiré est la sécurité d’Alice et de Bob. Ainsi, si la signature finale 4.6 Notre approche de l’équité véritable 109 (celle qui est acceptée comme valide par tout le monde), produite par Bob ou résultant d’une conversion (réalisée par un convertisseur désigné, la TPC, cf. sous-section 4.5.1), est différente de la signature mise en gage au cours du protocole (on ne peut donc pas faire passer la signature mise en gage comme signature finale) et si cette signature mise en gage ne peut être ni contrefaite ni convertie en une signature finale par un acteur qui n’est ni Bob ni la TPC, alors la sécurité d’Alice et de Bob est assurée. Cette sécurité n’est pas compromise par l’universalité de la vérification de la signature mise en gage. Nous nous concentrerons dans un premier temps sur la propriété d’équité véritable. Nous proposerons ainsi des protocoles d’échange équitable génériques et concrets qui ne sont pas temporellement finis (propriété nécessaire en pratique). Ce sont pour des raisons « historiques »56 que nous présentons pour commencer un protocole d’échange équitable. De plus, nous faisons dans un premier temps abstraction des propriétés assurant que le protocole se termine en un temps fini afin d’alléger sensiblement les protocoles présentés et de nous focaliser sur les techniques permettant l’obtention de l’équité véritable. Nous proposons enfin à la section 4.6.4 un protocole de non-répudiation respectant lui aussi l’équité véritable (et qui est temporellement fini). 4.6.1 Le protocole générique d’échange équitable Nous proposons ici un protocole générique d’échange équitable d’un message m, dont l’unique description est publiquement connue, et de sa preuve de nonrépudiation à l’origine contre la preuve de non-répudiation à la réception qui fait office d’accusé de réception. Les notations – – – – m est le message qu’Alice transmet à Bob. descr (m) est la description de m. ComSig B (.) est une signature temporaire mise en gage par Bob. SigB (descr (.)) est une signature finale de Bob attendue par Alice. Protocole 4.12 Un protocole générique implémentant l’équité véritable Le protocole principal : 1. B → A : fcom , A, label , descr (m) , CNRR ¨A 2. A → B : fmsg , B, label , m, NRO 3. B → A : fack , A, label , NRR ¨ Le protocole de recouvrement : 1. A → TPC : frec , A, B, label , m, descr (m) , CNRR, NRO 2. TPC → A : fack , A, label , NRR 3. TPC → B : fmsg , B, label , m, NRO 56 Le procédé a été pensé dans ce contexte. ¨ 110 Chapitre 4 : Non-répudiation avec tierce partie de confiance Les preuves La preuve de non-répudiation à la réception mise en gage par Bob est : CNRR = ComSig B (fack , A, label , descr (m)) où label est le label unique associé à une session du protocole. La preuve de non-répudiation à la réception est : NRR = SigB (fack , A, label , descr (m)) La preuve de non-répudiation à l’origine est : NRO = SigA (fmsg , B, label , descr (m)) Le protocole principal 1. Bob prépare descr (m) correspondant à l’information désirée et signe cette description de manière à la mettre en gage : B → A : fcom , A, label , descr (m) , CNRR 2. Une fois la requête reçue, Alice vérifie la consistance et l’exactitude de descr (m) et vérifie57 si la signature mise en gage pourra être ouverte en cas de besoin par la TPC. Si tout est en ordre, Alice transmet le message m attendu, ainsi que la preuve de non-répudiation à l’origine : A → B : fmsg , B, label , m, NRO 3. Si le message reçu correspond à la description qu’il a signée, et si la preuve de non-répudiation à l’origine est correcte, Bob envoie sa signature finale : B → A : fack , A, label , NRR Le protocole de recouvrement Si Alice ne reçoit pas la signature finale de Bob ou si celle reçue n’est pas valide (si elle n’est pas acceptée par l’algorithme de vérification de signatures), elle initie le protocole de recouvrement suivant avec la TPC. 1. Alice transmet à la TPC le message m, la description de ce message, la preuve de non-répudiation à l’origine, ainsi que la signature temporaire de Bob : 57 Une description concrète des vérifications sera détaillée dans les protocoles concrets que nous détaillerons au cours des pages suivantes. 4.6 Notre approche de l’équité véritable 111 A → TPC : frec , B, label , m, descr (m) , CNRR, NRO 2. La TPC vérifie si la preuve de non-répudiation et la signature temporaire sont valides ; elle extrait alors de cette signature temporaire la signature finale de Bob et la transmet à Alice : TPC → A : fack , A, label , NRR 3. Elle transmet à Bob le message attendu ainsi que la preuve de nonrépudiation à l’origine : TPC → B : fmsg , B, label , m, NRO L’équité Théorème 4.46 Les derniers envois du protocole principal et du protocole de recouvrement sont des points de forte complétude universels. Preuve : Dans les deux cas le protocole est terminé après avoir réalisé l’échange attendu. ¤ Théorème 4.47 Le premier envoi du protocole principal est un point de forte complétude pour Alice. Preuve : Si Alice arrête le protocole après le premier envoi, Bob ne reçoit pas le message m et le protocole de recouvrement n’étant pas initié, le protocole est terminé de manière équilibrée. Ce point n’est pas un point de complétude pour Bob puisque, s’il arrête le protocole, Alice a toujours le loisir de réaliser un protocole de recouvrement avec ce qu’elle a reçu de Bob au premier envoi. ¤ Théorème 4.48 Si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont réactifs, le protocole est fortement équitable. Preuve : Après le deuxième envoi du protocole principal, Alice n’arrêtera pas le protocole (par hypothèse de conservation) car, alors que Bob a reçu toutes les informations, il lui manque encore la preuve de non-répudiation à la réception. Si Bob continue le protocole, le point de complétude universel correspondant au troisième envoi du protocole principal est atteint. Si Bob ne réalise pas le troisième envoi du protocole principal ou si cet envoi est incorrect, Alice initie le protocole de recouvrement58 . 58 Alice est sûre de pouvoir réaliser le recouvrement si la signature mise en gage par Bob au début du protocole principal est correcte (c’est-à-dire si l’algorithme de vérification accepte cette signature). 112 Chapitre 4 : Non-répudiation avec tierce partie de confiance Après le premier envoi du protocole de recouvrement, la TPC, honnête, envoie les informations attendues aux envois deux et trois du protocole de recouvrement et atteint le point de complétude universel (grâce à la réactivité des canaux). ¤ En cas de problème, Alice n’envoie pas m à Bob ou, si le m ne correspond pas à la description émise, alors Bob arrête le protocole qui reste équitable. En fait, si Alice malhonnête décide de lancer malgré tout le protocole de recouvrement (décrit plus haut) en utilisant la signature mise en gage par Bob, elle aura à fournir à la TPC le message m adéquat (correspondant à la description émise par Bob) qui le transmettra à Bob : le protocole reste donc équitable. Si Alice décide de lancer le protocole de recouvrement juste après avoir mis NRO en gage, l’équité est toujours garantie puisque Bob recevra m (transmis par la TPC). La fin du protocole Théorème 4.49 Le protocole ne peut être prouvé temporellement fini. Preuve : Après le premier envoi du protocole principal, si Bob ne reçoit plus de message, il ne peut savoir si Alice va réaliser ou non un recouvrement et ne peut donc savoir quand ne plus prendre part au protocole. ¤ Les disputes Si Alice affirme avoir envoyé avec succès le message m à Bob, elle présente m, descr (m), ainsi que la preuve de non-répudiation à la réception au juge. Ce dernier vérifiera la validité de la description de m et de la signature de Bob sur cette description. Si la description et la signature sont correctes, l’affirmation d’Alice est acceptée. De même, si Bob affirme avoir reçu le message m d’Alice, il présente m, descr (m), ainsi que la preuve de non-répudiation à l’origine au juge. Ce dernier vérifiera la description du message m et la signature d’Alice sur cette description. Si la description et la signature sont correctes l’affirmation de Bob est acceptée. Le comportement de la tierce partie de confiance Si la TPC s’allie avec Alice, elle peut ne rien envoyer à Bob ou lui envoyer des informations fausses. Bob ne peut rien prouver mais détecte ce comportement s’il constate qu’Alice possède sa preuve de non-répudiation à la réception. De même, si la TPC s’allie avec Bob, lorsqu’Alice fait un recouvrement, elle peut ne transmettre que la preuve de non-répudiation à l’origine à Bob. À nouveau, Alice détectera la supercherie si elle surprend Bob utilisant sa preuve de nonrépudiation, mais elle ne peut rien prouver à un tiers. 4.6 Notre approche de l’équité véritable 113 La viabilité Théorème 4.50 Si un délai maximum d’attente est prévu pour chaque envoi du protocole principal et si les canaux de communication entre la TPC et, respectivement, Alice et Bob sont réactifs, alors le protocole est viable . Preuve : Le premier envoi du protocole principal arrive correctement, le protocole est alors initié et il peut soit se terminer au cours du protocole principal, soit le protocole de recouvrement sera réalisé et aboutira grâce aux canaux de communication réactifs utilisés. ¤ Remarque Le protocole n’assure aucune confidentialité (le message m circulant en clair sur le canal de communication), ni d’anonymat. 4.6.2 Notre premier protocole concret Nous proposons à présent, un protocole concret d’échange équitable basé sur le schéma de signature de Schnorr. Les prémices Comme indiqué précédemment, nous supposons l’existence d’une TPC qui connaît des informations secrètes. Dans une phase préalable au protocole d’échange, la TPC choisit : – un entier n = pq, où p et q sont de grands premiers forts distincts pris au hasard et de taille comparable (tels que p = 2p′ + 1 et q = 2q ′ + 1 pour p′ et q ′ grands premiers). – une base59 α d’ordre s = p′ q ′ , – un entier c 6= 1 tel que pgcd (s, c) = 1, et – une fonction de hachage h. La TPC calcule d tel que cd ≡ 1 (mod s) et β = αc (mod n). Puis la TPC rend n, β, c, h et α publics, garde d secret, et enfin détruit p et q. Pour préparer une paire de clés, Bob choisit un entier x au hasard comme clé secrète et calcule sa clé publique y : y = αx mod n 59 αs mod n = 1 et αu mod n 6= 1 pour u < s. 114 Chapitre 4 : Non-répudiation avec tierce partie de confiance Protocole 4.13 Un premier protocole concret implémentant l’équité véritable Le protocole principal : 1. B → A : fcom , A, label , descr (m) , t, z ¨A 2. A → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m)) 3. B → A : fack , A, label , t′ ¨ Le protocole de recouvrement : 1. A → TPC : frec , A, B, label , m, descr (m) , t, z, SigA (fmsg , B, label , descr (m)) 2. TPC → A : fack , A, label , t′ 3. TPC → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m)) ¨ Le protocole principal 1. Lorsque Bob désire recevoir une information m d’Alice contre une signature de la description de m, il choisit aléatoirement un nombre r et calcule : ( t = β r mod n, ′ ComSig(m ) = z = cr + h (t, m′ ) x où m′ = fack , A, label , descr (m). La paire (t, z) correspond à la signature mise en gage : CNRR = (t, z). Bob envoie à Alice : B → A : fcom , A, label , descr (m) , t, z 2. Alice va alors vérifier si descr (m) correspond à la description de l’information qu’elle attend, et si ′ αz ≡ t · y h(t,m ) (mod n) (4.17) Si ce n’est pas le cas Alice arrête le protocole, sinon Alice envoie m et la preuve de non-répudiation à l’origine à Bob, composée d’une signature traditionnelle (de Schnorr ou autre) qu’elle réalise sur la description du message m (NRO = SigA (fmsg , B, label , descr (m))) : A → B : fmsg , B, label , m , SigA (fmsg , B, label , descr (m)) 3. Lorsque m est reçu et vérifié correct (par rapport à descr (m)), Bob calcule : t′ = αr mod n et l’envoie à Alice pour composer la signature finale. La paire NRR = (t ′ , z) compose la signature finale : B → A : fack , A, label , t′ Alice vérifie alors si c αz ≡ t′ · y h(t ′c mod n,m′ ) (mod n) 4.6 Notre approche de l’équité véritable 115 et accepte alors la signature finale, de la même manière qu’elle sera acceptée par toute partie externe au protocole. Le protocole de recouvrement Si Bob n’envoie rien après le deuxième envoi ou si sa signature finale est invalide, alors Alice initie le protocole de recouvrement avec la TPC afin de recouvrer la signature finale du client. 1. Alice envoie, entre autres, à la TPC la signature mise en gage : A → TPC : frec , B, label , m, descr (m) , t, z, SigA (fmsg , B, label , descr (m)) La TPC s’assure que le message m reçu correspond bien à la description descr (m), elle vérifie la validité de la signature (t, z) basée sur descr (m), en suivant l’équation 4.17, et elle contrôle la validité de la signature de la preuve de non-répudiation à l’origine. Si toutes ces vérifications sont réussies, la TPC calcule et envoie t′ = td mod n à Alice : TPC → A : fack , A, label , t′ 2. Puis envoie m ainsi que la preuve de non-répudiation à l’origine à Bob : TPC → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m)) Comme précédemment, si un message reçu n’est pas conforme à ce qui est attendu ou si une signature n’est pas valide, l’acteur qui le détecte arrête le protocole (ou initie, si cela concerne Alice et si cela est possible, un recouvrement). La sécurité Nous avons déjà brièvement traité de la sécurité du point de vue d’Alice. En effet, nous avons envisagé, en étudiant l’équité du protocole, le cas où Bob, après avoir reçu l’information m voulue, n’envoie pas la signature finale adéquate. Nous avons vu que dans ce cas Alice peut récupérer la signature de Bob avec l’aide de la TPC. D’un autre côté, Bob ne peut créer un couple (t, z) qui n’est pas une signature temporaire mais qui est acceptée par la fonction de vérification 4.17. En effet, si Bob choisit une valeur pour t, il doit résoudre un logarithme discret modulo n pour obtenir z ; et réciproquement s’il fixe z, il doit inverser la fonction de hachage h pour obtenir t. Nous allons maintenant considérer la sécurité du point de vue de Bob. Pour commencer, il faut s’assurer qu’il n’est pas possible de contrefaire une signature mise en gage ou finale. Remarquons que le schéma de signature mise en gage que nous proposons est semblable au schéma de signature de Schnorr avec un modulus composite (les 116 Chapitre 4 : Non-répudiation avec tierce partie de confiance opérations se font modulo une valeur résultant de la multiplication de nombres premiers). L’usage d’un modulus composite ne diminue pas la sécurité du schéma de signature. En effet, Bach [9] a montré que calculer un logarithme discret avec un modulus composite est équivalent à factoriser le composite et à calculer le logarithme discret sur chaque facteur premier du modulo initial. Comme la valeur r utilisée dans la signature est aléatoire, cr dans z peut être vu comme une valeur aléatoire r ′ choisie uniformément dans l’intervalle [1, p′ q ′ [, ′ et ce malgré la valeur c fixée et connue. Ainsi, t est égal à αr mod n et la paire (t, z) constitue alors une signature de Schnorr avec un modulus composite. La sécurité d’une telle signature de Schnorr avec un modulus composite est discutée en détail, et montrée sûre, dans [58] par Poupard et Stern. D’un autre côté, créer une signature finale uniquement à partir de la clé publique et de signatures existantes, sans se baser sur la signature mise en gage, est au moins aussi dur que de contrefaire une signature mise en gage. S’il est possible de produire une telle signature (t′ , z), alors il est possible de créer la signature mise en gage (t = t′ c mod n, z), ou plus généralement une signature de Schnorr avec un modulus composite sur le message m′ (ce qui contredit la sécurité de la signature étudiée dans [58]). Il faut, ensuite, s’assurer qu’il n’est pas possible de convertir une signature mise en gage en une signature finale sans connaître r ou d. Pour calculer t′ , il faut connaître soit r (comme dans le cas du signataire) ou d (comme lorsque la TPC réalise le conversion). Un falsificateur, ignorant r et d, calculerait donc une signature finale (tˆ′ , ẑ) à partir d’une signature mise en c gage (t, z) telle que soit ẑ 6= z ce qui implique que tˆ′ 6= t, soit ẑ = z mais c avec tˆ′ 6= t. Cela signifie donc que l’on crée une signature de Schnorr avec un c modulus composite (t̂ = tˆ′ , ẑ) sur m′ depuis une autre signature de Schnorr (t, z) sur le même message. Cependant, Poupard et Stern ont montré dans [58] que créer une nouvelle signature depuis une signature existante sur un même message est équivalent à produire une signature sur un message m depuis des signatures connues sur d’autres messages. Ainsi, dans les deux cas, établir une signature finale depuis (t, z) est équivalent à falsifier une signature de Schnorr avec un modulus composite. 4.6.3 Notre second protocole concret Nous proposons à présent une modification du protocole d’échange équitable précédent telle que la signature temporaire mise en gage par Bob ne sera plus universellement vérifiable et ne pourra être vérifiée que par Alice. Nous pensons que cette propriété n’est pas indispensable, mais nous montrons ainsi que notre protocole s’adapte aux différents cas existant dans la littérature ; 4.6 Notre approche de l’équité véritable 117 Protocole 4.14 Un second protocole concret implémentant l’équité véritable Le protocole principal : 1. B → A : fcom , A, label , descr (m) , t, z ¨A 2. A → B : fmsg , B, label , m, SigA (fmsg , B, label , descr (m)) 3. B → A : fack , A, label , t′ ¨ Le protocole de recouvrement : 1. A → TPC : frec , B, label , m, descr (m) , s, t, z, SigA (fmsg , B, label , descr (m)) 2. TPC → A : fack , A, label , t′ 3. TPC → B : fmsg , B, label , m, SigA (descr (fmsg , B, label , m)) ¨ Les prémices Une autorité de certification génère un entier n égal au produit de deux grands nombres premiers forts. Elle choisit un générateur α de Z∗n , puis elle : – choisit, aléatoirement dans l’intervalle ]1, φ(n)[, un d premier avec φ(n) – calcule c tel que c · d ≡ 1 (mod φ(n)) La clé publique de l’autorité est : (n, α, c), sa clé secrète est d. Pour chaque entité enregistrée auprès d’elle, la TPC choisit aléatoirement une clé secrète x (qu’elle transmet confidentiellement à l’entité qui s’enregistre) et −1 calcule la clé publique associée y = αx mod n. Les clés secrètes d’Alice et Bob seront notées respectivement xA et xB . Les clés publiques étant respectivement yA et yB . Le protocole principal 1. Lorsque Bob désire recevoir une information m d’Alice contre une signature de la description de m, il choisit aléatoirement un nombre r, calcule s = αcr mod n et : ( cr mod n, t = yA ′ ComSig(m ) = z = xB (rc + h (s, m′ )) où m′ = fack , A, label , descr (m). La signature temporaire de Bob est le couple (t, z), qu’il envoie à Alice : B → A : fcom , A, label , descr (m) , t, z 2. Alice va alors vérifier si descr (m) correspond bien à la description attendue, puis calcule : s = txA mod n et enfin elle vérifie si : ′ z yB ≡ s · αh(s,m ) (mod n) 118 Chapitre 4 : Non-répudiation avec tierce partie de confiance Si ce n’est pas le cas, Alice arrête le protocole, sinon Alice envoie m et la preuve de non-répudiation à l’origine à Bob : A → B : fmsg , B, label , m , SigA (fmsg , B, label , descr (m)) 3. Si m correspond à sa description, Bob calcule : t′ = αr mod n et l’envoie à Alice pour composer la signature finale (t′ , z) : B → A : fack , A, label , t′ Alice vérifie alors si c z yB ≡ t′ · αh(t ′c mod n,m′ ) (mod n) (4.18) et accepte, le cas échéant, la signature finale de la même manière qu’elle sera acceptée par toute partie externe au protocole. Remarquons que la signature temporaire de Bob ne peut être vérifiée que par Alice au moyen de sa clé secrète xA qui est utilisée pour calculer s à partir de cr à αcr , sans connaître r. Toute autre entité, t, permettant ainsi de passer de yA ne connaissant ni xA ni r, ne peut évaluer αcr qui est nécessaire à la vérification de la signature temporaire de Bob. La signature finale (t′ , z) peut être universellement vérifiée. En effet le mécanisme de vérification (cf. 4.18) ne nécessite que des informations publiques : y B , α, c, m′ et n. Le protocole de recouvrement Si Bob n’envoie rien après le deuxième envoi ou si sa signature finale est invalide, alors Alice initie le protocole de recouvrement avec la TPC afin de recouvrer la signature finale du client. 1. Alice calcule s = txA mod n puis envoie, entre autres, à la TPC la signature mise en gage : A → TPC : frec , B, label , m, descr (m) , s, t, z, SigA (fmsg , B, label , descr (m)) La TPC vérifie que le message m reçu correspond à la description descr (m) et vérifie (cf. 4.18) la validité de la signature (s, t, z) à partir de descr (m) ainsi que celle de la signature de la preuve de non-répudiation à l’origine. Si toutes ces vérifications sont réussies, la TPC calcule et envoie t′ = sd mod n à Alice : 4.6 Notre approche de l’équité véritable 119 TPC → A : fack , A, label , t′ 2. Puis envoie m ainsi que la preuve de non-répudiation à l’origine à Bob : TPC → B : fmsg , B, label , m, SigA (descr (fmsg , B, label , m)) La sécurité Les signatures utilisées dans ce deuxième protocole sont moins proches des signatures de Schnorr avec modulus composite que celles du protocole précédent. Si nous posons t̃ = txA , r′ = crxA −1 et r′′ = xB cr ; alors les valeurs r ′ et r′′ , basées sur la valeur r aléatoire, peuvent être vues comme des valeurs aléatoires. Nous avons donc une signature de Schnorr où t̃ et z ne sont pas basés sur la même valeur aléatoire. Nous pensons cependant que la sécurité du schéma de signature de Schnorr avec modulus composite ne dépend pas de l’égalité de ces deux valeurs aléatoires ; elles ne permettent pas de retrouver les informations secrètes permettant de produire une signature (xB et r). Ainsi, nous pensons que le raisonnement réalisé lors de l’étude de la sécurité du protocole précédent est valable pour les signatures utilisées dans ce protocole-ci. 4.6.4 Le protocole de non-répudiation Nous allons à présent modifier le protocole générique d’échange équitable afin de réaliser un protocole complet de non-répudiation. Le protocole proposé suppose l’usage d’un canal réactif entre la TPC et, respectivement, Alice et Bob. De plus, un temps maximum d’attente est supposé associé à chaque envoi du protocole principal. Les preuves La preuve partielle de non-répudiation à l’origine du message m est : EOO = ComSig A (fNRO , B, label , h(c), h(k)) où fNRO indique le but de l’envoi, B indique que Bob est le récipiendaire et label est le label associé à la session du protocole : label = h(m, k). Une session du protocole est identifiée par le triplet (label , A, B). La preuve temporaire de non-répudiation à la réception est : EOR = ComSig B (fNRR , A, label , h(c), h(k)) Avant la réalisation du protocole, Alice et/ou Bob 60 communiquent avec la TPC 60 Si le schéma de signature choisi correspond à notre premier protocole concret implémentant l’équité véritable, seul Bob réalise les prémices. Si le protocole se base sur le second protocole concret, Alice et Bob devront alors réaliser les prémices. 120 Chapitre 4 : Non-répudiation avec tierce partie de confiance Protocole 4.15 Un protocole de non-répudiation respectant l’équité véritable Le protocole principal : 1. A → B : fEOO , fsub , B, label , h(k), c, CKTPC (k) , EOO, sub ¨B 2. B → A : fEOR , A, label , EOR 3. A → B : fNRO , B, label , k, NRO 4. B → A : fNRR , A, label , NRR ¨ Le protocole de recouvrement : (X est l’acteur cible initiant le recouvrement, et Y l’autre acteur cible) 1. X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO 2. TPC → A : fNRR , A, label , NRR 3. TPC → B : fNRO , B, label , k, NRO ¨ Le protocole d’abandon : 1. A → TPC : fabort , label , B, abort 2. TPC → A : fcon a , A, B, label , con a 3. TPC → B : fcon a , A, B, label , con a ¨ afin d’obtenir les clés nécessaires à la composition des signatures temporaires (cf. 4.6.2 et 4.6.3). La preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la TPC est : sub = SigA (fsub , B, label , CKTPC (k)) La preuve de non-répudiation à l’origine est : NRO = SigA (fNRO , B, label , h(c), h(k)) La preuve de non-répudiation à la réception est : NRR = SigB (fNRR , A, label , h(c), h(k)) La preuve de non-répudiation à l’origine de la demande de recouvrement : rec X = SigX (frec X , Y, label ) où X est soit Alice, soit Bob, et Y l’autre acteur cible. La preuve de non-répudiation à l’origine de la demande d’abandon du protocole : abort = SigA (fabort , B, label ) La preuve de non-répudiation à l’origine de la confirmation par la TPC de l’abandon du protocole : con a = SigTPC (fcon a , A, B, label ) 4.6 Notre approche de l’équité véritable 121 Le protocole principal 1. Alice transmet à Bob un premier message contenant le résultat c du chiffrement Ck (m) du message m au moyen de la clé k : A → B : fEOO , fsub , B, label , h(k), c, CKTPC (k) , EOO, sub 2. Bob vérifie les signatures d’Alice (EOO et sub) et envoie, si elles sont correctes, sa signature temporaire : B → A : fEOR , A, label , EOR 3. Si la signature temporaire est valide (suivant l’une des méthodes de vérification précédemment développées, cf. 4.17 ou 4.18), Alice transmet la clé k de déchiffrement : A → B : fNRO , B, label , k, NRO 4. Si le message reçu est correct (toutes les informations attendues sont présentes, k correspond au h(k) mis en gage par Alice et la signature est valide), Bob envoie sa signature finale : B → A : fNRR , A, label , NRR Le protocole de recouvrement Bob peut, à tout moment après avoir reçu le premier envoi du protocole principal, si un message n’arrive pas dans les délais attendus, initier le protocole de recouvrement. De même, Alice, après avoir reçu de Bob le deuxième envoi du protocole principal, peut aussi initier le protocole de recouvrement (par exemple si Bob ne réalise pas le quatrième envoi du protocole principal). 1. Le protocole est initié par Alice ou Bob, noté X, le deuxième acteur cible étant noté Y : X → TPC : frec X , fsub , Y, label , h(c), CKTPC (k) , rec X , sub, EOR, EOO 2. Si le protocole d’abandon ou de recouvrement a déjà été réalisé 61 , la tierce partie arrête le protocole. Sinon, la TPC vérifie si les preuves de non-répudiation mises en gage sont valides (sur base de la fonction de vérification des signatures) ; si la clé k déchiffrée ne correspond pas à la clé k mise en gage par Alice au début du 61 La TPC retient, pour chaque session du protocole, si un abandon ou un recouvrement a été initié. 122 Chapitre 4 : Non-répudiation avec tierce partie de confiance protocole principal, la TPC peut envoyer un message d’abandon du protocole (celui envoyé au cours du protocole d’abandon), sinon elle extrait des signatures mises en gage les signatures finales d’Alice et Bob et transmet à Alice la preuve de non-répudiation à la réception : TPC → A : fNRR , A, label , NRR 3. Elle transmet à Bob la clé k, déchiffrée, ainsi que la preuve de nonrépudiation à l’origine : TPC → B : fNRO , B, label , k, NRO Le protocole d’abandon Si Alice ne reçoit pas le deuxième envoi dans les délais prévus, elle initie le protocole d’abandon. Remarquons qu’Alice ne peut initier à ce moment le protocole de recouvrement, car il prévoit l’envoi de la preuve de non-répudiation à la réception de c, EOR, qu’elle n’a pas encore reçu. 1. Alice envoie donc une requête d’abandon signée à la TPC : A → TPC : fabort , label , B, abort 2. Si le protocole de recouvrement ou d’abandon n’a pas déjà été initié, la TPC envoie à Alice une confirmation signée de l’abandon du protocole (sinon, la TPC arrête le protocole d’abandon) : TPC → A : fcon a , A, B, label , con a 3. Puis la TPC envoie le même message d’abandon à Bob : TPC → B : fcon a , A, B, label , con a Alice peut ne pas spécifier le bon B dans sa requête d’abandon, le vrai Bob ne recevra donc pas la confirmation de la TPC au cours de la session du protocole d’abandon. Cependant, comme nous le verrons, il pourra réaliser le protocole de recouvrement. L’équité Théorème 4.51 Les derniers envois du protocole principal et du protocole de recouvrement sont des points de forte complétude universels. Preuve : Après ces deux envois, le message m est transmis et les preuves de non-répudiation sont échangées. ¤ 4.6 Notre approche de l’équité véritable 123 Théorème 4.52 Le dernier envoi du protocole d’abandon est un point de forte complétude universel. Preuve : Après le troisième envoi du protocole d’abandon, qui ne peut être initié que par Alice, le protocole se termine alors qu’aucune preuve finale de non-répudiation, ni le message n’ont été transmis. En effet, par l’hypothèse de conservation, Alice ne réalisera le protocole d’abandon que si cela ne donne pas d’avantage à Bob, et donc initiera le protocole d’abandon avant le troisième envoi. Ce protocole n’atteindra le troisième envoi que si Bob n’a pas préalablement réalisé un recouvrement. ¤ Théorème 4.53 Le premier envoi du protocole principal est un point de forte complétude pour Bob. Preuve : Après avoir reçu le premier envoi d’Alice, si Bob arrête le protocole, Alice n’ayant pas le EOR ne peut qu’arrêter le protocole (en initiant le protocole d’abandon). Ni Alice, ni Bob n’auront de preuve et le message m ne sera pas transmis. Alice ne peut spontanément arrêter de prendre part au protocole (sans exécuter le protocole d’abandon) car Bob peut réaliser un recouvrement et obtenir le message m et la preuve de non-répudiation à l’origine. ¤ Théorème 4.54 Le protocole est fortement équitable. Preuve : Après le premier envoi, le protocole principal peut s’arrêter, ou le protocole d’abandon peut être initié par Alice, ou encore le protocole de recouvrement peut être initié par Bob. Après le deuxième envoi, le protocole de recouvrement peut être initié par Alice et Bob ; Alice a, quant à elle, toujours la possibilité d’initier, sans risque de perte d’équité, le protocole d’abandon. Après le troisième envoi, Alice et Bob ont tous deux la possibilité de lancer le protocole de recouvrement, et enfin après le dernier envoi, le point de forte complétude universel est atteint. Après le premier envoi du protocole d’abandon, la tierce partie honnête enverra, si aucun recouvrement n’a été réalisé, l’information d’abandon à Alice et Bob, atteignant ainsi le point de forte complétude universel de ce protocole. Après le premier envoi du protocole de recouvrement, la tierce partie, honnête, envoie les informations attendues à Alice et Bob, si aucun abandon ni de recouvrement n’ont été préalablement réalisés, et le point de forte complétude universel du protocole de recouvrement est atteint. ¤ La fin du protocole Théorème 4.55 Le protocole est temporellement fini. Preuve : Trois cas de figure sont à considérer. Soit le protocole principal se termine naturellement dans un temps fini. Soit Alice réalise le protocole d’abandon et Alice et Bob sont avertis de l’abandon du protocole par un message signé 124 Chapitre 4 : Non-répudiation avec tierce partie de confiance par la TPC transitant au travers d’un canal réactif ; le protocole se termine donc en un temps fini. Soit encore le protocole de recouvrement est réalisé par Alice ou Bob ; dans ce cas Alice et Bob reçoivent les informations et les preuves attendues aussi en un temps fini, grâce aux canaux réactifs. Nous devons encore considérer le cas suivant : supposons qu’Alice initie, après le premier envoi du protocole principal, le protocole de recouvrement en indiquant à la TPC un mauvais nom de récipiendaire (B̃ plutôt que B). Bob ne recevra donc rien de la TPC. Cependant, Bob peut à tout moment réaliser avec succès un protocole de recouvrement, puisque le protocole d’abandon ne correspond pas à l’instance du protocole en cours qui est identifié par le triplet (label , A, B). Le protocole se termine donc pour Bob, dans ce cas, au cours du protocole de recouvrement. ¤ Les disputes Si Bob affirme avoir reçu le message m d’Alice, il présente au juge la preuve de non-répudiation à l’origine du message m, NRO, qui, si la preuve est correcte (la signature et le format de la preuve sont corrects), accepte l’affirmation de Bob. De même si Alice peut présenter une preuve de non-répudiation à la réception de m, NRR, correcte, le juge reconnaîtra qu’elle a envoyé avec succès m à Bob. Le comportement de la tierce partie de confiance Si la TPC s’allie avec Bob, elle peut exécuter avec lui un recouvrement et envoyer un message d’abandon à Alice. Cette dernière détectera directement le méfait puiqu’elle est seule habilitée à réaliser un abandon. La TPC peut aussi, lorsqu’Alice réalise un abandon, contacter Bob pour réaliser un recouvrement, puis envoyer (ou non) à Alice les informations de recouvrement (si elle envoie les information à Alice, le protocole reste équitable et Alice ne détecte rien, sinon Alice se rendra compte de l’alliance lorsque Bob exhibera sa preuve). Enfin, la situation est semblable si la tierce partie s’allie avec Alice. La viabilité Théorème 4.56 Si Alice et Bob se savent mutuellement honnêtes, le protocole est viable. Preuve : Avec l’hypothèse des canaux réactifs entre la TPC et, respectivement, Alice et Bob, le protocole peut être prouvé viable. En effet, Alice et Bob étant honnêtes, soit le protocole principal s’exécute jusqu’à son terme, soit le protocole de recouvrement est exécuté par Alice ou Bob. Ce protocole de recouvrement, exécuté dans un cadre honnête, se terminera avec succès grâce aux canaux réactifs utilisés. Remarquons que si le deuxième envoi du protocole principal n’arrive pas à Alice, cette dernière plutôt que d’initier le protocole d’abandon, attendra 4.7 Conclusion 125 (Alice et Bob étant honnêtes et le sachant) que Bob réalise le protocole de recouvrement pour recevoir de la TPC les informations nécessaires. Après le deuxième envoi, Alice et Bob peuvent réaliser le recouvrement. ¤ Si Alice et Bob sont honnêtes, mais ignorent qu’ils le sont tous les deux, alors si le premier message de Bob du protocole principal n’arrive pas assez vite, Alice initiera le protocole d’abandon, ce qui va à l’encontre de la propriété de viabilité qui, si elle est vérifiée, impose la réussite de l’échange lorsque les acteurs sont honnêtes. Il faut donc alors que le canal de communication entre Alice et Bob soit opérationnel : ainsi le premier message du protocole sera reçu par Alice, qui n’initiera pas le protocole d’abandon, et seul le protocole principal sera dès lors exécuté. Remarques Le protocole proposé étant un protocole de non-répudiation brut, aucun mécanisme de confidentialité n’est prévu. De même, par la présence des noms des acteurs cibles dans les messages, aucun anonymat n’est assuré. En cas de besoin, des mécanismes additionnels assurant la confidentialité et l’anonymat peuvent être greffés sur le protocole. 4.7 Conclusion Au cours de ce chapitre, nous avons suivi l’évolution des protocoles de nonrépudiation faisant usage de TPC. Nous avons présenté de nouveaux protocoles d’échange, dont deux protocoles de non-répudiation utilisant, en cas de besoin, une TPC, respectant ou non la propriété d’équité véritable. Dans le chapitre suivant, nous étudions les protocoles de non-répudiation ne requérant pas de TPC afin d’assurer le respect de l’équité. Chapitre 5 Non-répudiation sans tierce partie de confiance 5.1 Introduction Nous allons à présent nous intéresser aux protocoles de non-répudiation ne faisant pas usage d’une tierce partie de confiance (TPC) pour assurer l’équité. Aucun protocole de non-répudiation n’a été jusqu’ici proposé dans ce contexte. Des protocoles d’échange équitable sans TPC existent et seront abordés, mais la plupart d’entre eux imposent des contraintes de réalisation peu réalistes. Un protocole d’échange équitable de signatures digitales sur un contrat, levant la plupart de ces contraintes, a été proposé au milieu des années 80 [15], mais n’est, malheureusement, pas utilisable comme tel pour réaliser un protocole de non-répudiation. Nous présenterons aussi des résultats existants basés sur la cryptographie dite « faible » dans le contexte des protocoles d’échange. Nous proposerons alors un nouveau type de protocole de non-répudiation sans tierce partie de confiance où l’équité sera respectée de manière probabiliste. 5.2 L’approche calculatoire Historiquement1 , bien avant l’apparition des techniques vues au chapitre précédent, des protocoles permettant l’échange d’informations sans TPC ont été proposés. Malheureusement, ces premières techniques font de fortes hypothèses sur la puissance de calcul des acteurs cibles, comme nous allons le voir. Le principe de base de ces méthodes est que, si Alice et Bob désirent s’échanger équitablement deux informations (supposées de même taille), ils peuvent transmettre tour à tour et bit par bit ces informations et cela jusqu’à ce que le dernier bit de chaque information soit envoyé ou jusqu’à ce qu’un des deux acteurs cibles ne prenne plus part au protocole. La difficulté, en terme de calcul pour chaque acteur cible, de retrouver le reste de l’information attendue décroît 1 Dès la première moitié des années quatre-vingts. 128 Chapitre 5 : Non-répudiation sans tierce partie de confiance au fur et à mesure que le protocole avance et que les informations sont petit à petit dévoilées2 . Si le protocole est arrêté avant l’émission du dernier bit de chaque information, par Alice par exemple, et ce avant qu’elle n’envoie le bit suivant de l’information attendue par Bob, alors si Alice et Bob ont la même puissance de calcul, il faudra à Alice deux fois moins de temps qu’à Bob pour retrouver les bits restants. Tedrick [69, 70], en 1983 et 1984, a fait remarquer qu’il est possible de ne transmettre qu’une fraction d’un bit. Plutôt que de transmettre tour à tour un bit de chaque information, Alice et Bob envoient tour à tour un string de n bits différent du string composé par les n bits correspondant de l’information à transmettre. Si Alice (par exemple) arrête le protocole, après avoir reçu i fois un string de n bits différent du string des n bits correspondant de l’information, 1 il lui prendra 1 − 2n −i−1 du temps qu’il faudra à Bob pour retrouver les n bits attendus. Lorsque l’avantage d’Alice (dans ce cas-ci) devient trop grand (i se rapproche de 2n ), un (n + 1)ième bit est ajouté et le protocole continue sur n + 1 bits, et ainsi de suite. Que ce soit en échangeant un bit ou une fraction d’un bit à chaque échange, il faut aussi, dans une certaine mesure, être capable de détecter une tentative de tricherie. Diverses méthodes ont été proposées pour empêcher les acteurs de tricher. Nous pouvons citer historiquement l’utilisation du problème de la prise de racine carrée modulo un composite [18, 69]. Mais la méthode la plus générique, proposée en 1985 par Even et al. [35], se base sur la technique des transferts oublieux3 . Définition 5.1 Un protocole de transfert oublieux pour Alice, Bob et un message M, OT (A, B, M ), est tel que si Alice suit le protocole, la probabilité que Bob obtienne M vaut 21 et, dans le cas où il n’obtient pas M , il ne peut extraire aucune information sur M de ce qu’il reçoit. Si Alice et Bob suivent le protocole, la probabilité qu’Alice devine si Bob a reçu le message M vaut aussi 12 . De plus, si Alice triche (en tentant de diminuer la probabilité que Bob obtienne M ou en tentant d’augmenter la probabilité de deviner si Bob a obtenu M ) alors Bob peut détecter une telle tentative de tricherie avec une probabilité ¤ ≥ 21 . Définition 5.2 Un protocole de transfert oublieux d’un message parmi deux, OT 12 (A, B, M1 , M2 ) est un protocole au cours duquel Bob reçoit d’Alice un message parmi deux messages possibles, sans savoir lequel des deux messages est transmis. Un OT 12 (A, B, M1 , M2 ) est tel que, si Alice suit le protocole, alors Bob obtient soit M1 , soit M2 avec une probabilité égale à 12 alors qu’aucune information n’est obtenue sur l’autre message. Si Alice et Bob ont suivi le protocole, la probabilité pour Alice que Bob ait obtenu M1 vaut 21 . Si Alice triche, en tentant d’augmenter la probabilité de deviner quel message a été obtenu par Bob, alors Bob peut détecter une telle tentative de tricherie avec une probabilité ¤ ≥ 12 . 2 3 Nous supposons l’absence de redondances dans les messages ainsi transmis. oblivious transfer en anglais. 5.2 L’approche calculatoire 129 Notons que les transferts oublieux d’un message parmi deux sont une généralisation des transferts oublieux « simples », puisque nous retrouvons ces derniers si un des deux messages, M1 ou M2 , est un message standard connu de tous. Les auteurs de [35] proposent d’utiliser les transferts oublieux d’un message parmi deux de la manière suivante. Dans un premier temps, Alice et Bob choisissent chacun n couples de valeurs secrètes et s’échangent un élément de chaque couple au moyen d’un protocole de transfert oublieux d’un message parmi deux (où les deux messages du protocole sont les deux valeurs d’un couple). À ce stade, ils ignorent quels morceaux de chaque couple de message l’autre a obtenu. La connaissance des deux messages d’un couple permet de reconstruire un secret4 . Ensuite, chacune des 2n valeurs qu’ils ont chacun choisies est dévoilée bit à bit, alternativement par Alice et Bob. La probabilité qu’Alice, par exemple, devine quelles valeurs ont été reçues par Bob au cours de la première partie du protocole vaut 21n . Si le protocole s’arrête avant la fin avec, par exemple, Bob ayant reçu un bit de plus qu’Alice, Alice aura deux fois plus de travail que Bob pour obtenir une paire complète. Les auteurs ont aussi proposé une implémentation de leur protocole de transfert oublieux d’un message parmi deux sur base du cryptosystème RSA 5 . Soient eA , dA et nA respectivement les clés publique, secrète et le modulus composite d’Alice associé au cryptosystème RSA. Un OT 12 (A, B, M0 , M1 ) peut être réalisé ainsi : 1. Alice choisit deux messages m0 et m1 (distincts des messages M0 et M1 ) et les transmet à Bob : A → B : m0 , m1 2. Bob choisit aléatoirement un r binaire, ainsi qu’une valeur k, puis calcule q = (k eA + mr ) mod nA où k eA mod nA correspond au chiffrement de k pour Alice. Bob envoie q à Alice : B→A:q 3. Alice calcule k ′ i = ((q − mi ) mod nA )dA mod nA pour i = 0 et i = 1, où (. . . )dA correspond à une opération de déchiffrement (qui ne peut être) réalisée (que) par Alice. Elle choisit aléatoirement un s binaire et calcule (sur base des message M0 et M1 cette fois) : ( x0 = (M0 + k ′ s ) mod nA x1 = (M1 + k ′ s⊕1 ) mod nA 4 Alice, par exemple, détermine une clé k secrète qu’elle désire échanger contre la clé secrète de Bob. Elle calcule n couples (ai , an+i ), où 1 ≤ i ≤ n, de telle façon que an+i = k ⊕ ai . Ainsi la connaissance d’un couple complet permet de retrouver la clé k. 5 Une description générique de ce protocole ne se basant que sur l’hypothèse de l’existence des cryptosystèmes à clé publique se trouve dans [35]. 130 Chapitre 5 : Non-répudiation sans tierce partie de confiance Elle envoie alors x0 , x1 et s à Bob : A → B : x0 , x1 , s Bob retrouvera le message Mr⊕s en calculant (xr⊕s − k) mod nA , car k ′ r⊕s = k. Alice a une chance sur deux de deviner la valeur de r et d’ainsi connaître k. Elle peut, dans ce cas, construire un xr⊕s qui n’est basé ni sur M0 , ni sur M1 . 5.3 L’approche probabiliste de la signature digitale de contrat Dans le contexte de l’échange de signatures digitales sur un contrat, Ben-Or et al. [15] proposent, en 1990, d’échanger non pas les signatures directement mais des privilèges. Un acteur est plus privilégié qu’un autre lorsqu’il est plus à même de convaincre un juge que le contrat est signé par tous les acteurs cibles. Le protocole proposé est tel que tour à tour un des deux acteurs cibles impliqués dans le protocole est privilégié alors que l’autre ne l’est pas. Insistons sur le fait que le privilège accordé à un acteur ne peut mener qu’à forcer le juge à déclarer le contrat signé par les deux acteurs cibles. Les prémices Le protocole concerne un contrat C qu’Alice et Bob doivent signer. Alice et Bob conviennent d’un moment D auquel le protocole doit être terminé et se mettent d’accord sur celui qui va commencer le protocole. Supposons que ce soit Alice qui débute le protocole. Alice commence par choisir une probabilité v, non nulle, qu’elle considère comme négligeable pour initier le protocole. Elle choisit alors une valeur α > 1. Bob choisit de la même façon β > 1. Enfin les valeurs λA et λB sont initialisées à 0. Aucune de ces valeurs n’est secrète. Le protocole Soit p la probabilité mentionnée dans le dernier message reçu par Alice. Si aucun message n’a encore été reçu, p vaut 0. Alice vérifie si p ≥ λA . Si ce n’est pas le cas elle arrête le protocole, sinon elle calcule λA = max(v, min(1, pα)). Elle envoie alors à Bob le message « Avec une probabilité λA , le contrat C sera valide » qu’elle signe digitalement. Bob, au moyen de la probabilité p mentionnée dans le dernier message qu’il a reçu, vérifie si p ≥ λB ; si ce n’est pas le cas, Bob arrête le protocole, sinon il calcule λB = min(1, pβ). Il envoie à Alice le message « Avec une probabilité λB , le contrat C sera valide » qu’il signe digitalement. 5.3 L’approche probabiliste de la signature digitale de contrat 131 Si tout se passe bien, le protocole se poursuit, par envois successifs d’Alice et de Bob comme décrit ci-dessus, jusqu’au moment D ou jusqu’à ce qu’Alice et Bob aient envoyé ou reçu le message signé « Avec une probabilité 1, le contrat C sera valide » Si pour une raison ou une autre le contrat n’est pas complété au moment D, chaque partie peut invoquer le juge. Les disputes Le juge ne fait rien avant D. Après D, il examine le message qu’il reçoit du plaignant X : « Avec une probabilité p le contrat C sera valide » signé digitalement par Y . Le juge vérifie alors la signature de Y et, si elle est valide, il s’assure qu’il n’est pas déjà intervenu à propos de ce contrat C. Si le juge n’a pas encore été sollicité à propos de ce contrat, il choisit aléatoirement suivant une distribution uniforme dans l’intervalle [0, 1] une valeur ρ C . Par contre, si le contrat a déjà été examiné par le juge, il retrouve la valeur ρC déjà utilisée (un juge ne tire un ρC qu’une seule fois par contrat, sinon un plaignant pourrait le solliciter à répétition jusqu’au moment où le juge tire une valeur validant le contrat). Si p ≥ ρC , le juge déclare les acteurs cibles liés au contrat C et le notifie à ces derniers. Sinon, il les avertit qu’un message concernant le contrat C a été examiné mais que la probabilité contenue dans ce message était trop petite pour que le contrat soit considéré comme valide. Remarques Si ne fut-ce qu’une partie X incrémente d’une quantité constante à chaque tour du protocole sa probabilité λX , alors le protocole se terminera avec succès (si D n’est pas trop proche), même si l’autre partie Y n’incrémente jamais (ni ne décrémente) sa probabilité λY . Rappelons encore que le privilège d’Alice, par ter au juge un message signé par Bob le liant plus grande que celle contenue dans le dernier Cependant la validité du contrat sera toujours exemple, est de pouvoir présenau contrat avec une probabilité message signé envoyé par Alice. liée aux deux acteurs cibles. Si le juge décide qu’un message ne contient pas une probabilité assez élevée, cela n’empêche pas Alice ou Bob de présenter au juge un autre message avec une probabilité plus élevée qui pourrait le faire changer d’avis. Cela n’entre pas en contradiction avec le fait que le juge ne choisit qu’une seule fois la probabilité à laquelle sont comparées les probabilités émises par Alice et Bob. En effet, le juge ne rend pas public la valeur ρC qu’il a choisie. Il est nécessaire que le juge, s’il est invoqué par Alice ou Bob, informe les deux parties de sa décision ; car si la valeur choisie par le juge se trouve entre la dernière probabilité émise par Alice et la dernière probabilité émise par Bob et que le juge ne transmet sa décision qu’à l’acteur cible le consultant, il répondra au premier qu’ils sont tous les deux liés au contrat alors qu’il répondra au second qu’aucun des deux n’est lié au contrat. 132 5.4 Chapitre 5 : Non-répudiation sans tierce partie de confiance La mise en gage faible Syverson [68] propose, en 1998, de réaliser des protocoles d’échange en envoyant les informations chiffrées accompagnées de la mise en gage de la clé de déchiffrement. Cette mise en gage sera cependant particulière dans le sens où elle sera en pratique cassable si le récipiendaire investit une quantité de temps connue sur base d’une puissance de calcul connue. Cette mise en gage est dite faible 6 . Une fonction w réalisant une mise en gage faible respecte : 1. la résistance à la seconde préimage : étant donné x, il doit être calculatoirement infaisable de trouver x′ 6= x tel que w(x) = w(x′ ). 2. la résistance faible à la préimage : pour la plupart des valeurs de y connues et produites par w, il doit être modérément7 difficile de calculer un x tel que y = w(x). 3. la facilité de calcul : connaissant x et y, il doit être facile de vérifier si y = w(x). Au moyen d’une séquence de calcul, qui est telle qu’un calcul de cette séquence nécessite le résultat du calcul précédent, l’auteur définit aussi les mises en gage temporaires qui respectent la propriété de résistance à la deuxième préimage mais où la propriété de résistance faible à la préimage est remplacée par la résistance temporaire à la préimage où pour toute valeur y connue et produite par w, trouver un x tel que y = w(x) doit nécessiter une séquence de calcul dont la longueur se trouve dans des bornes spécifiées. Syverson ne propose pas de méthode pratique pour réaliser une mise en gage faible, mais propose une méthode pratique, inspirée de [62], pour réaliser une mise en gage temporaire. Pour commencer le message m est chiffré, classiquement, au moyen de la clé k. Puis une valeur entière aléatoire et connue de tous, est mise au carré modulo un composite, de manière répétée. Le résultat de ces mises au carré sera utilisé comme clé pour chiffrer la clé k. Le chiffré de k ainsi que le nombre de mises au carré forment w(k). Pour retrouver k à partir de son chiffré, il est nécessaire de réaliser toutes les mises au carré. Ces opérations ne semblent pas être parallélisables. Connaissant la puissance de calcul de l’acteur réalisant ces mises au carré, le temps de calcul peut être prévu. L’auteur parle d’échange rationnel plutôt que d’échange équitable lorsqu’à chaque envoi il doit être dans l’intérêt des acteurs de continuer le protocole. 5.4.1 Un protocole d’échange rationnel Le protocole décrit ci-dessous permet l’échange d’un message m envoyé par Alice contre un accusé de réception transmis par Bob. Les signatures utilisées sont des signatures avec recouvrement de l’information signée (voir le glossaire). 6 weakly secret bit commitment en anglais. La complexité du calcul permettant de retrouver un x tel que y = w(x) doit être telle que le coût, basé sur la quantité de temps à investir étant donné la puissance de calcul disponible, soit trop important par rapport à la valeur de l’information x obtenue. 7 5.4 La mise en gage faible 133 Protocole 5.1 Le protocole d’échange rationnel de Syverson f A (descr(m), Ck (m) , w(k)) 1. A → B : m1 = Sig f B (ack, m1 ) 2. B → A : m2 = Sig f A (k, m2 ) 3. A → B : Sig 1. Alice prépare, puis envoie à Bob, un message m1 composé de sa signature sur la description du message m qu’elle désire envoyer à Bob, le chiffré de ce message au moyen de la clé de session k, ainsi que la mise en gage temporaire de la clé k au moyen de la fonction w : f A (descr(m), Ck (m) , w(k)). m1 = Sig A → B : m1 2. Si le message m1 est correct (la signature est valide et la description correcte et les deux chiffrés présents), Bob produit et envoie à Alice le message m2 qui est sa signature d’un accusé de réception et du message m1 , f B (ack, m1 ). m2 = Sig B → A : m2 3. Alice vérifie le message m2 reçu et, s’il est correct (la signature est correcte et contient l’accusé de réception et le message m1 ), envoie à Bob sa signature sur la clé k et le message m2 : f A (k, m2 ) A → B : Sig Un tel protocole est utile si l’information m à envoyer a peu de valeur ; ainsi, après le premier envoi, le temps nécessaire et/ou le coût de calcul pour casser la fonction w et retrouver m peuvent être trop importants. Si Alice envoie m′ (6= m prévu) chiffré ou une fausse clé k au premier message, Bob retrouvera la clé émise après un certain temps et déchiffrera le message chiffré reçu. Il pourra ainsi prouver sur base de la signature d’Alice que cette dernière a envoyé un message m′ . Par contre, remarquons que rien n’oblige Alice à réaliser le troisième envoi et donc à émettre la clé k. Cette clé sera alors retrouvée après un certain temps par Bob, qui aura investi un temps et un coût qui dépréciera, éventuellement complètement, m. Il faut donc non seulement que le message m n’ait pas trop de valeur, mais aussi qu’Alice ait une raison de réaliser le dernier envoi. L’auteur indique que si Alice est une commerçante, ne pas envoyer k de manière récurrente ruinerait sa réputation et donc son affaire. Nous ne partageons pas cette analyse car, en suivant le raisonnement qu’Alice n’a pas intérêt à tricher, il n’est pas nécessaire de mettre en œuvre de tels mécanismes. Un protocole plus simple pourrait, dans le même esprit, être réalisé 134 Chapitre 5 : Non-répudiation sans tierce partie de confiance au cours duquel Bob commence par envoyer un accusé de réception sur un message qu’il ne recevra que par la suite, considérant qu’Alice n’a pas intérêt à tricher. Aucun mécanisme de mise en gage n’est alors nécessaire, il suffit d’accepter de considérer Alice comme une partie de confiance. 5.4.2 Un protocole d’échange équitable Alice et Bob désirent s’échanger deux informations, respectivement i A et iB . Les signatures utilisées sont aussi des signatures digitales avec recouvrement de l’information signée. Protocole 5.2 Le protocole d’échange équitable de Syverson f A (descr(iA ), Ck (iA ) , w1 (k1 )) 1. A → B : m1 = Sig 1 f B (descr(iB ), Ck (iB ) , w2 (k2 ), m1 ) 2. B → A : m2 = Sig 2 .. . f A (w2n (k1 ), m2n ) 2n+1. A → B : m2n+1 = Sig f B (w2n+1 (k2 ), m2n+1 ) 2n+2. B → A : m2n+2 = Sig Alice et Bob utiliseront au cours du protocole une succession de fonctions de mise en gage temporaire wi telles que chaque fonction utilisée est cassable plus facilement (plus rapidement) que la précédente. 1. Alice prépare un message m1 signé qui contient la description de iA , iA chiffré au moyen de la clé de session k1 et la mise en gage temporaire f A (descr(iA ), Ck (iA ) , w1 (k1 )), puis Alice envoie ce w1 (k1 ), m1 = Sig 1 message m1 à Bob : A → B : m1 2. Après la réception d’un m1 correct (signature valide, description valide et présence des chiffrés) Bob construit m2 constitué de sa signature sur la description de iB , le chiffré de iB au moyen de la clé de session k2 , la mise en gage de k2 au moyen de la fonction w2 et le message m1 , f B (descr(iB ), Ck (iB ) , w2 (k2 ), m1 ). Bob envoie alors m2 à Alice : m2 = Sig 2 B → A : m2 Puis, pour 1 ≤ i ≤ n, 2i + 1. Alice envoie à Bob un message signé contenant w2i (k1 ) ainsi que le dernier message signé reçu de Bob : f A (w2i (k1 ), m2i ) A → B : m2i+1 = Sig 5.4 La mise en gage faible 135 2i + 2. Bob envoie à Alice le message correspondant à Alice : f B (w2i+1 (k2 ), m2i+1 ) B → A : m2i+2 = Sig Par exemple [68], si Alice et Bob s’échangent deux informations qui perdent toutes deux leur valeur après trois jours, le protocole peut être configuré de manière à ce que le premier envoi contienne une mise en gage qui soit cassable par Bob en quatre jours, un second envoi dont la mise en gage est cassable par Alice en un jour, un troisième envoi cassable par Bob en quatre heures, un quatrième envoi cassable par Alice en quarante minutes, un cinquième envoi cassable par Bob en une minute et un sixième où la clé est révélée à Alice. Les disputes Alice (par exemple) peut affirmer auprès d’un juge que le protocole a été arrêté par Bob avant son aboutissement, après qu’elle ait réalisé le iième envoi (Bob n’aurait pas envoyé le (i + 1)ième message). Alice présente alors au juge les i premiers messages. Le recours de Bob si cette affirmation est fausse est de présenter le (i + 2)ième message qu’il aurait reçu d’Alice. 5.4.3 Remarques Nous avons déjà mis en évidence les aspects de confiance que Bob doit porter à Alice au cours du premier protocole. Cependant, indépendemment de la valeur de l’information que Bob a reçue d’Alice, la signature de Bob sur l’accusé de réception est bien une preuve de non-répudiation à la réception sur le message m. Bob a bien reçu ce message, qu’Alice ait envoyé ou non la clé de déchiffrement k1 . De même, Bob possède la signature d’Alice sur le message m chiffré et sur la mise en gage temporaire de k1 , et donc il possède une preuve de non-répudiation à l’origine de m. Enfin, au cours du second protocole il existe toujours un moment où un acteur cible, arrêtant le protocole, reçoit un message déchiffrable en utilisant des ressources impliquant un coût inférieur à la valeur de l’information à obtenir, alors que l’autre acteur devrait investir des moyens d’un coût supérieur à celui de l’information qu’il obtiendrait. En ce sens, la propriété d’équité n’est pas respectée. De plus, le processus de gestion de dispute est tel que si Bob reçoit le iième message, qui est le premier dont le coût nécessaire pour en extraire la clé k1 est inférieur au coût de iA , alors Bob peut arrêter le protocole et déclarer au juge qu’Alice a arrêté prématurément le protocole lors de l’envoi i − 1. Alice ne pourra nier cette affirmation : elle ne peut en effet présenter le (i + 1) ième envoi (provenant de Bob), le juge confirmera donc la version de Bob. 136 5.5 Chapitre 5 : Non-répudiation sans tierce partie de confiance Notre protocole probabiliste de non-répudiation Nous présentons ici un nouveau type de protocole sans TPC [52]. Nous décrirons dans un premier temps un protocole générique, puis nous présenterons un protocole concret basé sur ce protocole générique. Le but de notre protocole est de respecter la propriété d’équité, mais de manière probabiliste. Nos protocoles ne sont basés sur aucune hypothèse quant au comportement des acteurs cibles, contrairement à l’approche optimiste. Aussi, contrairement à l’approche de Syverson, l’équité est assurée (de manière probabiliste) quelle que soit la valeur du message. De plus, le protocole ne doit être paramétré qu’en fonction de la puissance de calcul du plus puissant des deux acteurs cibles (et non des deux acteurs cibles). 5.5.1 Le protocole générique Nous proposons un protocole itératif tel qu’à chaque itération, mis à part la dernière, aucun acteur n’est plus privilégié que l’autre. Comme nous allons le voir, Alice n’aura aucun intérêt à arrêter le protocole avant sa fin. De même, si Bob arrête le protocole avant le dernier couple d’envois, son gain sera nul. Le seul moyen pour Bob d’obtenir le message qu’Alice veut lui envoyer sans en accuser réception (sans envoyer une preuve de non-répudiation à la réception) est de deviner le nombre d’itérations du protocole. Ce nombre d’itérations est choisi aléatoirement et secrètement par Alice. À chaque itération du protocole, la probabilité que Bob obtienne le message et la preuve de non-répudiation à l’origine sans envoyer la preuve de non-répudiation à la réception sera plus petite ou égale à une quantité notée ε. Protocole 5.3 Un protocole générique sans tierce partie de confiance 1. A → B : fEOO 1 , B, label , 1, g1 (m), EOO 1 ¨ 2. B → A : fEOR1 , A, label , 1, EOR 1 ¨ .. . 2n-1. 2n. A → B : fEOO n , B, label , n, gn (m), EOO n B → A : fEORn , A, label , n, EOR n P♦ ¨ Les prémices Alice, qui désire envoyer le message m à Bob, commence par choisir aléatoirement, suivant une distribution géométrique8 (par exemple), un nombre n qui déterminera le nombre d’itérations du protocole. Cette valeur n est gardée secrète par Alice et ne devra pas pouvoir être déduite par Bob au cours du protocole. 8 Une distribution géométrique est ici proposée afin d’éviter une situation où une borne supérieure au nombre de tours possibles du protocole est connue. 5.5 Notre protocole probabiliste de non-répudiation 137 Alice choisit alors n fonctions gi : M → M où M est l’espace des messages clairs. Les preuves Au cours du protocole les preuves de non-répudiation suivantes sont générées. La preuve de non-répudiation à l’origine du résultat de l’application de la fonction gi sur le message m : EOO i = SigA (fEOO i , B, label , i, gi (m)) où fEOO i indique le but du message (à savoir apporter la preuve de nonrépudiation à l’origine) et où label dépend du message m et identifie la session du protocole en cours. Semblablement, la preuve de non-répudiation à la réception du résultat de l’application de la fonction gi sur le message m est : EOR i = SigB (fEORi , A, label , i, gi (m)) où fEORi indique que le but du message est d’apporter la preuve de nonrépudiation à la réception. La preuve de non-répudiation à l’origine du message m est : NRO = {EOO i | i = 1, . . . , n} La preuve de non-répudiation à la réception du message m est : NRR = {EOR i | i = 1, . . . , n} Le protocole générique Si Alice ou Bob reçoivent un envoi incorrect (signature incorrecte ou information manquante), ils arrêtent le protocole. 1. Alice envoie alors à Bob la fonction g1 appliquée à m : A → B : fEOO 1 , B, label , 1, g1 (m), EOO 1 2. Bob répond alors par un accusé de réception signé de ce premier envoi : B → A : fEOR1 , A, label , 1, EOR 1 .. . 138 Chapitre 5 : Non-répudiation sans tierce partie de confiance 2n − 1. Alice envoie à Bob la fonction gn appliquée à m : A → B : fEOO n , B, label , n, gn (m), EOO n 2n. Bob répond par le nième accusé de réception : B → A : fEORn , A, label , n, EOR n Une fonction F, M × · · · × M → M, publiquement connue, est alors appliquée aux valeurs produites par les n fonctions gi . Cette fonction publique doit être telle que F(g1 (m), . . . , gn−1 (m), gn (m)) = m Il est important que la fonction F ne soit évaluable que connaissant toutes les valeurs produites par les n fonctions gi ; aucun calcul intermédiaire réalisé sur base de la connaissance d’une partie des valeurs produites par les fonctions g i ne doit pouvoir aider à l’évaluation de m. Si Bob ne répond pas directement aux messages d’Alice en envoyant la preuve EOR i attendue, Alice supposera que Bob tente de tricher, en tentant de retrouver m au moyen des valeurs déjà reçues, et dès lors elle arrête le protocole (en n’envoyant pas la valeur produite par la fonction suivante). Le protocole nécessite donc que l’application de la fonction F aux valeurs déjà reçues (de façon à se rendre compte si on à déjà atteint le dernier tour, et dès lors éviter d’envoyer le dernier accusé de réception) prenne plus de temps que la transmission d’un message fEORi , A, l, i, EOR i par Bob. Il doit être assuré à Alice que Bob ne puisse réaliser l’application de F sur les valeurs reçues entre deux transmissions. Bob, s’il triche, va tenter de deviner quel est le dernier message envoyé par Alice afin de la priver de la preuve de non-repudiation à la réception correspondante. Le choix de la fonction F est donc basé sur la puissance de calcul de Bob. Nous devons déterminer des délais après lesquels les acteurs décident de ne plus prendre part au protocole. Nous proposons deux manières de le réaliser. Premièrement et classiquement, un délai connu de tous peut être considéré lorsqu’un acteur attend un envoi. Lorsque le délai est expiré, il est supposé que l’acteur qui est sensé réaliser l’envoi tente de tricher ou que le réseau est surchargé (ou encore que l’on est arrivé à la fin du protocole), le protocole est alors arrêté. Un tel mécanisme permet d’utiliser un réseau incertain. Une autre solution consiste en l’utilisation d’un canal de communication opérationnel entre les deux acteurs cibles. Ainsi, si Bob ne reçoit pas un nouveau message dans le délai assuré par le canal, il comprend que le protocole est terminé. D’un autre côté, si Alice ne reçoit pas d’accusé de réception de Bob dans ce délai fixé par le canal, elle constate que Bob tente de retrouver m sur base des valeurs déjà obtenues ; Alice arrête alors le protocole. Lorsque Bob envoie à Alice l’accusé de réception correspondant à la valeur produite par la dernière fonction, toutes les informations nécessaires à la composi- 5.5 Notre protocole probabiliste de non-répudiation 139 tion des preuves de non-répudiation ainsi qu’à l’obtention par Bob du message m sont transmises. Alice peut alors envoyer à Bob un message confirmant la fin du protocole9 . Bob, ignorant n, ne peut déterminer, au moment où il reçoit un message d’Alice, s’il reçoit le dernier message contenant la valeur produite par g n (il faut qu’aucun indice sur n ne puisse être déduit des envois d’Alice). Nous noterons θ la probabilité que Bob devine la valeur de n et n’envoie pas la preuve EOR i précisément lorsque i = n, sachant que n a été choisi secrètement suivant une distribution géométrique. Si Bob n’envoie pas EOR n , Alice aura envoyé toutes les informations nécessaires à Bob pour obtenir m et la preuve de non-répudiation à l’origine de m, alors qu’elle n’obtient pas la preuve de non-répudiation à la réception de m. L’équité Les preuves suivantes supposeront que la valeur de n a été choisie suivant une distribution géométrique. Théorème 5.3 Tous les envois précédant le (2n − 1)ième envoi, ainsi que le dernier envoi, sont des points de complétude universels. Preuve : Si Alice ou Bob arrête le protocole avant le (2n − 1)ième envoi, ni l’un ni l’autre n’obtiennent tous les éléments nécessaires à l’obtention des preuves de non-répudiation. Si Alice arrête le protocole avant le (2n − 1)ième envoi, elle ne reçoit qu’une partie des accusés de réception et ne peut donc composer une preuve de nonrépudiation à la réception du message m puisque sur base des valeurs produites par les fonctions contenues dans les signatures de Bob, il n’est pas possible de retrouver le message m. De même Bob ne reçoit pas toutes les valeurs nécessaires à l’obtention de m, et ne peut composer la preuve de non-répudiation de m. Si Bob arrête le protocole avant le (2n − 1)ième envoi, il ne peut composer la preuve de non-répudiation à l’origine du message m, ni obtenir m puisqu’il lui manque la dernière valeur produite par gn (m). Alice ne pourra pas composer la preuve de non-répudiation à la réception, le dernier accusé de réception signé par Bob lui manquant. Après le dernier envoi Alice a reçu tous les accusés de réception nécessaires à la composition de la preuve de non-répudiation à la réception. De même, Bob peut constituer la preuve de non-répudiation à l’origine correspondant au message m qu’il obtient au moyen des n valeurs produites par les n gi (m) qu’il a reçues. ¤ Théorème 5.4 Le (2n − 1)ième envoi est un point de complétude probabiliste (avec une probabilité d’être en un point de complétude égal à 1 − θ). 9 Si le canal de communication entre Alice et Bob n’est pas opérationnel, Bob ne peut distinguer la fin du protocole induit par l’arrêt des envois d’Alice, d’un problème réseau qui retarderait la réception par Bob d’un message émis par Alice. 140 Chapitre 5 : Non-répudiation sans tierce partie de confiance Preuve : Si Bob ne réalise pas le (2n)ième envoi, le protocole n’est plus équitable puisque Bob a reçu les n valeurs nécessaires à l’obtention du message m, ainsi que les signatures composant la preuve de non-répudiation à l’origine de m. Alice de son côté n’a obtenu que n − 1 accusés de réception signés par Bob, et ne peut donc produire la preuve de non-répudiation à la réception de m. La probabilité que Bob, ignorant la valeur de n, décide, correctement, d’arrêter le protocole10 au (2n)ième envoi vaut θ, le paramètre de succès de la distribution géométrique utilisée par Alice pour choisir n. ¤ Théorème 5.5 Le protocole est θ-équitable Preuve : Tous les envois du protocole sont des points de complétude. Ainsi comme un de ces points est un point de complétude probabiliste, le protocole est θ-équitable, avec θ le paramètre de succès de la distribution géométrique utilisée par Alice pour choisir n. ¤ Nous proposons ici une solution basée sur une distribution géométrique lors du choix de n (ainsi, à tout moment dans le protocole, la probabilité pour Bob qu’il y ait une prochaine itération n’est jamais nulle 11 ). Bien entendu d’autres distributions, offrant cette même caractéristique, peuvent être utilisées. La fin du protocole Théorème 5.6 Le protocole est temporellement fini. Preuve : Que se soit au moyen d’un canal opérationnel entre Alice et Bob, ou en faisant usage de délais d’attente, chaque acteur cible pourra, à chaque envoi du protocole, décider, dans un délai fini, si le protocole est terminé 12 . En moyenne le protocole est fini après 1θ itérations. ¤ Les disputes Si Alice affirme avoir envoyé avec succès le message m à Bob, elle présente au juge la preuve de non-répudiation à la réception, le NRR, ainsi que le label label , le message m, la valeur n et les n valeurs produites par les fonction g i appliquées à m. Le juge vérifie si les signatures de Bob sont correctes, si le message annoncé par Alice peut-être retrouvé au moyen des n valeurs gi (m), puis si le label label dépend bien du message m annoncé (cette dernière vérification permet de s’assurer que n est correct). Si une de ces vérifications échoue, l’affirmation d’Alice est refusée. Si Bob affirme avoir reçu le message m d’Alice, il présente au juge la preuve de non-répudiation à l’origine, le NRO, le label label , le message m, la valeur n et 10 Il faut donc que Bob ne puisse avoir le temps, avant d’envoyer son accusé de réception, de tenter l’évaluation de la valeur du message m et de confirmer cette valeur sur base du label. 11 Bien entendu, plus θ est choisi petit, plus le protocole peut être long. 12 n, non borné, peut être grand mais pas infini. 5.5 Notre protocole probabiliste de non-répudiation 141 les n valeurs gi (m). Le juge vérifie les signatures d’Alice, retrouve le message à partir des fonctions, le compare au m reçu et vérifie si le label dépend du même message m. Si une de ces vérifications échoue, l’affirmation de Bob est refusée. Si Alice arrête le protocole avant le nième envoi (après n′ envois par exemple) et affirme avoir envoyé un message m′ à Bob, elle présente au juge le message m′ , la preuve de non-répudiation composée des n′ preuves EOR i reçues de Bob, le label label , la valeur n′ et les n′ valeurs gi (m). Le juge vérifie les n′ signatures de Bob, compare m′ à ce qui est produit par les n′ valeurs gi (m). Si le label dépend de m et non de m′ le juge détectera un problème. Si le label est indépendant de m, Bob accuse effectivement réception du message m′ qu’il a bien reçu. Dans le contexte d’un protocole de non-répudiation, cette situation est acceptable (puisqu’ainsi Bob accuse réception de ce qu’il a reçu. La situation est différente avec les protocoles d’échange équitable, où Bob attend une information précise d’Alice). Cependant, si Bob arrête le protocole avant le nième envoi, il peut produire un message m′ et une preuve de non-répudiation à l’origine de ce message m′ , alors qu’Alice peut ne pas pouvoir produire la preuve de non-répudiation à la réception correspondante (si Bob a arrêté le protocole après avoir reçu un envoi d’Alice et avant d’accuser réception). Ainsi nous recommandons que le label utilisé pour identifier une session dépende toujours du message m initial (et ne corresponde pas à plusieurs messages simultanément). Alice peut, après la « fin » du protocole envoyer un message supplémentaire à Bob. De cette manière il ne retrouvera pas le message m, mais Alice pourra prouver l’avoir envoyé. Pour prouver avoir envoyé le message, Alice devra annoncer quels envois ont été utilisés pour construire les preuves ; Bob pourra non seulement à ce moment retrouver m mais aussi prouver au juge qu’Alice a tenté de tricher en lui envoyant des messages inutiles. La viabilité Théorème 5.7 Si à chaque envoi un délai maximum d’attente est utilisé, le protocole n’est pas viable. Preuve : Malgré l’honnêteté d’Alice et Bob, les messages émis peuvent prendre plus de temps pour être délivrés au destinataire que le délai prévu, le protocole se terminant ainsi prématurément, l’échange non accompli. ¤ Théorème 5.8 Si le canal entre Alice et Bob est opérationnel, le protocole est viable. Preuve : Alice et Bob étant honnêtes, tous les messages envoyés sont reçus à temps et le protocole se termine par l’envoi par Bob de l’accusé de réception correspondant à la nième valeur produite par gn (m). ¤ 142 Chapitre 5 : Non-répudiation sans tierce partie de confiance Remarque La probabilité de perte d’équité étant faible mais non exponentiellement (par rapport au nombre d’itérations du protocole), le protocole est en pratique à utiliser pour des messages n’ayant pas une trop grande valeur (quelle que soit la taille du message). Il faut aussi se rendre compte que puisque le nombre d’étapes du protocole est non borné, il se pourrait que le message perde sa valeur avant la fin du protocole ou que le coût de l’échange soit trop important. 5.5.2 Le protocole concret Nous présentons à présent un protocole concret basé sur le protocole générique que nous venons de décrire. Ce protocole, qui utilise (n + 1) fonctions, est inspiré du protocole générique de la manière suivante : g1 est une fonction de chiffrement utilisant une clé k de session, g2 jusqu’à gn sont des générateurs de nombres aléatoires qui produisent des valeurs entières de même taille que la clé de session k, la fonction g n+1 retourne la clé de déchiffrement k en clair, et la fonction F(g1 (m), . . . , gn+1 (m)) consiste en le déchiffrement de g1 (m) au moyen de gn+1 (m). Protocole 5.4 Un protocole concret sans tierce partie de confiance 1. A → B : fEOO , B, label , c, EOO ¨ 2. B → A : fEOR , A, label , EOR ¨ 3. A → B : fEOO k,1 , B, label , 1, r1 , EOO k,1 ¨ 4. B → A : fEORk,1 , A, label , EOR k,1 ¨ .. . 2n-1. 2n. 2n+1. 2n+2. A → B : fEOO k,n−1 , B, label , n − 1, rn−1 , EOO k,n−1 B → A : fEORk,n−1 , A, label , EOR k,n−1 A → B : fEOO k,n , B, label , n, k, EOO k,n B → A : fEORk,n , A, label , EOR k,n ¨ ¨ P♦ ¨ Les preuves La preuve de non-répudiation à l’origine du chiffré c est : EOO = SigA (fEOO , B, label , c) où label = h(m, k) est un label associé à une session du protocole. La preuve de non-répudiation à la réception du chiffré est : EOR = SigB (fEOR , A, label , c) La preuve de non-répudiation à l’origine de la valeur vi envoyée par Alice au (2i + 1)ième envoi : ¢ ¡ EOO k,i = SigA fEOO k,i , B, label , i, vi 5.5 Notre protocole probabiliste de non-répudiation 143 La preuve de non-répudiation à la réception de cette valeur vi , preuve que Bob transmet au (2i + 2)ième envoi est : ¢ ¡ EOR k,i = SigB fEORk,i , A, label , i, vi La preuve de non-répudiation à l’origine du message m : NRO = {EOO, EOO k,n } La preuve de non-répudiation à la réception du message m : NRR = {EOR, EOR k,n } Les prémices Alice choisit aléatoirement, suivant une distribution géométrique (par exemple), un nombre n qui détermine le nombre d’itérations du protocole. Elle choisit alors n − 1 valeurs aléatoires indépendantes et équidistribuée r i et une clé k (tous de même taille). Le protocole Si Alice ou Bob reçoivent un message incorrect, ils arrêtent de prendre part au protocole. 1. Alice initie le protocole en envoyant à Bob le chiffré c = Ck (m), ainsi que la preuve de non-répudiation à l’origine associée : A → B : fEOO , B, label , c, EOO 2. Bob accuse réception de ce chiffré : B → A : fEOR , A, label , EOR 3. Alice envoie la première des n − 1 valeurs aléatoires qu’elle a choisies, ainsi que la preuve de non-répudiation à l’origine de cette valeur : A → B : fEOO k,1 , B, label , 1, r1 , EOO k,1 4. Bob confirme la réception de cette valeur r1 : B → A : fEORk,1 , A, label , EOR k,1 .. . 144 Chapitre 5 : Non-répudiation sans tierce partie de confiance 2n-1. Alice envoie la dernière valeur aléatoire rn−1 et la preuve de non-répudiation à l’origine correspondante : A → B : fEOO k,n−1 , B, label , n − 1, rn−1 , EOO k,n−1 2n. Bob envoie la preuve de non-répudiation à la réception de cette valeur r1 : B → A : fEORk,n−1 , A, label , EOR k,n−1 2n+1. Alice transmet la clé k de déchiffrement du chiffré c A → B : fEOO k,n , B, label , n, k, EOO k,n 2n+2. Bob accuse réception de cette clé indistingable des valeurs aléatoires déjà reçues : B → A : fEORk,n , A, label , EOR k,n Après le délai de garde ou une notification d’Alice, Bob calcule alors m = D k (c). Avant le dernier envoi d’Alice, Bob n’a rien reçu d’utilisable. De plus, il ne peut détecter s’il a reçu la clé k qu’en réalisant le déchiffrement de c en utilisant comme clé la valeur reçue d’Alice. Cette opération sera supposée trop longue par rapport au délai avant lequel Alice doit avoir reçu la preuve de non-répudiation à la réception de cette valeur (en utilisant un cryptosystème dont les performances, en fonction de la taille du message, conviennent aux délais prévus). Au cours de ce protocole concret, Bob doit recevoir tous les envois d’Alice pour pouvoir retrouver le message m ainsi que la preuve de non-répudiation à l’origine de m. Alice doit obtenir EOR k,n pour obtenir la preuve de non-répudiation à la réception de m. Les disputes Si Alice affirme avoir envoyé avec succès le message m à Bob, elle transmet au juge la preuve de non-répudiation, le NRR, ainsi que le label label , le message m, la clé k, le chiffré c et le nombre d’itération n. Le juge vérifie les signatures de Bob sur EOR et EOR k,n , puis il vérifie si le message m transmis par Alice correspond à Dk (c) et si label = h(m, k). Si toutes ces vérifications sont correctes, l’affirmation d’Alice est acceptée. Si Bob déclare avoir reçu le message m d’Alice, il présente au juge la preuve de non-répudiation à l’origine, le NRO, ainsi que le label label , le message m, la clé k, le chiffré c et le nombre d’itération n. Le juge vérifie les signatures d’Alice sur 5.5 Notre protocole probabiliste de non-répudiation 145 EOO et EOO k,n , puis il vérifie si le message m transmis par Bob correspond à Dk (c) et enfin si label = h(m, k). Si toutes ces vérifications sont correctes, l’affirmation de Bob est acceptée. Le chiffrement Si le cryptosystème utilisé est de type bloc, Alice doit chiffrer son message, quel que soit le cryptosystème utilisé, au moyen d’un mode où tous les blocs du texte chiffré doivent être déchiffrés pour pouvoir obtenir les blocs du texte clair. De cette manière un déchiffrement partiel du message chiffré envoyé par Alice au début du protocole, ne permet pas de décider rapidement si la clé est obtenue ou non. Par exemple, si le message est composé de t blocs mi , nous calculons m′i = mi ⊕ mt ∀i ∈ [1, t − 1], m′t = m1 ⊕ · · · ⊕ mt−1 ⊕ mt si t est impair et m′t = m1 ⊕ · · · ⊕ mt−1 si t est pair. ∀i ∈ [1, t] Bob reçoit, au début du protocole, les chiffrements ci des m′i au moyen de la clé k. Pour retrouver le message original, Bob doit déchiffrer tous les ci , et avec les m′i obtenus il calcule mt = m′1 ⊕· · ·⊕m′t et avec mt il retrouve mi = m′i ⊕ mt ∀i ∈ [1, t − 1]. Si les différents blocs composant le message m étaient chiffrés indépendamment, ci = Ck (mi ), il suffirait à Bob de déchiffrer, entre deux envois, un ou deux blocs pour se rendre compte si ces déchiffrements produisent des valeurs correspondant à un message ayant un sens (mots d’un langage ou motifs reconnaissables d’un code binaire. . .) et ainsi il pourrait décider s’il arrête ou non le protocole (en ayant toujours le temps de réaliser l’envoi suivant dans les délais prévus). En pratique Au cours du protocole concret, nous devons nous assurer que le temps de calcul d’un déchiffrement est plus important que le temps nécessaire à l’obtention par Alice de l’accusé de réception envoyé par Bob. Supposons que les envois réalisés après que Bob ait accusé réception du chiffré c soient composés d’un indicateur de message (f... ) codé sur un octet, de l’identité du récipiendaire codé sur huit octets, du label de 160 bits (taille des hachages produits par SHA-1), du numéro d’envoi sur huit octets, de la valeur aléatoire ou de clé sur 1024 bits et de la signature sur 320 bits (taille des signatures produites par DSA). La taille de l’envoi fait donc 205 octets. Arrondissons à 256 octets (un quart de kilo-octets) la taille maximum de ces envois et supposons que des paquets de cette taille puissent (toujours, si le canal est opérationnel, et souvent sinon) être envoyés et délivrés entre Alice et Bob dans un délai de l’ordre de la seconde. Le cryptosystème utilisé pour chiffrer le message m doit être choisi en fonction de la taille de m. Supposons que |m| (la taille de m) soit x kilo-octets et que le cryptosystème déchiffre y kilo-bits par seconde, si nous désirons que le déchiffrement ne prenne pas plus de cinq minutes et pas moins de trente secondes £ 2x 4x ¤ (par exemple), nous devons choisir un cryptosystème tel que y ∈ 75 , 15 . Nous pouvons utiliser, par exemple, RSA pour chiffrer un message de 5 Moctets, 146 Chapitre 5 : Non-répudiation sans tierce partie de confiance les implémentations les plus efficaces de RSA, en 1999, réalisant un déchiffrement de 600 kilo-bits par secondes au moyen d’une clé de 512 bits. Pour un message de 50 méga-octets, IDEA est adéquat ; triple-DES peut être utilisé pour chiffrer un message de 500 méga-octets et DES pour un message de 1 giga-octets. . . [66]. 5.5.3 Remarques Remarquons que nos protocoles ne font aucune hypothèse sur le comportement des acteurs cibles. Contrairement aux protocoles de Syverson (de la section 5.4) qui doivent être paramétrés sur base de la puissance de calcul de chaque acteur cible, notre protocole se base sur la puissance de calcul de Bob uniquement. Par rapport aux protocoles avec TPC, nos protocoles réalisent plus de calcul et plus de communications, mais cela doit être mis en regard avec l’étranglement des communications induit par l’introduction d’une TPC dans le schéma. De plus, le protocole concret réduit de manière significative les calculs à réaliser. Être exempt d’une TPC au cours des échanges permet non seulement de s’affranchir d’un risque d’étranglement dans les communications mais aussi de ne plus considérer la notion de confiance, difficilement évaluable, que l’on doit porter à la TPC. Au cours des protocoles proposés ici, le risque est connu et peut être paramétré (par Alice qui choisit θ et qui est la seule à subir les conséquences éventuelles de ce choix). Notons aussi que la probabilité de perte d’équité de notre protocole est égale à la probabilité de perte d’équité du protocole de Rabin, présenté au troisième chapitre (à la section 4.3.1). Cependant les infrastructures à mettre en œuvre dans notre protocole sont moins lourdes que celles nécessaires au fonctionnement du protocole de Rabin. Nous n’usons pas de tierce partie de confiance, nous ne nécessitons pas de synchronisme entre les acteurs et le protocole concret que nous proposons est plus économe en quantité de données à transmettre que celui de Rabin (pour un même nombre de messages en moyenne). Le protocole concret peut être aisément transformé afin d’allonger les temps de calculs que Bob doit réaliser (si le message à transmettre est petit, par exemple). Pour ce faire le chiffré c envoyé à Bob au début du protocole serait le résultat de n chiffrements successifs du message m au moyen de n clés de session distinctes (n étant le nombre d’itérations choisi par Alice) : c = C kn (. . . Ck1 (m)). Puis Alice envoie à Bob successivement les clés de session k1 à kn . À la fin du protocole Bob calcule : m=Dk1 (. . . Dkn (c)). Pour pouvoir déchiffrer c, Bob doit donc commencer par utiliser la dernière clé de session reçue (kn ). Il ne peut donc réaliser des calculs intermédiaires au cours du protocole afin d’accélérer le déchiffrement. Pour terminer, remarquons que le protocole de non-répudiation proposé peut aisément se transformer en un protocole d’échange équitable d’une information voulue par Bob contre un accusé de réception. En effet, le protocole peut débuter par une demande d’information émanant de Bob et envoyée à Alice, composée 5.6 Conclusion 147 par exemple par la signature digitale de Bob sur l’unique description de l’information voulue. Puis le protocole continue tel que présenté dans le protocole de non-répudiation. Lors d’une dispute, le juge vérifie si l’information fournie par Alice correspond à la description signée par Bob. 5.6 Conclusion Les principaux résultats associés aux protocoles d’échange d’informations sans TPC ont été examinés. Nous avons alors présenté le premier protocole de nonrépudiation dans ce contexte. Remarquons que Han [43] propose un protocole sans tierce partie de confiance, mais qui prévoit qu’Alice soit en possession d’un système, le pub, accessible publiquement et qui enregistre automatiquement toutes les opérations (accès, modification. . . ) sur les données qu’elle contient (les enregistrements d’opération ne pouvant être ni effacés, ni modifiés). Le protocole prévoit assez classiquement l’envoi par Alice du message chiffré, puis la divulgation de la clé de déchiffrement via le pub. Bob et le juge (qui trancherait en cas de dispute) doivent donc être sûrs de la validité des informations enregistrées dans le pub. Cela revient donc à avoir autant de tierces parties de confiance on-line que d’émetteurs de messages (Alice). Il faut aussi avoir confiance en Alice qui possède le pub et qui peut éventuellement simuler son fonctionnement. Enfin le protocole proposé nécessite une synchronisation entre les acteurs. Nous allons à présent nous intéresser à la non-répudiation de groupe. Chapitre 6 Non-répudiation de groupe 6.1 Introduction Comme nous l’avons vu au cours des précédents chapitres, les recherches existantes ont essentiellement porté sur les protocoles de non-répudiation à deux acteurs cibles, l’accent étant par ailleurs mis sur les protocoles faisant usage de tierce partie de confiance (TPC). Il est intéressant de noter que malgré l’essor de l’étude des protocoles de nonrépudiation depuis près de cinq ans, aucun protocole pour plus de deux acteurs cibles n’a été proposé jusqu’ici. Dans le contexte des protocoles d’échange équitables, quelques propositions existent ; cependant aucun de ces protocoles, que nous allons à présent brièvement décrire, ne convient à l’approche de la non-répudiation que nous allons considérer. Pour une première approche des protocoles de non-répudiation de groupe, le contexte qui nous semble adéquat consiste en un émetteur désirant envoyer simultanément un même message à un ensemble de récipiendaires. L’émetteur doit envoyer, outre le message, une preuve de non-répudiation à l’origine de ce message. De même chaque récipiendaire doit, s’il a reçu le message, transmettre à l’émetteur une preuve de non-répudiation à la réception. Il est attendu des protocoles de non-répudiation de groupe, les mêmes assurances qu’apportent les protocoles de non-répudiation à deux acteurs cibles, à savoir la non-répudiation à l’origine d’un message qui a été transmis à un ensemble de récipiendaires et la non-répudiation à la réception du message assurée par chacun des récipiendaires. Un aspect propre aux protocoles de non-répudiation de groupe est la nécessité de confidentialité. Si les protocoles de non-répudiation avec deux acteurs cibles ne requièrent, a priori, aucune confidentialité, les protocoles de non-répudiation de groupe, comme nous allons les considérer, imposent l’usage de techniques de chiffrement de groupe. De tels chiffrements permettent à un émetteur de chiffrer un message de manière à ce qu’un ensemble déterminé de récipiendaires puissent 150 Chapitre 6 : Non-répudiation de groupe retrouver le message clair à partir du même chiffré. Bien entendu, les protocoles proposés devront respecter une des propriétés d’équité que nous avons définies. Enfin, les protocoles devront être temporellement fini. 6.2 Les échanges cycliques Dans [38], en 1998, une classification des échanges à plusieurs acteurs cibles est proposée. Mis à part le nombre d’informations qu’émet et reçoit chaque acteur cible, les auteurs différencient les échanges cycliques et généraux. Un échange cyclique est tel qu’un acteur cible numéroté i (où 0 ≤ i ≤ n − 1) désire recevoir une information d’un autre acteur numéroté i ⊟ 1 et est sensé envoyer une information à un acteur numéroté i ⊞ 1, où ⊞ et ⊟ dénotent respectivement l’addition et la soustraction modulo n. Dans le cas des échanges généraux, une matrice décrivant la topologie des échanges est utilisée, comme décrit à la section suivante. Ainsi l’échange cyclique est une des topologies qui peut être représentée par une telle matrice. Parmi les quelques articles traitant de l’échange équitable d’informations au travers d’un groupe, [38] et [11], en 1999, se concentrent sur la topologie en anneau, implémentant ainsi un échange cyclique. Au cours d’un protocole de non-répudiation, recevoir un message d’un acteur et en accuser réception à un autre ne correspond pas à nos besoins. Une telle topologie en anneau ne nous convient donc pas. Une première généralisation des protocoles de non-répudiation à deux acteurs cibles, qui nous semble la plus naturelle, consiste donc en un acteur émetteur qui envoie un message à n − 1 récipiendaires qui répondent à cet émetteur (topologie en étoile). 6.3 Un protocole d’échange équitable de groupe Asokan et al. proposent [7, 6], en 1996 puis en 1998, un protocole générique d’échange équitable de groupe. Ils proposent que l’échange se base sur une matrice de descriptions dont les lignes correspondent aux émetteurs et les colonnes aux récipiendaires. Un élément de la matrice est donc la description d’une information qu’un émetteur (indice de ligne) veut envoyer à un récipiendaire (indice de colonne). Le principe du protocole est tel que soit toutes les informations présentes dans la matrice sont échangées, soit aucune. Sur base du protocole générique, les auteurs proposent quelques instantiations (signature d’un contrat, échange d’informations. . . ). Le principe de la matrice de descriptions est suffisamment souple pour permettre un échange de groupe suivant une multitude de topologies (un anneau, une étoile, un graphe complètement interconnecté. . . ). Une topologie possible qui correspond à nos besoins est l’étoile avec la séman- 6.3 Un protocole d’échange équitable de groupe 151 tique « un émetteur, n récipiendaires ». Asokan et al. proposent une instantiation proche des protocoles de non-répudiation et respectant la topologie voulue, nommée diffusion certifiée1 Au cours de ce protocole, qui se base sur une TPC off-line, Alice désire envoyer un message à un ensemble β de récipiendaires, qui devront en accuser réception. Les signatures considérées dans ce protocole sont avec recouvrement. Protocole 6.1 Le protocole d’échange équitable de groupe d’Asokan et. al Le protocole principal : f A (β, t, commit(m, k)) 1. A ⇒ β : Sig f B (β, t, commit(m, k), h(rB )) 2. ∀B ∈ β → A : Sig 3. A ⇒ β : m, k 4. ∀B ∈ β → A : rB Le protocole de recouvrement : f B (β, t, commit(m, k), h(rB )) 1. A → TPC : A, B, Sig 2. A → B : m, k 3. B → A : rB , ou B → A : preuve que m et k n’ouvrent pas commit(m, k), ou TPC → A : affidavit 1. Alice initie le protocole en diffusant, de manière signée, une mise en gage commit(m, k) du message m au moyen de la clé k, tout en précisant l’ensemble β des récipiendaires visés et le délai t après lequel le protocole sera terminé : f A (β, t, commit(m, k)) A ⇒ β : Sig 2. Les B ∈ β accusent (s’ils le désirent) réception de ce premier envoi. Les membres de β répondent en envoyant la mise en gage reçue, ainsi que le hachage d’une valeur aléatoire rB qui servira à la construction de la preuve de non-répudiation à la réception du message m : f B (β, t, commit(m, k), h(rB )) ∀B ∈ β → A : Sig 3. Si, à un moment fixé par elle, Alice n’a pas reçu une réponse de tous les membres de β, elle arrête le protocole, sinon elle diffuse le message m ainsi que la clé k qui permet d’ouvrir la mise en gage et de vérifier si le message m reçu correspond au message mis en gage lors du premier envoi : A ⇒ β : m, k 1 certified broadcast en anglais. 152 Chapitre 6 : Non-répudiation de groupe 4. Chaque membre B de β est alors sensé accuser réception du message en transmettant la valeur aléatoire rB dont le hachage a été envoyé lors du deuxième envoi : ∀B ∈ β → A : rB Si le troisième envoi a eu lieu, et si tous les membres de β n’ont pas réalisé le dernier envoi dans les délais impartis, Alice fait appel à la TPC et réalise un protocole de recouvrement différent avec chaque récipiendaire fautif. 1. Alice initie chaque protocole de recouvrement en précisant à la TPC l’ensemble, β, des récipiendaires visés, ainsi que le deuxième envoi du protocole principal provenant de B ∈ β ′ où β ′ est l’ensemble des récipiendaires n’ayant pas réalisé le dernier envoi du protocole principal : f B (β, t, commit(m, k), h(rB )) A → TPC : A, B, Sig 2. Alice continue en envoyant à B, de manière observable2 par la TPC, le troisième envoi du protocole principal : A → B : m, k 3. Soit B accuse réception, de manière observable par la TPC : B → A : rB Soit B montre, par un message envoyé à Alice et observable par la TPC, que le message m et la clé k ne permettent pas d’ouvrir la mise en gage (par exemple, en transmettant à la fois la mise en gage signée par Alice et la mise en gage, réalisée a posteriori par Bob, basée sur le m et le k reçus) : B → A : preuve que m et k n’ouvrent pas commit(m, k) Soit, B n’ayant rien envoyé, la TPC accuse réception à sa place en envoyant un affidavit basé sur sa propre signature à Alice : TPC → A : affidavit Remarquons que ce protocole, ainsi que le protocole générique proposé par les auteurs et donc toutes leurs instantiations, nécessitent que tous les canaux de communication soient opérationnels. L’obligation de l’échange complet des informations et la contrainte d’opérationnalité des canaux de communication, sont des contraintes qui ne sont pas 2 La tierce partie de confiance peut, sans intervenir activement, observer les informations circulant entre Alice et Bob. 6.4 Un protocole avec tierce partie de confiance on-line 153 compatibles avec notre vision d’un protocole de non-répudiation de groupe. Un protocole de signature de contrat de groupe se basant sur des canaux réactifs a été proposé, en 1998, dans [13], mais le protocole proposé n’est pas générique et son contexte de signature de contrat est très éloigné de nos protocoles de non-répudiation. 6.4 6.4.1 Un protocole avec tierce partie de confiance online Introduction Nous proposons [47] à présent un protocole de non-répudiation de groupe basé sur des cryptosystèmes de groupe. Un cryptosystème de groupe (voir la section 6.4.3) consiste en une fonction de chiffrement C : M × K × · · · × K → C, et une fonction de déchiffrement D : M × K′ → M, où M est l’espace des messages clairs, K est l’espace des clés de chiffrement, K′ est l’espace des clés de déchiffrement et C est l’espace des messages chiffrés. La fonction de chiffrement transforme un message de M et les clés de K correspondant aux récipiendaires visés en un chiffré de C. Chacun des récipiendaires d’un chiffré peut retrouver le message clair initial en appliquant la fonction de déchiffrement au chiffré et à sa clé personnelle de déchiffrement de K′ . Pour ne pas être ambiguë, la fonction de déchiffrement paramétrée par la clé de déchiffrement doit être telle qu’un chiffré ne peut être projeté vers plusieurs messages clairs acceptables distincts. Alice désire envoyer un message m et sa preuve de non-répudiation à l’origine associée à un ensemble de récipiendaires, en échange d’une preuve de nonrépudiation à la réception de m provenant de ces récipiendaires. Le protocole est tel qu’il permet que l’échange n’aboutisse que pour un sous-ensemble des récipiendaires initialement prévus par Alice, alors que pour les autres récipiendaires potentiels rien ne soit échangé, ni reçu. Il est laissé au choix d’Alice de continuer le protocole avec un sous-ensemble des récipiendaires ou d’arrêter le protocole si tous les récipiendaires ne s’engagent pas dans le protocole. 6.4.2 Le protocole Le protocole proposé est une généralisation du protocole de Zhou et Gollmann avec TPC on-line et passive (cf. section 4.3.3). Nous supposons que les canaux de communication entre chaque acteur cible et la TPC sont réactifs. Au cours du protocole, Alice désire envoyer un message m à un ensemble β de récipiendaires. Les membres de β sont nommés Bi avec 1 ≤ i ≤ |β|. 154 Chapitre 6 : Non-répudiation de groupe Protocole 6.2 Un protocole de non-répudiation de groupe avec TPC on-line 1. A ⇒ β : fEOO , β, label , t, c, EOO ¨ 2. Bi → A : fEOR , A, Bi , label , EOR i ¨A 3. A → TPC : fsub , β ′ , label , t, Cβ ′ (k) , sub k 4. TPC ↔ Bj′ : fcon , A, β ′ , label , Cβ ′ (k) , con k 5. TPC ↔ A : fcon , A, β ′ , label , Cβ ′ (k) , con k ¨ Les preuves Le protocole génère les preuves suivantes : La preuve de non-répudiation à l’origine du résultat c du chiffrement du message m au moyen de la clé de session k : EOO = SigA (fEOO , β, label, t, c) où label = h(m, k) est le label associé à une session du protocole, t le moment après lequel la clé k est accessible sur le répertoire public de la TPC. La preuve de non-répudiation à la réception du chiffré c, apportée par le récipiendaire Bi : EOR i = SigBi (fEOR , A, label , t, c) La preuve de non-répudiation à l’origine de la clé k soumise à la TPC : ¡ ¢ sub k = SigA fsub , β ′ , label , t, Cβ ′ (k) où β ′ est un sous-ensemble, éventuellement vide, de β. La preuve de non-répudiation à la réception de la clé k fournie par la TPC : ¡ ¢ con k = SigTPC fcon , A, β ′ , label , t, Cβ ′ (k) La preuve de non-répudiation à l’origine du message m : NRO = (EOO, con k ) De la même manière, la preuve de non-répudiation à la réception du message m: NRR = (EOR, con k ) Le protocole 1. Alice initie le protocole en diffusant à l’attention du groupe β de récipiendaires le résultat du chiffrement du message m au moyen de la clé k, ainsi que le label et le moment t à partir duquel les informations seront accessibles auprès de la TPC : A ⇒ β : fEOO , β, label , t, c, EOO 6.4 Un protocole avec tierce partie de confiance on-line 155 2. Des membres Bi de β répondent, éventuellement, en transmettant à Alice la preuve de non-répudiation à la réception du chiffré c : Bi → A : fEOR , A, Bi , label , EOR i 3. Après un délai qu’elle se fixe, Alice décide si elle arrête le protocole ou si elle continue avec les récipiendaires ayant réalisé un envoi correct précédemment. Les membres de β ayant réalisé le second envoi forment un sous-ensemble β ′ ⊆ β. Si elle décide de continuer, Alice envoie à la TPC la clé k chiffrée au moyen d’un cryptosystème de groupe déchiffrable par les membres de β’ : A → TPC : fsub , β ′ , label , t, Cβ ′ (k) , sub k 4. Si l’envoi d’Alice est arrivé avant le moment t, la TPC rend publiques, après t, les informations reçues. La TPC n’accepte qu’une seule demande par session (identifiée par le label et l’identité des acteurs cibles). Les membres Bj′ de β ′ peuvent donc consulter le répertoire public pour obtenir la clé de déchiffrement de c, elle-même chiffrée mais accessible pour les membres de β ′ : TPC ↔ Bj′ : fcon , A, β ′ , label , Cβ ′ (k) , con k 5. De même, Alice consulte le répertoire afin d’obtenir les éléments nécessaires à l’obtention de la preuve de non-répudiation à la réception de m : TPC ↔ A : fcon , A, β ′ , label , Cβ ′ (k) , con k Si des membres de β réalisent le deuxième envoi du protocole après qu’Alice ait initié l’envoi suivant, ces envois ne seront pas considérés. Remarquons que la clé de déchiffrement de c ne doit être accessible qu’aux membres de β ′ . Si un membre de β\β ′ obtient la clé, sur le répertoire public de la TPC ou par observation des données circulant sur les canaux, il possède alors non seulement le message m, mais aussi une preuve de non-répudiation à l’origine du message, alors qu’Alice n’obtient pas la preuve de non-répudiation à la réception associée. Il en résulte ainsi une violation de l’équité. Se contenter de limiter l’accès au répertoire public de la TPC n’est pas suffisant puisque la clé, si elle est transmise telle quelle, peut être observée. Nous proposons en conséquence d’utiliser un chiffrement de groupe qui rend la clé accessible aux membres de β ′ , qui seuls peuvent réaliser le déchiffrement. Le chiffrement de groupe de la clé doit être tel que tout acteur puisse vérifier si un acteur donné peut obtenir la clé à partir du chiffré. 156 Chapitre 6 : Non-répudiation de groupe L’équité Théorème 6.1 Les premier et dernier envois sont des points de forte complétude universels du protocole. Preuve : Après le premier envoi, les membres de β n’ont rien reçu d’utilisable (le chiffré du message m uniquement). Ni Alice, ni les membres de β n’ont reçu les preuves attendues. Rien n’oblige Alice à continuer le protocole après ce premier envoi. Et si Alice arrête de prendre part au protocole, les récipiendaires ne retrouvent rien auprès de la TPC (cette dernière n’ayant rien reçu d’Alice). Après le cinquième envoi, les preuves sont échangées et les membres de β ′ peuvent retrouver m. ¤ Théorème 6.2 Le deuxième envoi est un point de forte complétude d’Alice. Preuve : Après le deuxième envoi, le protocole peut être arrêté par Alice. Si des membres de β ont émis leur EOR i , ils n’interviennent plus dans le protocole que si Alice réalise le troisième envoi. Si elle ne le fait pas, ces récipiendaires ne trouvent rien auprès de la TPC et ne peuvent donc pas composer la preuve de non-répudiation à l’origine. De même Alice, qui a reçu le EOO i , ne soumettant rien à la tierce partie, ne reçoit pas non plus con k et ne peut donc composer la preuve de non-répudiation à la réception. Si Alice compose un β ′ en excluant certains membres de β qui ont émis leur EOR i , alors ni ces derniers, ni Alice n’auront de preuves finales de non-répudiation puisque ces preuves finales sont basées sur l’ensemble β ′ présent dans con k . Dans tous les cas, les membres de β qui ont réalisé le second envoi doivent consulter la TPC (au cinquième envoi) car ils ne peuvent prévoir le comportement d’Alice (même si elle a reçu leur message à temps) ; les membres de β ′ ne peuvent donc arrêter le protocole. ¤ Théorème 6.3 Le protocole est fortement équitable, si les canaux reliants la TPC aux acteurs cibles sont réactifs. Preuve : Après le deuxième envoi, par hypothèse de conservation, les membres de β ′ n’arrêtent plus le protocole spontanément. Si Alice ne prend plus part au protocole juste après le deuxième envoi, alors tous les acteurs cibles atteignent le point de complétude d’Alice. Sinon ils continuent après le troisième envoi. Après le troisième envoi, ni les membres de β ′ , ni Alice n’ont intérêt à arrêter le protocole (et donc ne pas aller consulter la TPC à partir du moment t) sous peine, non seulement, de ne pas retrouver la preuve de non-répudiation attendue mais aussi de perdre une éventuelle dispute. Les acteurs cibles ne peuvent s’empêcher mutuellement de consulter la TPC, car les canaux sont réactifs. Remarquons aussi qu’une fois le troisième envoi réalisé, il se peut qu’Alice reçoive des messages correspondant au deuxième envoi du protocole provenant de membres de β\β ′ . Alice possède alors les preuves de non-répudiation à la 6.4 Un protocole avec tierce partie de confiance on-line 157 réception du chiffré c pour ces récipiendaires. Cependant comme con k produit par la TPC contient la description de l’ensemble des récipiendaires pouvant déchiffrer la clé k (l’ensemble β ′ ), la preuve de non-répudiation qui est en partie composée de con k n’est valide que si les EOR i qui composent la preuve de nonrépudiation à la réception du message m, correspondent à des récipiendaires présents dans β ′ que l’on trouve dans con k . Alice n’obtient donc aucune preuve de non-répudiation à la réception de ces récipiendaires, et ces derniers n’obtiennent ni la preuve de non-répudiation à l’origine, ni le message m. Il en est de même si Alice ne transmet à la TPC qu’un sous-ensemble des membres de β dont elle a obtenu un EOR i à temps après le deuxième envoi du protocole. Après le quatrième envoi, Alice n’arrêtera pas le protocole puisque les membres de β ′ possèdent chacun la preuve complète de non-répudiation à l’origine et qu’ils ne peuvent l’empêcher de consulter la TPC pour obtenir les preuves de non-répudiation à la réception (les canaux reliant les acteurs cibles à la TPC étant réactifs). ¤ La fin du protocole Théorème 6.4 Le protocole est temporellement fini. Preuve : Si les acteurs cibles n’agissent pas honnêtement ou si, dû à un retard, la TPC ne reçoit pas un message à temps, alors la TPC ne publie rien à l’instant t et le protocole se termine à ce moment. Si les parties agissent honnêtement et si la TPC reçoit à temps les informations nécessaires à la publication de la clé et de la preuve de non-répudiation à la réception de cette clé, alors elle les publie au moment t. Par leur canal réactif, lorsque les acteurs cibles feront la demande de consultation du répertoire public, ils finiront par retrouver les informations attendues, mais ce moment ne peut être prévu. ¤ Les disputes Si un acteur affirme avoir reçu le message m d’Alice, il présente au juge le message m, la clé k, le chiffré c, le label ainsi que EOO et con k . Remarquons que le message m et la clé k doivent être transmis au juge au moyen d’un canal assurant la confidentialité, sinon un membre de β\β ′ peut retrouver le message. Si l’acteur ne peut fournir ces informations au juge, son affirmation est rejetée. Sinon le juge vérifie les signatures d’Alice sur EOO et de la TPC sur con k , puis il vérifie si label = h(m, k) et enfin si c est bien le résultat du chiffrement de m au moyen de la clé k. Si toutes les vérifications sont satisfaisantes, le juge confirme l’affirmation de l’acteur Si Alice affirme avoir envoyé avec succès le message m au récipiendaire Bi , elle envoie au juge m, c, k, label , EOR i et con k (m et k devant être transmis confidentiellement). Si le juge reçoit ces informations, il vérifie les signatures de Bi sur EOR i et de la TPC sur con k , il vérifie que Bi appartient à β ′ , que 158 Chapitre 6 : Non-répudiation de groupe label = h(m, k), que la clé k est bien chiffrée pour Bi dans con k et enfin que c est bien le résultat du chiffrement de m au moyen de la clé k. Si toutes les vérifications sont satisfaisantes, le juge confirme l’affirmation d’Alice. Le comportement de la tierce partie de confiance Si la TPC s’allie avec Alice, elle peut retarder ou annuler la publication de k de manière à ce que les membres de β ′ ne puissent retrouver la preuve de non-répudiation à l’origine de la clé k, alors que la tierce partie transmet uniquement à Alice le dernier message, lui permettant d’obtenir la preuve de nonrépudiation à la réception. Ce comportement de la tierce partie est détectable par les membres de β ′ . Si la tierce partie s’allie à des β ′ , leur transmet la clé k et publie une autre clé, ces alliés peuvent ainsi récupérer m mais ne pourraient prouver que m vient d’Alice. Si la tierce partie leur transmet directement k et con k , et ne dépose que tard ou pas du tout ces informations sur le répertoire public, alors ces membres de β ′ , alliés à la TPC, reçoivent la preuve de non-répudiation à la réception tandis qu’Alice ne reçoit rien. Un tel comportement est détectable par Alice. Ces raisonnements se généralisent directement à une alliance entre la TPC, Alice et certains récipiendaires. La tierce partie peut rendre disponible une information inadéquate en fin de protocole. Ni Alice, ni les membres de β ′ ne recevront leur preuve, et si ce comportement est occasionnel, il ne peut être détecté. Il est difficile de détecter (et surtout de prouver) un dépôt tardif par la TPC d’informations sur le répertoire public. Ainsi si Alice ou les membres de β ′ consultent la TPC et ne trouvent rien dans le répertoire public (correspondant au label) et s’ils sont méfiants vis à vis cette tierce partie, ils devront consulter régulièrement le répertoire pour s’assurer que les informations ne sont pas déposées plus tard (à la façon d’un polling dans un système client-serveur). Afin d’assurer aux acteurs de ne devoir consulter qu’une seule fois la TPC, nous recommandons que lorsque la TPC est consultée, elle réponde par un message signé indiquant l’information ou l’absence d’information, le moment de l’émission de ce message et le label associé. La viabilité Théorème 6.5 Si le canal de communication entre les acteurs est opérationnel alors le protocole est viable. Preuve : Si Alice et les membres de β sont honnêtes et répondent sans perdre de temps alors Alice envoie un premier message avec un délai t raisonnable et elle soumet au plus tôt à la TPC la clé k de déchiffrement. Cette clé arrive sans délai à la TPC qui la reçoit avant t et rend publique cette information. Alice et les membres de β tentent à partir du moment t d’obtenir cette clé k et le 6.4 Un protocole avec tierce partie de confiance on-line 159 con k auprès de la tierce partie, ce qui sera réalisé avec succès grâce au réseau opérationnel. Si le réseau est réactif les messages émis aux troisième et quatrième envois peuvent prendre trop de temps pour arriver et ne pas permettre à la TPC de rendre disponible la clé k ainsi que la preuve de non-répudiation à la réception de la clé k à partir du moment t. ¤ Remarques Comme chaque message signé contient le nom du récipiendaire, un opposant, Oscar, ne peut prendre la signature d’Alice (par exemple) et celle émise par la tierce partie et prétendre avoir une preuve de non-répudiation à l’origine sur m venant d’Alice, car c’est bien le nom du récipiendaire visé par Alice et non Oscar qui est indiqué dans le message signé. Le raisonnement est identique vis à vis d’un récipiendaire pour la preuve de non-répudiation à la réception. Oscar ne peut prétendre avoir cette preuve car les noms des récipiendaires apparaissent dans la preuve con k signée par la TPC. Comme Oscar ne peut bloquer la TPC (les canaux que cette dernière utilise étant réactifs), Oscar ne peut briser l’équité du protocole. La TPC reçoit non seulement des messages signés qu’elle vérifie, mais aussi les noms des acteurs cibles. Il n’y a donc pas d’anonymat à son égard. La situation est identique face à un observateur extérieur. Notons, enfin, qu’aucune coalition entre des membres de β, avec ou sans Alice, ne peut nuire (en brisant l’équité) à des acteurs cibles extérieurs à la coalition. En effet, la coalition ne peut ni falsifier une signature d’autres acteurs cibles, ni bloquer un message venant de la TPC. 6.4.3 Un chiffrement de groupe Le choix d’un cryptosystème adéquat, parmi les nombreux cryptosystèmes de groupes existant [44, 33, 28, 22, 16], est crucial pour la sécurité du protocole proposé. Par exemple, Boyd a présenté une généralisation de RSA [22] où, pour un groupe de n acteurs, n clés sont nécessaires et où chaque acteur i connaît n − 1 clés, la clé manquante étant différente pour chaque acteur. Le chiffrement est possible « à destination » d’un sous-ensemble quelconque des n acteurs. Le problème est que ce cryptosystème ne résiste à aucune coalition3 , tout couple d’acteurs alliés peut déchiffrer tous les messages produits pour tous les sous-ensembles des n acteurs, puisqu’ensemble, les deux acteurs connaissent les n clés. Notre protocole doit pouvoir résister à de telles coalitions. Nous proposons, par exemple, d’utiliser le mécanisme générique proposé par Chiou et al. [28] et décrit ci-après. 3 Il est 1-resilient en anglais. 160 Chapitre 6 : Non-répudiation de groupe Le principe de la méthode se base à la fois sur les cryptosystèmes à clés publiques, ainsi que sur le lemme Chinois4 [53, 63]. La méthode générique décrite par les auteurs peut être instanciée au moyen de tout cryptosystème à clés publiques sûr. Soit n le nombre initial de récipiendaires, n = |β|, et soit n′ le nombre de récipiendaires ayant réalisé à temps le deuxième envoi du protocole, n ′ = |β ′ |. Nous notons Ki et K̃i respectivement les clés publique et privée d’un membre i de β, où 1 ≤ i ≤ n. Ce membre choisit un entier Ni plus grand que les chiffrés produits par le cryptosystème utilisé ; de plus, tous les Ni doivent être premiers entre eux5 . Pour chaque acteur i, les informations publiques sont donc N i et Ki . Pour chiffrer la clé k pour les n′ membres, ji , de β ′ , Alice calcule cji = CKji (k) où 1 ≤ i ≤ n′ . Alice utilise alors le lemme Chinois pour trouver l’unique solution au système X ≡ cji (mod Nji ) (1 ≤ i ≤ n′ ). Les Ni étant relativement premiers deux à deux, nous avons alors Cβ ′ (k) = X. Chaque membre ji de β ′ (1 ≤ i ≤ n′ ) déchiffre Cβ ′ (k) en calculant cji = Cβ ′ (k) mod Nji et DK̃j (cji ) = i ³ ´ DK̃j CKji (k) = k. i Lorsqu’un juge doit vérifier que le chiffré Cβ ′ (k) est déchiffrable par un acteur Bi particulier, il calcule CKi (k) et vérifie que Cβ ′ (k) mod Ni = CKi (k). Ainsi le juge peut réaliser cette vérification de manière efficace sans avoir à calculer lui-même Cβ ′ (k). 6.5 6.5.1 Un protocole avec tierce partie de confiance offline Introduction Nous allons à présent considérer l’approche optimiste dans le cadre des protocoles de non-répudiation de groupe. Nous [51] allons cette fois généraliser le protocole de non-répudiation avec tierce partie off-line et active que nous avons décrit à la section 4.4.3. Nous supposons ici aussi que les canaux de communication entre chaque acteur cible et la TPC sont réactifs, alors qu’ils peuvent être incertains entre les acteurs cibles. Aussi, Alice gère, à la manière d’une tierce partie passive, un répertoire public accessible en lecture uniquement. Afin de ne pas nuire à la lisibilité du protocole, la figure 6.3 ne présente pas, exceptionnellement, les points de complétude (car les points de complétude ne concernent parfois que certains acteurs cibles). 4 ou encore théorème du reste Chinois, chinese remainder theorem en anglais. Une autorité de certification des clés publiques doit être ici utilisée. C’est cette dernière qui vérifie et assure la primalité relative des Ni . 5 6.5 Un protocole avec tierce partie de confiance off-line 161 Protocole 6.3 Un protocole de non-répudiation de groupe avec TPC off-line Le protocole principal : 1. A ⇒ β : fEOO , fsub , β, label, t, c, CKTPC (k) , EOO, sub 2. Bi → A : fEOR , A, label , EOR i 3. A ⇒ β ′ : fEOO k , β ′ , label , Cβ ′ (k) , EOO k 4. Bj′ → A : fEORk , A, label , EOR j,k Le protocole de recouvrement : (X est l’acteur cible initiant le recouvrement) 1. X → TPC : frec X , fsub , A, β, label, t, h(c), CKTPC (k) , rec X , sub, EOO 2. TPC → X : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k et STOP, ou TPC → X : fearly , early et STOP, ou A ↔ TPC : fset , β ′ , label , set 3. TPC → A : fcon k , A, β ′ , label , con k 4. TPC ⇒ β ′ ∪ {X}\{A} : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k Les preuves Les preuves générées au cours du protocole sont : La preuve de non-répudiation à l’origine du chiffré c : EOO = SigA (fEOO , β, label , t, h(c)) où β est l’ensemble des récipiendaires visés du chiffré, t désigne le moment après lequel le protocole de recouvrement peut être initié, et le label qui résulte du hachage du message m et de la clé k utilisée pour mettre ce message en gage. Une instance du protocole est identifiée par le couple (label , A). La preuve de non-répudiation à la réception du chiffré c émise par un membre Bi ∈ β : EOR i = SigBi (fEOR , A, label , h(c)) La preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la TPC : sub = SigA (fsub , β, label , CKTPC (k)) La preuve de non-répudiation à l’origine de la clé k : ¡ ¢ EOO k = SigA fEOO k , β ′ , label , h(k) où β ′ est un sous-ensemble de β. La preuve de non-répudiation à la réception de la clé k produite par un membre Bi ∈ β ′ : EOR i,k = SigBi (fEORk , A, label , h(k)) La preuve de non-répudiation à l’origine de la demande de recouvrement : rec X = SigX (frec X , A, β, label) 162 Chapitre 6 : Non-répudiation de groupe où X est un acteur quelconque. La preuve de non-répudiation à l’origine de la clé k envoyée par la TPC : ¡ ¢ con k = SigTPC fcon k , A, β ′ , label , h(k) La preuve de non-répudiation à l’origine émise par la TPC signifiant à un acteur qu’un recouvrement a été initié trop tôt : early = SigTPC (fearly , label ) La preuve de non-répudiation à l’origine émise par Alice pour l’ensemble des récipiendaires avec lesquels elle est prête à mener le protocole jusqu’à son terme : ¡ ¢ set = SigA fset , β ′ , label La preuve de non-répudiation à l’origine du message m : NRO = (EOO, EOO k ) ou (EOO, con k ) La preuve de non-répudiation à la réception du message m produite par l’acteur Bi : NRR = (EOR i , EOR i,k ) ou (EOR i , con k ) Le protocole principal Au cours de ce protocole principal, Alice désire envoyer de manière non-répudiable le message m à un ensemble β de récipiendaires. 1. Alice diffuse un premier message destiné à tous les membres de β. Ce message contient le chiffré c du message m sous la clé k, le label label = h(m, k), un délai t indiquant qu’un recouvrement ne peut se faire qu’après ce délai, ainsi que la clé k chiffrée à l’intention de la TPC : A ⇒ β : fEOO , fsub , β, label , t, c, CKTPC (k) , EOO, sub 2. Chaque membre Bi de β, s’il a accepté le délai t, peut (s’il désire continuer le protocole) accuser réception du premier envoi : Bi → A : fEOR , A, label , EOR i 3. Alice maintient, sur un répertoire accessible publiquement en lecture, une information décrivant l’ensemble des récipiendaires accusant réception de son premier envoi). Après un moment décidé par elle (mais qui, d’après elle, précède t), Alice décide si elle continue le protocole avec les Bi qui lui ont déjà répondu. Alice peut donc soit décider d’arrêter le protocole principal, soit de continuer avec l’ensemble β ′ des membres de β ayant 6.5 Un protocole avec tierce partie de confiance off-line 163 réalisé le deuxième envoi du protocole. Dans ce cas, Alice leur envoie alors la clé k chiffrée à leur intention : A ⇒ β ′ : fEOO k , β ′ , label , Cβ ′ (k) , EOO k 4. Les membres Bj de β ′ peuvent alors confirmer la réception de la clé k : Bj′ → A : fEORk , A, label , EOR j,k Il est évidemment crucial que la clé k transmise par Alice au troisième envoi du protocole soit chiffrée à l’intention des membres de β ′ , ce qui n’était pas nécessaire dans le protocole à deux acteurs cibles. En effet, les membres de β n’ayant pas réalisé le deuxième envoi ne doivent pas pouvoir obtenir la clé de déchiffrement du chiffré c. Ainsi pour ne chiffrer qu’une seule fois la clé (et non séparément pour chaque membre de β ′ , et pour alors pouvoir diffuser un seul message, Alice utilise un chiffrement de groupe. Des exemples de tels chiffrements (comme décrits à la section 6.4.3 supra) peuvent être trouvés dans [44] et [28]. Le protocole de recouvrement Au cours du protocole principal, Alice et les récipiendaires ont la possibilité d’initier le protocole de recouvrement avec la TPC. Un membre de β ′ initie le protocole de recouvrement si Alice ne diffuse pas la clé de déchiffrement de c. De même, Alice initie le recouvrement si tous les membres de β ′ n’ont pas envoyé le dernier message du protocole principal. Rappelons ici que l’approche optimiste s’envisage dans un contexte où les acteurs cibles sont supposés se comporter, la plupart du temps, honnêtement. Ainsi, la tierce partie n’interviendrait pas à chaque exécution du protocole. Cependant, malgré l’honnêteté potentielle des acteurs cibles, un message émis peut ne pas arriver, ce qui implique l’exécution du protocole de recouvrement, si ce message correspond au quatrième envoi du protocole principal. Aussi, si le nombre de récipiendaires envisagés par Alice est grand, il peut être fréquent qu’un récipiendaire malhonnête ou une connexion défaillante nécessite la réalisation du recouvrement. Il peut ainsi apparaître que la tierce partie n’est pas réellement off-line, puisque le risque de s’y référer peut, dans certaine circonstance, être non négligeable. Remarquons alors que le protocole de recouvrement, que nous allons à présent décrire, ne nécessite pas la participation de tous les récipiendaires appartenant à β ′ (même si tous les membres de β ′ reçoivent, par diffusion, un message de la TPC à la fin du protocole de recouvrement, ceux qui ont terminé le protocole principal avec succès ne doivent pas nécessairement être à l’écoute de ce message). Seule Alice, la TPC et certains membres de β ′ seront concernés par le recouvrement, si ce dernier a lieu. Avant le moment t (t est spécifié par Alice au cours du premier envoi du protocole principal), le recouvrement ne peut être initié. Si un acteur tente de réaliser un 164 Chapitre 6 : Non-répudiation de groupe recouvrement avant t, la TPC lui notifie que le recouvrement ne peut encore être commencé. 1. Un acteur X (qui peut être Alice ou n’importe lequel des Bi ∈ β) initie le recouvrement en envoyant à la TPC le label, le hachage du chiffré c, la clé k chiffrée à l’intention de la TPC, la preuve de non-répudiation à l’origine de la demande de recouvrement, la preuve de non-répudiation à l’origine de la clé k chiffrée à l’intention de la TPC ainsi que la preuve de non-répudiation à l’origine du message chiffré c : X → TPC : frec X , fsub , A, β, label, t, h(c), CKTPC (k) , rec X , sub, EOO 2. Si un recouvrement a déjà été complété au sujet de cette session du protocole (ce qui est identifié par le couple (label , A)), alors la TPC envoie à X la clé k ainsi que sa signature sur cette clé, et le tout chiffré à l’intention des membres de β ′ (l’ensemble des récipiendaires avec lesquels Alice a déclaré vouloir terminer le protocole6 ) : TPC → X : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k Après cet envoi le protocole se termine. Si aucun recouvrement n’a encore eu lieu à propos de cette session du protocole, alors si le premier envoi de ce protocole de recouvrement arrive à la TPC avant le moment t (qui se trouve signé par Alice dans EOO), alors elle répond à X que c’est encore trop tôt : TPC → X : fearly , early et le protocole se termine. Sinon la TPC consulte le répertoire public d’Alice qui contient, à partir du moment t qu’elle a elle-même fixé, l’ensemble β ′ des récipiendaires avec lesquels elle désire continuer le protocole. Dès que la TPC a consulté le répertoire public d’Alice, cette dernière considère que le protocole de recouvrement est initié et arrête de prendre part au protocole principal : A ↔ TPC : fset , β ′ , label , set 3. Une fois le répertoire public d’Alice consulté, la TPC envoie à Alice sa preuve de non-répudiation à l’origine de la clé k, qui sera pour Alice un substitut de EOR i,k (avec i tel que Bi ∈ β ′ ) : T P C → A : fcon k , A, β ′ , label , con k 6 La TPC doit donc retenir ces informations. 6.5 Un protocole avec tierce partie de confiance off-line 165 4. Puis elle diffuse à l’intention des membres de l’ensemble β ′ , obtenu auprès d’Alice ainsi qu’à l’intention de l’acteur X ayant initié le recouvrement (si X n’est pas Alice), la clé k ainsi que sa signature sur cette clé, mais le tout chiffré à l’intention des membres de β ′ . Elle transmet aussi sa preuve de non-répudiation à l’origine sur la clé k, qui remplace EOO k : TPC ⇒ β ′ ∪ {X}\{A} : fcon k , A, β ′ , label , Cβ ′ (k, SigTPC (k)) , con k La première fois que le protocole est initié après le moment t, la TPC consulte donc le répertoire public accessible uniquement en lecture auprès d’Alice afin d’y lire β ′ . Si ce répertoire ou l’information attendue n’est pas accessible, la TPC suppose que β ′ = ∅. Si un membre Bi ∈ β \β ′ réalise un recouvrement, il reçoit le même message que celui diffusé au dernier envoi du protocole de recouvrement. Ce message ne lui sera cependant d’aucune utilité puisque k est chiffrée à l’intention des membres de β ′ . Cet envoi lui permettra cependant d’être informé qu’il ne fait pas partie de β ′ . Si Alice n’arrête pas de prendre part au protocole principal dès que la TPC consulte son répertoire public, alors les membres de β peuvent profiter d’un éventuel décalage entre les horloges de la TPC et d’Alice, associé à un effet de course dans les transmissions. En effet, si l’horloge de la TPC indique que le moment t est arrivé alors que ce n’est pas encore le cas sur l’horloge d’Alice, un membre B̃ de β qui n’a pas encore réalisé le deuxième envoi du protocole principal, peut initier le protocole de recouvrement. La TPC consultera le répertoire public d’Alice et obtiendra un ensemble β ′ ne contenant pas B̃. Si ce dernier réalise alors le second envoi du protocole principal avant que l’horloge d’Alice n’indique que le moment t est arrivé et avant que le message envoyé par la TPC au troisième envoi du protocole de recouvrement n’arrive à Alice, celle-ci inclura alors B̃ dans β ′ , qui est dès lors différent de celui obtenu par la TPC. Alice réalise, toujours avant de recevoir le message envoyé par la TPC, le troisième envoi du protocole principal, B̃ possède ainsi le message m et la preuve de non-répudiation à l’origine de m. Si B̃ ne réalise pas le dernier envoi du protocole principal, alors Alice recevra de la TPC une preuve de non-répudiation à la réception concernant un ensemble de récipiendaires dont B̃ ne fait pas partie. L’équité serait ainsi brisée. L’équité Théorème 6.6 Le premier envoi du protocole principal est un point de forte complétude universel. Preuve : Si, après ce premier envoi, Alice arrête de prendre part au protocole, les membres de β pourront tenter d’initier le protocole de recouvrement. Cependant, Alice ne participant plus au protocole, ne déposera rien sur son répertoire 166 Chapitre 6 : Non-répudiation de groupe public, la TPC décidera alors que β ′ est vide et aucun membre de β ne recevra d’information. Si après le premier envoi du protocole principal, un membre de β arrête le protocole, Alice n’aura aucun intérêt à le considérer comme un membre de β ′ . Ainsi ce membre de β ne recevra rien d’utilisable d’Alice ou de la TPC, de même Alice n’obtiendra rien de lui, puisqu’il arrête le protocole avant d’émettre une information. ¤ Théorème 6.7 Le dernier envoi du protocole principal est un point de forte complétude pour tous les Bi′ ayant réalisé ce quatrième envoi. Preuve : Tous les Bi′ ayant réalisé l’envoi ont obtenu le message m, ainsi que la preuve de non-répudiation à l’origine associée, et ont transmis la preuve de non-répudiation à la réception du message. Ils peuvent donc arrêter de prendre part au protocole. Ce dernier envoi n’est cependant pas un point de complétude pour Alice, car si tous les membres de β ′ n’ont pas réalisé le quatrième envoi du protocole principal, Alice devra initier le protocole de recouvrement pour obtenir les preuves de non-répudiation à la réception manquantes. ¤ Théorème 6.8 Le dernier envoi du protocole de recouvrement lors d’un premier recouvrement, et le deuxième envoi du protocole de recouvrement, si un recouvrement a déjà été réalisé avec succès, sont deux points de forte complétude universels. Preuve : Après le dernier envoi du protocole de recouvrement, la TPC a transmis aux membres de β ′ les informations nécessaires à la composition des preuves de non-répudiation associées au message m. Le message m est accessible aux membres de β ′ grâce à la clé k qui leur est fournie par la TPC. Les membres de β\β ′ n’ont pas envoyé (quatrième envoi du protocole principal) la preuve de non-répudiation à la réception du message m et n’ont reçu ni le message m, ni sa preuve de non-répudiation à l’origine (par le troisième envoi du protocole principal ou par le quatrième envoi du protocole de recouvrement). Lorsque le protocole de recouvrement est initié après avoir été déjà réalisé, son initiateur recevra soit une information déjà obtenue s’il fait partie de β ′ , soit un message inexploitable (ce qui n’est pas gênant puisqu’il n’a pas transmis de preuve de non-répudiation à la réception du message m, s’il ne fait pas partie de β ′ ). ¤ Théorème 6.9 Le deuxième envoi du protocole principal et le deuxième envoi du protocole de recouvrement, s’il est initié trop tôt, sont des points de forte complétude d’Alice. Preuve : Si Alice arrête de prendre part au protocole après le deuxième envoi du protocole principal, les membres de β pourront tenter d’initier le protocole de 6.5 Un protocole avec tierce partie de confiance off-line 167 recouvrement. Cependant, Alice ne participant plus au protocole, ne déposera rien sur son répertoire public, la TPC décidera alors que β ′ est vide et aucun membre de β ne recevra d’information. Par contre, aucun des Bi ayant réalisé le deuxième envoi du protocole principal ne peut arrêter le protocole, car Alice peut alors initier un recouvrement en incluant ce Bi dans β ′ (elle obtiendrait alors une preuve de non-répudiation à la réception de ce Bi et ce dernier, ayant arrêté le protocole, ne recevrait pas la preuve de non-répudiation à l’origine correspondante). Après le deuxième envoi du protocole de recouvrement, s’il est initié trop tôt, Alice peut décider d’arrêter de prendre part au protocole. Après le moment t, la TPC considérera que β ′ est vide, ne trouvant rien sur le répertoire public d’Alice. Aucun membre de β ′ ne peut cependant arrêter le protocole, puisqu’Alice peut réaliser, à nouveau, par la suite un recouvrement et obtenir une preuve de nonrépudiation à la réception pour tous les membres de β ′ . ¤ Théorème 6.10 Les envois qui suivent le troisième envoi du protocole principal sont des points de forte complétude pour les membres de β\β ′ Preuve : Les membres de β\β ′ ne participent plus au protocole après le troisième envoi (soit parce que ce troisième envoi ne leur est pas parvenu, soit parce qu’ils constatent qu’ils ne sont pas dans le β ′ indiqué dans le troisième envoi), et les preuves de non-répudiation échangées ne les concernent donc pas. Alice ne peut s’arrêter après le troisième envoi du protocole principal si β ′ est non vide, car elle doit obtenir les preuves de non-répudiation provenant des membres de β ′ . De même, les membres de β ′ continueront le protocole jusqu’à obtenir le message m et la preuve de non-répudiation associée. ¤ Théorème 6.11 Le protocole est fortement équitable (pour Alice et les membres de β). Preuve : Après le deuxième envoi du protocole principal, Alice peut déterminer β ′ . Si elle ne réalise pas le troisième envoi du protocole principal, les membres de β peuvent initier un recouvrement. Alice et les membres de β ′ , déterminé par Alice, recevront les informations attendues en atteignant un des points de complétude universel du protocole de recouvrement. Si Alice réalise le troisième envoi, mais ne reçoit pas tous les EOR i,k attendus, elle initie le recouvrement et obtient le con k nécessaire de la part de la TPC en atteignant un des points de complétude universel du protocole de recouvrement. Après le premier envoi du protocole de recouvrement, on atteint soit le point de complétude universel correspondant au deuxième envoi dans la situation où un recouvrement a déjà été exécuté, soit le point de complétude d’Alice si le recouvrement est réalisé trop tôt, soit la tierce partie consulte le répertoire public d’Alice et, comme elle est honnête, elle transmet aux troisième et quatrième envois les informations attendues, atteignant ainsi le point de complétude universel correspondant au quatrième envoi du protocole de recouvrement. 168 Chapitre 6 : Non-répudiation de groupe Si, après qu’Alice ait réalisé le troisième envoi du protocole principal, des membres de β envoient tardivement leur preuve de non-répudiation à la réception de c, Alice ne sera pas avantagée puisqu’elle n’obtiendra pas la preuve de nonrépudiation à la réception de la clé k de la part de ces acteurs, puisqu’ils ne font pas partie de β ′ ¤ Remarquons que, si Alice tente de tricher en soumettant une mauvaise clé k ′ , les preuves ne seront plus valables puisque le label ne pourra plus être vérifié (label 6= h(m, k ′ )). Alice peut aussi essayer de tricher en publiant (via son répertoire public) un faux ensemble βe′ . Remarquons cependant que, si elle publie un ensemble plus petit que β ′ , elle n’obtiendra pas de preuve de non-répudiation à la réception de la clé des membres de β ′ \βe′ . Ainsi si le troisième envoi du protocole principal a été exécuté, ces derniers ont obtenu m et la preuve de non-répudiation à l’origine, alors qu’Alice n’obtient pas les preuves de non-répudiation à la réception correspondantes. Si βe′ est plus grand que β ′ , Alice permettrait potentiellement à des acteurs n’ayant pas envoyé de preuves de non-répudiation à la réception du chiffré c d’obtenir la clé k de déchiffrement ainsi que la preuve de non-répudiation à l’origine (alors qu’Alice n’obtiendrait pas la preuve de non-répudiation à la réception pour m de la part de ces acteurs, n’ayant pas reçu l’accusé de réception du premier envoi du protocole principal). Enfin, ces argumentations couvrent aussi le cas où Alice publierait un βe′ contenant à la fois un sous-ensemble de β ′ et des acteurs qui n’appartiennent pas à β ′ , ou encore si βe′ ne serait composé que d’acteurs qui n’appartenant pas à β ′ . Alice n’a donc aucun intérêt de ne pas publier un β ′ correct. Ainsi, Alice a l’avantage de pouvoir contrôler le contenu de β ′ tant que le troisième envoi n’a pas été réalisé ; elle peut retirer des membres de cet ensemble, sans prendre de risque et sans flouer le ou les acteurs cibles évincés. Cependant, son but consiste, si elle désire envoyer le message m, à obtenir les preuves de non-répudiation à la réception des récipiendaires. À moins de ne plus désirer qu’un membre de β ne reçoive m, elle n’a aucun intérêt à réduire β ′ . La fin du protocole Théorème 6.12 Le protocole est temporellement fini. Preuve : Alice peut soit finir le protocole principal, avant t, ou réaliser après t un recouvrement qui se terminera en un temps fini grâce aux canaux réactifs reliant les acteurs cibles à la TPC. Un acteur cible récipiendaire Bi peut aussi soit finir le protocole principal, soit initier le recouvrement. S’il initie le recouvrement avant le moment t, la TPC l’invitera à réessayer après t. Sinon, le protocole de recouvrement est réalisé et se termine en un temps fini grâce aux canaux réactifs. ¤ 6.5 Un protocole avec tierce partie de confiance off-line 169 Les disputes Si un acteur cible de β affirme avoir reçu le message m d’Alice, il présente au juge le label, le message m, la clé k, le chiffré c, les ensembles des récipiendaires β et β ′ (qui se trouvent respectivement aux premier et troisième envois du protocole principal et qui sont signés, aux mêmes envois, par Alice dans EOO et EOO k ) ainsi que EOO, EOO k ou con k . Le message m et la clé k doivent être transmis confidentiellement, pour qu’un acteur Bi ∈ β\β ′ ne puisse obtenir le message m. Sur base de toutes ces informations, le juge vérifie si le plaignant ∈ β ′ et si c est le chiffré de m au moyen de la clé k, puis après avoir calculé le hachage de c, il vérifie les signatures des EOO et EOO k et si nécessaire de con k , puis vérifie si label = h(m, k). Si Alice affirme avoir envoyé avec succès le message m à un récipiendaire Bi , elle présente au juge m, label , c, k, Bi , β ′ ainsi que EOR i , EOR i,k ou éventuellement con k . À nouveau m et k doivent parvenir confidentiellement au juge. Le juge vérifie si le chiffré c correspond au chiffrement de m au moyen de k, si Bi ∈ β ′ puis il vérifie, au moyen du hachage de c, les différentes signatures reçues ainsi que la validité du label (label = h(m, k)). Le comportement de la tierce partie de confiance Si la TPC s’allie avec Alice, lors d’un recouvrement, la tierce partie peut lui transmettre con k et ne rien envoyer de valide aux membres de β ′ . De plus, si les membres de β ′ font alors un recouvrement, la tierce partie peut à nouveau soit ne rien leur transmettre, ou leur transmettre des informations erronées. S’il n’est pas possible de prouver que la tierce partie a un tel comportement, il est cependant détectable si elle répond toujours early ou si elle n’envoie rien ou envoie des informations fausses alors que les canaux qu’elle utilise sont réactifs. De même, si la TPC s’allie avec certains membres de β ′ , elle peut leur transmettre personnellement con k et ne rien diffuser ou diffuser des informations incorrectes aux autres acteurs cibles (y compris Alice). À nouveau, un recouvrement n’apporterait rien de plus aux acteurs cibles floués. Ce comportement de la TPC est détectable mais non prouvable. Si la TPC s’allie avec un membre de β\β ′ , elle peut lui procurer une preuve de non-répudiation à l’origine complète en lui transmettant un con k composé de la signature de la TPC sur un ensemble de récipiendaires contenant l’acteur cible allié. La preuve de non-répudiation à l’origine est composée de EOO qui contient β auquel il appartient et de con k qu’il reçoit de la tierce partie. Une telle action de la tierce partie est cependant détectable et prouvable si la TPC est mise au défi de présenter le message signé par Alice, obtenu au cours du protocole de recouvrement lorsque la TPC a consulté le répertoire public d’Alice. En effet, ce message signé par Alice ne contiendra pas le récipiendaire allié. Si la TPC s’allie avec un acteur n’appartenant pas à β, elle ne peut lui faire obtenir une preuve de non-répudiation à l’origine valide puisque la tierce partie génère un con k basé sur un ensemble de récipiendaire incluant cet acteur cible 170 Chapitre 6 : Non-répudiation de groupe allié, alors que le EOO émis par Alice ne le contient pas. La preuve de nonrépudiation est alors invalide. Remarquons enfin, que la tierce partie peut réaliser une coalition avec Alice et certains récipiendaires de β en cumulant les comportements décrits ci-dessus. La viabilité Théorème 6.13 Si les acteurs cibles se savent honnêtes, le protocole est viable. Preuve : Avec l’hypothèse des canaux réactifs entre la TPC et les acteurs cibles, le protocole peut être prouvé viable. En effet, les acteurs cibles étant honnêtes, soit le protocole principal s’exécute jusqu’à son terme, soit le protocole de recouvrement est exécuté par les acteurs cibles. Ce protocole de recouvrement se terminera avec succès grâce à la réactivité des canaux utilisés. Remarquons que si, au deuxième envoi du protocole principal, certains messages n’arrivent pas à Alice, cette dernière attendra, sachant tous les membres de β honnêtes, qu’ils réalisent le protocole de recouvrement pour recevoir de la TPC les informations nécessaires. ¤ Remarquons que si les acteurs cibles sont honnêtes, mais ignorent le comportement les uns des autres, Alice risque d’exclure de β ′ un membre de β si elle ne reçoit pas toutes les confirmations au deuxième envoi du protocole principal. Ainsi pour respecter la propriété de viabilité, il est nécessaire que le canal de communication entre les acteurs cibles soit opérationnel, et ainsi seul le protocole principal s’exécutera. Remarques Par la présence des noms des acteurs cibles dans les messages, aucun anonymat n’est assuré. Un aspect important de la sécurité des deux derniers protocoles présentés consiste en la prévention de coalitions entre certains acteurs cibles qui voudraient exclure un ou plusieurs autres acteurs cibles du protocole. Comme les Bi ne coopèrent pas au cours des protocoles proposés, mais communiquent chacun directement avec Alice et la TPC, à moins d’empêcher physiquement un récipiendaire de communiquer, une coalition de Bi ne peut isoler un acteur cible. De son côté, Alice peut toujours composer l’ensemble β ′ (reprenant les Bi avec lesquels elle désire mener le protocole à son terme) à sa guise. Elle n’a cependant, comme nous l’avons vu, aucun intérêt à tricher sur la composition de cet ensemble. De la même manière, une coalition entre Alice et certains Bi ne peut briser l’équité vis à vis d’acteurs extérieurs à la coalition. Enfin, le chiffrement de groupe, que nous avons proposé, ne se base que sur des informations publiques, donc, à nouveau, les récipiendaires n’intervenant pas lors de la réalisation de ce chiffrement, une coalition de Bi ne permet pas d’exclure un récipiendaire. Les protocoles de non-répudiation implémentant l’équité véritable, présentés à la section 4.6, ne sont pas aisément transposables en des protocoles de non- 6.6 Protocoles sans tierce partie de confiance 171 répudiation de groupe. En effet, le protocole principal débute par l’envoi, réalisé par Alice, d’une mise en gage de la preuve de non-répudiation à l’origine sur le message m qu’elle désire transmettre. Cette signature mise en gage d’Alice, peut être transformée en sa signature finale, et donc en une preuve de non-répudiation à l’origine, par elle-même ou par la TPC. Le problème est qu’au premier envoi, Alice ignore quels membres de β vont répondre à son envoi et poursuivre le protocole. Les membres concernés par la preuve de non-répudiation à l’origine sont, en effet, nommés dans cette preuve de non-répudiation à l’origine. Alice ne peut donc au premier envoi composer la mise en gage de la preuve de nonrépudiation7 . 6.6 Protocoles sans tierce partie de confiance Les techniques de chiffrement de groupe évoquées au cours de ce chapitre peuvent aussi être utilisées pour réaliser un protocole de non-répudiation de groupe sans TPC, basé sur le protocole de non-répudiation décrit à la section 5.5. Au cours du protocole, Alice transmet une valeur aléatoire ou la clé de déchiffrement, chiffrée pour l’ensemble des récipiendaires ayant accusé réception de la valeur aléatoire précédemment envoyée par Alice. La première valeur aléatoire serait donc chiffrée pour l’ensemble des récipiendaires, et les valeurs suivantes chiffrées pour le sous-ensemble des récipiendaires accusant réception dans les délais prescrits par le protocole. Finalement, la clé sera envoyée à un ensemble de récipiendaires qui auront accusé à chaque fois réception des messages reçus dans les délais prescrits. Ces derniers devront accuser réception une dernière fois pour permettre à Alice d’obtenir sa preuve de non-répudiation à la réception. Si le sous-ensemble de récipiendaires ayant reçu la clé au nième envoi est de taille m, la probabilité pour qu’au moins un acteur cible n’accuse pas réception est, dans un contexte optimiste où les acteurs sont indépendants, 1 − (1 − θ) m (θ étant le paramètre de succès de la distribution géométrique que nous proposons d’utiliser à la section 5.5). Un tel protocole souffre cependant de nombreuses contraintes. Tout d’abord Alice doit chiffrer différemment les valeurs aléatoires (puis la clé de déchiffrement) au cours du protocole (puisque avant de recevoir les accusés de réception de l’envoi précédent, elle ignore à qui il faudra envoyer la valeur suivante). Ce chiffrement de groupe devra être réalisé en tenant compte de la qualité de service des canaux opérationnels ou des délais maximum d’attente prévus. Aussi, le protocole devra être configuré sur base de canaux n’ayant éventuellement pas les mêmes caractéristiques en terme de délais de transmission d’un message. Il faut, de plus, éviter les coalitions de récipiendaires qui pourraient mettre en commun des ressources afin de détecter, entre deux envois de valeurs provenant d’Alice, si la dernière valeur reçue est la clé ou non (en profitant, éventuellement, du 7 Il pourrait cependant être intéressant d’imaginer un protocole tel qu’aucun récipiendaire ne puisse rester sourd à la transaction, à moins d’émettre un message signé indiquant son abandon du protocole et son renoncement à la preuve de non-répudiation à l’origine que la TPC pourrait éventuellement produire. 172 Chapitre 6 : Non-répudiation de groupe maillon le plus faible, à savoir le canal assurant la transmission la plus lente). D’un autre côté, en cas de tentative de tricherie, le travail des récipiendaires est plus important que dans le contexte du protocole à deux acteurs cibles ; chaque message reçu doit être déchiffré pour obtenir la valeur transmise par Alice, puis seulement le déchiffrement du message chiffré reçu au début du protocole peut commencer. Une autre approche envisageable consiste à découper le message à transmettre en morceaux et à émettre successivement ces morceaux au risque de ne pas recevoir un accusé de réception. Ainsi, si un morceau du message est émis sans qu’un accusé de réception correspondant ne soit transmis, le morceau suivant n’est pas envoyé, seul ce morceau est « perdu » et à tous les morceaux précédents correspondent un accusé de réception. Dans le cadre de la non-répudiation en groupe il peut aussi être intéressant de pouvoir non seulement émettre des messages à destination de plusieurs acteurs cibles, mais aussi de pouvoir émettre des messages différents lors d’une même émission. Nous pouvons combiner ces deux derniers aspects (envois à risque de messages et « multi-diffusion ») pour mettre sur pied un protocole non équitable de non-répudiation de groupe sans TPC. Au cours du protocole, Alice désire envoyer une série de messages à un ensemble d’acteurs récipiendaires. Chacun de ces messages devra être de peu de valeur, de manière à ce que, si Alice n’en obtient pas un accusé de réception, son préjudice soit minime. Alice commencera par diffuser le premier message, les récipiendaires accusant réception recevront le message suivant, et ainsi de suite. Cependant si des récipiendaires envoient un accusé de réception tardivement, Alice leur enverra tout de même, après réception de leur accusé de réception, le message qui suit le dernier message qu’ils ont chacun reçu. Ainsi Alice peut être amenée à devoir envoyer un message mi à un ensemble de récipiendaires, ainsi qu’un message mj avec j 6= i à un autre ensemble de récipiendaires. Notre volonté est qu’Alice ne réalise qu’une seule diffusion à chaque étape contenant les différents messages à envoyer. Protocole 6.4 Un protocole d’échange sans tierce partie de confiance Les deux envois répétés du protocole sont : 1. A ⇒ β : c 2. Bj → A : fNRRBj ,i , A, label , NRR Bj ,i Les prémices Soit M = (m1 , . . . , mn ) la série de messages qu’Alice désire diffuser. Chaque acteur cible récipiendaire potentiel, Bi , partage secrètement avec Alice un premier pi distinct et une graine8 ri . Tous les acteurs cibles connaissent aussi le nombre n (= |M |) de messages de la série de messages qu’Alice s’apprête à diffuser. Alice et l’acteur récipiendaire i initialisent alors tous deux une variable n i à n. 8 seed en anglais. 6.6 Protocoles sans tierce partie de confiance 173 Les preuves La preuve de non-répudiation à l’origine du message m′ i produit par Alice est : ¡ ¡ ¢¢ NRO δ,i = SigA fNRO δ,i , δ, label, Cδ m′i où δ est l’ensemble des récipiendaires du message m′i , et label le label choisi par Alice et associé à la session du protocole. La preuve de non-répudiation à la réception du message m′ i produit par le récipiendaire Bj est : ³ ´ NRR Bj ,i = SigBj fNRRBj ,i , A, label , NRO δ,i où Bj est un des membres de δ Le protocole Soit β l’ensemble des récipiendaires auxquels Alice désire envoyer les messages m1 à mn . Le protocole consiste en une succession de phases telles que, à chaque phase : 1. Alice désire diffuser le message m1 à un ensemble de récipiendaires β1 n’ayant pas encore reçu ce message, m2 à un ensemble de récipiendaire β2 ayant accusé réception du message m1 et n’ayant pas encore reçu le message m2 ,. . . , le message mn à un ensemble de récipiendaires βn ayant accusé réception du message mn−1 et n’ayant pas encore reçu le message mn , avec : – β = β0 ∪ β1 ∪ · · · ∪ βn ∪ βn+1 , – ∀i 6= j : βi ∩ βj est vide, – β0 composé des récipiendaires ayant reçu un message mi mais dont l’accusé de réception correspondant n’est pas (encore) parvenu à Alice, – βn+1 composé des récipiendaires ayant reçu les n messages et accusé réception de ceux-ci9 , – le message m′i composé du message mi (information cible qu’Alice désire transmettre), du label et de NRO βi ,i : m′i = fNRO βi ,i , βi , label , mi , NRO βi ,i Pour ce faire, elle résout les systèmes suivants au moyen du lemme Chinois (cf. section 6.4.3) : ( x1 ≡ hni (ri ) (mod pi ) ∀Bi ∈ β1 x1 ≡ 0 (mod ps ) ∀Bs ∈ β\β1 .. . ( n xn ≡ h j (rj ) (mod pj ) ∀Bj ∈ βn xn ≡ 0 (mod pt ) ∀Bt ∈ β\βn 9 Au départ, tous les βi (avec i 6= 1, 0 ≤ i ≤ n + 1) sont vides, sauf β1 qui contient tous les récipiendaires avec lesquels Alice veut communiquer. 174 Chapitre 6 : Non-répudiation de groupe où hx (y) correspond à x hachages successifs de y. Alice calcule alors (arithmétiquement) : c= n X i=1 ¡ ¢ xi · Cβi m′i et diffuse c à l’intention des membres de β : A⇒β :c Remarquons qu’au début du protocole, lors du premier envoi, tous les récipiendaires sont dans β1 (tous les autres ensembles étant vides). 2. Un récipiendaire Bj d’un ensemble βi retrouve mi en déchiffrant le résultat de : c · (hnj (rj ))−1 mod pj Les membres de β\βn+1 sont sensés accuser réception du dernier message qu’ils ont reçu d’Alice : Bj → A : fNRRBj ,i , A, label , NRR Bj ,i Alice et Bj mettent alors à jour nj : nj = nj − 1. Alice collecte les accusés de réception et recompose les ensembles βi avec les récipiendaires ayant accusé réception du message mi−1 lors de la phase en cours, pour 1 < i ≤ n ; βn+1 est composé des récipiendaires ayant accusé réception de mn , β1 est vidé, et les récipiendaires n’ayant pas envoyé un accusé de réception relatif au dernier message reçu se retrouvent dans β 0 . En effet, un récipiendaire n’ayant pas accusé réception d’un message ne recevra plus de message (les récipiendaires appartenant à β0 ne reçoivent aucun message) tant qu’il n’aura pas envoyé l’accusé de réception attendu. En particulier, lors du premier envoi du protocole, lors de la première phase, tous les membres de β ont reçu le premier message (β1 = β et tous les βi , avec i 6= 1 et 0 ≤ i ≤ n + 1, sont vides), Alice ne doit donc plus envoyer ce premier message à nouveau. Les récipiendaires n’ayant accusé réception d’aucun message ne peuvent rester dans β1 sous peine de recevoir à chaque envoi le message m1 , ils sont ainsi mis, après le premier envoi, dans β0 . Remarques Le protocole n’offre évidemment aucune équité, puisqu’un message et sa preuve de non-répudiation à l’origine peuvent être émis, au cours d’une étape du protocole, sans certitude que la preuve de non-répudiation à la réception correspondante sera transmise. Le principe ressemble par certains aspects aux protocoles proposés par Syverson pour se passer d’une TPC. À tout moment un récipiendaire peut obtenir un message sans en accuser réception. Aussi Alice 6.7 Conclusion 175 peut décider d’exclure un récipiendaire de ses prochains envois, même si celui-ci a accusé réception des messages précédents. Un défaut est la taille de c qui est composé des xi résultants des résolutions des systèmes d’équations dont les solutions peuvent être aussi grandes que le produit de tous les pi ∀i ∈ [1, n]. Un des buts recherchés est la diffusion de messages et non l’envoi par Alice de messages séparés pour chaque récipiendaire. Il n’y a donc pas de gain en quantité d’informations transmises, mais bien en simplicité de communication (en permettant une diffusion plutôt que plusieurs envois à chaque étape du protocole). Remarquons enfin que chaque message mi doit être plus petit que tous les premiers pj des récipiendaires de β, ∀i, j. 6.7 Conclusion Nous terminons ainsi notre étude des protocoles de non-répudiation par les protocoles de non-répudiation de groupe. Nous avons considéré des généralisations des protocoles avec TPC on-line et off-line. Puis nous avons discuté de protocoles de non-répudiation de groupe sans TPC. Nous avons alors pu nous rendre compte que la difficulté que nous avons rencontrée pour obtenir des protocoles de non-répudiation à deux acteurs cibles sans TPC est sensiblement amplifiée pour obtenir des protocoles de non-répudiation de groupe sans TPC. Chapitre 7 Conclusion Pour conclure ce travail, nous nous proposons de récapituler brièvement ses différents aspects et contributions originales. Nous avons, dans un premier temps, proposé un modèle de protocoles d’échange. Nous avons formalisé itérativement les acteurs ou entités en communication, les canaux de communication, les qualités de ces canaux (incertain, réactif, et opérationnel) puis les protocoles et en particulier les protocoles d’échange. Sur base de ce modèle, nous avons formalisé, entre autres, les notions d’équité (équité forte, faible et probabiliste). Pour ce faire nous avons introduit la notion de point de complétude. Cette modélisation nous a permis d’uniformiser notre approche des différents protocoles. Le second objectif de ce travail a consisté à présenter, sur base du modèle proposé, une vision globale et structurée des protocoles de non-répudiation connus au moment de la rédaction. Beaucoup de résultats épars existaient et une mise en forme structurée de ceux-ci apparaissait nécessaire. La quasi totalité des protocoles de non-répudiation existants se basant sur une tierce partie de confiance, l’évolution des contraintes pesant sur celle-ci apparaît clairement au travers de la compilation structurée proposée. Nous avons alors proposé de nouveaux protocoles de non-répudiation pour chaque évolution clé identifiée : protocoles avec tierce partie de confiance off-line (à la section 4.4.3), protocoles avec tierce partie de confiance respectant l’équité véritable (à la section 4.6), protocoles sans tierce partie de confiance (à la section 5.5), protocoles de groupe avec et sans tierce partie de confiance (aux sections 6.4 et 6.5). Nous avons commencé par considérer les protocoles de non-répudiation à deux acteurs cibles avec tierce partie de confiance. Au cours de cette étude nous avons évoqué les protocoles de non-répudiation avec tierce partie de confiance in-line (au cours desquels la TPC agit à tout moment comme intermédiaire entre les entités en communication), on-line (la TPC intervient à chaque session du protocole, mais pas nécessairement comme intermédiaire obligé entre les entités) puis 178 Chapitre 7 : Conclusion off-line (où la TPC n’intervient dans le protocole que lors d’un problème ; cette approche est dite optimiste). Nous avons alors étudié les protocoles d’échange respectant l’équité dite véritable. Au cours de tels protocoles, la TPC off-line, si elle intervient dans le protocole, ne peut produire des informations distinguables de celles qui auraient été produites au cours d’une exécution du protocole à laquelle elle n’aurait pas pris part. Nous avons proposé un protocole corrigeant certains manquements des protocoles existants, puis nous avons proposé des protocoles d’échange, dont un de non-répudiation, vérifiant l’équité véritable. Nous avons, par la suite étudié, les protocoles de non-répudiation à deux acteurs cibles sans tierce partie de confiance. Constatant l’absence de résultats significatifs, nous avons proposé un premier protocole de non-répudiation sans TPC assurant l’équité de manière probabiliste. L’étude des protocoles de non-répudiation à deux acteurs cibles terminée, nous avons considéré la généralisation naturelle des approches précédentes, à savoir les protocoles de non-répudiation de groupe. Aucun protocole de non-répudiation de groupe n’existant, nous avons proposé une topologie de communication distincte des topologies utilisées dans les quelques résultats existant dans le domaine des protocoles d’échange équitable. Nous proposons les premiers protocoles de nonrépudiation de groupe avec tierce partie on-line et off-line puis décrivons un protocole d’échange de groupe sans tierce partie de confiance. L’étude réalisée peut bien sûr être poursuivie dans diverses directions. Tout d’abord une mise en œuvre pratique des protocoles existants ou proposés a été en partie réalisée par Steve Kremer dans [46] et doit encore être étoffée. Une approche systématique de la vérification des protocoles doit aussi être réalisée. Les premiers résultats dans ce domaine viennent tout récemment d’être proposés [49] à l’aide d’un outil de vérification formel basé sur la théorie des jeux. Nous avons ébauché, dans le cadre des protocoles de non-répudiation avec tierce partie de confiance, l’étude de l’impact d’une déviance de comportement de la tierce partie de confiance. Cette étude devra encore être raffinée et systématisée pour aboutir à la modification éventuelle des protocoles existants. En pratique, une tierce partie de confiance sera souvent un serveur répondant aux requêtes des entités désirant communiquer. Ce serveur sera bien entendu vulnérable, les protocoles devant alors pouvoir continuer à assurer l’équité aux entités honnêtes malgré une tierce partie de confiance se comportant malhonnêtement. Le respect de l’équité n’imposerait évidemment pas, dans ce cas, l’aboutissement de l’échange des preuves de non-répudiation, mais assurerait plutôt l’arrêt du protocole sans qu’aucune preuve ne soit échangée. Notons aussi, qu’en pratique, il faut se méfier des situations où l’une des parties en communication et la tierce partie de confiance ne font qu’un. Nous avons, au cours de ce travail, systématiquement évoqué le danger de coalitions entre Alice ou Bob et la TPC. L’étude réalisée a aussi mis en évidence que nombre de protocoles de non-répudiation nécessitent l’usage de canaux réactifs (souvent pour les connexions 179 avec la tierce partie de confiance). En pratique, les réseaux actuels n’offrent que rarement une telle qualité de service. Si l’étude de protocoles de non-répudiation ne nécessitant pas de tels canaux est encore à réaliser, nous remarquons cependant que dans les protocoles de non-répudiation les plus aboutis, l’équité n’est pas remise en question si les canaux ne sont pas opérationnels, seule la viabilité peut en être affectée. Une qualité de service aussi restrictive sur les canaux est nécessaire afin de ne pas risquer de perdre l’équité (même sous l’hypothèse de l’éventuelle honnêteté des parties en communication) au cours de certains protocoles (en particulier, les protocoles avec tierce partie de confiance). Remarquons cependant que le protocole que nous proposons à la section 5.5, s’il est gourmand en communication, ne nécessite pas, dans sa version avec délais, de réseau opérationnel ou même réactif. En ce sens, il est le seul protocole étudié offrant cette possibilité. Enfin, si les protocoles de non-répudiation ont dès aujourd’hui un intérêt pratique dans le cadre du commerce électronique, il nous semble qu’ils auront encore d’autres rôles à jouer. Par exemple, les protocoles de courrier électronique actuels prévoient de transiter par des serveurs de courrier, y compris donc pour réaliser les courriers électroniques recommandés. Il faut cependant envisager l’usage des protocoles de non-répudiation où les correspondants peuvent potentiellement communiquer directement entre eux et obtenir les aspects de non-répudiabilité désirés. Les procédures de votes électroniques peuvent aussi trouver une source d’inspiration dans les protocoles de non-répudiation. Les électeurs doivent recevoir une preuve de non-répudiation à la réception de leur vote, empêchant ainsi un tiers de nier qu’ils aient voté. Et si un électeur affirme ne pas avoir voté, une preuve de non-répudiation à l’origine du vote peut être présentée. Remarquons cependant que les protocoles de non-répudiation ne peuvent évidemment pas être utilisés tel quels, le vote devant souvent être anonyme, des mécanismes additionnels doivent donc être greffés sur les protocoles bruts de non-répudiation. Une extension des protocoles de votes électroniques consiste en tous les protocoles réalisant des mécanismes participatifs : sondages, référendum, pétition. . . Et à nouveau chaque usage requiert éventuellement l’un ou l’autre outil sécuritaire supplémentaire. Bibliographie [1] M. Abadi and R. M. Needham. Prudent engineering practice for cryptographic protocols. In IEEE Computer Society Symposium on Research in Security and Privacy, pages 122–136, 1994. [2] A. V. Aho, J. E. Hopcroft, and J. D. Ullman. The design and analysis of computer algorithms. Addison-Wesley, 1974. [3] S. G. Akl. Digital Signatures : A Tutorial Survey. IEEE Computer, 16(2) :15–24, Feb. 1983. [4] R. Anderson and R. Needham. Robustness principles for public key protocols. In Advances in Cryptology : Proceedings of Crypto 95, Lecture Notes in Computer Science, pages 1–14. Springer-Verlag, Aug. 1995. [5] N. Asokan. Fairness in Electronic Commerce. PhD thesis, University of Waterloo, May 1998. [6] N. Asokan, B. Baum-Waidner, M. Schunter, and M. Waidner. Optimistic synchronous multi-party contract signing. Research Report RZ 3089, IBM Research Division, Dec. 1998. [7] N. Asokan, M. Schunter, and M. Waidner. Optimistic protocols for multiparty fair exchange. Research Report RZ 2892, IBM Research, Dec. 1996. [8] N. Asokan, V. Shoup, and M. Waidner. Asynchronous protocols for optimistic fair exchange. Research Report RZ 2976, IBM Research, Nov. 1997. [9] E. Bach. Discrete logarithms and factoring. Technical Report UCB/CSD 84/186, Computer Science Division (EECS), University of California, Berkeley, California, 1984. [10] A. Bahreman and J. D. Tygar. Certified electronic mail. In Proceedings of the Symposium on Network and Distributed System Security, pages 3–19. Internet Society, Feb. 1994. [11] F. Bao, R. Deng, K. Q. Nguyen, and V. Varadharajan. Multi-party fair exchange with off-line trusted neutral party. In DEXA 99 Workshop on Electronic Commerce Security, pages 858–863. IEEE Press, 1999. [12] F. Bao, R. H. Deng, and W. Mao. Efficient and practical fair exchange protocols with off-line TTP. In Proceedings of the 19th IEEE Symposium on Security and Privacy, pages 77–85, May 1998. [13] B. Baum-Waidner and M. Waidner. Optimistic asynchronous multi-party contract signing. Research Report RZ 3078, IBM Research Division, Nov. 1998. 182 Bibliographie [14] M. Bellare, D. Pointcheval, and P. Rogaway. Authenticated key exchange secure against dictionary attacks. In Advances in Cryptology : Proceedings of Eurocrypt 2000, volume 1807 of Lecture Notes in Computer Science, pages 139–155. Springer-Verlag, May 2000. [15] M. Ben-Or, O. Goldreich, S. Micali, and R. Rivest. A fair protocol for signing contracts. IEEE Transaction on Information Theory, 36(1) :40–46, Jan. 1990. [16] S. Berkovits. How to broadcast a secret. In Advances in Cryptology : Proceedings of Eurocrypt 91, volume 547 of Lecture Notes in Computer Science, pages 535–541. Springer-Verlag, Apr. 1991. [17] L. Blum, M. Blum, and M. Shub. A simple unpredictable pseudo-random number generator. SIAM Journal on Computing, 15(2) :364–383, May 1986. [18] M. Blum. How to exchange (secret) keys. ACM Transactions on Computer Systems, 1(2) :175–193, May 1983. Previously published in ACM STOC 83 proceedings, pages 440–447. [19] K. S. Booth. Authentication of signatures using public key encryption. Communications of the ACM, 24(11) :772–774, Nov. 1981. [20] A. Bosselaers and B. Preneel. Integrity primitives for secure information systems : final RIPE report of RACE Integrity Primitives Evaluation (R1040), volume 1007 of Lecture Notes in Computer Science. SpringerVerlag, 1995. [21] J. Boyar, D. Chaum, I. Damgård, and T. Pedersen. Convertible undeniable signatures. In Advances in Cryptology : Proceedings of Crypto 90, volume 537 of Lecture Notes in Computer Science, pages 189–205. Springer-Verlag, Aug. 1990. [22] C. Boyd. Some applications of multiple key ciphers. In Advances in Cryptology : Proceedings of Eurocrypt 88, volume 330 of Lecture Notes in Computer Science, pages 455–467. Springer-Verlag, May 1988. [23] C. Boyd and E. Foo. Off-line fair payment protocols using convertible signatures. In Proceedings of Asiacrypt 1998, volume 1514, pages 271–285. Springer-Verlag, 1998. [24] C. Boyd and W. Mao. Designing secure key exchange protocols. In Proceedings of Esorics 94, volume 875 of Lecture Notes in Computer Science, pages 93–106. Springer-Verlag, Nov. 1994. [25] D. Chaum. Designated confirmer signatures. In Advances in Cryptology : Proceedings of Eurocrypt 94, volume 950 of Lecture Notes in Computer Science, pages 86–91. Springer-Verlag, May 1994. [26] D. Chaum and H. V. Antwerpen. Undeniable signatures. In Advances in Cryptology : Proceedings of Crypto 89, volume 435 of Lecture Notes in Computer Science, pages 212–216. Springer-Verlag, Aug. 1989. [27] L. Chen. Efficient fair exchange with verifiable confirmation of signatures. In Proceedings of Asiacrypt 1998, volume 1514, pages 286–299. SpringerVerlag, 1998. Bibliographie 183 [28] G.-H. Chiou and W.-T. Chen. Secure broadcasting using the secure lock. IEEE Transactions on Software Engineering, 15(8) :929–934, Aug. 1989. [29] T. Coffey and P. Saidha. Non-repudiation with mandatory proof of receipt. ACM Computer Communication Review, 26(1) :6–17, 1996. [30] I. Damgård and T. Pedersenr. New convertible undeniable signature schemes. In Advances in Cryptology : Proceedings of Eurocrypt’96, volume 1070 of Lecture Notes in Computer Science, pages 372–386. Springer-Verlag, 1996. [31] R. H. Deng, L. Gong, A. A. Lazar, and W. Wang. Practical protocols for certified electronic mail. Journal of Network and System Management, 4(3) :279–297, 1996. [32] D. E. Denning. Protecting public keys and signature keys. IEEE Computer, Feb. 1983. [33] Y. Desmedt. Society and group-oriented cryptography : a new concept. In Advances in Cryptology : Proceedings of Crypto 87, volume 293 of Lecture Notes in Computer Science, pages 120–127. Springer-Verlag, 1987. [34] C. M. Ellison, B. Frantz, B. Lampson, R. Rivest, B. M. Thomas, and T. Ylonen. Simple public key certificate. Internet Engineering Task Force Draft IETF, July 1997. [35] S. Even, O. Goldreich, and A. Lempel. A randomized protocol for signing contracts. Communications of the ACM, 28(6) :637–647, June 1985. [36] B. Fox and B. LaMacchia. Certificate revocation : Mechanics and meaning. In International Conference on Financial Cryptography, volume 1465 of Lecture Notes in Computer Science. Springer-Verlag, 1998. [37] N. Francez. Fairness. Springer-Verlag, 1986. Texts and Monographs in Computer Science. [38] M. Franklin and G. Tsudik. Secure group barter : Multi-party fair exchange with semi-trusted neutral parties. In Proceedings of Financial Cryptography, volume 1465. Springer-Verlag, 1998. [39] M. K. Franklin and M. K. Reiter. Fair exchange with a semi-trusted third party. In 4th ACM Conference on Computer and Communications Security, pages 1–5. ACM Press, Apr. 1997. [40] M. R. Garey and D. S. Johnson. Computers and Intractability : A Guide to NP-Completeness. W.H. Freeman and Company, 1979. [41] I. Gassko, P. S. Gemmell, and P. MacKenzie. Efficient and fresh certification. In International Workshop on Practice and Theory in Public Key Cryptography 2000, Lecture Notes in Computer Science, pages 342–353. Springer-Verlag, Jan. 2000. [42] D. Gollmann. Computer Security. John Wiley-Sons, 1st edition edition, 1999. [43] Y. Han. Investigation of non-repudiation protocols. In ACISP : Information Security and Privacy : Australasian Conference, volume 1172 of Lecture Notes in Computer Science, pages 38–47. Springer-Verlag, 1996. 184 Bibliographie [44] T. Hwang. Cryptosystem for group oriented cryptography. In Advances in Cryptology : Proceedings of Eurocrypt 90, volume 473 of Lecture Notes in Computer Science, pages 352–360. Springer-Verlag, May 1990. [45] N. Jefferies, C. Mitchell, and M. Walker. A proposed architecture for trusted third party services. In International conference on Cryptography : policy and algorithms, volume 1029, pages 98–104. Springer-Verlag, 1996. [46] S. Kremer. A study of several non-repudiation protocols. Master’s thesis, Université Libre de Bruxelles, 1999. [47] S. Kremer and O. Markowitch. A multi-party non-repudiation protocol. In SEC 2000 : 15th International Conference on Information Security, IFIP World Computer Congress, pages 271–280. Kluwer Academic, Aug. 2000. [48] S. Kremer and O. Markowitch. Optimistic non-repudiable information exchange. In 21st Symposium on Information Theory in the Benelux, pages 139–146. Werkgemeenschap Informatie en Communicatietheorie, May 2000. [49] S. Kremer and J.-F. Raskin. Formal verification of non-repudiation protocols. A game approach. In Proceedings of the Workshop on Formal Methods and Computer Security, pages 1–15, July 2000. [50] P. Landrock. TTPs overview — concepts and review of the state of the art from a technical point of view. In State of the Art in Applied Cryptography, volume 1528, pages 241–263. Springer-Verlag, June 1998. [51] O. Markowitch and S. Kremer. An optimistic multi-party non-repudiation protocol. In Icisc 2000 : 3rd International Conference on Information Security and Cryptology, Lecture Notes in Computer Science. Springer-Verlag, Dec. 2000. [52] O. Markowitch and Y. Roggeman. Probabilistic non-repudiation without trusted third party. In Second Workshop on Security in Communication Network 99. University of Salerno, September 1999. [53] L. Matthiessen. Le problème des restes dans l’ouvrage chinois Swang-King de Sum-Tzi et dans l’ouvrage Ta Sen Lei Schu de Yihhing. Comptes rendus de l’Académie de Paris, 92 :291–294, 1881. [54] A. J. Menezes, P. C. V. Oorschot, and S. A. Vanstone. Handbook of applied cryptography. Series on discrete mathematics and its applications. CRC Press, 1997. [55] M. Naor and K. Nissim. Certificate revocation and certificate update. In Proceedings of the 7th USENIX Security Symposium (SECURITY-98), pages 217–228. Usenix Association, Jan. 1998. [56] M. Naor and K. Nissim. Certificate revocation and certificate update. Technical Report CS99-05, Weizmann Institute of Science, Faculty of Mathematics and Computer Science, Jan. 1, 1999. [57] C. Pfleeger. Security in computing. Prentice Hall, 2nd edition edition, 1997. [58] G. Poupard and J. Stern. Security analysis of a practical “on the fly” authentication and signature generation. In Advances in Cryptology : Proceedings of Eurocrypt’98, volume 1403 of Lecture Notes in Computer Science, pages 422–436. Springer-Verlag, 1998. Bibliographie 185 [59] M. O. Rabin. Transaction protection by beacons. Journal of Computer and System Sciences, 27(2) :256–267, Oct. 1983. [60] J. Riordan and B. Schneier. A certified E-mail protocol. In ACM, editor, Proceedings of the 14th Annual Computer Security Applications Conference, pages 347–351, 1998. [61] R. Rivest, A. Shamir, and L. Adleman. On digital signatures and public key cryptosystems. Communication of the ACM., 21 :120–126, 1978. [62] R. L. Rivest, A. Shamir, and D. A. Wagner. Time-lock puzzles and timedrelease crypto. Technical Report MIT/LCS/TR-684, Massachusetts Institute of Technology, Feb. 1996. [63] K. Rosen. Elementary number theory and its applications. Addison-Welsey, 3rd edition, 1993. [64] R. Rueppel. Revocation and revocation certificates. In Proceedings of the Trusted Third Party Workshop, Barcelona, Spain, pages 1–8, Feb. 1995. [65] C. P. Schnorr. Efficient identification and signatures for smart cards. In Advances in Cryptology : Proceedings of Crypto 89, volume 435, pages 239– 252. Springer-Verlag, Aug. 1989. [66] D. R. Stinson. Cryptography Theory and Practice. CRC Press, 1995. [67] D. R. Stinson and R. Wei. Bibliography on authentication codes. http ://cacr.math.uwaterloo.ca/˜dstinson/acbib.html, October 1998. [68] P. Syverson. Weakly secret bit commitment : Applications to lotteries and fair exchange. In Proceedings of the 1998 IEEE Computer Security Foundations Workshop (CSFW11), pages 2–13, june 1998. [69] T. Tedrick. How to exchange half a bit. In Advances in Cryptology : Proceedings of Crypto 83, pages 147–151. Plenum Press, New York and London, 1984, Aug. 1983. [70] T. Tedrick. Fair exchange of secrets. In Advances in Cryptology : Proceedings of Crypto 84, volume 196 of Lecture Notes in Computer Science, pages 434–438. Springer-Verlag, 1985. [71] J. V. Tilburg. Secret-key exchange with authentication. In Computer Security and Industrial Cryptography, volume 741 of Lecture Notes in Computer Science, pages 71–86. Springer-Verlag, 1993. [72] C. S. Wallace. Physically random generator. Computer Systems Science and Engineering, 5(2) :82–88, Apr. 1990. [73] C. You, J. Zhou, and K. Lam. On the efficient implementation of fair nonrepudiation. Computer Communication Review, 28(5) :50–60, Oct. 1998. [74] N. Zhang and Q. Shi. Achieving non-repudiation of receipt. The Computer Journal, 39 :844–853, 1996. [75] J. Zhou. Non-repudiation. PhD thesis, University of London, Dec. 1996. [76] J. Zhou, R. Deng, and F. Bao. Evolution of fair non-repudiation with TTP. In ACISP : Information Security and Privacy : Australasian Conference, volume 1587 of Lecture Notes in Computer Science, pages 258–269. Springer-Verlag, 1999. 186 Bibliographie [77] J. Zhou, R. Deng, and F. Bao. Some remarks on a fair exchange protocol. In Proceedings of 2000 International Workshop on Practice and Theory in Public Key Cryptography, volume 1751 of Lecture Notes in Computer Science, pages 46–57. Springer-Verlag, Jan. 2000. [78] J. Zhou and D. Gollmann. Certified electronic mail. In ESORICS : European Symposium on Research in Computer Security, volume 1146, pages 160–171. Springer-Verlag, 1996. [79] J. Zhou and D. Gollmann. An efficient non-repudiation protocol. In Proceedings of the 10th Computer Security Foundations Workshop, pages 126–132. IEEE Computer Society Press, June 1997. [80] J. Zhou and K. Lam. Securing digital signatures for non-repudiation. Computer Communications, 22(8) :710–716, May 1999. [81] D. Zuckerman. General weak random sources. In Proceedings of the 31st IEEE Symposium on Foundations of Computer Science, pages 534–543, 1990.