Présentation du stage de master 2 recherche informatique
université de Rennes 1 et Projet de Fin d'Etude de l’INSA de Rennes. Stage réalisé à TELECOM Bretagne, Rennes (anciennement nommé, ENST Bretagne).

Navigation

Présentation générale



Références
navig Bibliographie
navig Rapport final
    + navig Introduction
    + navig S-TGDH
    + navig Réputation


Présentations / soutenances

Valid XHTML 1.0 Strict Valid XHTML 1.0 Strict

S-TGDH, secure enhanced group management protocol in ad hoc networks

Présentation de l'étude S-TGDH

Sous l'impulsion de mes encadrants, j'ai commencé par étudiée les protocoles de gestion de groupes existant afin d'analyser les mécanismes, leur sécurité et leur adéquation avec ma problématique. Comme indiqué au niveau de la présentation des protocoles de gestion de groupes, le but est de permettre à des noeuds de former un groupe dit sécurisé. L'aspect sécurisé est du au fait qu'il parte tous une clé secrète commune. Cette clé peut être utilisé pour de nombreuses applications, mais la plupart de temps elle sert à chiffrer les communications pour être sûr que seuls les membres du groupe peuvent déchiffrer le message.

Il existe de nombreuses études dans ce domaine, pas forcément en adéquation avec les réseaux ad hoc. Dans le cadre de mon stage, je me suis focalisé sur l'étude de Gene Tsudik et al : Simple and fault-tolerant key agreement for dynamic collaborative groups. Le protocole proposé, TGDH, était adapté à mon étude sur plusieurs points. Il est premièrement distribué, ce qui fait qu'il est adapté aux réseaux ad hoc. Deuxièmement, il ne suppose pas l'existence d'une autorité centrale. Ces deux aspects m'ont paru un point de départ satisfaisant.

Cela m'a conduit à proposer le protocole S-TGDH, lequel renforce TGDH en plusieurs points. Il améliore la sécurité du protocole en ajoutant un mécanisme non centralisé pour l'authentification des noeuds. Il propose également différentes modifications des algorithmes de TGDH pour définir concrètement certaines opérations et pour améliorer (uniformiser) la répartition des charges de calculer, ce qui n'était pas le cas de TGDH.

Les différents sujets traités lors de mon stage sont présentés dans l'article pour CRiSIS'07 (voir plus loin), ainsi que dans mon rapport de stage. N'hésitez pas à vous y référer.

Protocole d'authentification

Au niveau des protocoles de groupes, la clé secrète permet d'assurer différentes propriétés de sécurité, telles que l'implicit key authentication ou encore la confidentialité des échanges. Cependant, cette clé ne peut pas être utilisé pour authentifier chaque station. Ce besoin en authentification interne peut être justifié par le fait que cette information nous permet de renforcer le protocole en cas d'attaques internes. De plus, bien que la clé secrète puisse être signée pour chiffrer les messages du groupes, il est préférable d'utiliser la clé de l'émetteur, afin de ne pas affaiblir la sécurité du groupe (attaques passives : écoutes et attaques statistiques sur la signature). De ce fait, nous avons proposé un échange de clés basé sur la version sécurisée du protocole Asokan-Ginzboorg. Cet échange ne requiert pas l'utilisation d'une autorité tierce de confiance. Toutefois, afin de limiter le nombre de messages échangés, l'échange se base sur le noeud dit initiateur du groupe proposé pour créer le groupe dans TGDH (et S-TGDH).

Notre solution est illustrée par l'image suivante (également disponible dans les différents rapports).
protocole d'authentification de S-TGDH

Optimisations algorithmiques

Au niveau des algorithmes, on peut constater que le protocole TGDH provoque une répartition non uniforme de la charge de calcul. Cette répartition dépend du choix de l'algorithme (celui de TGDH n'étant pas défini totalement, il reste certains choix à faire), mais on peut constater qu'un sous groupe de l'arbre (soit les fils gauches, soit les fils droits), aura une charge plus importante. Ce problème est principalement du au fait que dans TGDH, l'ensemble des noeuds de l'arbre sont virtuels, seules les feuilles représentent des noeuds du réseau.
Dans S-TGDH, nous avons modifié les algorithmes pour supprimer ces noeuds virtuels et répartir uniformément la charge de calcul.

En plus de cette optimisation au niveau de la charge de calcul, nous avons modifié les algorithmes afin de rendre le protocole plus stable. En effet, l'aspect distribué de la prise de la prise de décision (chaque noeud prend sa décision, laquelle est théoriquement la même pour tous) fait que différents noeuds du groupes peuvent prendre des décisions différentes, si des opérations se produisent dans un intervalle proche.
Supposons deux noeuds, N1 et N2. Si deux opérations (O1 et O2) surviennent, les délais de propagation dans le réseau, ainsi que le fait que N1 et N2 peuvent être à positions éloignées font que l'on peut avoir : N1: O1; O2 et N2: 02; O1. Dans TGDH, les opérations O1;O2 et O1;O2 peuvent être différentes dans certains cas (dans le cas d'un conflit au niveau d'un noeud). Afin d'éviter ce problème, nous avons modifié les algorithmes pour assurer que O1;O2 ~ O1;O2. Cela se fait en assurant que seuls les feuilles de l'arbre prennent les décisions (ajout, ...), sous certaines conditions.

Article pour CRiSIS'07

Notre proposition a été acceptée et présentée à la conférence CRiSIS'07, qui s'est déroulée à Marrakech en juillet 2007.
La pdf version finale de l'article présenté pour la conférence (version du Monday 23 November 2009 à 14:26) est disponible en téléchargement.
Vous pouvez également visiter cette page pour obtenir plus d'informations sur CRiSIS et notamment l'ensemble des documentations disponibles.

Simulateur

Afin de tester et montrer le bon fonctionnement de S-TGDH, j'ai développé un simulateur en Java mettant en application nos propositions. Une documentation explicative sur le simulateur (principes et utilisations) est disponible en version pdf pdf en français (version du Tuesday 20 July 2010 à 17:42) et pdf en anglais (version du Wednesday 21 July 2010 à 10:19). A noter que la version anglais est plus complète et qu'il s'agira de la version maintenue par défaut. La version française sera désormais mise à jour à partir de la version anglaise.

Archive jar du simulateur

Le simulateur est disponible en téléchargement. Comme indiqué dans la documentation explicative, l'ensemble des éléments n'ont pas été intégrés pour le moment dans le simulateur. De plus, certains bugs du à l'aspect multi-threadés de l'application (afin de mieux simuler la réalité et les pires cas) font que le simulateur n'est pas en version stable. Vous pouvez toutefois le télécharger (archive jar). Il est conseillé d'avoir une version récente de la JVM (au moins 1.5). Vous pouvez l'obtenir en allant sur le site de java, http://java.sun.com.

cpp S-TGDH_god.jar, dernière version le Thursday 13 August 2009 à 21:57

Licence

Toutes les informations sont spécifiées sur la page suivante : S-TGDH/.

Documentation technique tirée de doxygen

Pour ceux désirant voir plus l'aspect fonctionnement (développement), vous pouvez obtenir les informations techniques en consultant les documents générés par l'outil doxygen (http://www.doxygen.org/). Cette documentation contient également en introduction différentes informations sur le simulateur (présentation, utilisation).
  • cpp version pdf, dernière version le Thursday 13 August 2009 à 21:56
  • html version web, dernière version le Thursday 13 August 2009 à 21:58



Dernière modification effectuée le Wednesday 04 August 2010 à 11:49

 
 
rennes1   insa   telecomB
Julien Thomas. Stage réalisé à TELECOM Bretagne, anntenne de Rennes, équipe SERES
site officiel (infos, contact, ...) : http://www.julienthomas.eu