Université Du Québec À Montréal Opérations Non Rudimentaires De Tables De Hachage Distribuées Et Clavardage En Groupe Sû
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSITÉ DU QUÉBEC À MONTRÉAL OPÉRATIONS NON RUDIMENTAIRES DE TABLES DE HACHAGE DISTRIBUÉES ET CLAVARDAGE EN GROUPE SÛR DE BOUT EN BOUT MÉMOIRE PRÉSENTÉ COMME EXIGENCE PARTIELLE DE LA MAÎTRISE EN INFORMATIQUE PAR SIMON DÉSAULNIERS SEPTEMBRE 2019 UNIVERSITÉ DU QUÉBEC À MONTRÉAL Service des bibliothèques Avertissement La diffusion de ce mémoire se fait dans le respect des droits de son auteur, qui a signé le formulaire Autorisation de reproduire et de diffuser un travail de recherche de cycles supérieurs (SDU-522 - Rév .07-2011). Cette autorisation stipule que «conformément à l'article 11 du Règlement no 8 des études de cycles supérieurs, [l 'auteur] concède à l'Université du Québec à Montréal une licence non exclusive d'utilisation et de publication de la totalité ou d'une partie importante de [son] travail de recherche pour des fins pédagogiques et non commerciales. Plus précisément, [l 'auteur] autorise l'Université du Québec à Montréal à reproduire, diffuser, prêter, distribuer ou vendre des copies de [son] travail de recherche à des fins non commerciales sur quelque support que ce soit, y compris l'Internet. Cette licence et cette autorisation n'entraînent pas une renonciation de [la] part [de l'auteur] à [ses] droits moraux ni à [ses] droits de propriété intellectuelle. Sauf entente contraire, [l 'auteur] conserve la liberté de diffuser et de commercialiser ou non ce travail dont [il] possède un exemplaire.» REMERCIEMENTS Je tiens à remercier mes anciens collègues chercheurs et concepteurs de logiciels pour leur accueil chaleureux et leur enthousiasme distingué au travail. C'est dans l'ambiance réalisée par la présence de gens comme Andreas Traczyk, Alexandre Viau, Guillaume Roguez et Adrien Béraud que j'ai pu m'épanouir et connaître l'expérience de travail dans une équipe RD sur des sujets passionnants comme les systèmes distribués, et ce en ayant le souci du respect de l'utilisateur en dévelop- pant des solutions libres. Je remercie mes superviseurs de m'avoir épaulé tout au long de mon cheminement. Je suis reconnaissant pour l'apport de Sébastien Gambs dans mes démarches à me perfectionner sur le plan de la recherche de documentation. Son expérience en sécurité des systèmes informatisés m'a judicieusement guidé dans la rédaction de ce mémoire. De plus, Alexandre Blondin M8,$sé a été d'une aide indispensable et essentielle dans la relecture de mes écrits et l'application de rigueur. En particulier, je lui dois ma reconnaissance pour ses conseils en rédaction formelle de sujets mathématiques et algorithmiques. Finalement, ses connaissances en pratiques de conception logicielle ont permis une communication et une productivité inégale entre nous. Les bases solides pour l'étude de la sécurité des schémas cryptographiques m'ont été transmises de manière rigoureuse par l'enseignement de Louis Salvail. Je lui manifeste donc ma sincère gratitude. Je ne peux me permettre d'oublier Jaël Gareau qui a été un collègue hors pair avec lequel j'ai pu m'entretenir sur des sujets pointus en mathématiques et infor- 11 matique. Il a aussi démontré sa dévotion à l'autre en m'attribuant un accès SSH à sa machine afin de me permettre le peaufinage de mon texte au moyen de son logiciel Antidote 10. Pour cela, je lui suis très reconnaissant. Je remercie évidemment mes amis qui m'ont soutenu dans le périple d'une vie à Montréal. Je mentionne affectueusement William Lamontagne et Marie-Laurence Audet pour leur chaleureuse compagnie. Je note aussi la présence constante de Pharah Lallmahomed depuis la Belgique. Je n'oublie bien sûr pas mes amis d'en- fance Étienne Roy-Bourque et Jean-Sébsatien Mathon qui m'ont toujours montré leur appui le plus sincère. Bien entendu ces remerciements seraient incomplets sans joindre à ceux-ci l'expression de la reconnaissance la plus franche que je dé- dis à Émile Cossette-Levasseur pour entretenir mon vélo en bonne condition ainsi que pour assurer mon implication régulière dans les soirées festives. Évidemment, je souhaite également remercier tous mes amis dans l'ensemble. Finalement j'ai la plus haute gratitude envers mon père qui m'a transmis l'esprit de rigueur et l'intérêt pour les mathématiques. DÉDICACE À mon père qui m'a toujours soutenu. Je lui dois heureusement ma qualité de persévérance (ou d'entêtement). À ma sœur Lucie que je chérie et admire. Elle m'inspire l'autonomie, une qualité qui fut nécessaire pour entreprendre les travaux décrits dans ce mémoire. Al êiuj kiuj deziras Interreto liberan kiu respektas privatecon de êiuj . L AVANT-PROPOS L'origine de ce travail peut se résumer à une chose : la quête du logiciel libre ou de la concrétisation de la liberté dans nos exercices informatiques en général. Le développement de logiciel libre m'a premièrement attiré après le baccalauréat. J 'ai tenté ma chance en industrie et cela m'a amené vers les activités RD où l'esprit de recherche est idéalement nécessaire (mais pas suffisant). C'est alors que j'ai pu me plonger dans un projet d'envergure qui demandait rigueur, autonomie et intui- tion. L'ensemble de nos travaux était constamment motivé par l'aboutissement à une solution libre et qui respecte mieux (on l'espère) la vie privée des gens. Cette idée étant une condition nécessaire à la liberté, elle représentait donc une inspira- tion supplémentaire que j'ai appris à mieux connaître et désirer davantage durant mon séjour dans l'équipe de développement. C'est la bibliothèque OpenDHT, une table de hachage distribuée de type Kademlia, qui a constitué le sujet de montra- vail. Notre but précis a été de fournir des enrichissements de façon à ultimement modeler un logiciel final permettant à tous de communiquer plus librement. << One reason you should not use web applications to do your computing is that you lose control . - Richard Matthew Stallman >> Ces travaux qui se sont échelonnés sur près de deux ans m'ont alors conduit à démarrer des études au second cycle à l'Université sous la direction d'Alexandre Blondin Massé. Il était par conséquent naturel de centrer mes activités de maîtrise sur le thème que je connaissais déjà afin de l'approfondir davantage et de me lancer Vl dans d'autres défis connexes dans le but de toujours mieux servir ma quête. Le sujet de sûreté de bout en bout a ainsi surgi au sein de nos activités puisqu'il s'agissait d 'un nouveau défi que voulait poursuivre l'équipe RD. Cela nous a donc menés à collaborer une nouvelle fois avec l'industrie. Sébastien Gambs, récemment arrivé au département d'informatique de l'UQÀM en 2016, s'est dès lors joint à nos activités en tant que co-directeur de ma maîtrise. Son expertise en sécurité de l'information m'a guidé tout au long de ce deuxième volet. Naturellement, une continuité évidente de nos travaux passés à ce moment-là était de t raiter du sujet du clavardage sûr de bout en bout en vue d'appliquer ces idées au logiciel dont nous participions au développement. Au cours de ce chapitre, Simon Fernandez un étudiant de l'ENS de Lyon nous a rejoints afin de m'épauler. Nos efforts conjoints ont su aboutir vers un résultat que nous apprécions. Un troisième défi tout aussi nécessaire flottait au haut de nos têtes : l'analyse des préoccupations byzantines 1 du clavardage sûr de bout en bout sur une table de hachage distribuée. Cependant, nous n'avons pas pu nous attarder à ce problème puisqu'il engendrait une charge de travail qui ne pouvait pas être soutenue dans le temps limité de mes études. Ce parcours nous a mené à la rencontre et l'interaction avec plusieurs gens de différents milieux que Je liste ci-après : - Guillaume Roguez : directeur de l'équipe RD ; - Adrien Béraud, Andreas Traczyk et Alexandre Viau : concepteurs logiciel dans l'équipe RD· Rosin Ngueveu : étudiant au doctorat au LATECE ; Ulrich Aivodji : postdoctorant au LATECE; Louis Salvail : professeur du DIRO à l'UdeM e~ membre du LITQ. 1. Qui est relatif au problème des généraux byzantins. TABLE DES MATIÈRES REMERCIEMENTS DÉDICACE ... lll AVANT-PROPOS V LISTE DES TABLEAUX lX TABLE DES FIGURES Xl RÉSUMÉ ..... Xlll INTRODUCTION 1 CHAPITRE I PRÉLIMINAIRES 1.1 Cryptographie . 9 1.1.1 Notations . 11 1.1.2 Garanties de sécurité et modèle d'adversaire 13 1.1.3 Sécurité asymptotique 17 1.1.4 Problèmes Diffie-Hellman 22 1.1.5 Échange Diffie-Hellman 26 1.1.6 Authentification .... 29 1.2 Réseaux distribués . 32 1.3 Tables de hachage distribuées 36 1.3.1 Routage 37 1.3.2 Pastry . · 38 1.3.3 Chord 39 1.3.4 Kademlia 40 CHAPITRE II OPENDHT : APPLICATION KADEMLIA 2.1 OpenDHT . ........... 45 2.1.1 Opération listen ..... 47 2.2 OpenDHT : persistance de données 49 2.3 OpenDHT: pagination de valeurs . 52 2.3.1 Persistance de données : optimisation 55 Vlll 2.4 Indexation complètement distribuée sur une table de hachage distri- buée . 56 2.4.1 La structure de trie de hachage 58 2.4.2 Indexation distribuée ... .. 61 2.4.3 Optimisations . 67 CHAPITRE III CLAVARDAGE EN GROUPE SÛR DE BOUT EN BOUT 3. 1 Notations et définitions . 69 3.1. 1 Propriétés de sécurité . 72 3.2 État de l'art . 74 3.2. 1 Clavardage pair-à-pair 75 3.2.2 Clavardage en groupe . 82 3.3 Clavardage sûr de bout en bout avec authentification niable, non- transitive et asynchrone . 94 3.3.1 Définitions . 96 3.3.2 Approche sous l'hypothèse DDH 98 3.3.3 Protocole 102 CONCLUSION .... 109 ANNEXE A CRYPTOGRAPHIE: ÉLÉMENTSFONDAMENTAUX A.1 Chiffres rudimentaires . 113 A.2 Sécurité parfaite .