• Aucun résultat trouvé

Distribution

Dans le document Services AAA dans les réseaux adhoc mobiles (Page 111-114)

4.4 Protocole d’authentification proposé

4.4.2 Distribution

La méthode d’authentification étant dépendante, en général, des opérations cryptographiques, il suffit, donc, que les algorithmes cryptographiques soient, eux-mêmes, exécutés de façon distribuée. A cette fin, nous avons eu recours à la cryptographie à seuil basée sur RSA. Celle-ci permet de distribuer la tâche d’authentification entre plusieurs pairs sans que chacun utilise une même clé privée. A la fin des opérations, une signature globale et unique du système est obtenue. Comme requis, les rôles des pairs pendant la phase d’authentifi- cation se trouvent ainsi complémentaires. Un aperçu du fonctionnement de la cryptographie à seuil est donné ci-dessous. L’annexe B donne des éléments de compréhension supplémentaires plus précis.

4.4.2.1 Cryptographie à seuil

Certaines organisations sont gérées par plusieurs mandataires. Pour certaines décisions, particulièrement importantes (utilisation de fortes sommes, engage- ments financiers ou techniques lourds, déclenchement d’un feu nucléaire,...), il est souhaité qu’elles soient cosignées par plusieurs des mandataires, usuelle- ment deux ou trois. C’est le problème de la co-émission. On pourrait imaginer que plusieurs exemplaires de la décision chacune signée individuellement par un mandataire puissent être acheminées, mais la lourdeur d’une procédure qui multiplie les clés de chiffrement fait que l’on ne souhaite pas procéder ainsi.

De même, on peut souhaiter qu’un message émis par un signataire unique ne puisse être déchiffré que si un certain nombre de destinataires sont pré- sents. C’est le problème de la co-réception. L’un et l’autre problèmes peuvent

4. C’est un type d’attaque où l’adversaire a la possibilité de choisir un texte spécifique à faire chiffrer par une partie afin d’obtenir une information supplémentaire sur sa clé secrète privée.

5. A doit connaître la clé publique de l’autorité de certification de B pour établir cette authenticité. En pratique, A possède un ensemble de certificats des autorités les plus connues et est en mesure, grâce à la relation hiérarchique qui les organise, de connaître et authentifier leurs clés publiques. Grâce à la clé publique de l’autorité de certification de B, A vérifie, en la déchiffrant, que la signature apposée au certificat de B a bien été générée par cette autorité.

se résoudre par des méthodes de cryptographie à seuil (en anglais threshold cryptography).

Dans la cryptographie à seuil, un secret partagé entre plusieurs entités per- met à un sous ensemble d’entre elles, de cardinal égal à un nombre seuil, de cosigner un message. C’est une méthode très appréciée dans les systèmes distri- bués car elle permet d’éviter le problème de point individuel de défaillance (en anglais single point of failure6).

On appelle « schéma cryptographique seuil (n, th) » tel que 1 ≤ th ≤ n utilisé par un système à n entités, un schéma vérifiant les conditions suivantes : 1. un secret du système est partagé en n parts de secret. Chaque part est

détenue par une entité du système7,

2. la connaissance de th parts ou plus permet de retrouver le secret du sys- tème,

3. la connaissance de th − 1 ou moins de parts ne permet en aucune façon de trouver le secret parce que toutes les valeurs possibles sont également probables,

4. un sous ensemble quelconque d’entités, dont le cardinal est supérieur ou égal à th, est capable de cosigner un message donné M.

Les points 2 et 3 impliquent que le système, muni de ce schéma, peut supporter jusqu’à th − 1 entités corrompues. Il est, par ailleurs, clair que pour que le système continue à fonctionner lorsqu’il y a th − 1 entités corrompues, il faut : th ! ⌊n+1

2 ⌋. Concernant le point 4, il est impératif qu’au moment de la co- signature, le secret ne soit calculé par aucune entité. Sinon une entité deviendrait capable de générer individuellement des signatures valides.

Shamir [49] a conçu une méthode de partage de secret répondant aux des- criptions des points 1, 2 et 3. Elle a été, ensuite, exploitée dans des travaux portants sur le problème de co-émission. Shoup [81] a, en particulier, mis en place un système de co-signature basé sur RSA et répondant à la description du point 4. Ces deux méthodes sont présentées ci-dessous.

Partage de secret Dans la bande dessinée Le secret de la licorne, Hergé montre une méthode basique de partage de secret et de sa reconstitution par la suite (cf. Figure 4.3). Le secret, lieu où se cache le trésor du pirate Rackam le Rouge, s’écrit sous forme d’une chaîne de caractères composée d’un nombre exprimant la latitude, puis la lettre N , puis un nombre exprimant la longitude, enfin la lettre W. Trois suites de caractères prises au hasard dans cette chaîne sont ensuite inscrites respectivement sur trois parchemins en préservant l’em- placement de chaque caractère dans le secret. Ainsi, une fois ces parchemins sont trouvés, ils sont superposés pour retrouver le secret.

Dans le partage de secret par Shamir [49], le calcul des parts de secret et la reconstitution se font grâce à l’emploi de polynômes sur l’anneau Zνdes entiers modulo ν (cf. section B.1 de l’annexe B).

On suppose qu’Alice désire partager entre les n membres B1, B2, . . . , Bn−1 de la famille Bernard un secret de la taille d’un tronçon soit un entier s < ν.

6. Le point individuel de défaillance est un point particulier du système qui, s’il s’arrêtait, impliquerait l’arrêt du système en entier.

7. Le cas où certaines entités détiennent plus d’une part est aussi envisageable. Ainsi, selon le nombre de parts possédées, un pouvoir plus ou moins grand est conféré à une entité.

4.4 Protocole d’authentification proposé 87

Figure 4.3 – Hergé, Le Secret de La Licorne, (Les Aventures de Tintin). Su- perposition des trois parchemins et résolution de l’énigme : les coordonnées de l’île où se cache le trésor du pirate Rackham le Rouge sont ainsi découverts Alice désire par ailleurs que th quelconques des Bi puissent reconstituer s mais que cela ne soit pas possible à th − 1 d’entre eux. Pour faire cela, Alice va tout d’abord construire un polynôme de degré th − 1 dont la valeur en zéro est s. En pratique, elle peut choisir au hasard des entiers a1, . . . , ath−1tous inférieurs à ν et définir le polynôme P par P (X) = s + a1X + a2X2+· · · + ath−1Xth−1.

Alice va ensuite acheminer (par un canal sûr) à chacun des Bi sa part de secret constitué de son numéro i et de la valeur P (i), soit (i, bi).

Maintenant lorsqu’une partie formée de th membres Bi1, Bi2, . . . , Bith de la

famille Bernard a besoin de connaître le secret, elle se réunit et reconstruit le polynôme P en utilisant le polynôme d’interpolation de Lagrange (cf. section B.1.2 de l’annexe B) puis calcule P (0)8.

Mais faire ce calcul implique que les membres du groupe s’accordent sur le choix de l’un d’entre eux qui les effectuera et pour cela admettent de remettre leurs éléments de secret à celui-ci. Bien sûr on peut facilement imaginer des procédures d’échanges permettant de garantir à chacun des membres d’être en possession des mêmes informations. Néanmoins, l’élu se trouve en situation de connaissance du secret qu’il pourra réutiliser plus tard, sans nécessairement consulter à nouveau les autres membres du groupe. Par exemple si s est une clé privée, il pourra désormais signer tout nouveau message sans référence aux autres membres du groupe.

4.4.2.2 Cryptographie à seuil basée sur RSA

Partage d’une clé privée RSA Pour mettre en place un schéma crypto- graphique seuil (n, th) dans Dist-AAA où n est le nombre des pairs AAA, un tiers de confiance, par exemple un opérateur, intervient pendant la phase d’ins- cription (cf. section 3.2.3.1 du chapitre 3). Il fixe, comme dans la section B.5 de l’annexe B, p et q et calcule ν = pq. Partant de e, il détermine l’exposant privé, u, inverse de l’exposant public, e, modulo ϕ(ν). Il donne alors à chacun

8. En fait, les calculs se simplifient un peu car on recherche les Li(0) qui sont des nombres et non les Liqui sont des polynômes.

des nœuds pairs AAA une part de clé privée. Pour cela, il traite la quantité u comme le secret à partager dans le paragraphe ci-dessus et envoie à chaque pair le triplet (ν, i, bi). On sait alors que u = P (0).

Calculs de parts d’une signature RSA Soit M l’information à signer par les pairs. Désormais, pour signer un tronçon de M (cf. section B.3 de l’annexe B) dont le haché (cf. section 2.4.2 du chapitre 2) est m, chaque pair calcule ci= mbi. On appelle cette quantité part de signature ou signature partielle du pair numéro i. Elle ne permet pas de retrouver bi en raison de la complexité du problème du logarithme discret. Ainsi, les bi restent la propriété exclusive des pairs associés.

Combinaison des parts de signature Les parts de signature sont envoyés à une entité, par exemple un client9, qui les combinera afin de trouver la signature globale du groupe des pairs AAA. Pour cela, il suffit de th parts de signature que nous supposerons, sans perte de généralité, être c1, c2,· · · , cth. En utilisant la section B.1.2, l’entité peut déterminer les Li(0) et calculer10 :

th " i=1 (ci)Li(0)= m !th i=1biLi(0)= mP(0)= mu (4.1)

On sait que mu est une signature qu’aurait pu générer une entité détenant la clé privée (ν, u) associée à la clé publique (ν, e). C’est, en fait, une signature globale des pairs AAA sur le tronçon m. Pour vérifier sa validité, il suffit de vérifier l’égalité (mu)e= m mod ν.

Dans le document Services AAA dans les réseaux adhoc mobiles (Page 111-114)