« Cryptologie pour le Cloud » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
 
(3 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Auteurs : Solène Demars et Xhoi Golemi
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é.
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 ?
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 ==
== Introduction au Cloud Computing et à la Cryptographie ==
Ligne 22 : Ligne 21 :
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.
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]
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.
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 ==
== Stockage dans le Cloud ==
Ligne 36 : Ligne 32 :


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


[[Fichier:Cloud-storage.PNG]]
[[Fichier:Cloud-storage.PNG]]



== Sécurité dans le Cloud ==
== Sécurité dans le Cloud ==
Ligne 49 : Ligne 46 :


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é.
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]
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.
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]
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 ==


== Techniques du stockage cryptographique ==



L’architecture du stockage cryptographique comprend trois composants :
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.
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.
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.
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 :
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'''
'''Cryptographic Cloud Storage'''
Ligne 76 : Ligne 70 :


[[Fichier:Cryptographic-cloud-storage-architecture.PNG ‎]]
[[Fichier:Cryptographic-cloud-storage-architecture.PNG ‎]]




'''Chiffrement classique (serveur)'''
'''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.
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 :
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.
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).
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.
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.[8]


[[Fichier:Classique-serveur.PNG]]
[[Fichier:Classique-serveur.PNG]]





'''Chiffrement classique (client)'''
'''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.
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.
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.
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.[8]

Le chiffrement côté client peut être mis en place avec des outils comme BoxCryptor.
Le chiffrement côté client peut être mis en place avec des outils comme BoxCryptor.


[[Fichier:Classique-client.PNG]]
[[Fichier:Classique-client.PNG]]






'''Cloud security gateway'''
'''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. [8]

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.


[[Fichier:Securite-gateway.PNG]]
[[Fichier: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.
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'''
'''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.
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. [7][8]


[[Fichier:Chiff-hommomorphique.PNG]]
[[Fichier:Chiff-hommomorphique.PNG]]






'''Cloud security gateway'''




== Avantages du Stockage Cryptographique ==
== 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 :
La cryptographie dans le cloud computing 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.
1-Assurance de confidentialité:


- Puisque seul le client possède les clés, il est le seul à pouvoir donner accès aux données décryptées.
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].


- 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 ==
== Inconvénients et faiblesses du stockage cryptographique ==


La cryptographie dans le cloud présente de nombreux inconvénients et faiblesses:
La cryptographie dans le cloud présente aussi des 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.


- 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.
4. Difficile d'accès même pour les utilisateurs légitimes.


- Si chaque appareil du client connais les clés privées pour utiliser les données stockées, leur sécurité est réduite.
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.


- Calculs complexes en cas de clé de grande taille.
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.


- Difficile d'accès même pour les utilisateurs légitimes : il faut les clé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].
- 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 ==
== Ressources ==
Ligne 207 : Ligne 157 :


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

[7]https://lejournal.cnrs.fr/articles/un-cryptage-revolutionnaire-pour-securiser-le-cloud

[8]https://docplayer.fr/11600966-Cryptographie-et-cloud-computing-etat-de-l-art.html

[9]G. Murugaboopathi, C.Chandravathy, P. Vinoth Kumar, " Study on Cloud Computing and Security
Approaches", International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-2307, Volume-3,
Issue-1, March 2013

[10]] Pratibha Tripathi, Mohammad Suaib#, "Security Issues On Cloud Computing", International Journal of
Engineering Technology, Management and Applied Sciences, November 2014, Volume 2 Issue 6.

[11]Hassan Takabi , James B.D. Joshi, Gail Joon Ahn, ”Cloud Computing Security and Privacy Challenges in
Cloud Computing Environments ", COPUBLISHED BY THE IEEE COMPUTER AND RELIABILITY
SOCIETIES,1540-7993/10/$26.00 © 2010 IEEE

Dernière version du 25 novembre 2018 à 17:00

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.[8]

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.[8]

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. [8]

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. [7][8]

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/

[7]https://lejournal.cnrs.fr/articles/un-cryptage-revolutionnaire-pour-securiser-le-cloud

[8]https://docplayer.fr/11600966-Cryptographie-et-cloud-computing-etat-de-l-art.html

[9]G. Murugaboopathi, C.Chandravathy, P. Vinoth Kumar, " Study on Cloud Computing and Security Approaches", International Journal of Soft Computing and Engineering (IJSCE) ISSN: 2231-2307, Volume-3, Issue-1, March 2013

[10]] Pratibha Tripathi, Mohammad Suaib#, "Security Issues On Cloud Computing", International Journal of Engineering Technology, Management and Applied Sciences, November 2014, Volume 2 Issue 6.

[11]Hassan Takabi , James B.D. Joshi, Gail Joon Ahn, ”Cloud Computing Security and Privacy Challenges in Cloud Computing Environments ", COPUBLISHED BY THE IEEE COMPUTER AND RELIABILITY SOCIETIES,1540-7993/10/$26.00 © 2010 IEEE