User Controlled Trust and Security Level of Web Real-Time Communications Kevin CORRE
Total Page:16
File Type:pdf, Size:1020Kb
User Controlled Trust and Security Level of Web Real-Time Communications THESE DE DOCTORAT DE L’UNIVERSITE DE RENNES 1 COMUE UNIVERSITE BRETAGNE LOIRE Ecole Doctorale N° 601 Mathèmatique et Sciences et Technologies de l’Information et de la Communication Spécialité : Informatique Thèse présentée et soutenue à RENNES, le 31 MAI 2018 par Kevin CORRE Unité de recherche : IRISA (UMR 6074) Institut de Recherche en Informatique et Systemes Aléatoires Thèse N° : Rapporteurs avant soutenance : Maryline LAURENT, Professeur, TELECOM SudParis Yvon KERMARREC, Professeur, IMT Atlantique Composition du jury : Présidente : Maryline LAURENT, Professeur, TELECOM SudParis Examinateurs : Yvon KERMARREC, Professeur, IMT Atlantique Walter RUDAMETKIN, Maître de Conférences, Université de Lille Dominique HAZAEL-MASSIEUX, Ingenieur de Recherche, W3C Vincent FREY, R&D Software Engineer, Orange Labs Dir. de thèse : Olivier BARAIS, Professeur, Université de Rennes 1 Co-dir. de thèse : Gerson SUNYÉ, Maître de Conférences, Université de Nantes “Fide, sed cui vide”. - Locution latine “Du père qui m’a donné la vie : la modestie et la virilité, du moins si je m’en rapporte à la réputation qu’il a laissée et au souvenir personnel qui m’en reste”. - Marcus Catilius Severus i Résumé en Français Contexte Communication, du latin communicatio [13], est défini par le dictionnaire Oxford comme étant “the imparting or exchanging of information” et “the means of sending or receiving information, such as telephone lines or computers” [14]. Face à une incertitude ou à un risque, un tel échange n’est possible que si une relation de confiance peut être établie entre l’émetteur et le récepteur. Cette relation de confiance doit aussi concerner les moyens utilisés pour communiquer. Les communications écrites ont été développées au travers de plusieurs révolutions : depuis les pictogrammes gravés dans la pierre jusqu’au signaux électroniques répliqués et transmis instantanément. Bien que ces révolutions aient rendu les communications omniprésentes, le besoin fondamental de confiance reste présent. Depuis l’antiquité, politiciens et généraux ont toujours eu le besoin de communica- tions sécurisées. La stéganographie, le fait de cacher un message à la vue de tous, est l’une des plus anciennes techniques pour sécuriser une communication écrite. Une telle technique peut, par exemple, être réalisée en utilisant une encre invisible ou en utilisant certains bits d’une image numérique pour encoder un message secret. La cryptographie, au contraire, est une technique de transformation d’un message secret, un texte en clair, vers un texte chiffré afin d’en cacher son sens. La scytale, présentée sur la Figure 1, est une technique spartiate de cryptographie par substitution et le premier usage institu- tionnel de cryptographie militaire. Elle aurait été utilisée en 404 a.v.J.C. [15]. De même, le chiffre de César est l’une des techniques cryptographiques les plus simples. Dans cette technique, les lettres d’un alphabet sont remplacées par d’autres lettres en utilisant un décalage donné. Jules César aurait utilisé une distance de décalage de trois lettres afin d’écrire à ses généraux. En connaissant la valeur de décalage, c’est à dire la clé secrète, le destinataire peut inverser le décalage et récupérer le texte clair. Les machines à chiffrement électromécanique, telles que la fameuse machine Enigma, ont apporté une impressionnante augmentation des possibilités de chiffrement. Lors de la seconde guerre mondiale, les efforts de cryptanalyse des chercheurs alliés visant à casser les codes électromécaniques menèrent au développement des premiers ordinateurs. Cette percée mena finalement à l’utilisation d’algorithmes cryptographiques fondés sur des problèmes mathématiques complexes. De plus, l’informatique permet le chiffrement de n’importe quel type de données encodées en séquences de bits. Le développement Figure 1: Une scytale. Une bande de parchemin était continu de l’informatique et des algorithmes de chiffrement publics ont rendu la sécurité enroulée avant d’écrire le des communications accessibles aux petites entreprises et aux individus. Aujourd’hui, message, une lettre par tour. les communications sont chiffrées par défaut, et les utilisateurs sont éduqués à prêter Une fois déroulé, le par- attention aux indicateurs de sécurité [16] tels que l’icone HTTPS représentant un cadenas chemin était illisible à moins vert 2. Cependant, un tiers de confiance est malgré-tout souvent requis afin d’établir la de posséder une scytale du communication. même diamètre. Plusieurs définitions de la confiance ont été proposées. Inspirés par McKnight et Chervany [17], Jøsang et Presti définissent la confiance comme: “the extent to which ii one party is willing to depend on something or somebody in a given situation with a feeling of relative security, even though negative consequences are possible” [18]. Dans le sens d’une action, nous dirions que la confiance est la décision par un agent intelligent de coopérer face à une incertitude ou un risque au sujet du comportement (sa capacité ou son intention) d’un autre agent. La confiance est une heuristique basée sur l’historique des interactions, la réputation donnée par une communauté, ou les recommandations transmises par d’autres sources de confiance. La sécurité des informations vise à protéger les informations échangées lors d’une communication, en s’assurant que certaines propriétés de sécurité sont vérifiées: Le secret des échanges, la discrétion (en: privacy), • La confidentialité des messages échangés, • L’intégrité du contenu, • La non-répudiation de la communication, • L’authentification de l’identité des autres participants. • Les systèmes sécurisés sont complexes à construire et peuvent être peu pratiques pour un usage quotidien. Dans cette situation, la confiance peut être une façon plus confortable d’assurer la sécurité des communications. Le World Wide Web (le Web) est construit sur un modèle client-serveur. Sa sécu- rité est basée sur une chaîne de certificat ancrée dans le User-Agent, généralement un navigateur Web. Les sites Web sont authentifiés par leurs certificats et les communi- cations entre navigateurs et serveurs sont sécurisées par des protocoles tels que TLS. L’émergence de nouvelles fonctionnalités du Web offre beaucoup plus de cas d’usage via l’utilisation d’une interface de programmation (API) JavaScript. Ces nouvelles interac- tions sont souvent tripartites entre un utilisateur et deux autres serveurs: un Service Provider (SP) et un Relying Party (RP). C’est par exemple le cas des scénarios de délé- gation d’authentification. Dans ces situations, chaque partie ne peut pas monitorer les interactions entre les deux autres parties. La sécurité et la confiance de telles commu- nications peuvent donc être plus dures à évaluer. Chaque entité doit alors baser ses décisions sur des critères subjectifs et sa propre évaluation du risque, donc prendre une décision de confiance. Les communications en temps réel, sont un autre exemple de ces cas d’usage com- plexes impliquant plus qu’une simple relation client-serveur. WebRTC est un ensemble d’API Web et de protocoles, spécifiés par le W3C et l’IETF, permettant les appels au- dio, vidéo et le partage de données en mode pair à pair. Le déploiement de ce nouveau standard pourrait être une opportunité d’ouverture des futurs services Over The Top (OTT) [de l’accès internet]. Puisque WebRTC apporte de nouvelles fonctionnalités à l’écosystème Web, sa sécurité est un facteur critique de son succès. Dans ce but, il est important que la spécification prenne en compte les problèmes rencontrés par les technologies précédentes. C’est notamment vrai concernant la gestion d’identité, en particulier comparée à la qualité de service. Comme les expériences précédentes l’ont prouvé, un modèle d’identité fragile peut avoir un impact important et peut être parti- Figure 2: Avertissements de culièrement dur à corriger une fois le système déployé. sécurité sur le navigateur Firefox. Défis ouverts Notre intuition est que les utilisateurs de services de communication temps réel devraient bénéficier de plus d’informations et de contrôle sur la sécurité et le niveau de confiance de leurs sessions. C’est notre objectif global. Pour cela, nous devons construire un modèle iii représentant l’architecture de communication, les différents canaux, protocoles et les acteurs impliqués. Ce modèle nous permettra de construire une métrique caractérisant le risque d’utiliser un système de communication, c’est-à-dire son niveau de confiance et de sécurité. Au vu de cet objectif, les questions suivantes sont ouvertes : Comment modéliser une configuration de sécurité d’une architecture de communication constituée de plusieurs canaux, protocoles et acteurs? Le même modèle peut-il intégrer des informations de confiance et de sécurité en une seule métrique? Quels paramètres de l’architecture de communication doivent être utilisés pour construire cette métrique? Peut-on construire ce modèle dynamiquement? En supposant l’existence d’un modèle de confiance et de sécurité pour une architec- ture de communication, ce modèle pourrait être utilisé pour agir sur le système afin d’en augmenter le niveau de confiance et de sécurité. Afin de donner ce genre de contrôle aux utilisateurs, nous devons aussi répondre aux questions suivantes: Les utilisateurs peuvent-ils contrôler le niveau de confiance et de sécurité de leurs sessions de commu- nication? Est-il possible de faire confiance à une architecture de communication dans laquelle certains acteurs ne sont pas de confiance? Les utilisateurs peuvent-ils choisir des acteurs de confiance pour l’établissement de leurs communications? Afin de permettre aux utilisateurs de contrôler la confiance et la sécurité de leurs communications, la diversité des configurations possibles doit être suffisamment élevée. Cependant, les anciens systèmes de communication téléphoniques obéissent à des stan- dards stricts. Il peut y avoir plusieurs acteurs opérant le réseau, mais ils opèrent sous des configurations fermées et similaires. Il y a aussi de nombreux services fournis OTT, mais ils opèrent en mode silo et en mode boîte noire. La diversité de configuration de ces systèmes est donc elle aussi basse.