De la recherche

Protéger et utiliser ses données en ligne

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.

Illustration Satya Tiwari via Pixabay, CC0.

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).

proteger-utiliser-donnes fig1-2

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.

proteger-utiliser-donnees fig3Index 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.

proteger-utiliser-donnes fig4

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.

Repères bibliographiques.

Niveau de lecture

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

Il vous semble :

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