• Aucun résultat trouvé

Contribution à la sécurité du Cloud Computing : Application des algorithmes de chiffrement pour sécuriser les données dans le Cloud Storage

N/A
N/A
Protected

Academic year: 2021

Partager "Contribution à la sécurité du Cloud Computing : Application des algorithmes de chiffrement pour sécuriser les données dans le Cloud Storage"

Copied!
127
0
0

Texte intégral

(1)

N° d’ordre : 2913

THÈSE DE DOCTORAT

Présentée par :

Zaïd KARTIT

Discipline: Sciences de l’ingénieur

Spécialité : Informatique et Télécommunications

Titre :

Contribution à la sécurité du Cloud Computing : Application des

algorithmes de chiffrement pour sécuriser les données dans le

Cloud Storage

Soutenue le 22/10/2016, devant le jury composé de : Président :

Mr. Moulay Driss RAHMANI PES, Faculté des Sciences de Rabat Examinateurs :

Mr. Mohamed EL MARRAKI PES, Faculté des Sciences de Rabat Mr. Chafik NACIR PES, Ecole Normale Supérieure de

l’Enseignement Technique de Rabat Mr. Abdelalim SADIQ PH, Faculté des Sciences de Kenitra Mr. Youssef FAKHRI PH, Faculté des Sciences de Kenitra

Invité :

(2)
(3)

Avant-propos

Les travaux présentés dans ce mémoire de thèse ont été effectués au Laboratoire de Recherche en Informatique et Télécommunications (LRIT), à la Faculté des Sciences de Rabat (FSR) Université Mohammed V, Unité associée au CNRST (URAC29), sous la direction du Professeur Mohamed EL MARRAKI.

Je tiens à remercier vivement :

Monsieur Mohamed El MARRAKI, professeur de l’enseignement supérieur à la faculté des sciences de Rabat pour m'avoir encadré avec un grand intérêt ainsi que pour ses encouragements, son ouverture d'esprit, sa disponibilité et bien sûr ses qualités scientifiques exceptionnelles, qui grâce à sa disponibilité et rigoureux conseils, j'ai pu entamer, développer et mener à terme ce travail. Qu'il trouve ici l'expression de toute ma gratitude.

Monsieur Ali RADI, Docteur, Ingénieur Qualité Réseau à Maroc Telecom, pour avoir co-encadré ce travail de thèse, son aide, ses recommandations, sa patience et ses qualités humaines. Sans oublier bien sûr, le partage inconditionnel de ses connaissances avec le monde de la recherche.

Monsieur Moulay Driss RAHMANI, Professeur d'enseignement supérieur à la faculté des sciences de Rabat, pour avoir accepté de présider le jury de thèse.

Monsieur Chafik NACIR, professeur de l’enseignement supérieur à L´Ecole Normale Supérieure de l'Enseignement Technique de Rabat, pour avoir rapporté et examiné ce manuscrit. Ses remarques constructives m'ont beaucoup aidé à améliorer ce manuscrit.

Monsieur Abdelalim SADIQ, Professeur Habilité à la faculté des sciences de Kenitra, pour avoir accepté de rapporter et d'examiner ce travail. Ses suggestions lors de la lecture de ma thèse m'ont permis d'apporter des améliorations à la qualité de cette dernière.

Monsieur Youssef FAKHRI, Professeur Habilité à la faculté des sciences de Kenitra, pour avoir examiné mon rapport.

Monsieur Driss ABOUTAJDINE, Professeur d'enseignement supérieur à la faculté des sciences de Rabat, Directeur du Centre National pour la Recherche Scientifique et Technique (CNRST), Responsable du Laboratoire de Recherche en Informatique et Télécommunications

(4)

(LRIT) associé au CNRST (URAC29) pour la confiance qu'il m'a accordée en m'autorisant à mener mes travaux de recherche dans ce laboratoire.

Je remercie chaleureusement ma femme Hedda MOHDACH et mes deux enfants MASSINE et ILYAS, ainsi qu’à toute ma famille qui ont supporté toutes les difficultés morales et matérielles pour me soutenir tout au long de mes études et pour leurs félicitations lors de mes réussites...

Tous les membres du laboratoire LRIT, Professeurs et Doctorants, pour leur esprit de groupe. Qu'ils trouvent ici le témoignage de toute mon estime et ma sincère sympathie.

En fin, merci à ceux que je n'ai pas pu les citer, mais auxquels je réitère mes sincères Remerciements.

(5)
(6)

Résumé

Le Cloud Computing, ou informatique en nuages, a émergé comme un nouveau paradigme pour offrir des ressources informatiques à la demande et pour externaliser des infrastructures logicielles et matérielles. De l’autre côté La protection de la vie privée est un des enjeux majeurs de la société moderne dans laquelle Internet est omnipotent. La motivation principale de cette thèse est de mettre en place des solutions à la problématique du stockage dématérialisé qui permettent d’assurer la protection et la sécurité des données confidentielles. Nous nous intéressons ainsi à protéger les données stockées dans l’environnement Cloud tout en permettant à leur propriétaire de les partager avec les personnes autorisées. Les systèmes de chiffrements proposés par la cryptographie, est la solution que nous décidons de retenir.

Tout d’abord, nous donnons une approche améliorée pour l’implémentation de la politique de sécurité du firewall permettant de sécuriser le Datacenter d’un Cloud Computing. Ensuite nous proposons un modèle qui permet de chiffrer les données avant de les stocker dans le Cloud, cette approche est basée sur les algorithmes de chiffrement symétriques (AES) et asymétriques (RSA), pour sécuriser les données stockées dans des serveurs externes. Nous traitons aussi les systèmes de chiffrements Homomorphiques afin de permettre d’effectuer des opérations avec le contenu chiffré dans le Cloud pour pouvoir bénéficier des forces de calculs du Cloud et éviter la saturation de la bande passante, qui peut causer la dégradation de la qualité de service d’autres applications métiers. Enfin, nous avons appliqué ce concept pour réaliser un système de vote électronique sécurisé qui mirent en œuvre les systèmes de chiffrements Homomorphiques additifs (EL Gamal, Paillier) en utilisant les plateformes du Cloud.

Mots-clés: Cloud Computing, Stockage, Sécurité, pare-feu, Politique de sécurité, Datacenter, Cryptographie, Chiffrement Homomorphiques, Vote électronique

(7)

Abstract

Cloud Computing has emerged as a new paradigm that permits to deliver IT resources on demand and outsource software and hardware infrastructure. On other hand, protection of privacy is one of the major challenges of modern society in which Internet is omnipotent. The main motivation of this thesis is to develop solutions to the problem of dematerialized storage to ensure the protection and security of confidential data. We’re interested to protect data stored in the Cloud environment while allowing the owner to share them with authorized persons. The ciphers systems offered by cryptography are the solution that we decided to choose.

First, we give an improved approach for the implementation of the firewall security policy in order to secure a Datacenter. Then we propose a model which encrypts data before storing them in the Cloud, this approach is based on symmetric encryption algorithms (AES) and asymmetric (RSA) to secure data stored in external servers. We also deal with ciphers homomorphic systems that allow performing operations with the encrypted content in the Cloud to benefit from Cloud’s calculation power and avoid saturation of bandwidth, which can cause degradation of the QoS of other business applications. Finally, we applied this concept to achieve an electronic voting system that uses an additive homomorphic encryption system (EL Gamal, Paillier), and we have proposed a model for achieving secure vote using Cloud platforms.

Keywords: Cloud Computing, Storage, firewall, Security Policy, Datacenter, Data security, cryptography, Homomorphic encryption, E-voting

(8)

TABLE DES Matières

Introduction générale

1- Introduction ……….………..….17 2- Contexte………..18 3- Motivation………...19 4- Contribution ………...20 5- Organisation de la thèse ………...………..21

Chapitre I : Généralités sur le Cloud Computing

1.1 Introduction ………..…..23 1.2 Historique………...…...24 1.3 Définition du Cloud ………...26 1.4 Caractéristiques………..………...…………..28 1.5 Auteurs ………...…...31 1.6 Technologies connexes ……….……….32

1.7 Type de service du Cloud Computing………...…………...………..34

1.8 Modèles de déploiement……….………37

1.9 Avantages du Cloud Computing………..………...……38

1.10 Obstacles au Cloud Computing .………..………..………..……39

1.11 Challenges de recherche dans l’environnement Cloud………...……...39

1.11.1 Migration des données .………..………...39

1.11.2 Sécurité de données et confidentialité………..…...………….39

1.11.3Migration de machines virtuelles……..……….…………40

1.11.4 Consolidation de serveurs………..……….…..40

1.11.5Gestion de l’énergie………...40

1.11.6 Ordonnancement………..……….…41

(9)

Chapitre II : Sécurité dans le Cloud Computing

2.1 Introduction……….………..…42

2.2 Terminologies et principes……….……...42

2.3 Exigences de sécurité pour l’architecture………...45

2.4 Sécurité physique………...46

2.5 Normes et stratégies de sécurité du Cloud……….………47

2.6 Modèles de sécurité……….………..48

2.7 Déploiement des politiques de sécurité au sein du firewall d’un Datacenter ……….……….………...48

2.7.1 Centre de données (Datacenter) ……….………...49

2.7.2 Firewall……….……..…...50

2.7.2.1 Pare-feu et politique de sécurité ………....51

2.7.2.2 Déploiement des politiques de sécurité ………..………..…...52

2.7.2.2.1 Déploiement de type I ………..……..53

2.7.2.2.2 Déploiement de type II ………..………...53

2.8 Equilibrage de charge (Load balancing) ………….………..………..……..56

2.8.1 Load Balancing et le Cloud Computing……….….….…..56

2.8.3Métriques du Load Balancing ………..………..….57

2.8.4 Algorithmes du Load Balancing………..….……..58

1.12.5 Approche proposée……….……...…….60

2.8 Conclusion ……….……….……..62

Chapitre III : Sécurisation des données dans le Cloud Storage

3.1 Introduction ……….………...64

3.2 Énoncé du problème et objectifs ………..………...64

3.3 La confidentialité des données dans le Cloud ……….……...66

3.4 Fondamentale sur la Cryptographie ………...68

3.4.1 Définition ……….……...68

3.5 Crypto système ……….……….….69

3.5.1 Définition ……….………...69

(10)

3.5.2.1 Algorithme de chiffrement AES ……….…………..………71

3.5.3 Cryptographie asymétrique (à clé publique) ……….……..………72

3.5.3.1 Algorithme RSA ……….…….….74 3.5.3.2 Sécurité de RSA ……….……….….76 3.5.3.3 Algorithme de Diffie-Hellman ………..………...79 3.5.3.4 PGP de Philip Zimmermann ………..………...80 3.5.2 Signatures numériques ………..………..80 3.5.3 Fonctions de hachage ……….………..………...81 3.5.4 Certificats numériques ……….…..………..81 3.5.5 Validité et confiance ………..……….…….83

3.6 Notre contribution pour de stockage sécurisé de données ………..…………...83

3.6.1 Algorithme proposé ……….………....85

3.6.1.1 Algorithme de stockage des données ………..………85

3.6.1.2 Algorithme de récupération des données ………..…….….86

3.6.1.3 Implémentation et analyse des résultats ………..…87

3.7 Conclusion ………..……...89

Chapitre IV : Chiffrement Homomorphique et vote électronique

4.1 Introduction ………..…………..91

4.2 Homomorphisme ………..…...92

4.2.1 Définition ……….………..92

4.3 Système de chiffrement homomorphique ……….……….92

4.3.1 Définition ……….………...92

4.3.2 Aperçu historique ……….………...93

4.3.3 Systèmes Homomorphiques Partielles ……….………...93

4.3.3.1 Cryptosystème de RSA ………..………...94

4.3.3.2 Cryptosystème d’EL GAMAL ……….…………95

4.3.3.3 Cryptosystème de Paillier ……….………97

4.3.4 Sécurité d’un cryptosystème homomorphique ………..………..99

4.3.5 Les limites théoriques d’un crypto système homomorphique ……….…..101

4.3.6 Attaque contre le cryptosystème homomorphique.……….…...101

(11)

4.5 Travaux existants et contributions ………...103

4.6 Scenario du vote électronique ………...………..….104

4.6.1 Description du scenario ………...106

4.6.2 Algorithme proposé pour notre scénario de vote ………..…106

4.6.3 Exemple d’un vote électronique avec EL Gamal ………..107

4.6.4 Avantages de notre proposition ……….…...109

4.6.5 Complexité et Résultat de l’implémentation de notre système ……… 110

4.7 Conclusion ………...…..…..113

Conclusion générale et perspectives

1- Conclusion générale ………...…..….114

2- Contribution ………...114

3- Perspectives ……….……..…....115

Annexe1 ……….……….……...…...116

(12)
(13)

LISTE DES FIGURES

Figure 1.2 : Prévisions de la taille du marché du Cloud Computing public……….25

Figure 1.3 : Vue générale de l’environnement Cloud Computing ………...27

Figure 1.4 : illustration des services Cloud………...28

Figure 1.5 : Caractéristiques du Cloud Computing………...30

Figure1.6 : Différentes avancées menant à l'avènement du Cloud………....……….34

Figure 1.7 : Types de service Cloud Computing………...35

Figure 1.8 : Modèles de déploiement Cloud Computing………..38

Figure 2.1 : Sécurité : principe et qualité………..…45

Figure 2.2 : Modélisation d’un Datacenter………...50

Figure 2.3 : Architecture avec firewall………...51

Figure 2.4 : Comparaison du nombre d’opérations par taille de la politique de sécurité pour les 02 algorithmes………...56

Figure 2.5 : Architecture Proposée pour le Load Balancing………...62

Figure 3.1 : Vue d'ensemble du stockage ……….67

Figure 3.2 : Schéma du chiffrement symétrique………...70

Figure 3.3: Illustration de l'algorithme AES………...71

Figure 3.4: Vitesse de l’AES par taille de la clé : 128, 192 et 256………...72

Figure 3.5 : Schéma du chiffrement asymétrique……….73

Figure 3.6 : Temps de déchiffrement par longueur de la clé RS………..….75

Figure 3.7 : Modèle Proposé de stockage de données dans le Cloud………....85

Figure 3.8: Graphe du temps de l'exécution avec différentes tailles du fichier………....88

Figure 3.9: Graphe du temps de l'exécution avec différentes tailles de la clé AES…………..89

Figure 4.1 : Scénario d’attaque à clairs choisis……….99

Figure 4.2 : Scénario d’attaque à chiffrés choisis………...100

Figure 4.3 : Scénario d’attaque adaptative à chiffrés choisis………..101

Figure 4.5: Schéma du vote électronique………...104

Figure 4.6: Comparaison des délais du chiffrement d’El Gamal avec Paillier………...111

Figure 4.7: Comparaison des délais du déchiffrement d’El Gamal avec Paillier…………...112

Figure4.8 : Graphe des délais d’exécution du chiffrement du vote par nombre de votants……….113

(14)

LISTE DES TABLEAUX

Tableau 1.1 : Les abréviations à base de ’*aaS’ ……….36

Tableau 2.1 : Exemple de Deux politiques d’un pare-feu……….52

Tableau 2.2 : Caractéristique des algorithmes du Load balancing ………..59

Tableau 3.1 : Temps d'exécution par taille du fichier en upload et en download ...……...87

Tableau 3.2 : Temps d'exécution par taille du fichier et taille de la clé AES………...…88

Tableau 4.1 : Aperçu historique de chiffrement homomorphique ………...……....94

Tableau 4.2: Comparaison des performances des schémas El Gamal et Paillier...………….111

(15)

LISTE DES ALGORITHMES

Algorithme 2.1: ENHANCED-Greedy-2-Phase Deployment………..53

Algorithme 2.2: IMPROVED-Greedy-2-Phase Deployment………...…55

Algorithme 3.1: FILEUPLOAD………...86

Algorithme 3.1: FILEDOWNLOAD………86

Algorithme 4.1: Génération de la clé RSA………...95

Algorithme 4.2: Chiffrement RSA………95

Algorithme 4.3: Déchiffrement RSA………95

Algorithme 4.4: Génération de la clé EL Gamal………...96

Algorithme 4.5: Chiffrement EL Gamal………...97

Algorithme 4.6: Déchiffrement EL Gamal………...97

Algorithme 4.7: Génération de la clé Paillier………98

Algorithme 4.8: Chiffrement Paillier………98

Algorithme 4.9: Déchiffrement Paillier………98

(16)
(17)

1. Introduction

Depuis plusieurs décennies, IT a acquis une place de choix dans la plupart des domaines de notre société et surtout dans nos communications. Ordinateurs, Smartphones ou tablettes électroniques sont devenus des intermédiaires essentiels permettant aux gens de surmonter des distances pour parler à l'autre ou de gagner du temps en effectuant des procédures administratives en ligne sans avoir à faire la queue dans les bâtiments officiels. Ils ont aussi tendance à remplacer l'interaction humaine dans les opérations très sensibles comme les virements bancaires ou les paiements. Que ce soit par leur vitesse, la facilité d'utilisation, ou le fait qu'ils permettent aux gens de rester connectés au monde entier, peu importe où ils sont, ces dispositifs ont devenus, parfois, sans remettre en cause, une véritable confiance chargé de secrets tels que les numéros de comptes bancaires, informations de carte de crédit, les détails privés, etc.

Indéniablement, la technologie de l'internet se développe d'une manière exponentielle depuis sa création. Au cours de la dernière décennie, avec la standardisation d’Internet, le développement des réseaux à haut débit, le paiement à l’usage et la quête sociétale de la mobilité, le monde informatique a vu se populariser un nouveau paradigme, le Cloud. Cette nouvelle technologie a fait son apparition dans le monde de l'IT. Ce nouveau concept offre des opportunités aux sociétés de réduire leurs coûts d'investissements dans les infrastructures et dans les logiciels.

Le Cloud Computing, ou « informatique des nuages », est un nouveau modèle informatique qui consiste à proposer les services informatiques sous forme de services à la demande, accessibles de n'importe où, n'importe quand et par n'importe qui. Cette approche n’est pas tout à fait nouvelle (modèle ASP, IBM on demand). La réelle nouveauté réside dans son approche systématique.

Il y a quelques années, on nommait ASP (Application Service Provider) le fait de proposer une application sous forme de service. En remontant un peu plus loin en arrière, dans les années 60, IBM proposait déjà l'informatique « on-demand ». Les années 80 furent aussi le

(18)

début des concepts de virtualisation. Tous ces concepts ont amené, petit à petit, à inventer une nouvelle manière de proposer l'informatique « comme un service ».

Dans un contexte économique où nous cherchons à rentabiliser au maximum les investissements et limiter l'empreinte écologique (Green IT), le Cloud Computing prétend à devenir, la solution de demain.

Dans un tel contexte, développeurs, administrateurs et décideurs ne peuvent plus ignorer l'émergence de ce nouveau marché, et doivent comprendre et analyser ces nouvelles technologies afin de mieux anticiper ce nouveau virage qu’est le Cloud Computing dans notre IT de demain. Cependant, n’imaginez pas un marché 100 % Cloud à court terme, il y aura une cohabitation entre le Cloud et l’informatique locale.

Le recours au Cloud est de plus en plus remarquable compte tenu de plusieurs facteurs, notamment ses architectures rentables, prenant en charge la transmission, le stockage et le calcul intensif de données.

Cependant, ces services de stockage prometteurs soulèvent la question de la protection des données et de la conformité aux réglementations, qui sous-tend le problème de la perte de maîtrise et de gouvernance. Cette dissertation vise à surmonter ce dilemme, tout en tenant compte de deux préoccupations de sécurité des données, à savoir la confidentialité des données et l’intégrité des données.

2. Contexte

L'informatique dématérialisée, couramment désignée par le terme anglais Cloud, consiste à ne plus gérer ses données sur son propre dispositif (ordinateur, téléphone, . . .) mais à en confier la gestion à une entité tierce accessible par Internet. De nos jours, on entend souvent parler de l'avènement du Cloud avec les nouveaux produits technologiques qui sont connectés en permanence à Internet, comme les Smartphones/tablettes, et avec des connexions réseaux de plus en plus performantes (3G/4G, ADSL/Fibre, . . .). Les utilisateurs peuvent ainsi accéder à leurs données de n'importe où et à n'importe quel moment. Cependant, un des risques majeurs de ces technologies est la perte de confidentialité de leurs données puisqu'elles sont confiées à une entité tierce, qui leur est souvent inconnue.

L'informatique dématérialisée est divisée en deux catégories :

 Le calcul dématérialisé, de l'anglais Cloud Computing, où le traitement des données est confié à l'entité tierce.

 Le stockage dématérialisé, de l'anglais Cloud Storage, où le stockage des données est assuré par cette même entité.

(19)

Ces deux informatiques peuvent être compatibles entre elles, comme le propose, par exemple, le système Amazon Cloud Drive [1]. Nous décidons cependant de nous focaliser sur le stockage dématérialisé et de concevoir une réalisation de celui-ci possédant certaines propriétés :

 un utilisateur doit pouvoir partager ses données avec les utilisateurs en qui il a confiance.

 un utilisateur non autorisé ne doit pas pouvoir accéder aux données, notamment le serveur qui est un utilisateur non autorisé.

 un utilisateur stockant des données dans un serveur doit pouvoir gérer les droits d'accès comme il le souhaite.

3. Motivation

Le Cloud Storage consiste à offrir aux utilisateurs la possibilité de stocker des données sur un serveur distant. L'intérêt d'un tel système est que le serveur va a priori être connecté en permanence à Internet. De n'importe où et à n'importe quel moment, un utilisateur pourra accéder à ses données, en récupérer et en stocker, en passant par les différents réseaux de connexion. Ceci est d'autant plus intéressant lorsque le dispositif qu'il utilise dispose de peu de mémoire, comme par exemple un téléphone mobile. Toutefois, la question de la sécurité des données doit encore être résolue de manière adéquate.

Même si cette technologie est bien connue depuis de nombreuses années par le public, les gens ne sont pas toujours conscients des risques. L'un d'eux est l’usurpation d'identité. En France, selon une étude du CREDOC [2] en 2009, le nombre de vols d'identité signalés était d'environ 250 milles. Il repose principalement sur la possibilité pour une personne malveillante de récupérer des informations personnelles et utile à propos de quelqu'un sur de nombreux documents qui pourraient être stocké sans protection. Ainsi, bien que ce problème ne soit pas inhérent à cette nouvelle technologie, le nombre croissant de documents officiels, bancaires ou des informations personnelles stocké dans le Cloud Storage offre de nouvelles possibilités pour les individus malveillants pour atteindre leurs objectifs. En effet, le CIFAS [3] service de prévention de la fraude au Royaume-Uni, rapporte un nombre toujours croissant de fraudes d'identité, de 2007 à 2012.

Ces menaces posent quelques questions: Comment ces systèmes fonctionnent? Comment sont-ils protégés contre les attaques potentielles [11c] [11d]? Comment pouvons-nous faire confiance aux garanties de sécurité réclamées par le système? Pour garantir la confidentialité et la sécurité des données sur les différents réseaux et plateformes.

(20)

Les données stockées dans le Cloud sont confidentielles et peuvent être sensibles à l'entreprise et sont susceptibles d'être exploitées par un tierce non autorisées. Actuellement, la plupart des utilisateurs du Cloud Storage ne protègent pas leurs données, d’autres utilisent des contrats SLA (Service Level Agreement). Ces Contrats sont basés, généralement, sur la confiance et la réputation du fournisseur. Cette faiblesse nous a motivé à réfléchir à des solutions qui permettent aux utilisateurs de sécuriser leurs données pour éviter leurs utilisations malveillantes.

4. Contribution

Lors de la définition des solutions pour la confidentialité des données stockées dans le Cloud, nous prenons en considération les aspects suivants: la facilité de déploiement, de la robustesse, et de performances (délai d’exécution). En considérant les constatations et les objectifs cernés dans la section précédente, nous avons défini les contributions majeures ci-dessous :

Au niveau du chapitre II qui aborde la problématique du déploiement de la politique de sécurité du firewall d’un Datacenter : Beaucoup de travaux de recherche ont traité de la spécification des politiques, la détection des conflits et le problème d’optimisation, mais très peu de travaux se sont intéressés au déploiement de politiques de sécurité au niveau du firewall [88]. Nous avons fourni des approches qui permettent de déployer une politique de sécurité cible afin qu’elle remplace celle en cours d’exécution. Nos principales contributions sont les suivantes :

- Contribution 1 :

 Développement d’un nouvel algorithme plus efficace et sécuritaire pour l'actualisation de la politique de sécurité du firewall, Ce travail a fait l’objet d’une publication dans un journal international [1].

 Développement d’un algorithme améliorant notre première approche [2], la valeur ajoutée de cette évolution est de sécurisé davantage l’algorithme, renforcer sa fiabilité et le rendre plus rapide.

 Au niveau du chapitre III qui concerne la sécurisation des données stockées dans un Cloud Storage : Lorsque on discute des solutions sur la confidentialité des données stockées par un fournisseur externe, on prend en considération les aspects suivants: la facilité de déploiement, la robustesse, la rapidité de traitement et de performances. Nos contributions sont résumées comme suit:

(21)

 Proposition d'un schéma pour le stockage dans le Cloud, basé sur l’utilisation originale de la cryptographie [3] [4]. Tout d'abord, le schéma proposé garantit la confidentialité meilleure de données. Notre algorithme [5] [6] vise à fournir une solution qui assure le stockage des données en toute sécurité dans le Cloud. Les données doivent être cryptées avant de les envoyer. Nous avons utilisé l'algorithme de chiffrement symétrique AES afin de bénéficier de ses avantages en termes de robustesse et de la rapidité de traitement. Ce modèle hybride que nous avons proposé permet de sécuriser les données et de les protéger contre les attaques.

 Développement d’une autre solution sécurisé, fiable et rapide pour sécuriser les données stockées dans le Cloud Storage. Cette solution, qui améliore notre première approche [7] [8], est basée sur le chiffrement EL GAMAL.

Au niveau du Chapitre IV : Plusieurs travaux ont vu le jour récemment sur le vote électronique et qui utilise la force de calcul des plates-formes du Cloud Computing. Nos principales contributions, dans ce domaine, sont les suivantes:

- Contribution 3 :

 Nous avons proposé un système de vote électronique basé sur le chiffrement Homomorphique et qui permet d’assurer la confidentialité et la sécurité dans le vote [10a] [10b] [11a]. Nous présentons un nouveau système de vote électronique qui utilise le concept du chiffrement homomorphique, qui permet d'effectuer des opérations spécifiques au niveau des votes chiffrés sans les déchiffrer, au lieu d'un cryptage traditionnel. Notre proposition profite de tous les avantages des systèmes de chiffrement Homomorphiques additif notamment le côté sécurité et robustesse.

5. Organisation de la thèse

Dans ce mémoire, nous nous intéresserons à la problématique du stockage externalisé assurant la protection des données sensibles. Ma thèse est organisée comme suit :

Tout d'abord, Le premier chapitre donne une introduction du Cloud Computing, y compris la définition, l'architecture, les modèles de déploiement, les services de Cloud Computing et ses origines depuis l'informatique utilitaire en passant par les grilles de calculs, ainsi que les différents types de Cloud qui existent à l'heure actuelle et les différents types d'utilisateurs visés par les solutions de Cloud Computing et les besoins qui leur sont reliés.

(22)

Le deuxième chapitre aborde les principes, les exigences, les normes, les stratégies et les modèles de la sécurité dans le Cloud Computing. Ensuite, ce chapitre traite la politique de sécurité, les problèmes de formalisation et d’évaluation de politiques, décrit les techniques d’optimisation d’une telle politique et en fin, présente les problèmes liés au déploiement de ces politiques au sein d’un pare-feu d’un Datacenter. Ensuite nous abordons la question de l’équilibrage de charge dans le Cloud qui permet de distribuer la charge entre plusieurs ressources dans un système distribué ou en parallèle afin d'égaliser les charges de travail de manière efficace et d'améliorer le temps d'exécution d'une tâche afin d’améliorer les performances et la disponibilité.

Le troisième chapitre met l'accent sur la problématique du stockage de données dans le Cloud Computing, compte tenue de la confidentialité des données qui deviennent plus compliquées avec le partage de données souple entre un groupe d'utilisateurs dynamiques, et exige le caractère secret des données externalisées et un partage efficace des clés de décryptage entre les différents utilisateurs autorisés. Nous avons mis en place des solutions à la problématique du stockage dématérialisé qui permettent d’assurer la protection et la sécurité des données confidentielles. Notre solution s’appuie sur les algorithmes de chiffrement symétriques et asymétriques, pour sécuriser les données stockées dans des serveurs externes.

Le quatrième et dernier chapitre aborde les chiffrements Homomorphiques et leurs applications dans le traitement des données chiffrées dans le Cloud, ce concept permet d’exécuter, au sein même du Cloud, une recherche ou une manipulation sur les données sans devoir, à chaque fois, déchiffrer et re-chiffrer. Ensuite nous appliquons les avantages de ces systèmes de chiffrement Homomorphiques pour réaliser un modèle du vote électronique dans le Cloud Computing.

(23)

CHAPITRE I

1.1 Introduction

Les progrès technologiques récents soulagent une croissance explosive des contenus numérique. International Data Corporation (IDC) aux Etats-Unis proclament que l'univers numérique se développera par un facteur de 300, jusqu'à 40 trillion de giga-octets de données repliées d'ici 2020 [GR12]. Cette prolifération d'univers numérique continue à monter la demande de nouvelles utilités de stockage et de réseau, avec un besoin croissant d'utilisation plus rentable des capacités de stockage et la largeur de bande de réseau pour le transfert des données. En soi, l'utilisation des systèmes de stockage à distance gagne un intérêt en expansion, à savoir les services basés sur le Cloud Storage, puisqu'ils fournissent des architectures rentables. Ces architectures soutiennent la transmission, le stockage, et le calcul intensif des données externalisées dans un modèle d'affaires pay-per-use.

Cet intérêt répandu pour des services du Cloud Storage émane principalement des associations d'entreprises et des organismes gouvernementaux cherchant des systèmes plus rentables et plus élastiques. C'est-à-dire, les avantages de l'adoption du Cloud sont très réels dans une nouvelle ère de la réactivité et de l'efficacité dans la prestation de service de technologie de l'information. Par conséquent, il n'y a plus le besoin de dépenser un grand nombre de capital pour acheter un logiciel d'application cher ou un matériel sophistiqué dont ils pourraient ne jamais avoir besoin encore. Ces avantages économiques présentent les motivations essentielles principales pour l'adoption de nuage comme ils aident des entreprises réduisant les dépenses d'investissement (CapEx), réservées pour acheter l'immobilisation fixe et la dépense opérationnelle (OpEx) qui est un coût actuel pour exploiter un produit, une affaire, ou un système.

Cependant, malgré toutes ces caractéristiques attrayantes, ce nouveau paradigme apporte plusieurs problèmes de sécurité spécifiques au Cloud, en particulier en raison de ses caractéristiques de sous-traitance et de la multi-location.

Faire face à ces questions de plus près, nous percevons que la plupart des problèmes de sécurité dans le Cloud sont essentiellement des anciens problèmes des réseaux dans un nouvel arrangement. Par exemple, les partenariats d'entreprise et l'externalisation offshore impliquent la confiance similaire et des questions de réglementation. De même, les logiciels open source permettent aux services informatiques de construire et déployer rapidement des applications,

(24)

mais au détriment du contrôle et de la gouvernance. En outre, les attaques de machines virtuelles et les vulnérabilités des services Web existaient bien avant le Cloud Computing, et est devenu à la mode. Ainsi, la diversité de ces services fournis par des infrastructures de Cloud Computing accroît leur vulnérabilité aux incidents de sécurité et les attaques. Par conséquent, ces défis doivent être abordés tout en respectant la sécurité et de la confidentialité dans le contexte du Cloud.

1.2 Historiques

Il n'y a pas de date-clé à laquelle nous puissions dire que le Cloud Computing est né ! La notion de Cloud fait référence à un nuage, tel que l'on a l'habitude de l'utiliser dans des schémas techniques lorsque l’on veut représenter Internet. Un réseau comme Internet est constitué d'une multitude de systèmes fournissant des services et des informations. Le Cloud Computing est dans cette lignée : un ensemble de services et de données consommables. Cette notion de consommation a été proposée en 1961, lors d'une conférence au MIT (Massachusetts Institute of Technology), par John McCarthy aussi connu comme l'un des pionniers de l'intelligence artificielle (dont il proposa le nom en 1955) et pour avoir inventé du LISP en 1958. John McCarthy suggéra que la technologie informatique partagée (« time-sharing ») pouvait construire un bel avenir dans lequel la puissance de calcul et même les applications spécifiques pouvaient être vendues comme un service public.

Cette idée, très populaire dans les années 60, disparu au milieu des années 70 : à l'époque, les technologies matérielles, logicielles et réseaux n'étaient tout simplement pas prêtes.

Le Cloud Computing met en œuvre l'idée d'informatique utilitaire du type service public, proposée par John McCarthy. Il peut aussi être comparé au cluster de calcul dans lequel un groupe d'ordinateurs se relient pour former un ordinateur virtuel unique permettant le calcul de haute performance (HPC), mais aussi à l'informatique en grille (Grid Computing) où des ordinateurs reliés et répartis géographiquement permettent la résolution d’un problème commun. C'est dans cette philosophie, que depuis les années 70, on inventa la notion de « service bureau » pour qualifier une entreprise louant des lignes téléphoniques, répondeurs, services informatiques etc. Généralement, les clients des « services bureau » n'ont ni l'ampleur ni l'expertise pour intégrer en interne ces services, c’est pourquoi ils passent par un prestataire.

À l'époque, le coût d'achat et d'exploitation de mainframes IBM était hors de prix. C’est pourquoi, des solutions permettant aux entreprises de pouvoir exploiter ces technologies à moindre frais avec la notion de « paiement à la consommation » furent proposées.

(25)

Les ASP, « Application Service Provider » ont aussi leur part dans l'historique du Cloud Computing. Une ASP désigne une application fournie comme un service, c'est ce que l'on nomme maintenant SaaS pour « Software as a Service » dans la terminologie actuelle du Cloud Computing.

C'est ensuite, vers la fin des années 90, que ce concept a pris de l'importance avec l’avènement du Grid Computing [22]. Le terme Cloud est une métaphore exprimant la similarité avec le réseau électrique, dans lequel l'électricité est produite dans de grandes centrales, puis disséminée à travers un réseau jusqu'aux utilisateurs finaux. Ici, les grandes centrales sont les Datacenter, le réseau est le plus souvent celui d'Internet et l'électricité correspond aux ressources informatiques. Le Cloud Computing n'est véritablement apparu qu'au cours de l’année 2006 [23] avec l'apparition d'Amazon EC2 (Elastic Compute Cloud). C'est en 2009 que la réelle explosion du Cloud survint avec l'arrivée sur le marché de sociétés comme Google (Google App Engine), Microsoft (Microsoft Azure), IBM (IBM Smart Business Service), Sun (Sun Cloud) et Canonical Ltd (Ubuntu Enterprise Cloud). D'après une étude menée par Forrester [21], le marché du Cloud Computing s'élevait à environ 5,5 milliards de dollars en 2008, il devrait atteindre plus de 150 milliards d'ici 2020, comme l’illustre la figure 1.1.

(26)

La virtualisation a été la première pierre vers l'ère du Cloud Computing. En effet, cette notion permet une gestion optimisée des ressources matérielles dans le but de pouvoir y exécuter plusieurs systèmes « virtuels » sur une seule ressource physique et fournir une couche supplémentaire d’abstraction du matériel. Les premiers travaux peuvent être attribués à IBM, qui dans les années 60, travaillait déjà sur les mécanismes de virtualisation en développant dans les centres de recherche de Cambridge et de Grenoble, CMS (Conversation Monitor System), le premier hyperviseur.

Avec les différents progrès technologiques réalisés durant ces 50 dernières années, tant sur le plan matériel, logiciel et conceptuel, aux avancées des mécanismes de sécurité, à l'élaboration de réseaux complexes mais standardisés comme Internet, et à l'expérience dans l'édition et la gestion de logiciels, services, infrastructures et stockage de données, nous sommes maintenant prêts à entrer dans l’ère du Cloud Computing, telle que rêvait par John McCarthy en 1961.

1.3 Définition du Cloud

Comme nous l'avons vu plus haut, le Cloud Computing est un nuage de services et de données. Plus précisément, c’est un paradigme, et à ce titre il est difficile de lui donner une définition exacte et de dire avec certitude s’il s'agit ou non de Cloud.

Beaucoup de gens sont confus au sujet de ce que le Cloud Computing est, d'autant plus que le terme est galvaudé. En gros, il décrit les ressources hautement évolutives fournies comme un service externe via l'Internet sur un paiement à l'utilisation. Cloud Computing peut être défini comme un modèle spécialisé de calcul distribué, qui est configuré dynamiquement et livré à la demande. Ce nouveau paradigme massivement évolutif est différent des réseaux traditionnels. Il est très abstrait pour offrir trois niveaux de services.

Economiquement, l'attrait principal du Cloud Computing est que les utilisateurs utilisent seulement ce dont ils ont besoin, et ne paient que pour ce qu'ils utilisent réellement. Des ressources sont disponibles pour être accessible, à tout moment, et en tout lieu à travers les réseaux. Il n'y a pas besoin de vous soucier de comment les choses sont maintenues.

(27)

Figure 1.3 : Vue générale de l’environnement Cloud Computing

Il existe de nombreuses définitions du terme Cloud Computing (CC) et il y a peu de consensus sur une seule et universelle définition. Cette multitude de définitions reflète en soi la diversité et la richesse technologique du Cloud Computing. Dans ce qui suit, nous citons quelques une des plus pertinentes. Selon [13], [14], [15], qui se basent sur une vision rapprochée des grilles de calcul ’Grid Computing’, le Cloud Computing se base principalement sur le paradigme de l’informatique distribuée à grande échelle afin d’assurer un service à la demande accessible à travers Internet. Une deuxième définition, proposée dans [16, 17] et qui est plus abstraite, définit le Cloud Computing par l’utilisation des ressources informatiques (matériels et logiciels) qui sont offertes en tant que service à travers un réseau (typiquement Internet). Une troisième définition, élaborée par un groupe de travail de la commission européenne [18], considère le Cloud Computing comme un environnement d’exécution élastique de ressources impliquant de multiples acteurs pour offrir un service tarifié avec un certain niveau de qualité de service. Cette définition a été étendue dans [19] en prenant en considération les perspectives des différents acteurs de l’écosystème Cloud Computing (fournisseur, développeur, utilisateur).

Cependant, la définition proposée par la National Institute of Standards and Technology

(NIST) dans [12] et [20], qui a été reprise par plusieurs travaux, est devenue quasi la référence

et communément acceptée par le public. NIST définit le Cloud Computing comme étant un modèle qui permet l’accès via un réseau d’une façon simple et à la demande à un ensemble de ressources informatiques mutualisées et configurables (ex réseaux, serveurs, stockage, applications et services). Ces ressources informatiques peuvent être allouées et libérées rapidement avec le minimum d’effort de gestion ou d’interaction avec les fournisseurs de services. De plus, NIST précise que le Cloud Computing est composé de cinq caractéristiques

(28)

essentielles, trois modèles de services et quatre modèles de déploiement (figure 1.3 et figure 1.4). Ces éléments sont énumérés par la suite.

Figure 1.4 : illustration des services Cloud

1.4 Caractéristiques

Les utilisateurs de Cloud Computing sont portés à un niveau d'abstraction qui cache les détails de matériel ou de logiciels, les infrastructures déployées pour soutenir le calcul intensif et le stockage de données. De cette définition, trois principaux points clés doivent être pris en considération. Tout d'abord, le NIST décrit le développement de technologies qui prennent en charge un nouveau modèle d'affaires omniprésent, universel et appropriée. Deuxièmement, elle implique l'importance des techniques d'accès au réseau à des ressources partagées qui assurent une interaction fluide entre les fournisseurs du Cloud et de leurs clients. Troisièmement, cette définition met l'accent sur le modèle de tarification associée du Cloud qui permet aux utilisateurs de ne payer que les ressources consommées.

Pour mieux comprendre les concepts de base et des technologies dans le Cloud, nous extrayons du document de définition de NIST cinq attributs. Ces attributs décrivent un système basé sur le Cloud comme un modèle général fournissant des services mesurés et à la demande des clients. Généralement, un service, une solution ou un environnement

(29)

d’exécution devrait satisfaire une liste de caractéristiques pour qu’il soit considéré comme étant du Cloud Computing. Parmi ces caractéristiques, il y a celles qui sont reconnues comme fondamentales. Par exemple, NIST définit cinq caractéristiques essentielles qui sont [12] et [20] :

Ressources à la demande :

Un utilisateur peut allouer unilatéralement des ressources informatiques (serveurs, réseau, capacités de stockage, environnement d’exécution, application et des performances de calcul) au besoin, de façon automatique et sans nécessité d’interaction humaine avec chaque fournisseur de services.

Large accès réseau

Les ressources Cloud Computing sont disponibles à travers le réseau et accessibles via des mécanismes standards qui favorisent leurs utilisations à partir des appareils clients hétérogènes, voire légères (ex ordinateurs portables, téléphones, tablettes). Néanmoins, les réseaux publics sont considérés comme non fiable, et donc, plusieurs attaques peuvent être pertinents dans le contexte du Cloud, comme Man In The Middle attacks (MITMs).

Mutualisation des ressources

Les ressources informatiques du fournisseur Cloud Computing sont mutualisées pour servir plusieurs clients en utilisant un modèle multi-tenant. Nous devons noter qu'il n'y a pas de ressources dédiées à un client spécifique. Ces ressources, physiques ou virtuelles, sont allouées et libérées dynamiquement selon la demande du consommateur. Généralement, l’utilisateur n’a ni le contrôle ni la connaissance de l’emplacement exact des ressources allouées. Dans certains cas, il peut choisir l’emplacement géographique à un niveau haut (ex par pays, continent ou Datacenter). La propriété des ressources partagées est supportée par les différents fournisseurs en se basant sur la technique de la virtualisation, où les multiples systèmes d'exploitation résident sur la même machine physique. Cependant, les machines virtuelles (VM) co-résidantes ont soulevé certaines exigences de sécurité, à savoir l'isolation des données et des processus.

Élasticité rapide

Les ressources sont allouées et libérées d’une façon élastique, idéalement d’une façon automatiquement, pour s’adapter rapidement à la demande qu’elle soit croissante ou décroissante. Pour le consommateur, les ressources disponibles à l’allocation apparaissent comme illimitées et peuvent s’allouer à tout moment. Cette propriété démontre une évolutivité des ressources plus importantes.

(30)

Services mesurés

Toutes les ressources allouées peuvent être surveillées et contrôlées afin de mesurer leurs consommations avec un niveau d’abstraction approprié selon le type du service (ex stockage, temps de calcul, bande passante).

Figure 1.5 : Caractéristiques du Cloud Computing

En plus des cinq caractéristiques définies par NIST, il y a d’autres caractéristiques dont nous citons les plus pertinentes Figure 1.5 :

Autonome :

Le Cloud Computing est un système autonome et géré de façon transparente pour les utilisateurs. Le matériel, le logiciel et les données au sein du Cloud peuvent être 10 automatiquement reconfigurés, orchestrés et consolidés en une seule image qui sera fournie à l’utilisateur [24].

Paiement à l’usage :

La consommation des ressources dans le Cloud s’adapte au plus près aux besoins de l’utilisateur. Le fournisseur est capable de mesurer de façon précise la consommation (en durée et en quantité) des différents services (CPU, stockage, bande passante,…). Cela lui permettra de facturer l’utilisateur selon sa réelle consommation [25].

Fiabilité et tolérance aux pannes :

Les environnements Cloud tirent parti de la redondance intégrée du grand nombre de serveurs qui les composent en permettant des niveaux élevés de disponibilité (l’accès réseau aux ressources doit être assuré à plein temps sans aucune interruption) et de

(31)

fiabilité (Par exemple, la probabilité de perte de donnée doit être quasi nulle, de l’ordre de ) pour les applications qui peuvent en bénéficier [26].

Évolutivité :

Les services de type Cloud Computing devraient être évolutifs et doivent satisfaire toute demande de croissance de la part des utilisateurs selon le besoin des services et des ressources allouées. Cette évolutivité doit se faire d’une façon automatique et en cours d’exécution.

Simplicité d’utilisation :

L’allocation, la gestion et l’utilisation des ressources Cloud Computing doivent être simples. Idéalement, elles doivent se faire à travers des interfaces et des Application

Programming Interfaces(APIs) efficaces et génériques.

Garantie QoS :

Les environnements de Cloud peuvent garantir la qualité de service pour les utilisateurs, par exemple, la performance du matériel, comme la bande passante du processeur et la taille de la mémoire [27].

Basé-SLA :

Les Clouds sont gérés dynamiquement en fonction des contrats d’accord de niveau de service (SLA) [26] entre le fournisseur et l’utilisateur. Le SLA définit des politiques, telles que les paramètres de livraison, les niveaux de disponibilité, la maintenabilité, la performance, l'exploitation, ou autres attributs du service, comme la facturation, et même des sanctions en cas de violation du contrat. Le SLA permet de rassurer les utilisateurs dans leur idée de déplacer leurs activités vers le Cloud, en fournissant des garanties de QoS.

1.6 Acteurs

L’écosystème du Cloud Computing est composé principalement par cinq acteurs majeurs (Cloud Provider, Cloud Consumer, Cloud Carrier, Cloud Broker, Cloud Auditor) :

Cloud Provider :

Le fournisseur des ressources Cloud Computing. Il est responsable de fournir un service Cloud Computing qui satisfait les caractéristiques définies dans la précédente section, tout en respectant les Service Level Agreements (SLAs) établies avec les autres acteurs (en particulier le Cloud Consumer). Le Cloud Provider a comme activité l’allocation, l’orchestration et la gestion des ressources qu’il offre tout en assurant le bon niveau de sécurité.

(32)

Cloud Consumer :

L’utilisateur des ressources Cloud Computing. Cet utilisateur peut être un utilisateur final ou un développeur selon le type du service Cloud alloué. Cet utilisateur peut être une personne, un groupe de personnes, les petites et moyennes entreprises, les multinationales ou les gouvernements.

Cloud Carrier ou Network Provider :

Le fournisseur de réseau est l’intermédiaire qui assure principalement la connectivité entre les ressources Cloud Computing et la liaison entre les acteurs de l’écosystème Cloud Computing (en particulier entre le Cloud Provider et le Cloud Consumer). Cet utilisateur peut jouer un simple rôle d’acheminements des paquets, comme il peut jouer un rôle plus important en offrant des fonctionnalités avancées dans le réseau. Ces fonctionnalités sont basées sur des SLAs établies avec les autres acteurs de l’écosystème.

Cloud Broker :

Le courtier Cloud est un intermédiaire qui négocie la relation entre les Cloud Providers et les Cloud Consumers. Il peut offrir de nouveaux services qui simplifient les tâches de gestion du Cloud Consumer. Ce dernier peut demander les ressources Cloud Computing auprès du Cloud Broker au lieu du Cloud Provider directement.  Cloud Auditor :

L’auditeur Cloud s’occupe de la vérification et l’audition des services Cloud Computing. Il évalue les services offerts par les Cloud Providers, Cloud Carriers et Cloud Brokers du point de vue performances et sécuritaires. Le but principal est de vérifier que les fournisseurs respectent bien les SLAs qu’ils proposent.

1.7 Technologies connexes

Le Cloud Computing utilise des technologies telles que la virtualisation, l'architecture orientée services et les services web. Le Cloud est souvent confondu avec plusieurs paradigmes informatiques, tels que le Grid Computing, l’Utility Computing et l’

Autonomic Computing, dont chacun partage certains aspects avec le Cloud Computing. La

figure 1.6 montre la convergence des technologies qui ont contribué à l'avènement du Cloud

Computing.

- Grid Computing

Le Grid Computing est un paradigme de calcul réparti qui coordonne des ressources autonomes et géographiquement distribuées pour atteindre un objectif de calcul commun. Le

(33)

Grid est basé sur le partage dynamique des ressources entre des participants, des organisations

et des entreprises dans le but de pouvoir les mutualiser, et faire ainsi exécuter des applications scientifiques, qui sont généralement des calculs intensifs ou des traitements de très gros volumes de données. Le Cloud Computing est similaire au Grid Computing : les deux adoptent le concept d’offrir les ressources sous forme de services. Toutefois, ils sont différents dans leur finalité : tandis que la technologie des grilles vise essentiellement à permettre à des groupes différents de partager l’accès en libre-service à leurs ressources, le

Cloud a pour objectif de fournir aux utilisateurs des services « à la demande », sur le principe

du « paiement à l’usage ». De plus le Cloud exploite les technologies de virtualisation à plusieurs niveaux (matériel et plateforme d'application) pour réaliser le partage et l'approvisionnement dynamique des ressources.

- Utility Computing (informatique utilitaire).

L’utility Computing est simplement une délocalisation d'un système de calcul ou de stockage. Il présente un modèle d’affectation des ressources à la demande et facturation des utilisateurs en fonction de leur usage. Le Cloud Computing peut être perçu comme une réalisation de l'informatique utilitaire. Il adopte un système de tarification basé sur l'utilité, entièrement pour des raisons économiques. Avec l'approvisionnement des ressources à la demande et le paiement à l’usage, les fournisseurs de services peuvent maximiser l'utilisation des ressources et minimiser leurs coûts d'exploitation.

- L'Autonomic Computing

L’Autonomic Computing vise à construire des systèmes informatiques capables de

s’auto-administrer en s’adaptant à des changements internes et externes sans intervention humaine. Le but de l'informatique autonome est de surmonter la complexité de la gestion des systèmes informatiques d'aujourd'hui. Bien que le Cloud Computing présente certaines caractéristiques autonomes, telles que l’approvisionnement automatique des ressources, son objectif est de diminuer le coût des ressources, plutôt que de réduire la complexité du système.

- Virtualisation

La virtualisation est une technologie qui fait abstraction des détails du matériel physique et fournit des ressources virtualisées pour les applications de haut niveau. En effet, la virtualisation regroupe l’ensemble des techniques matérielles ou logicielles permettant de faire fonctionner, sur une seule machine physique, plusieurs configurations informatiques (systèmes d’exploitation,…), de sorte à former plusieurs machines virtuelles, qui reproduisent le comportement des machines physiques. La virtualisation constitue le socle du Cloud

Computing, car elle offre la possibilité de mettre en commun des ressources informatiques à

partir de clusters de serveurs, et ainsi d’affecter ou réaffecter dynamiquement des machines virtuelles aux applications à la demande. Le moniteur de machine virtuelle (VMM), également appelé hyperviseur, partitionne la ressource physique du serveur physique

(34)

sous-jacente en plusieurs machines virtuelles différentes, chacune fonctionnant sous un système d'exploitation distinct et une pile de logiciels utilisateur.

Figure 1.6 : Différentes avancées menant à l'avènement du Cloud.

1.7 Type de service du Cloud Computing

Afin de mieux définir la classification selon le type du service Cloud Computing et comme illustré dans la figure 2.3, un environnement informatique standard peut être composé par plusieurs couches qui partent du bas niveau (le matériel physique) vers le haut niveau (les applications à utiliser). Ces couches sont : Calcul, Réseau, Stockage, Virtualisation, Système d’exploitation, Intergiciel, Environnement de développement, Environnement d’exécution, Données et Applications. La classification selon le type du service correspond au niveau de responsabilité dans la gestion de ces couches que ce soit par les fournisseurs ou par les utilisateurs. Traditionnellement, toutes les couches sont gérées par l’utilisateur lui-même. Avec le Cloud Computing, l’utilisateur n’a plus en charge la totalité des couches et en fonction du niveau des sous-ensembles de couche nous distinguons le type de service. Selon NIST [20] et comme illustré dans la figure 2.3, il y a principalement trois types de services Cloud Computing qui sont Infrastructure as a Service (IaaS), Platform as a Service (PaaS) et Software as a Service (SaaS) :

(35)

Figure 1.7 : Types de service Cloud Computing  Infrastructure as a Service (IaaS)

Les services Cloud Computing de type IaaS correspondent à des ressources infrastructures offertes à la demande. Ces ressources sont des ressources de calculs, de stockage ou de réseau et peuvent être soit virtuelles, soit physiques. Le fournisseur a la gestion des couches Calcul, Stockage, Réseau et Virtualisation. L’utilisateur des ressources IaaS est responsable de la gestion de toutes les couches à partir et au-dessus du système d’exploitation. L’utilisateur n’a ni le contrôle, ni la gestion, ni la visibilité de l’infrastructure sous-jacente. Exemples des fournisseurs IaaS : Amazon EC2, VPC, IBM Blue Cloud, Eucalyptus, FlexiScale, Joyent, Rackspace Cloud, etc.

Platform as a Service (PaaS)

Les services Cloud Computing de type PaaS correspondent principalement à des environnements de développement offerts à la demande. L’utilisateur n’a plus en charge que les couches de données et d’applications. Pour ce faire, il y a utilisation des librairies, langages et outils offerts par le fournisseur pour structurer ses données et développer ses applications. Une fois développé, le fournisseur doit déployer et maintenir le bon fonctionnement de l’application et cela en gérant toutes les couches basses allant de l’infrastructure jusqu’aux environnements d’exécution. Les examples typiques du PaaS sont: Google App Engine, Windows Azure, Engine Yard, Force.com, Heroku, MTurk.

(36)

Software as a Service (SaaS)

Les services Cloud Computing de type SaaS correspondent tout simplement à des applications prêtes à l’utilisation offertes à la demande. L’utilisateur n’a qu’à utiliser le service Cloud Computing offert. Il n’a rien à gérer et c’est le fournisseur qui a toute la responsabilité de maintenir le service en gérant toutes les couches. Parmi les exemples d’applications d’entreprise offertes par cette couche on trouve : CRM, outils collaboratifs, messagerie, Business Intelligence, ERP, etc.

Il y a une correspondance entre le type de déploiement et le niveau de l’utilisateur. Le type SaaS correspond au niveau utilisateur, le PaaS correspond au niveau développeur et le IaaS correspond au niveau utilisateur d’infrastructure.

Bien que les trois types de services Cloud Computing (IaaS, PaaS et SaaS) soient la base de distinction du type de service, le style de nomenclature * as a Service » a été utilisé ailleurs pour caractériser des services et ressources Cloud Computing. Chacune des nouvelles abréviations peut-être vues comme un sous-ensemble d’un ou plusieurs des trois types de base. Parmi ces abréviations, nous citons quelqu’une d’entre elles dans le tableau 2.1.

Abréviation Nom complet de l’abréviation

APaaS Application Platform as a Service BaaS Backup as a Service

BaaS Backend as a Service CaaS Communication as a Service DaaS Data as a Service

DaaS Desktop as a Service DBaaS Database as a Service DCaaS Data Center as a Service DPaaS Database Platform as a Service DRaaS Disaster Recovery as a Service HaaS Hardware as a Service

HPCaaS High Performance Computing as a Service IDaaS Identity as a Service

IPaaS Integration Platform as a Service MaaS Monitoring as a Service

MaaS Management as a Service NaaS Network as a Service PRaaS Process as a Service RaaS Resource as a Service SECaaS Security as a Service

STaaS Storage as a Service

XaaS Everything as a Service

(37)

1.8 Modèles de déploiement

Selon la définition du Cloud Computing donnée par le NIST, il existe quatre modèles de déploiement des services de Cloud, à savoir : Cloud privé, Cloud communautaire, Cloud public et Cloud hybride, comme illustré dans la figure 1.8.

Cloud privé :

L’ensemble des ressources d’un Cloud privé est exclusivement mis à disposition d’une entreprise ou organisation unique. Le Cloud privé peut être géré par l’entreprise elle-même (Cloud privé interne) ou par une tierce partie (Cloud privé externe). Les ressources d’un

Cloud privé se trouvent généralement dans les locaux de l’entreprise ou bien chez un

fournisseur de services. Dans ce dernier cas, l’infrastructure est entièrement dédiée à l’entreprise et y est accessible via un réseau sécurisé (de type VPN). L’utilisation d’un Cloud privé permet de garantir, par exemple, que les ressources matérielles allouées ne seront jamais partagées par deux clients différents.

Cloud public :

L’infrastructure d’un Cloud public est accessible à un large public et appartient à un fournisseur de services. Ce dernier facture les utilisateurs selon la consommation et garantit la disponibilité des services via des contrats SLA.

Cloud hybride :

L’infrastructure d’un Cloud hybride est une composition de plusieurs Clouds (privé, communautaire ou public). Les différents Clouds composant l’infrastructure restent des entités uniques, mais sont reliés par une technologie standard ou propriétaire permettant ainsi la portabilité des données ou des applications déployées sur les différents Clouds.

Cloud communautaires :

L’infrastructure d’un Cloud communautaire est partagée par plusieurs organisations indépendantes ayant des intérêts communs. L’infrastructure peut être gérée par les organisations membres ou par un tiers. L’infrastructure peut être située, soit au sein des dites organisations, soit chez un fournisseur de services.

(38)

Figure 1.8 : Modèles de déploiement Cloud Computing

1.9 Avantages du Cloud Computing

Le Cloud Computing offre de nombreux avantages que plusieurs travaux ont listés [28], [29]. Parmi ces avantages on trouve :

 Réduction des coûts d’infrastructure.  Réduction des coûts de développement.  Réduction des coûts des logiciels.

 Des ressources et services plus rapide à allouer et plus simple à utiliser.  Accès aux ressources plus flexible.

 Meilleure utilisation, plus efficace, des ressources.  Augmentation de la puissance de calcul.

 Grande capacité de stockage (quasi illimitée).  Moins de problèmes d’entretien.

 Gestion des mises à jour plus simple et rapide.  Pas de perte de données.

 Tout est considéré comme un service défini par un SLA.  Infrastructure allouée et disponible juste à temps.

(39)

1.10 Obstacles du Cloud Computing

Le Cloud Computing n’a pas que des avantages, il possède quelques obstacles et désavantages qui sont abordés dans [30], [31], [32]. Parmi ces obstacles, il y a :

 Données Lock-in.

Confidentialité des données. Chiffrement des données.

 Nécessité d’un accès réseau constant.

 Mauvais fonctionnement avec les connexions à basse vitesse.  Faible niveau de la qualité de service dans le réseau.

 Risque d’engorgements lors des transferts de données.  Problème d’interopérabilité.

 Problème de portabilité.  Faible contrôlabilité.

 Manque de fonctionnalités d’audit.

 Des contrats de service SLAs non normalisés.

1.11 Challenges de recherche dans l’environnement Cloud

Même si certaines des caractéristiques essentielles du Cloud Computing ont été réalisées par des efforts commerciaux et universitaires, de nombreux problèmes existants n'ont pas été pleinement pris en compte, et d’autres nouveaux défis continuent d'émerger [33]. Dans ce chapitre, nous résumons quelques enjeux de recherche dans le Cloud Computing.

1.11.1 Migration des données entre les environnements non standards

La plupart des fournisseurs de services de Cloud Computing utilisent des applications Cloud propriétaires. Ces applications ne sont pas interopérables, ce qui rend très difficile pour les utilisateurs de faire passer leurs données à un autre fournisseur de Cloud ou de revenir à leur machines.

1.11.2 Sécurité de données et confidentialité

Dans le Cloud Computing, les données doivent être transférées entre les dispositifs de l'utilisateur et les Datacenter des fournisseurs de services de Cloud Computing, ce qui les rendra cible facile pour les pirates. La sécurité des données et la confidentialité doivent être garanties, que ce soit sur le réseau ou encore dans les Datacenter de Cloud où elles seront stockées.

Figure

Figure 1.1 : Prévisions de la taille du marché du Cloud Computing public [21].
Figure 1.5 : Caractéristiques du Cloud Computing
Figure 1.6 : Différentes avancées menant à l'avènement du Cloud.
Figure 1.7 : Types de service Cloud Computing     Infrastructure as a Service (IaaS)
+7

Références

Documents relatifs