Cryptologie pour le Cloud

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche

Auteurs : Solène Demars et Xhoi Golemi


Le cloud computing est devenue un tel phénomène, qu’on pourrait le considérer comme une révolution dans les technologies de l’information. Le cloud englobe des éléments du grid computing, de l’informatique grand public et des systèmes autonomes, dans une architecture de déploiement innovante. Le cloud computing offre un accès simple à une grande infrastructure de stockage et performante, à l’aide de services Web. Cette transition vers le cloud a un impact au niveau de la sécurité.

Comment construire stockage dans le cloud sécurisé, alors que le fournisseur de service n’est pas forcément complètement fiable ?

Introduction au Cloud Computing et à la Cryptographie

L’amélioration de la technologie de réseau et le besoin de ressources informatiques ont incité de nombreuses organisations à externaliser leur stockage. Le cloud computing, c’est la disponibilité des services informatiques sur Internet, où l'utilisateur peut utiliser la ressource disponible sur le cloud sans avoir un contrôle complet sur elle.

Le cloud computing concerne de nombreux services tels que :

- l’infrastructure en tant que service (IaaS), où le client utilise l’infrastructure informatique, le réseau ou encore le stockage des fournisseurs de service.

- la plate-forme en tant que service (PaaS), où un client exploite les ressources du fournisseur pour exécuter des applications personnalisées.

- et enfin le logiciel en tant que service (SaaS), où les clients utilisent des logiciels exécutés sur l’infrastructure du fournisseur.

Il est crucial d’assurer la sécurité et la confidentialité des données dans les environnements cloud, et ce également pour des préoccupations juridiques, notamment avec l’arrivée du RGPD (Règlement Général sur la Protection des Données). Les problèmes de sécurité dans le cloud computing incluent : la sécurité des données, la sauvegarde, le trafic réseau, le système de fichiers et la sécurité de l'hôte.

La cryptographie est l’art de sécuriser les messages en modifiant les données en formes non lisibles. La cryptographie comprend trois types algorithmes : des algorithmes à clé symétrique, des algorithmes à clé asymétrique et du hachage.[2]

Le crypto cloud computing est considéré comme un nouveau framework pour partager des cyber-ressources. Il assure la sécurité et la confidentialité des données. Le crypto cloud garantit la sécurité et l'intégrité de l'information tout au long de la procédure. La gestion de la sécurité du cloud peut également être effectuée en autorisant les signatures de chaque élément impliqué. De plus, un utilisateur peut récupérer toutes les ressources associées en utilisant sa clé. En attendant, avec le développement du crypto cloud computing, nous pouvons résoudre le conflit entre le partage de données par des services et la confidentialité de ces données. Il ouvre de nouvelles perspectives pour le développement de technologies de partage de l'information.

Stockage dans le Cloud

Le stockage dans le cloud est un service où les données sont maintenues, gérées et sauvegardées à distance. Les services de stockage publics dans le cloud tels que Azure de Microsoft et S3 d’Amazon permettent aux clients de transférer leurs données vers le cloud en évitant les coûts de mise en place et de maintenance d'une infrastructure de stockage privée. Au lieu de cela, ils paient un fournisseur de services en fonction de leurs besoins. Ceci offre plusieurs avantages tels que la disponibilité et la fiabilité à un coût relativement bas.

L’image décrit l'architecture réseau dans le cas du stockage dans un cloud [4]. Elle dépend des entités suivantes :

- Le fournisseur de services de cloud computing (CSP), qui gère les serveurs distribués de stockage cloud et de bases de données, sur les ressources et permet à l’infrastructure virtuelle d’héberger des applications.

- Le client (C) peut bénéficier des ressources du fournisseur et s'en servir pour stocker, récupérer et partager ses données.

- Les utilisateurs (U) sont autorisés à accéder au contenu stocké dans le cloud en fonction de leurs autorisations fournies par le client, par exemple la lecture, l'écriture ou la modification des données.

Cloud-storage.PNG

Sécurité dans le Cloud

Lorsque les données sont stockées par une tierce partie, le problème de sécurité devient plus complexe et conflictuel. Les problématiques de la sécurité sont : disponibilité, intégrité et confidentialité. Ces trois propriétés sont devenues les concepts clé utilisés dans la conception de systèmes sécurisés, en particulier dans le cas d'une architecture informatique tel que le cloud.

1) Confidentialité : Cela fait référence aux personnes ou aux systèmes autorisés à accéder à des données protégées. Externaliser les données, déléguer son contrôle à un fournisseur de cloud, et le rendre accessible à différentes parties, augmente le risque de violation des données.

Un certain nombre de préoccupations émergent dues aux problèmes de multi-utilisateurs, de rémanence des données, et de sécurité des applications. L’architecture du cloud computing est composée de différents types de ressources partagées permettant à plusieurs clients d’utiliser la même ressource, au même endroit, en même temps, ce qui présente un certain nombre de menaces à la confidentialité. La gestion des accès aux données fait partie de ce qu’on appelle la gouvernance des données, qui consiste en la mise en place de procédures pour encadrer la collecte et l’utilisation des données au sein d’une organisation. [6]

2) Intégrité : Il s’agit d’empêcher toute suppression, modification ou fabrication non autorisée. C’est l'absence de modification des données entre deux mises à jour de celles-ci, c’est l'exactitude et la cohérence des données stockées. Il est important de gérer les niveaux d’autorisation d’un utilisateur authentifié pour sécuriser les ressources. Selon l’augmentation du nombre de parties impliquées dans un environnement cloud, la gestion des autorisations est primordiale pour appliquer l’intégrité des données.

3) Disponibilité : Ce terme est utilisé par les fabricants de stockage informatique et les fournisseurs de services de stockage pour décrire les produits et services garantissant que les données restent disponibles à un certain niveau de performance, dans des situations allant de la normale à la désastreuse. La disponibilité du système inclut la capacité de ce système à mener des opérations même lorsque certains éléments se comportent mal. Pour assurer la disponibilité, le système devrait être capable de fonctionner même s'il existe une menace pour la sécurité. [5]

Techniques pour stocker et traiter des données dans le Cloud

L’architecture du stockage cryptographique comprend trois composants :

1. Le processeur de données (DP) qui traite les données avant de les envoyer dans le cloud.

2. Le vérificateur de données (DV) qui assure l’intégrité des données.

3. Le générateur de tokens (TG) qui génère des jetons en permettant au fournisseur de services de récupérer des documents.

Des chercheurs ont proposé de nombreuses architectures pour le service de stockage cryptographique dans le cas du cloud computing, en voici quelques-unes :

Cryptographic Cloud Storage

Kamara et Lauter ont suggéré un service de stockage privé virtuel qui satisferait les exigences standard. La plupart des demandes sont effectuées en cryptant les documents stockés dans le cloud. Ce type de cryptage entraîne des difficultés tant dans les processus de recherche dans les documents que dans les processus de collaboration en temps réel, comme le montre la figure 2. [4]

Cryptographic-cloud-storage-architecture.PNG

Chiffrement classique (serveur)

Les méthodes de chiffrement utilisées dans d’autres contextes peuvent permettre de stocker des données dans une architecture cloud, que ce soit avec du chiffrement symétrique (par exemple, AES, “Advanced Encryption Standard”) ou asymétrique (par exemple, RSA, “Rivest, Shamiret Adleman”). Il s’agit d’algorithmes reconnus comme étant robustes. Le chiffrement peut avoir lieu côté serveur, ce qui est plus répandu, ou côté client :

Côté serveur : l’utilisateur envoie ses données en clair, et c’est le service cloud qui chiffrera ces données avant de les stocker. Il peut également appliquer une fonction de hachage ou une signature digitale aux données. Ici, c’est le serveur qui est chargé de la gestion des clés, et il doit le faire de façon sécurisée : les clés ne devraient pas être stockées au même endroit que les données qu’elles chiffrent, sans aucune sécurité. Plusieurs solutions s’offrent à nous, par exemple : l’utilisation d’un HSM (“Hardware Security Module”, un appareil électronique qui gère des clés de façon sécurisée), ou d’un keystore (un répertoire, numérique, protégé par un mot de passe ou un autre moyen, qui contient les clés secrètes). Si le service de cloud computing possède les données et les clés, il est évident que celui-ci a la possibilité d’accéder à ces données, sans oublier qu’il peut les lire en clair avant même de les chiffrer.

Classique-serveur.PNG

Chiffrement classique (client)

Côté client : dans ce cas de figure, l’utilisateur a davantage le contrôle sur ces données. C’est lui qui chiffre ses données avant de les envoyer dans le cloud pour les stocker. Il gère également lui-même ces clés. Le service cloud ne connaît donc ni les clés, ni les données en clair. Le risque, c’est que l’utilisateur perde ses clés, les données chiffrées deviendraient alors indéchiffrables. Il est envisageable de faire appel à un service de “key escrow” (“autorité de séquestre”) pour la gestion de ses clés, pour ainsi pouvoir les récupérer. Autre inconvénient, chaque appareil de l’utilisateur doit connaître les clés, alors que l’un des points forts du cloud computing c’est de pouvoir accéder à ses données en toute circonstance. Le chiffrement côté client peut être mis en place avec des outils comme BoxCryptor.

Classique-client.PNG

Cloud security gateway

Généralement utilisée par une entreprise, la CSG sert d’intermédiaire entre l’utilisateur et le service de cloud computing, communément sous forme de proxy. Elle va chiffrer et déchiffrer les données qui transitent. C’est elle qui reçoit les données en clair, puisqu’elle est de confiance il ne devrait pas y avoir de soucis de sécurité à ce niveau là, puis le cloud reçoit les données chiffrées, sans qu’il ne connaisse les clés. Il n’y a donc pas de soucis de sécurité par rapport à un tiers qui aurait accès aux données en clair, seul l’entreprise à ces informations. C’est la CSG qui gère les clés, donc côté client. Attention par contre, si la CSG tombe en panne, tous les utilisateurs de l’entreprise pourraient en pâtir. Parmi les solutions qui permettent d’implanter ce genre de méthode, on retrouve CipherCloud, Netskope et Skyhigh Networks par exemple.

Securite-gateway.PNG

Une CSG peut convertir des échanges entre l’utilisateur et le service cloud, non seulement pour un stockage protégé des données, mais également pour leur traitement. L’utilisateur fait ses requêtes comme s’il s’adressait directement au service, la CSG transforme les requêtes de manière à ce que le service cloud y réponde correctement, puis sa réponse est à nouveau convertie pour que l’utilisateur puisse la comprendre. Ainsi, le service cloud ignorera quelle était la requête de départ. Chaque CSG fonctionne pour certains services, si CipherCloud propose par exemple des produits pour Gmail, il ne sera pas en mesure d'interagir avec n’importe quels autres services de messagerie.

Chiffrement homomorphique

Une fois nos données chiffrées et stockées dans le cloud, on pourrait penser qu’elles sont en sécurité. Le problème, c’est qu’il n’est pas possible d’analyser ces données quand elles sont chiffrées, il faudra les décrypter pour les utiliser (interroger une base de données par exemple), et elles seront alors vulnérables. La solution serait de pouvoir effectuer des calculs sur les données chiffrées qui obtiennent les mêmes résultats que ceux qu’on aurait obtenu si elles ne l’étaient pas, après avoir déchiffré les résultats. Le chiffrement homomorphique le permet. A ce jour, le principal problème de ce genre de chiffrement est l’explosion de la taille des données : un seul bit se transforme en millions de bits. Craig Gentry, le créateur du premier chiffrement homomorphique total en 2009, a estimé qu’avec cette technique, une recherche Google prendrait mille milliard de fois plus de temps qu’une recherche classique. Son efficacité s’améliore au rythme des recherches, et peut être qu’un jour nous pourrons, par exemple, demander un examen de nos données médicales sans jamais les dévoiler.

Chiff-hommomorphique.PNG

Avantages du Stockage Cryptographique

En plus des avantages du cloud lui-même (mise à jour automatique des logiciels, pas besoin de gérer les ressources soi-même, etc.), chiffrer ses données avant de les envoyer dans un service cloud offre de nombreux avantages, notamment :

- Lorsque le client crypte lui-même ses données avant de les envoyer au fournisseur de service, la confidentialité est préservée, non seulement vis-à-vis d’un individu externe non autorisé, mais aussi du fournisseur de service.

- Puisque seul le client possède les clés, il est le seul à pouvoir donner accès aux données décryptées.

- Même si le fournisseur de stockage applique des règles de sécurité strictes, il y a toujours la possibilité d'une brèche de sécurité, physique ou logicielle. Dans cette situation, le client pourrait être légalement responsable vis-à-vis de ses utilisateurs. En envoyant uniquement des données déjà chiffrées, le risque est minimisé.

- Le fournisseur de service garantit généralement l’intégrité des données.

Inconvénients et faiblesses du stockage cryptographique

La cryptographie dans le cloud présente aussi des inconvénients et faiblesses :

- Pour garantir la sécurité d’un algorithme à clé symétrique, il faut faire attention aux échanges de clés privées, toute transaction doit être effectuée de manière sécurisée.

- Si chaque appareil du client connais les clés privées pour utiliser les données stockées, leur sécurité est réduite.

- Calculs complexes en cas de clé de grande taille.

- Difficile d'accès même pour les utilisateurs légitimes : il faut les clés.

- La cryptographie a un coût : du temps et de l’argent.

Conclusion

Le principal problème et le défi pour le cloud computing est la sécurité de l'environnement de cloud, différentes approches et modèles ont déjà été proposés par de nombreux chercheurs. Les fournisseurs de services cloud sont maintenant à la recherche de mécanismes de sécurité et de confidentialité appropriés, qui rendraient le cloud sûre et protégé pour leurs clients, afin qu’ils aient une confiance maximale.

Ressources

[1]Hussein, N. H., Khalid, A., & Khanfar, K. (2016). A survey of cryptography cloud storage techniques.

[2]Rashmi Nigoti1, Manoj Jhuria2 Dr.Shailendra Singh3, " A Survey of Cryptographic Algorithms for Cloud Computing ", International Journal of Emerging Technologies in Computational and Applied Sciences

[3]Nesrine Kaaniche , Aymen Boudguiga, Maryline Laurent," ID-Based Cryptography for Secure Cloud Data Storage", IEEE sixth international conference 2013 Page(s):375 - 382£

[4]Kamara and Lauter: A Searchable, "ryptographic Cloud Storage System", International Scholarly and Scientific Research & Innovation 7(8) 2013

[5]Sana Belguith, Abderrazak Jemai, Rabah Attia," Enhancing Data Security in Cloud Computing Using a Lightweight Cryptographic Algorithm ", ICAS 2015 : The Eleventh International Conference on Autonomic and Autonomous Systems

[6]https://www.definitions-marketing.com/definition/gouvernance-des-donnees/