Return to Open Positions

Secured replication in collaborative P2P environment (closed position)

Réplication sécurisée dans les infrastructures pair-à-pair de collaboration

François Charoy, Gérald Oster
Equipe Coast – LORIA – Inria
Campus Scientifique, 54506 Vandoeuvre
Francois.Charoy@loria.fr

Candidat souhaité : Master 2 Recherche en Informatique ou Ingénieur en Informatique

Problématique de recherche

La sécurisation des données et plus particulièrement la confidentialité de celles-ci est devenu un aspect primordial de l’informatique. Avec l’avènement des services de stockage opérés dans le nuage (DropBox, iCloud, GoogleDrive, etc.), on ne compte plus les exemples de divulgations de données personnelles ou sensibles. Les fournisseurs de ces services de stockage ont mis en place des solutions de cryptage [1] afin de ne conserver que des versions chiffrées des données stockées. Malheureusement, pour faciliter l’usage de leurs services, les clefs de chiffrement restent généralement en possession des fournisseurs de services. Ils ont donc la possibilité de décrypter les données s’ils le souhaitent ou si une autorité compétente leur en fait  la demande.

De plus en plus souvent, les documents partagés ne sont plus des documents non-mutables partagés uniquement à des fins de consultation. Ce  sont des documents partagés à des fins de collaboration. Ils mutables et susceptibles d’être modifiés continuellement et en parallèle par des collaborateurs de plus en plus nombreux. Ce contexte où les documents sont souvent sensibles car produits par des employés d’une entreprise ou d’une administration renforce le besoin de confidentialité et accroit la difficulté d’assurer celle-ci.

Les systèmes d’édition collaborative temps réel permettent de travailler à plusieurs en même temps sur un même document. Les contributeurs peuvent être localisés sur différents sites répartis connectés à Internet. Chaque contributeur travaille sur sa propre copie du document qui est répliquée sur son poste utilisateur. Les modifications apportées sont diffusées à l’ensemble des contributeurs pour être intégrées à leurs copies de travail. Pour garantir la cohérence des copies d’un même document tout en assurant un temps de réponse acceptable, les systèmes d’édition collaborative sont fondés sur des mécanismes de réplication de données et de maintien de la cohérence.

A titre d’illustration, la solution opérée par Google dans sa suite applicative repose sur l’approche des transformées opérationnelles : Elle est centralisée. Toutes les modifications sont diffusées à travers le Cloud; les serveurs de Google réalisent des calculs pour limiter la complexité algorithmique et nécessitent d’avoir accès à une version non cryptée des modifications et des documents manipulés ; Cette approche passe difficilement à l’échelle comme le montre la limitation mise en place sur le nombre d’utilisateurs pouvant éditer un document de manière simultanée[1] (Limite de partage).

Pour répondre aux limitations en terme de passage à l’échelle de l’approche des transformées opérationnelles, une nouvelle approche a été proposée [2, 3, 4, 5] qui consiste à définir des types de données répliquées commutatifs (CRDT). L’idée est de définir des structures de données dont les modifications en parallèle ne rentrent jamais en conflit (par abus de langage, on considère que ces modifications commutent les unes par rapport aux autres). Comme les structures de données classiques, ces structures de données servent de briques de bases pour construire des structures de données plus complexes. L’équipe Coast est pionnière dans les travaux de recherche sur cette approche.

Cette nouvelle approche présente de nombreux avantages. Elle ne nécessite pas de synchronisation a posteriori des copies puisque les mises à jour concurrentes s’exécutent sans conflit et produisent le même état sur toutes les copies quel que soit l’ordre dans lequel elles sont exécutées. Ainsi, il n’est pas nécessaire de définir un ordre particulier sur la diffusion des modifications concurrentes et il n’est pas nécessaire d’utiliser un serveur central de diffusion. L’architecture de diffusion peut être totalement distribuée. Le mécanisme de maintien de la cohérence des copies étant défini par construction dans la structure de données, l’ensemble des calculs nécessaires sont réalisés sur les clients possédant une copie des données. La complexité des algorithmes mis en œuvre est bien inférieure à ceux de l’approche des transformées opérationnelles. Son passage à l’échelle peut donc se faire à coûts maitrisés.

Puisqu’aucun traitement n’a besoin d’être réalisé par un serveur, les données transférées devraient pouvoir être chiffrées de bout en bout. Et, même si un serveur est présent dans l’architecture du système à des fins de stockage pour la disponibilité des données, les données conservées sur ce serveur le seront de manière chiffrées et seuls les clients seront à même de les déchiffrer.

Sujet

La première partie du travail consistera  à réaliser un état de l’art des techniques et solutions de chiffrement adaptées au contexte décentralisé (algorithmes de chiffrement symétrique et asymétrique, distribution des clés de chiffrement, révocation etc.). Il faudra également étudier les algorithmes de réplication optimiste et de maintien de la cohérence utilisés dans le domaine de l’édition collaborative temps réel (notamment l’approche CRDT).

Dans une seconde partie, le doctorant sera amené à adapter les algorithmes existants afin de garantir un chiffrement de bout-en-bout des données mutables éditées de manière collaborative. Il faudra en outre gérer les problématiques liées aux clefs de chiffrement tout au long du cycle de vie des documents collaboratifs et répondre à des questions fondamentales telles que :

–        A quel moment est-il nécessaire de générer ou régénérer des clefs de chiffrement ? comment déployer et partager celles-ci ?

–        Comment assurer la continuité du chiffrement et de l’édition collaborative d‘un document lors de l’arrivée, du départ, de l’ajout ou du retrait d’un collaborateur ?

–        Comment permettre l’édition hors-ligne ou l’édition en mode ad-hoc en concurrence par des sous-groupes dynamiques de collaborateurs ?

–        Comment gérer l’accès à l’historique d’un document collaboratif face aux différentes modifications d’accès dont il a fait l’objet ?

Il est envisagé d’implémenter les solutions proposées dans le prototype d’éditeur collaboratif MUTE (https://github.com/score-team/mute-demo) développé par l’équipe Coast.

Dans un troisième et dernier temps, le doctorant sera amené à évaluer le système proposé en termes de sécurité, performance, robustesse, facilité de déploiement et facilité d’utilisation. Cette dernière partie sera notamment réalisée en collaboration avec les équipes de développements des partenaires industriels du projet PSCP OpenPaaS::NG.

Compétences théoriques requises

Algorithmique distribuée ; sécurité

Compétences techniques requises

Développement d’application (Java, Python) ; technologies web (Javascript, HTML5) ; SGBD ; Gestion de versions ;

Bibliographie

[1] Jonathan Katz et Yehuda Lindell. Introduction to Modern Cryptography. 603 pages. ISBN 9781466570269. CRC Press

[2] Gérald Oster, Pascal Urso, Pascal Molli et Abdessamad Imine. Data Consistency for P2P Collaborative Editing. Dans Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work – CSCW, pp.259-268., 2006. DOI=10.1145/1180875.1180916.

[3] Nuno Preguiça, Joan Manuel Marquès, Marc Shapiro, et Mihai Letia. A Commutative Replicated Data Type for Cooperative Editing. Dans Proceedings of the 29th IEEE International Conference on Distributed Computing Systems – ICDCS, pp.395-403., 2009. DOI=10.1109/ICDCS.2009.20.

[4] Stéphane Weiss, Pascal Urso, et Pascal Molli. Logoot : A Scalable Optimistic Replication Algorithm for Collaborative Editing on P2P Networks. Dans Proceedings of the 29th IEEE International Conference on Distributed Computing Systems – ICDCS, pp.404-412., 2009. DOI=10.1109/ICDCS.2009.75.

[5] Luc André, Stéphane Martin, Gérald Oster et Claudia-Lavinia Ignat. Supporting Adaptable Granularity of Changes for Massive-Scale Collaborative Editing. Dans Proceedings of the 9th Internationale Conference on Collaborative Computing, Networking, Applications and Worksharing – CollaborateCom, pp.50-59., 2013. DOI=10.4108/icst.collaboratecom.2013.254123.

 


[1] Limite de partage dans GoogleDocs – http://goo.gl/FIYwJV