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é QDK (Quantum Direct Key). 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 du stockage cryptographique

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.



Techniques du traitement protégé dans le cloud

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




Cloud security gateway


Avantages du Stockage Cryptographique

La cryptographie dans le cloud computing offre de nombreux avantages, notamment:

1-Assurance de confidentialité:

Dans un service de stockage crypto-logique, les données sont chiffrées sur site par le (s) processeur (s) d'information. Dans ce les clients seront protégés et la confidentialité de leurs connaissances sera préservée, quelle que soit les actions du fournisseur de stockage en cloud. Cela réduit considérablement toute exposition légale pour chaque client et fournisseur [40].

2- Restrictions géographiques:

Dans un service de stockage crypto-logique, la connaissance est à peine stockée dans un type crypté, toute loi qui le concerne la connaissance de garder a très peu ou pas d'impact sur le client. C’est vraiment une exposition moins légale pour le client et permet au fournisseur de stockage en cloud d’utiliser de manière optimale son infrastructure de stockage, réduction des prix [1,2].

3- Assignations:

Dans un service de stockage crypto-logique, puisque la connaissance est stockée dans un type crypté et que le client conserve possession de toutes les clés, toute demande de connaissance (non chiffrée) doit être créée pour le client.[14]

4- Réduire les risques d'atteinte à la sécurité:

Même si un fournisseur de stockage en cloud applique des pratiques de sécurité strictes, il y a toujours la possibilité d'une sécurité . Dans cette situation, le client peut être légitime responsable. Utilisation des données du service de stockage cryptographique dans crypté et l'intégrité des données est garantie à tout moment. Par conséquent, une atteinte à la sécurité pose très peu et élimine le risque du client. [36]

5- Conservation et destruction des données: Dans de nombreuses situations, un client est responsable de la conservation et de la destruction des données qu’il a collectées pendant ces données sont stockées dans des bean stores. Le client peut avoir du mal à s’assurer de l’intégrité des données et à si elle a été correctement jetée. Un service de stockage crypto-logique atténue ces problèmes puisque ’intégrité sera vérifiée et les connaissances nécessaires pour déchiffrer les connaissances (c’est-à-dire la clé principale) seront conservées sur place. L'effacement sécurisé des connaissances sera efficacement réalisé en effaçant simplement les données de base [36].

6. Découverte électronique: L’utilisation du service de stockage cryptographique vérifiera l’intégrité à tout moment si un fournisseur est incité à préserver l’intégrité des données [12].


Inconvénients et faiblesses du stockage cryptographique

La cryptographie dans le cloud présente de nombreux inconvénients et faiblesses:

1. Pour garantir un algorithme à clé symétrique, il est important d’avoir un échange correct de clé privée, toute la transaction doit être terminée de manière sécurisée.

2. Compromis d’une clé privée utilisant la cryptographie à clé symétrique, chaque participant a un clé privée identique on augmente toujours les participants à la fois compromis de risque et conséquences augmenter considérablement [28].

3. Calcul complexe en cas de clé de grande taille.

4. Difficile d'accès même pour les utilisateurs légitimes.

5. Haute disponibilité: l'utilisation de la cryptographie affecte l'un des concepts fondamentaux de l'information sécurité, de nombreuses méthodes vont à l’encontre de la menace comme le déni de service.

6. L’utilisation de la cryptographie affecte un autre concept fondamental de sécurité de l’information, qui est sélectif contrôle d'accès.

7. Les menaces résultant d’un système, de protocoles et de procédures de conception médiocres doivent être résolues par bonne conception.

8. La cryptographie a un coût, prenez en compte le temps et l'argent [29].


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/