Les Newsletters Interstices
Illustration Satya Tiwari via Pixabay, CC0
    Niveau facile
    Niveau 1 : Facile

    Protéger et utiliser ses données en ligne

    Sécurité & Vie privée
    Données
    Sauvegarder nos données en ligne : oui, mais sans les exposer au tout-venant. Une solution classique pour protéger nos données consiste à les chiffrer avant de les sauvegarder. Comment alors effectuer des traitements sur ces données, sans en révéler la teneur au service de stockage ? La recherche dans des données chiffrées est un exemple important de traitement, voici comment procéder.

    De nombreux services numériques ont vu le jour ces dernières années avec le développement d’Internet. Ces services sont de nature différente : la recherche d’informations (Wikipédia), l’écoute de musique en streaming (Deezer, Spotify, etc.), la vidéo à la demande (YouTube, Netflix), les réseaux sociaux (Facebook, Twitter) ou encore la sauvegarde de données en ligne (Dropbox, Google Drive). C’est sur ce dernier service, la sauvegarde de données en ligne, également désigné par le terme d’externalisation de données dans le cloud, que nous nous focalisons dans cet article.

    Stocker ses données

    Le stockage de données en ligne offre de nombreux avantages. En effet, il permet de sauvegarder des données même si le matériel informatique tombe en panne. D’autre part, si l’on se déplace régulièrement, le stockage de données en ligne permet d’y avoir accès facilement quel que soit l’endroit où l’on se trouve, à condition de disposer d’une connexion internet.

    Bien entendu ces avantages conduisent à des questions de confidentialité des données et au respect de la vie privée. Supposons que les données à sauvegarder soient des données dites sensibles ou à caractère personnel. Il peut s’agir par exemple de relevés bancaires, de photos personnelles ou encore de résultats médicaux. Dans ce cas, les propriétaires de ces données devront faire confiance au service de stockage en ligne auquel leurs données ont été confiées. Cette confiance repose sur deux points. Le premier concerne la sécurité de l’infrastructure informatique du service cloud lui-même (voir l’illustration ci-dessous, à gauche). Si le serveur sauvegardant vos données possède des failles informatiques (la non mise à jour du système d’exploitation, l’absence d’antivirus, etc.), une personne malveillante capable d’exploiter ces failles serait alors en mesure de récupérer vos données ou encore de les détruire. Le second point concerne la position du service cloud par rapport aux données qu’il sauvegarde ; rien n’empêche celui-ci de regarder par curiosité ou par intérêt économique les données hébergées sur ses propres serveurs (voir l’illustration ci-dessous, à droite).

    Protéger ses données

    Afin de protéger ces données externalisées de telles menaces, une première solution est d’utiliser un schéma de chiffrement symétrique. La sécurité d’un chiffrement symétrique repose sur la connaissance d’un secret. Ce secret correspond à la clef secrète permettant à l’utilisateur ou utilisatrice de chiffrer, puis de déchiffrer ses données. Ainsi, si vos données sont exportées sur un service de stockage en ligne, une fois que vous les aurez chiffrées à l’aide d’un schéma de chiffrement et d’une clef secrète, vous aurez alors la garantie que personne ne pourra exploiter vos données puisqu’il faut connaître la clef secrète permettant le déchiffrement. Néanmoins, le fait de chiffrer les données externalisées enlève à l’utilisateur ou utilisatrice la possibilité d’exploiter celles-ci directement en ligne. En effet, traiter ses documents directement en ligne revient à dire que le serveur possède la clef de déchiffrement. Il vous est alors impossible de regarder vos photos, de modifier un document texte, de faire des recherches par mots-clefs directement en ligne sur vos documents, etc. Vous devrez donc tout d’abord télécharger toutes vos données depuis le service cloud sur votre ordinateur, les déchiffrer, faire la manipulation souhaitée puis les chiffrer de nouveau avant de les exporter une nouvelle fois sur le service de stockage en ligne. Cette méthode, bien que sécurisée contre les menaces précédemment citées n’est guère pratique.

    Une solution consiste alors à utiliser un schéma de chiffrement dit homomorphique. Un tel chiffrement permet d’effectuer les mêmes opérations sur des données chiffrées que sur des données claires. Par exemple, si vous avez créé deux chiffrés : c1 correspondant au message m= 2000 et c2 correspondant au message m= 18, alors l’addition des deux chiffrés cc2 donnera le message 2018 après déchiffrement. Grâce à un tel chiffrement, plus besoin de télécharger vos données chiffrées et de les déchiffrer pour appliquer l’opération souhaitée. Vous pouvez directement manipuler vos données chiffrées à distance et y appliquer les modifications souhaitées. Hélas, ces chiffrements requièrent un temps de calcul trop important. D’un côté, nous avons donc une solution sécurisée et efficace mais sans fonctionnalités et de l’autre côté, une solution sécurisée avec des fonctionnalités mais inefficace.

    Utiliser ses données

    Toutefois, il existe un compromis entre sécurité, performance et fonctionnalité pour la fonctionnalité de recherche par mots-clefs sur des données chiffrées ; ce sont les schémas de recherche sur données chiffrées, appelés en anglais Searchable Encryptions. La fonctionnalité de recherche par mots-clefs sur des données chiffrées va vous permettre de récupérer, parmi une liste de documents chiffrés, ceux contenant les mots-clefs que vous recherchez.

    Le premier schéma de recherche sur données chiffrées a ainsi été proposé par Song, Wagner et Perrig en 2000 et ne proposait que la recherche via un seul mot-clef. Depuis, de nombreux autres schémas ont été proposés apportant des améliorations. Certains d’entre eux permettent d’ajouter de nouveaux documents tout en offrant la possibilité d’effectuer des recherches, et d’autres schémas permettent d’effectuer des recherches plus complexes, dites booléennes, comme vouloir que deux mots-clefs soient présents simultanément dans les documents retournés sans que ceux-ci n’en contiennent un troisième.

    Certains schémas de recherche par mots-clefs sur des données chiffrées permettent d’effectuer des recherches grâce à la structure même des documents chiffrés, d’autres sont basés sur une structure appelée index inversé. Un index inversé est une structure permettant de ranger un ensemble de documents en fonction des mots-clefs qui les composent. Supposons par exemple que nous ayons deux documents nommés d1 et d2, et définis par :
    d1 : « La sécurité informatique est importante »
    d2 : « L’informatique est omniprésente »

    Pour construire l’index inversé associé à ces deux documents, il vous suffit de prendre chacun des mots-clefs composant ces deux documents et de lui associer le nom des documents qui le contiennent. Avec les deux documents précédents det d2, nous obtenons l’index inversé présenté ci-dessous.

    Index inversé

    Lorsque vous recherchez les documents contenant le mot-clef informatique, grâce à l’index inversé, vous saurez que les deux documents d1 et d2 contiennent ce mot-clef.

    Nous allons maintenant voir comment utiliser la structure de l’index inversé pour effectuer une recherche avec un mot-clef de façon sécurisée. Dans ce cas, vous devez pouvoir effectuer une recherche sur des documents chiffrés sans que le service cloud ne puisse connaître le sens du mot-clef que vous lui avez fourni.

    Supposons tout d’abord que vous possèdez les deux documents d1 et d2 cités précédemment et que vous souhaitez les externaliser sur un service de stockage en ligne. La première étape pour vous sera de créer ce que nous appelons l’index inversé chiffré associé à cet ensemble documentaire. Pour cela, vous choisissez d’abord deux clefs secrètes que nous nommerons k1 et k2. À l’aide d’une fonction dite pseudo-aléatoire associée à la clef secrète k1, vous protègez les mots-clefs de l’index inversé (présenté dans la figure ci-dessus) en remplaçant chacun d’eux par la valeur donnée par la fonction aléatoire. Si le mot-clef considéré est informatique, alors la valeur donnée par la fonction pseudo-aléatoire associée à la clef k1 sera notée {informatique}k1. Il est important de comprendre que cette valeur est incompréhensible pour le service cloud, en d’autres termes le mot-clef informatique est remplacé par une valeur d’apparence aléatoire mais dépendant de la clef secrète k1.

    Ensuite, vous allez utiliser votre deuxième clef secrète k2 pour chiffrer vos documents, ici d1 et d2. Nous indiquons les chiffrés de ces deux documents à l’aide de la clef secrète k2 par les notations suivantes : d1 * et d2 *. Ainsi, l’index inversé ne fait plus le lien entre les mots-clefs et vos documents originaux mais fait le lien entre les mots-clefs protégés (i.e. les valeurs pseudo-aléatoires associées aux mots-clefs) et vos documents chiffrés. Ces documents chiffrés sont calculés en utilisant par exemple l’algorithme de chiffrement AES avec la clef secrète k2. Nous illustrons l’index inversé chiffré associé aux documents d1 et d2 dans la figure ci-après.

    Index inversé chiffré

    Une fois que cet index inversé est chiffré et que vous avez généré vos documents chiffrés, vous pouvez les exporter sur le service de stockage en ligne (vous n’êtes ensuite pas obligé de conserver les documents originaux sur votre ordinateur). Grâce au chiffrement des documents, ils sont protégés. De plus, l’index inversé chiffré vous permet d’effectuer des recherches par mots-clefs sur vos documents chiffrés. En effet, connaissant la clef secrète k1, pour récupérer vos documents contenant le mot-clef « informatique », il vous suffit de calculer la valeur pseudo-alétoire associée à ce mot-clef, i.e. {informatique}k1. Vous envoyez ensuite cette valeur calculée au service cloud. Grâce à l’index inversé chiffré (cf. figure ci-dessus), le service cloud sait que vos documents chiffrés d1 * et d2 * sont associés à cette valeur pseudo-aléatoire et vous les envoie. Avec la deuxième clef secrète k2, vous pouvez alors déchiffrer les deux documents chiffrés reçus correspondant à votre recherche.

    Pour conclure

    Nous venons de voir que les schémas de recherche sur données chiffrées vous permettent de sauvegarder vos données chiffrées dans le cloud tout en vous permettant d’effectuer des recherches par mots-clefs. Aujourd’hui, de nombreuses solutions commerciales telles que CipherCloud, Skyhigh Networks ou encore bitglass proposent un tel service aux internautes. Néanmoins, des recherches récentes ont mis en évidence certaines menaces sur les schémas de recherche sur données chiffrées basées sur les index inversés. En effet, si le serveur hébergeant ces documents chiffrés connaît un petit échantillon de documents qu’il héberge, il sera alors en mesure d’obtenir d’autres informations sur les autres documents. La recherche actuelle porte sur des contre-mesures et de nouveaux modèles de schémas de recherche, afin d’éviter de telles fuites d’informations pour garantir la sécurité des données personnelles hébergées dans le cloud.

    [1] David Cash, Stanislaw Jarecki, Charanjit S. Jutla, Hugo Krawczyk, Marcel-Catalin Rosu, and Michael Steiner. Highly-scalable searchable symmetricencryption with support for boolean queries. In Advances in Cryptology-CRYPTO 2013 – 33rd Annual Cryptology Conference, Santa Barbara, CA, USA, August 18-22, 2013. Proceedings, Part I, pages 353–373, 2013.

    [2] Matthieu Giraud, Alexandre Anzala-Yamajako, Olivier Bernard, and Pascal Lafourcade. Practical passive leakage-abuse attacks against symmetric searchable encryption. In Proceedings of the 14th International Joint Conference on e-Business and Telecommunications (ICETE 2017) – Volume 4 : SECRYPT, Madrid, Spain, July 24-26, 2017., pages 200–211, 2017.

    [3] Oded Goldreich, Shafi Goldwasser, and Silvio Micali.  How to construct random functions. J. ACM, 33(4) :792–807, August 1986.

    [4] Seny Kamara, Charalampos Papamanthou, and Tom Roeder. Dynamic searchable symmetric encryption. In the ACM Conference on Computer and Communications Security, CCS’12, Raleigh, NC, USA, October 16-18, 2012, pages 965–976, 2012.

    [5] Dawn Xiaodong Song, David A. Wagner, and Adrian Perrig. Practical techniques for searches on encrypted data. In 2000 IEEE Symposium on Security and Privacy, Berkeley, California, USA, May 14-17, 2000, pages 44–55, 2000.

    Newsletter

    Recevez chaque mois une sélection d'articles

    Niveau de lecture

    Aidez-nous à évaluer le niveau de lecture de ce document.

    Si vous souhaitez expliquer votre choix, vous pouvez ajouter un commentaire (Il ne sera pas publié).

    Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !

    Matthieu Giraud

    Doctorant au sein du Laboratoire d’Informatique, de Modélisation et d’Optimisation des Systèmes (LIMOS, Université Clermont Auvergne).
    Voir le profil