Sécurité Cloud par Systèmes Multi-Agents
Sécurité Cloud par Systèmes Multi-Agents
Titre
Remerciements
Je tiens à remercier très sincèrement toutes les personnes qui, par leurs conseils et leurs
encouragements ont contribué à l’aboutissement de ma thèse de doctorat :
J’adresse également mes remerciements les plus chaleureux à Monsieur Laouid Abdelkader
et à Monsieur Mounir Beggas, Docteurs à l’Université d’Eloued ; vous m’avez guidé et
encadré avec un enthousiasme permanent ; vous m’avez transmis les notions nécessaires et
indispensables à ma recherche.
Je veux également remercier tous les membres de jury : Pr. Benmohamed Mohamed,
Professeur à l’Université de Constantine 2, pour m’avoir fait l’honneur de présider mon jury
de thèse, ainsi que Pr. Imad Saleh, Professeur à l’Université de Paris 8, Pr. Bennoui
Hammadi, Professeur à l’université de Biskra, Dr. Benharzallah Saber, (MCA) de
l’université de Batna2, Dr. Rezeg Khaled (MCA) de l’université de Biskra; pour m’avoir fait
l’honneur d’accepter de juger ce travail et l’intérêt qu’ils ont porté à mon travail.
Dédicaces
Résumé
Abstract
In the last decade, Cloud Computing has been envisioned as the next generation
architecture of Information Technology (IT). This advent motivates the data
owners to outsource their complex systems from local sites to the Cloud for
great flexibility and economic savings. However, the protected data should to
be encrypted before outsourcing. The main objective of this thesis is to
implement properly this approach. The solution should provide an encryption
scheme, in such a way the user may maintain some functions such as arithmetic
operations, research, update requests and preserving order, i.e., the
homomorphic on the encrypted Cloud data. Moreover, even if another tenant
can access to the stored data, all the stored data will appear encrypted to the
unknown users. We are looking for the proposition of a strong solution that
combines obfuscation technique in order to secure user interface, hybrid
encryption algorithms to secure transport, communication operations and fully
homomorphic encryption approach for securing storage operations. In this
work, we have also proposed new security architecture based on a multi-agent
system to conduct all communications and storage operations in a Cloud
Computing environment, where we have used various intelligent security
technologies as much as possible.
ملخـــــص
منذ العرش الس نوات املاضية ،اصبحت احلوس بة السحابية يه اساس بنية اجليل التايل لتقنية املعلومات
) . (ITهاته الاضافة لعبت دورا همام يق حتفزي صاحا البياتات ل ى الاس تعاةة صماادر ااريية لنقل صةظمهتم
املعقدة من املواقع احمللية اىل احلوس بة السحابية للحاول ل ى مروةة كبرية و ختفيض للمااريف .ابلرمغ من هذا
اجلاةب اجلد اجيايب ،فلحامية البياتات ،جيب دامئا تشفريها قبل الاس تعاةة صماادر ااريية وةقلها هناك .الهدف
الرئييس من هته الارطرو ة اذا ،هو تنفيذ وجتس يد هذا الهنج بشلك دقيق وموثوق .احلل هنا ،جيب ص يوفر
ةظام تشفري ،يضمن للمس تخدم احلفاظ ل ى بعض اخلاائص املهمة مثل اماكةية ايراء العمليات احلسابية،
البحث ،معليات التحديث واحلفاظ ل ى ااصية الرتتيب بني البياتات ،يمكننا هنا التلكم عن ااصية او مفهوم
التشالك ( ) homomorphicل ى بياتات السحابة املشفرة .من تاحية صخرى ،حىت اذا اك هناك رطرف صخر
غري موثوق ميكنه الوصول اىل البياتات اخملزةة ،فاهنا س تظهر هل مشفرة ومهبمة .يف هذا العمل ةتطلع اىل اقرتاح
ل قوي وشامل جيمع بني تقنية التشويش لتأمني واهجة املس تخدم ،وخوارزميات التشفري الهجينة لتأمني النقل
واالتاال ،وتقنيات التشفري اللكية التشالك لضام معليات التخزين .يف معلنا هذا اقرتحنا ايضا بنية صما جديدة
تعمتد ل ى ةظام متعدد العمالء لتجس يد وايراء لك معليات االتااالت والتخزين يف بيئة ذات حوس بة حسابية
حيث اس تغللنا خمتلف التقنيات المنية اذلكية قدر االماك .
اللكامت املفتاحية -صما احلوس بة السحابية ،ةظام متعدد العمالء ،تشفري متشالك اما اما ،تشفري حمافظ
ل ى الرتتيب.
VI
Remerciements....................................................................................................................... I
Dédicaces .............................................................................................................................. II
Résumé ................................................................................................................................ III
Abstract ............................................................................................................................... IV
ملخـــــص..................................................................................................................................... V
Liste des figures .................................................................................................................... VI
Liste des tableaux ................................................................................................................ VII
Table des matières ............................................................................................................. VIII
Introduction générale ............................................................................................................ 1
1. Introduction ....................................................................................................................................... 1
2. Contexte ............................................................................................................................................ 2
3. Problématique et motivation ............................................................................................................. 3
4. Objectifs ............................................................................................................................................ 5
4.1. Objectif général......................................................................................................................... 5
4.2. Objectifs spécifiques ................................................................................................................. 5
5. Contributions..................................................................................................................................... 5
6. Organisation de la thèse .................................................................................................................... 7
Chapitre I : Cloud Computing ................................................................................................. 8
I.1 Introduction .................................................................................................................................. 8
I.2 Définition ...................................................................................................................................... 9
I.3 Caractéristiques du Cloud Computing ........................................................................................ 10
I.3.1 Accès libre à la demande ........................................................................................................ 10
I.3.2 Service doit être accessible via un réseau .............................................................................. 10
I.3.3 Ressources partagées.............................................................................................................. 10
I.3.4 Élasticité rapide ....................................................................................................................... 11
I.3.5 Service mesuré ........................................................................................................................ 11
I.3.6 Paiement à l’usage .................................................................................................................. 11
I.3.7 Basé Virtualisation .................................................................................................................. 11
I.3.8 Basé SLA (Service Level agreement) ....................................................................................... 12
IX
Introduction générale
1. Introduction
Le Cloud Computing est devenu un nouveau paradigme surutilisé pour l'hébergement et la
fourniture des ressources via Internet. Il représente la cinquième génération de l'informatique après
les mainframes, les ordinateurs personnels, le paradigme client/serveur et le web (World Wide
Web). Cette approche n’est pas tout à fait nouvelle. Il y a quelques années, IBM a déjà proposé
l'informatique « on-demand » sous l’approche systématique ASP (Application Service Provider).
Elle représente le fait de proposer une application sous forme de service. Les années 80 furent
aussi le début de la technologie de virtualisation. Tous ces concepts et technologies ont amené,
petit à petit, à inventer une nouvelle manière de proposer l'informatique « comme un service ».
Les services informatiques sont fournis sous la forme d'un utilitaire pour décrire un modèle
commercial en terme de fourniture à la demande. Dans ce modèle, l'utilisateur paye les
fournisseurs de services en fonction de sa consommation. De manière similaire, lorsque les clients
obtiennent des services traditionnels et publics tels que l’eau, l’électricité, le téléphone, etc.
Le Cloud Computing peut être défini comme un modèle informatique distribué et spécialisé,
configurable de manière dynamique, mutualisée, évolutive (Puissance de calcul élevée, espace de
stockage important, etc.) et fourni à la demande via des réseaux de communication. Ce nouveau
paradigme offre plusieurs avantages comme le déploiement rapide, le paiement à l’usage, la
réduction de coûts, l’évolutivité facile, la délivrance plus rapide de service, l’accès au réseau
omniprésent, etc. (voir Figure 0-1). En raison de ces diverses caractéristiques, le Cloud Computing
devient une solution intéressante pour les entreprises et les chercheurs.
1
Introduction générale
Tous ces faiblesses et défiances construisent un élément commun qui est la problématique de
confiance et de sûreté entre les fournisseurs et les consommateurs, parce que le Cloud Computing
nécessite la confiance aux fournisseurs des services cloud. En conséquence, la confiance
représente l’un des principaux facteurs pour l’adoption de ce nouveau paradigme.
À travers cette thèse, nous procédons à l’identification des défis liés à l’adoption du Cloud
Computing. Nous nous intéressons en particulier aux risques liés au traitement et stockage des
données en proposant un ensemble de nouveaux techniques et solutions de sécurité fonctionnant à
la fois au niveau fournisseurs et au niveau clients. Le but ultime est d’offrir une expérience plus
sécurisée d'un environnement informatique en Cloud.
2. Contexte
Le domaine de Cloud Computing est devenu plus large, vague et en chevauchement. Comme
il n'existait aucune définition standard du Cloud Computing, l'Institut national des normes et de la
technologie (NIST) a proposé une définition en 2011 qui inclut les modèles de déploiement, les
types, les caractéristiques essentielles de Cloud Computing. La Figure 0-1 présente des aspects
importants de Cloud Computing, tels que proposés par le NIST.
Élasticité Privé
Fiabilité
Types Publique
Caractéristiques Modelés
Virtualisation
Hybride
... ….
Locale
Réduction de coût
Isolé
Facile à utiliser
Cloud Localité
Bénéfices Computing Distribué
... ….
2
Introduction générale
Le Cloud Computing consiste à ne plus gérer les données sur les dispositifs des utilisateurs
(ordinateur, Smartphone, . . .) mais en confie la gestion à une entité tierce accessible par Internet.
Les utilisateurs peuvent ainsi accéder à leurs données de n'importe où et à n'importe quel moment,
pour les utiliser dans un traitement ou pour les consulter. Cependant, on peut diviser le Cloud
Computing en deux axes qui sont le calcul en Cloud, où le traitement des données est confié à
l'entité tierce. Le deuxième c’est le stockage en Cloud, où le stockage des données est assuré par
cette même entité. Ces deux approches peuvent être compatibles entre elles. Nous décidons
cependant de se focaliser sur le stockage en Cloud.
3. Problématique et motivation
La sécurité est le principal facteur du succès de la technologie Cloud. Nombreuses recherches
ont mentionné que la sécurité est désormais le principal défi à relever dans l’environnement Cloud.
Il y a des nombreux problèmes de sécurité liés au Cloud Computing, qui sont similaires aux
architectures traditionnelles. Cela nécessite de réévaluer les risques liés à chacun de leurs domaines
critiques dans un nouvel environnement hasardeux, où les ressources sont partagées par plusieurs
intervenants (utilisateurs ou des fournisseurs). En fonction de l’architecture Cloud, le client utilise
la caractéristique multi-locataire, dans ce cas, les niveaux des problèmes de sécurité sont différents.
Mais sans aucun doute, le fonctionnement « en tant que service » du Cloud, présente le plus grand
risque. Plusieurs normes et mesures de gestion de la sécurité ont été conçues pour protéger le
système Cloud, mais sa sécurité présente néanmoins un risque élevé à cause des techniques de
piratage innovantes.
Les problèmes de sécurité relevés par le paradigme du Cloud ne sont pas toujours traités avec
le point de vue de l’utilisateur. La sécurité de l'information est un aspect essentiel à prendre en
considération dans le Cloud comme dans tous les types de systèmes d'information traditionnels.
Les utilisateurs du Cloud travaillent avec des données et des applications qui sont souvent situées
hors site. Cependant, de nombreuses organisations sont inconfortables avec la fonctionnalité de
partage de ressources du Cloud, dans laquelle les données et les applications partagent des
ressources informatiques communes. Par conséquence, elles ne disposent pas du contrôle de
sécurité complet. D’autre coté, les services de stockage de données en Cloud consistent à offrir
aux utilisateurs la possibilité de stocker des données sur un serveur distant tel que le serveur est
connecté à Internet. Un utilisateur pourra créer, récupérer, modifier, traiter ou stocker, en passant
par des différents réseaux de connexion. Toutefois, la question de la sécurité des données doit
encore être résolue de manière adéquate.
Lorsqu’on parle de la sécurité des données il faut toujours parler sur le triplet confidentialité,
intégrité et disponibilité. Dans les conditions d’un environnement Cloud, la confidentialité des
données devient plus difficile et conflictuelle. Cela est dû en grande partie du fait que les
utilisateurs chargent leurs données sur des serveurs distants, qui sont contrôlés et gérés par des
fournisseurs de Cloud non confiants. Les données stockées dans le Cloud sont confidentielles et
peuvent être sensibles à l'utilisateur et sont susceptibles d'être exploitées par un tierce non
3
Introduction générale
autorisés. 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. Le reste des clients utilisateurs des
solutions de sécurité, sont orientés vers les techniques de chiffrement. Il est communément admis
que le chiffrement des données côté client est une bonne alternative pour réduire ces problèmes de
confidentialité des données. Ainsi, l’utilisateur conserve les clés de déchiffrement hors de portée
du fournisseur de Cloud. Néanmoins, ces approches soulèvent plusieurs problèmes essentiels de
gestion, tels que le stockage et le maintien de la disponibilité des clés chez le client, la possibilité
de traitement de données chiffrées et les caractéristiques des résultats de traitement. De plus, la
préservation de la confidentialité devient plus compliquée avec le partage de données flexibles
entre un groupe d'utilisateurs.
Les solutions de sécurité existantes qui sont fournis par les fournisseurs de Cloud ne répondent
pas aux préoccupations raisonnables des utilisateurs en matière de sécurité et spécialement pour
les questions suivantes :
Comment l'utilisateur peut-il garantir que ses données restent confidentielles dans le Cloud?
Comment amener les utilisateurs à faire confiance aux fournisseurs de services?
Quelle sont les Clouds qui assurent la confidentialité dans un environnement multi-locataire?
Existe-t-il un moyen de s’assurer que les données de l’utilisateur ne sont pas corrompues
après la protection? Est-ce que le traitement sur ces données reste sûr et sans aucune
difficulté?
Est-il possible pour le client et le fournisseur de se faire confiance mutuellement et de
coopérer pour la réussite de l'adoption d’un projet en Cloud?
Quels sont les principaux obstacles de sécurité pour l'adoption du Cloud Computing?
Comment ces systèmes de protection fonctionnent et comment sont-ils protégés contre les
attaques potentielles?
Comment pouvons-nous faire confiance aux garanties de sécurité réclamées par le système?
Comment peut-on concevoir une architecture générique permettant de réduire les risques liés
à la confidentialité dans le Cloud?
Quels facteurs et qualités de service influent sur la fiabilité et la sûreté de sécurité?
Toutes ces faiblesses nous ont motivé à réfléchir à des solutions qui permettent aux
utilisateurs de sécuriser leurs données pour éviter toutes utilisations malveillantes.
4
Introduction générale
4. Objectifs
4.1. Objectif général
L’objectif général de cette thèse est de proposer une solution complète de sécurité des données
dans un environnement Cloud Computing. Il est nécessaire de comprendre puis de développer un
système de gestion de sécurité des données dans le Cloud afin d'améliorer la confidentialité des
données stockées dans le Cloud. Pour atteindre cet objectif général, un certain nombre de sous-
objectifs sont envisagés :
Objectif C – Le troisième objectif est de proposer un système intégré et sécurisé de stockage dans
le Cloud de la phase de connexion jusqu’à la phase d’achèvement, tout en améliorant le transfert
des données entre les intervenants. En effet, les mécanismes de sécurité proposés devraient assurer
à la fois la robustesse, la sûreté et l’efficacité, à savoir la prise en charge du contrôle d'accès
flexible, le traitement efficace et illimité sur les données des utilisateurs.
5. Contributions
Lors de la définition des solutions pour la sécurité des données stockées dans le Cloud, nous
avons considéré les aspects suivants: la facilité de déploiement, la robustesse, la rapidité de
traitement, la performance (délai d’exécution) et la flexibilité de fonctionnement. En considérant
les objectifs cernés dans la section précédente, nous résumons les contributions de cette thèse
comme suit:
5
Introduction générale
Contribution 1 :
La proposition d’un nouvel algorithme et d’un schéma de chiffrement plus efficaces, flexibles
et garantissant la confidentialité et l'actualisation de notre politique de sécurité. Les données doivent
être chiffrées avant de les envoyer au Cloud. Nous avons utilisé un algorithme de chiffrement
complétement homomorphique garantissant l’ordre afin de bénéficier de ses avantages en termes de
robustesse, de rapidité, et de flexibilité de traitement. Le modèle proposé permet de sécuriser les
données et de les protéger contre les attaques. Ce travail a donné lieu à une communication dans
une conférence internationale [1].
La proposition d’une nouvelle architecture Cloud sécurisée pour la gestion de système de
stockages des données dans le Cloud. En utilisant dans ce cas le schéma proposé dans [1]. Ce
travail fait partie de [1].
Développement d’une proposition améliorant notre première approche [1], la valeur ajoutée de
cette évolution consiste à sécuriser davantage l’architecture, renforcer sa fiabilité et le rendre
plus confiée. Ce travail a été soumis comme publication dans un journal international [2].
Contribution 2 :
Afin d’améliorer notre première approche, nous avons développé une deuxième solution fiable,
autonome et rapide pour sécuriser les données stockées dans le Cloud. Cette solution est basée
sur les systèmes multi agents. Nous avons proposé un système multi agents basé sur le
chiffrement homomorphique qui permet d’assurer la confidentialité. Nous présentons ainsi un
nouveau système hybride de communication qui utilise les techniques de chiffrement
symétriques et asymétriques assurant la confidentialité dans cette phase. Ce travail a fait l’objet
d’une publication internationale [3].
Développement d’une architecture Cloud basée sur les système multi agents améliorant notre
approche présentée dans [3]. Dans ce travail nous avons tenté de traiter le problème de sécurité
en utilisant le concept de la virtualisation. Dans cette tentative, nous avons parlé sur la
distribution des traitements et la concurrences des communications. Le travail a donné aussi
naissance à une publication internationale [4].
Pour résumer, les travaux réalisés au cours de cette thèse ont fait l’objet de communications et de
publications suivantes :
Les conférences
[1] Mohammed Amine Yagoub, Okba Kazar, Abdelkader Laouid, Ahcène Bounceur,
Reinhardt Euler et Muath AlShaikh, « An Adaptive and Efficient Fully Homomorphic
Encryption Technique», The 2nd International Conference on Future Networks &
Distributed Systems, June 26-27, 2018, Amman, Jordan.
[4] Mohammed Amine Yagoub, Okba Kazar, Abdelkader Laouid et Kerthio Ismail,
«Intelligent Cloud protection based on Multi Agent System Approach Using Advanced
Cryptographic Algorithm».
6
Introduction générale
Les publications
[3] Mohammed Amine Yagoub, Okba Kazar et Mounir Beggas, « A multi-agent system
approach based on cryptographic algorithm for securing communications and protecting
stored data in the Cloud-computing environment ». L’article est accepté dans le journal :
« International Journal of Information and Computer Security ».
[2] Mohammed Amine Yagoub, Okba Kazar et Abdelkader Laouid, « An Efficient and
Adapted Fully Homomorphic and Order Preserving Encryption in Cloud Computing».
6. Organisation de la thèse
Cette thèse comporte quatre chapitres. L’introduction générale présente le contexte et la
problématique de la recherche. Elle identifie également les motivations et les objectifs de la thèse
et présente brièvement les principales contributions.
Dans le premier chapitre, on présente un état de l'art sur le Cloud Computing. On donne une
introduction sur le Cloud Computing, y compris la définition, ses caractéristiques, les types des
services Cloud, les modèles de déploiement ainsi que les principaux défis et challenges de
recherche dans le Cloud.
Le deuxième chapitre aborde les principes, les exigences, les normes, les stratégies et la
gestion de la sécurité du Cloud Computing. Les travaux et la littérature connexes sur les problèmes
liés à la sécurité et à la confidentialité et les préoccupations des données dans le Cloud sont
discutés. En outre, ce chapitre décrit et traite en détail les problèmes de sécurité, de confidentialité,
de contrôle des données et les menaces de la sécurité dans le calcul.
Le troisième chapitre décrit en détail notre première contribution intitulée « Une technique
complétement homomorphique et préservant de l'ordre adapté au Cloud Computing ». Au début
nous décrivons une taxonomie des travaux relatifs aux techniques de la sécurité dans le Cloud.
Ensuite, nous détaillions les solutions proposées. Enfin, nous présentons l’implémentation et
l’analyse des résultats vis-à-vis des travaux connexes.
7
Chapitre I Cloud Computing
Chapitre I
Cloud Computing
I.1 Introduction
Il n’y avait pas une date précise à laquelle nous pourrions dire que le Cloud Computing était
né! Cette notion fait référence à un dessin de nuage, tel que l'on a l'habitude de l'utiliser lorsqu’on
veut représenter Internet. Cette représentation, très populaire dans les années 60, disparu au milieu
des années 70 jusqu’à l’apparition de notion de l’ASP « Application Service Provider » qui a aussi
sa part dans l'historique du Cloud Computing. Une ASP désigne une application fournie comme
un service, ce que l'on appelle aujourd’hui SaaS « Software as a Service ». C’est une classe très
importante dans la terminologie actuelle du Cloud Computing. Ensuite, vers la fin des années 90,
ce concept a pris de l'importance avec la parution du Grid Computing [5] et l’évolution de la
technologie de la virtualisation, lancé la première fois dans les travaux de IBM [6].
La technologie Cloud Computing trouve ses origines dans l'histoire de l'informatique au cours
de l’année 2006 [7] avec la parution d'Amazon EC2 (Elastic Compute Cloud). Puis, en 2009
survint la vraie explosion du Cloud avec l'arrivée des sociétés comme IBM Smart Business Service
(de IBM), Google App Engine (de Google), Microsoft Azure (de Microsoft), Sun Cloud (de Sun)
et Ubuntu Enterprise Cloud (de Canonical Ltd). Dans [8], Forrester a mené une étude sur le marché
du Cloud Computing que s'élevait à environ 5,5 milliards de dollars en 2008, il devrait atteindre
plus de 150 milliards de dollars d'ici 2020, comme illustré en Figure I-1.
De nos jours, le mot « Cloud Computing » est devenu de plus en plus populaire en
informatique. Il est très courant d'entendre parler sur le Cloud Drive, de la base de données Cloud,
du serveur Cloud et de la sécurité de Cloud. Apparemment, la signification de « Cloud Computing
» est insuffisante, c’est une nouvelle technologie informatique agrégée qui s'étend rapidement de
la recherche dans des petites régions de développement et d'utilisation aux régions de grande
échelle. Evidemment, la popularisation du « Cloud Computing » n’est pas une coïncidence, mais
est un besoin du marché de l’Internet. En outre, cette nouvelle technologie constituera le fondement
d'Internet de la prochaine génération et initiera le nouveau modèle de services Internet.
8
Chapitre I Cloud Computing
Le marché de
Cloud
publique
(Billions US$)
I.2 Définition
L'ambiguïté qui entoure le concept du Cloud Computing rend à trouver plusieurs définitions
pour ce concept. Aujourd'hui, le Cloud Computing est le plus important domaine dans l'industrie
informatique. Avec ses nouveaux aspects et capacités qui ont été proclamés, le Cloud Computing
est un modèle en évolution rapide. Le Cloud, pas à pas, est devenu la prochaine évolution de
l'histoire informatique et modifie radicalement la manière dont une entreprise gère ses systèmes
informatiques.
Beaucoup de chercheurs dans les domaines industriels et universitaires ont tenté de donner
une définition au « Cloud Computing » et de préciser quelles sont les caractéristiques uniques qu’il
présente :
Selon le “National Institute of Standards and Technology (NIST) ” [9], “Le Cloud Computing
est un modèle qui permet d’accéder rapidement à un pool de ressources informatiques
mutualisées, à la demande (serveurs, stockage, applications, bande passante, etc.), sans forte
interaction avec le fournisseur de service ”.
Selon IBM [10], “le Cloud Computing, souvent appelé simplement « nuage », est une fourniture
de ressources informatiques à la demande, des applications aux centres de données, en passant
par l’Internet et le paiement à l'utilisation ”.
9
Chapitre I Cloud Computing
Selon Gartner [11], “le Cloud Computing est un style d'informatique dans lequel des moyens
informatiques disponibles, évolutives et élastiques sont fournies sous forme de service aux
utilisateurs externes utilisant les technologies Internet. L’opération de fourniture est basée sur
cinq attributs: la multi-location (ressources partagées), une extensibilité massive, l'élasticité, le
paiement à l'utilisation et l'auto-provisionnement des ressources ”.
En analysant ces définitions on constate que la définition du Cloud tourne au tour de ses deux
principaux groupes des caractéristiques: (1) Du point de vue fournisseur de services Cloud, on
trouve l'élasticité, mis à jour automatique, évolutivité massive, l’auto-approvisionnement de
ressources, et les ressources partagées. (2) et du point de vue utilisateur final du Cloud, on trouve
l'instantanéité, la disponibilité, l’accès à la demande, le payement à l’utilisation.
10
Chapitre I Cloud Computing
En plus de ces cinq caractéristiques, il y a d’autres caractéristiques dont nous citons les plus
pertinentes :
11
Chapitre I Cloud Computing
Le Cloud est associé avec plusieurs technologies telles que le Grid Computing qui est un
paradigme de calcul réparti qui coordonne des ressources géographiquement distribuées et
autonomes pour réaliser un calcul commun et intensif en utilisant un partage dynamique des
ressources entre des participants, des entreprises et des organisations. La similarité de Grid
Computing au Cloud Computing est que les deux basant sur le concept d’offrir les ressources sous
forme de services. De plus le Cloud exploite la stratégie de l’utility Computing qui est une
délocalisation d'un système de calcul ou de stockage en adoptant un système de tarification basée
sur l'utilité. A cause de cette stratégie économique, la fourniture des ressources à la demande et le
paiement à l’usage, maximise l'utilisation des ressources et minimise leur coûts d'exploitation [23].
12
Chapitre I Cloud Computing
2) L’utilisateur du Cloud qui consomme le service fourni par le fournisseur Cloud. Il peut
être un développeur ou un utilisateur final donc il peut être un groupe de personnes, une personne,
des petites et moyennes entreprises, des gouvernements ou des multinationales [24].
3) Le fournisseur de réseau qui est l’intermédiaire entre l’utilisateur et le fournisseur. Il
garantit principalement la connectivité entre les ressources Cloud et la liaison entre les parties de
l’écosystème Cloud. Cet acteur joue un rôle plus important en offrant des fonctionnalités avancées
dans le réseau. Ces fonctionnalités sont basées sur des SLA [24].
4) Le quatrième acteur c’est le courtier Cloud. Il est un médiateur qui négocie la relation entre
les fournisseurs Cloud et les consommateurs du Cloud. Il offre des services qui simplifient les
tâches de gestion des utilisateurs du Cloud. Ce dernier peut demander les ressources Cloud auprès
du Cloud Broker au lieu du Cloud Provider directement.
Selon NIST [9] et comme illustré dans la Figure I-2, il y a principalement trois types de
services Cloud Computing qui sont l’infrastructure en tant que service (IaaS), la plate-forme en
tant que service (PaaS) et le logiciel en tant que service (SaaS) que nous allons détailler par la
suite.
13
Chapitre I Cloud Computing
Stockage Réseau Calcul Stockage Réseau Calcul Stockage Réseau Calcul Stockage Réseau Calcul
Gérer par le
Applications Applications Applications Applications founisseur
A ce niveau d’infrastructure, on peut trouver un ensemble important d’outils utilisés qui ont
pour but de fournir une abstraction du stockage ou du calcul pour une approche orientée
virtualisation. Parmi ces outils, le logiciel open source Ceph [26]. Il assure un accès de manière
fiable et autonome aux objets de stockage distribué selon l’algorithme CRUSH (Controlled
Replication Under Scalable Hashing). Il fournit une gestion dynamique et distribuée des méta-
données et une opération de stockage dans un OSD (Object Storage Devices). Chaque OSD utilise
un journal d’écriture selon trois stratégies de réplication qui sont: (1) “primary-copy” où le premier
OSD transfère les écritures dans les autres OSDs et l’opération de lecture ne sera autorisée que si
le dernier OSD a envoyé son acquittement, (2) “chain” où les écritures des objets sont effectuées
séquentiellement et l’opération de lecture sera autorisée une fois que le dernier objet a été écrit
dans l’OSD correspondant et (3) “splay replication” telque la moitié des objets sont écrits de façon
séquentielle, le reste étant effectué en parallèle [27]. Le journal d’écriture est pour accélérer les
14
Chapitre I Cloud Computing
HDFS (Hadoop Distributed File System) le système de distribution des fichiers Hadoop est
un outil Open Source développé par Apache [28, 29]. Il a été mis en avant par des grands acteurs
du web tels que Yahoo! et Facebook. Il est structuré pour comporter de façon fiable de très gros
fichiers dans des grands serveurs. Les données sont partagées en blocs, et ensuite répliquées de
façon asynchrone et distribuées dans plusieurs DataNodes qui est géré par un service central
(généralement appelé aussi maître) appelé Namenode. Les serveurs HDFS détectent des
défaillances par l’envoi des messages et un DataNode est déclaré défaillant si ne répond pas durant
dix minutes. Ces réponses contiennent également des informations statistiques permettant
d’assurer l’équilibrage de charge.
Les utilisateurs accèdent aux données en utilisant leur URLs dans l’espace des noms et
contactent le NameNode pour déterminer où sont stockés les blocs de données. Dans l’opération
de la lecture dans HDFS, l’utilisateur récupère la liste des DataNodes sur lesquels les blocs sont
situés. Il va ensuite chercher les blocs sur les différents DataNodes. Pour l’écriture, l’utilisateur
récupère la liste des DataNodes sur lesquels placer les différents répliquas. Ensuite il écrit le bloc
sur tous les DataNodes. HDFS est amélioré pour les lectures récurrentes mais il est sensiblement
moins performant pour des écritures concurrentes.
S3 (Simple Storage Service) est un service de stockage de données incluses dans AWS
(Amazon Web Services). L’objectif de S3 est de fournir une solution de stockage hautement
disponible, à faible coût et avec un modèle de facturation de type paiement à l’usage, avec une
configuration facile des droits d'accès aux fichier et avec une possibilité de chiffrement du contenu
pour des raisons de sécurité. Les données stockées dans ce service sont organisées de manière
versionnés sur deux niveaux d’espace de nommage et peuvent être répliqués automatiquement sur
plusieurs datacenters AWS. S3 fournit trois services de stockage pour l’accès aux données qui
sont: SOAP (Simple Object Access Protocol), REST (Representational State Transfer) et
BitTorrent [30]. L’interface S3 est utilisée par divers plateformes de gestion de Cloud Computing
tels qu’OpenStack et Cloudstack [31].
15
Chapitre I Cloud Computing
permet de réduire considérablement les couts de déploiement des applications avec une grande
rapidité de développement et d’hébergement [32]. Les exemples typiques du PaaS sont: Google
App Engine, ConPaaS, Windows Azure, Elastic Beanstalk, etc.
Windows Microsoft Azure est un ensemble sans cesse croissant de services Cloud destinés à
aider les organisations de construire, de gérer et de déployer des applications sur un énorme réseau
mondial en utilisant leurs infrastructures et outils favoris [36]. Les fonctions et services fournis
sont exposés à l'aide de protocoles REST ouverts dans des bibliothèques disponibles pour plusieurs
langages de programmation qui sont publiées sous licence open source et hébergées sur GitHub.
Microsoft Azure est toujours en améliorations, notamment à Visual Studio Online, avec des outils
de collaboration pour les développeurs et pour la gestion des cycles de vie des applications. Les
plus importantes services disponibles : (Azure Active Directory) pour le contrôle d’accès, (Azure
API Management) de publication des interfaces (API), (Azure Backup ) pour gérer les sauvegardes
dans le Cloud, etc [37].
Amazon Web Services (AWS) propose plus d'une centaine de services, chacun d'entre eux
étant spécialisé dans un ensemble de fonctionnalités spécifique. Elastic Beanstalk est une solution
PaaS propriétaire parmi ces services de AWS. Elle permet de déployer et gérer rapidement des
16
Chapitre I Cloud Computing
applications dans le Cloud sans préoccuper de l'infrastructure qui les exécute. Elle simplifie le
déploiement et le passage à l’échelle des applications et services web développés avec Java, .NET,
Python, PHP, [Link], Go, Ruby et Docker sur des serveurs tels qu’Apache, Passenger, IIS et
Nginx [38]. Pour utiliser Elastic Beanstalk, il faut créer une application, charger une version
d'application sous la forme d'un bundle source d'application sur le Cloud, puis fournir des
informations sur l'application. Si l’application utilise des choix de stockage ou de base de données,
il peut utiliser Amazon RDS, Amazon DynamoDB, Amazon SimpleDB, Microsoft SQL Server,
Oracle, IBM DB2 ou Informix. Comme dans le cas de Google AppEngine, Elastic Beanstalk est
uniquement disponible dans les Clouds d’Amazon [39].
17
Chapitre I Cloud Computing
l’évolutivité élastique et la confidentialité des bases de données restent en question [45]. Face à
ces questions et à une croissance de façon exponentielle des besoins en termes de charge et de
volumétrie de données, le NoSQL (Not only SQL) a vu le jour.
Les solutions NoSQL répondent aux propriétés CAP (Consistency, Availability et Partion-
Tolerance) énoncé par Eric Brewer [46]. Cassandra [47, 48, 49] qui fait partie des bases de
données NoSQL orientée colonnes, est utilisée par Amazon et dans le modèle BigTable de Google.
SimpleDB est un autre système de gestion de base de données NoSQL qui est écrit en Erlang par
Amazon. SimpleDB supporte le modèle de cohérence éventuelle basé sur la réplication asynchrone
[47]. Autre exemple, c’est MongoDB qui est une base de données NoSQL orientée documents. Il
est écrit en C++ sur un système à données largement réparties qui permet de manipuler des objets
structurés au format BSON (JSON binaire), similaire au service Google App Engine de Google. Il
est devenu plus utilisés, notamment pour les sites web de Craigslist, eBay, Foursquare,
[Link], Viacom, etc. [50].
Le projet CloViS est un intergiciel capable de faire à la fois du SaaS, PaaS et IaaS avec un
choix complet de modalités d’accès aux données. Il est implémenté d’une couche de virtualisation
de stockage en s’appuyant sur l’expertise acquise dans la virtualisation du stockage appliquée aux
grilles informatiques. CloViS fournit un service de stockage complet, utilisable dans tous les
environnements classiques du Cloud. Au niveau PaaS, il présente des méthodes d’accès standard
aux blocs de données sous le protocole iSCSI. En plus, au niveau IaaS, il utilise des éléments
particuliers pour guider le stockage. Ce niveau est divisé en deux fonctions bien distinctes : le
stockage des machines virtuelles qui est temporaire, et le stockage de type « bloc » qui doit stocker
de façon sécurisée et pérenne les données utilisateur des machines virtuelles [51].
Dans le Cloud privé, on peut classer quatre types. Le premier c’est le Cloud privé typique où
l’organisation héberge le Cloud dans l’un de ces propres centres de données derrière un pare-feu.
Le Cloud privé géré permet à un fournisseur tiers la gestion et le contrôle des infrastructures qui
sont propriétaire de l’entreprise. Dans le Cloud privé hébergé, les fournisseurs de service offrent
l’infrastructure et la responsabilité de gestion nécessaire sans partager ces ressources avec d’autres
organisations. En fin, le quatrième type est le Cloud privé virtuel. Dans ce type les fournisseurs
proposent les services Cloud dans un environnement multi locataire, et le lieu d’hébergement est
connu par l’entreprise cliente et se trouve souvent dans le même pays que cette dernière [53].
On peut distinguer deux types de Cloud communauté. Le premier est le modèle fédéré où toute
ressource inutile d’une organisation peut être utilisée par une autre organisation membre à la
communauté. Le deuxième c’est le tiers de confiance, où un "broker" est le responsable de
l’acquisition des différents services essentiels et les met à la disposition de tous les membres [57].
19
Chapitre I Cloud Computing
20
Chapitre I Cloud Computing
Sécurité 88.50%
Performance 88.10%
Disponibilité 84.80%
21
Chapitre I Cloud Computing
I.6.4 Ordonnancement
Les systèmes de Cloud Computing permettent de faire l’allocation des ressources
informatiques qui sont des fois insuffisantes pour satisfaire les demandes, dans ce cas, des
mécanismes d’ordonnancement sont nécessaires. Le problème, donc, consiste à organiser dans le
temps la réalisation de tâches, compte tenu de contraintes temporelles (contraintes de délai,
contraintes d’enchaınement, etc.) et de contraintes portant sur l’utilisation et la disponibilité des
ressources requises. Selon la configuration de Cloud ciblée, il existe trois niveaux
d’ordonnancement : niveau service, niveau tâche et niveau machine virtuelle. Le problème
d’optimisation de tâches et d’allocation de ressources dans un contexte hétérogène est un problème
difficile. Ce problème devient encore plus difficile lorsque les critères à prendre en considération
pour l’optimisation sont multiples [62, 63].
I.6.5 Interopérabilité
Depuis l’apparition du Cloud, les entreprises consommatrices se posent la question de
l’interopérabilité entre les différents services Cloud. Le problème de l’interopérabilité due à
l’absence de standard qu’en peut l’utiliser pour développer des interfaces et API standardisée.
L'interopérabilité est nécessaire, non seulement entre deux types différents de Cloud, mais encore
entre des services de même Cloud ou des services identiques fonctionnant dans des Clouds
différents. Par exemple, dans une solution de Cloud hybride, un service composant peut-être
déployé dans un Cloud privé, une copie pouvant être exécutée dans un Cloud public et les deux
services composants doivent fonctionner ensemble. Et avec l’absence d’outils de standardisation
commune entre les fournisseurs de Cloud, ce qu’implique de sérieux problèmes de
synchronisation, de portabilité et d’Interopérabilité [64].
22
Chapitre I Cloud Computing
I.7 Conclusion
Dans ce chapitre, nous avons donné un aperçu détaillé sur l’approche du Cloud Computing.
Nous avons présenté des définitions de cette notion et ses caractéristiques essentielles. Ensuite,
nous avons montré comment le Cloud offre un large choix de services informatiques à la demande
et avec facturation à l’usage aux utilisateurs selon leurs besoins. Ces services se présentent sous la
formes d’un logiciel, plates-forme ou infrastructure et qui sont déployés sous quater modèles
possibles qui sont: le Cloud privé, le Cloud public, le Cloud communautaire et le Cloud hybride.
Grâce aux avantages offerts par le Cloud, les utilisateurs finaux trouvent que cette technologie
est un bon choix pour l’utilisation des services. Malgré, toutes ces solutions produites par le Cloud,
il existe toujours des limites. Nous avons présenté les principaux défis dont la technologie Cloud
Computing doit faire face pour améliorer la qualité des services fournis aux utilisateurs.
Après avoir analyser les recherches existantes, plusieurs défis en termes de sécurité sont mis
en évidence. Ces insuffisances inspirent l’intérêt de nos futures recherches. Les chapitres suivants
traitent le problème de la sécurité. En particulier, des questions telles que le transfert, le traitement
et le stockage sécurisé des données dans le Cloud sont discutées.
23
Chapitre II Sécurité dans le Cloud Computing
Chapitre II
II.1 Introduction
Le Cloud Computing est devenu une pierre angulaire dans l'architecture de la nouvelle
génération des systèmes informatique dans l'entreprise. Par contre, les mesures de contrôle et de
sécurité dans le Cloud sont restées similaires à ceux utilisés dans les systèmes informatiques
traditionnels. Contrairement aux solutions traditionnelles, le Cloud Computing déplace les
logiciels et les données dans des grands centres de données externes qui résident dans les locaux
des fournisseurs, où la gestion et le contrôle des données et des services ne peuvent pas être
totalement fiables et confiants. Cependant, ces caractéristiques soulèvent de nombreux nouveaux
problèmes de sécurité.
Une étude réalisée par l’International Data Corporation IDC en 2009 montre que 74% des
responsables informatiques et des hommes d’affaires estimaient que les problèmes de sécurité liés
au Cloud Computing constituaient le principal défi qu’ils empêchaient à utiliser les services de
Cloud Computing [65]. D’autres études montrent que le principal problème des entreprises, lors
de l'adoption de services Cloud Computing publics, est la sécurité et la confidentialité [66]. John
Chamber président et PDG de CISCO avait dit que « le Cloud Computing est un cauchemar de
sécurité et ne peut pas être traité de manière traditionnelle » [67]. Les principaux fournisseurs de
Cloud Computing tels que Amazon [68], Google Docs [69], Google Gmail [70] et VMware [71]
ont successivement signalé plusieurs accidents. Des incidents de sécurité graves ont même conduit
à l’effondrement des fournisseurs de Cloud Computing ; à titre d’exemple LinkUp [72].
24
Chapitre II Sécurité dans le Cloud Computing
Dans ce chapitre, nous donnons une vue précise du la sécurité du Cloud Computing. Nous
commençons par la présentation de la problématique de la sécurité dans le Cloud, les exigences de
sécurité pour l’architecture Cloud et les modèles de sécurité. Nous soulignons ensuite certains
problèmes potentiels de sécurité et quelques travaux liés à cette technologie.
La sécurité est généralement liée aux trois aspects principaux et d’autres secondaires. Les
principaux aspectes sont la confidentialité, l’intégrité et la disponibilité (CID).
II.2.1 Confidentialité
Dans le Cloud Computing, la confidentialité joue un rôle majeur, notamment dans le contrôle
des données des organisations situées dans plusieurs bases de données distribuées. La
confidentialité consiste à garantir que les données des utilisateurs qui résident dans le Cloud ne
sont pas accessibles à des tiers non autorisés. Elle est nécessaire et spécialement lorsque on utilise
un Cloud public en raison de la nature d'accessibilité de ce type [73].
Le Cloud Computing implique le stockage de données des utilisateurs sur des serveurs distants
appartenant à des tiers ou exploités par des tiers. L’intégralité du contenu du périphérique de
stockage d’un utilisateur peut être stockée chez un seul fournisseur de Cloud ou chez de nombreux
fournisseurs. Pour cela, la menace de données est augmentée, en raison du nombre croissant de
parties, de périphériques et d'applications utilisés, ce qui conduit à une augmentation du nombre
de points d'accès. La gestion du contrôle de données dans cet environnement conduit à une
augmentation de risques de données traitées.
des techniques de chiffrement appropriées prenant en compte le type de chiffrement. En fait, tout
est basé sur la politique de sécurité du fournisseur de Cloud et dépend également au choix des
clients qu’ils peuvent chiffrer leurs données avant de les télécharger [7].
II.2.2 Intégrité
L'exigence d'intégrité réside dans l'application de la diligence requise dans le domaine du
Cloud, principalement lors de l'accès aux données. Par conséquent, les propriétés ACID (atomicité,
cohérence, isolation et durabilité) des données du Cloud doivent être imposées de manière robuste
dans tous les modèles de Cloud Computing.
L'intégrité est un aspect clé de la sécurité de l'information. Elle signifie que les objets ne
peuvent être modifiés que par les parties autorisées ou par les moyens autorisés. Elle peut être
associée aux données, aux logiciels ou au matériel. L'intégrité des données consiste à protéger les
données contre toute suppression, modification ou opération non autorisée. La gestion des droits
d’accès des ressources spécifiques garantit que les données et services ne sont ni maltraités ni
détournés. De plus, les mécanismes d’assurance de l'intégrité offrent une meilleure visibilité pour
déterminer qui peut modifier les données du système (responsabilité) [74].
Les fournisseurs Cloud doivent garantir la tolérance aux pannes et la réparation des incidents
possible. Pour un fournisseur de Cloud, l'une des événements les plus dévastatrices peut être la
panne de service due à une défaillance du système de Cloud. Les fournisseurs de Cloud doivent
assurer que les zones de stockage des services soient isolées afin de prévenir les pannes et mettre
en place des mécanismes de reprise. La reprise après sinistre est un autre problème très complexe.
26
Chapitre II Sécurité dans le Cloud Computing
Même si l’utilisateur ne sait pas où se trouvent ses données, le fournisseur de Cloud devrait lui
dire ce qu'il se passe en cas de sinistre. Il est dangereux que toute offre ne répliquant pas les
données et les applications sur plusieurs sites, c’est une vulnérable à un échec total. Il existe
plusieurs stratégies de réplication des données peuvent être établies pour résoudre ce problème
[75, 76].
II.2.3 Disponibilité
La disponibilité est l’une des exigences les plus critiques en matière de sécurité des
informations dans le Cloud Computing, car c’est un facteur essentiel dans la décision pour choisir
entre les fournisseurs de Cloud privés, publics ou hybrides, ainsi que dans les modèles de
déploiement. En termes simples, la disponibilité signifie qu'une organisation dispose de l'ensemble
de ses ressources informatiques accessibles et utilisables à tout moment. La disponibilité peut être
affectée de manière temporaire ou permanente, et une perte peut être partielle ou complète. Les
SLAs sont le document le plus important qui souligne l’inquiétude de la disponibilité des services
et des ressources entre le fournisseur et le client du Cloud. L'objectif de la disponibilité pour les
systèmes Cloud (y compris les applications et les infrastructures) est de garantir que les utilisateurs
peuvent les utiliser à tout moment et en tout endroit. C'est l'un des premières préoccupations
critiques des organisations pour le fonctionnement et la sécurité.
La disponibilité ne concerne pas seulement les données et les logiciels, mais également le
matériel disponible sur demande pour les utilisateurs autorisés. Elle peut s'étendre également à la
nécessité de migrer vers un autre fournisseur. La disponibilité du système inclut la capacité du
système à poursuivre ses activités même lorsque certaines autorités se comportent mal. Le système
doit pouvoir continuer en opération même en cas de violation de la sécurité. Le fournisseur de
services Cloud doit garantir que les informations et le traitement de l’information sont disponibles
pour les clients à la demande, ce qui peut sous-estimer la forte dépendance de la disponibilité du
réseau omniprésent [73].
Les menaces les plus connus devant la disponibilité sont les pannes d'équipement, les
catastrophes naturelles et les attaques par déni de service (DDoS Distributed Denial of Service). Il
est très difficile de détecter les menaces qui peuvent être des attaques basées sur le réseau, telles
que les attaques par déni de service. La co-localisation des données avec celles d'une organisation
et un profil de menace, pourrait également entraîner un déni de service, en tant que victime
accidentelle d'une attaque dirigée contre cette organisation. De même, une attaque contre les
ressources physiques d’un fournisseur est également possible. La possibilité d'une menace interne
est considérablement élargie lors de la sous-traitance de données et de processus est dans les
Clouds.
La disponibilité des applications SaaS garantit aux entreprises un service pendant toute la
journée. Cela implique des modifications architecturales au niveau de l'application et de
l'infrastructure pour ajouter de l'évolutivité et une haute disponibilité. Une architecture de multi-
niveaux doit être adoptée, supportée par une exploitation équilibrée des instances d'application qui
27
Chapitre II Sécurité dans le Cloud Computing
s’exécutent sur un nombre variable de serveurs. La résilience face aux pannes matérielles ou
logicielles, ainsi qu'aux attaques par déni de service, doit être développée à partir de la base de
l'application [77, 78].
Dans la littérature et les recherches dans la sécurité de Cloud, en parallèle avec les exigences
de base CID, plusieurs exigences sont détaillées et présentées comme des factures importantes
pour assurer le bon fonctionnement du système de sécurité. Dans la suite nous détaillions ceux qui
ont plus d’influence sur la sécurité de Cloud.
II.2.5 Autorisation
L'autorisation est une exigence importante en matière de sécurité dans le Cloud ; c’est elle ait
garanti le maintien de l'intégrité référentielle. L'autorisation est le fait d’accorder des droits ou des
privilèges à une personne, un utilisateur ou un processus. Elle peut prendre plusieurs formes
comme les listes de contrôles d’accès (ACL) qui sont de simples listes d’utilisateurs accompagnées
de leurs droits comme écriture, lecture, modification, suppression ou exécution sur des ressources
ou de classe de ressources spécifiques. L'autorisation est gérée par l'administrateur de système
dans un Cloud privé.
II.2.6 Confiance
La confiance est un concept utilisé dans nombreuses disciplines. En informatique, on se
concentre sur la conception d'outils pour l’assistance des utilisateurs dans diverses tâches. Souvent,
ces outils fonctionnent sur un modèle donné de confiance et fournissent des méthodes pour
mesurer la confiance dans un contexte d'application spécifique. La complexité du Cloud
Computing rend la problématique de sécurité d'une importance primordiale pour les
consommateurs potentiels et les fournisseurs de services. Ces différents points soulèvent la
problématique de confiance dans l'utilisation des services de Cloud Computing. Pour cela, la
confiance a été utilisée pour convaincre les observateurs qu'un système (modèle, conception ou
implémentation) est correct et sécurisé [80].
28
Chapitre II Sécurité dans le Cloud Computing
Dans les environnements Cloud, le client dépend au fournisseur avec divers services. Parmi
ces services qui obligent le client de stocker ses données confidentielles dans le côté du fournisseur.
Ainsi, un cadre de confiance qui dépend en grande partie du modèle de déploiement sélectionné et
la gouvernance des données et des applications devrait être établie pour gérer des exigences
évolutives en matière de confiance et d’interaction / partage [81, 82].
Dans les architectures traditionnelles, la confiance était assurée par une politique de sécurité
efficace, qui adresse des contraintes sur les fonctions et leur flux, des contraintes sur l’accès des
systèmes externes et des adversaires, y compris des programmes ainsi que l’accès aux données des
personnes. Dans un déploiement dans le Cloud, cette sensibilité est totalement occultée dans le cas
des Clouds publics ou communautaires où le contrôle est délégué par le fournisseur de Cloud.
Pour les systèmes Cloud, le client doit pouvoir autoriser et éventuellement surveiller l'accès
au système. Une telle surveillance doit être aussi simple pour suivre les journaux sur une interface
en ligne et sophistiquée pour regarder le journal d’audit en temps réel des actions de
l’administrateur sur le système - que ce soit sur une machine virtuelle spécifique ou sur
l’hyperviseur du système entier. L'audit consiste aussi à inspecter et examiner les enregistrements
d'autorisation et d'authentification afin de vérifier si la conformité aux normes et aux stratégies de
sécurité prédéfinies est assurée. Des règles sont définies dans l'inspection des logs permettant
l'extraction efficace d’événements liés à la sécurité. Le logiciel d'inspection de logs sur les
ressources Cloud permet de détecter tout comportement suspect.
II.2.8 Non-répudiation
La non-répudiation est le fait de s'assurer qu'un contrat, notamment un contrat signé via
internet, ne peut être remis en cause par l'une des parties. La non-répudiation dans le Cloud
Computing est une propriété du stockage de données, exigeant que lorsqu'un propriétaire de
données (consommateur) envoie une demande à un fournisseur de Cloud pour le téléchargement
de données, la transaction de téléchargement de données doit être effectuée de manière que ni le
propriétaire des données ni le fournisseur de stockage ne peuvent nier de cette transaction.
Autrement dit, la non-répudiation de l'origine prouve que les données ont été envoyées, et la non-
répudiation de l'arrivée prouve qu'elles ont été reçues [83].
29
Chapitre II Sécurité dans le Cloud Computing
Généralement, il est admis par la communauté que la non-répudiation peut être obtenue en
appliquant les protocoles de sécurité traditionnels du commerce électronique telles que les
signatures numériques. En effet cette technologie permet de prouver l'identité d'une personne par
la possession de sa propre clé privée. La protection de cette clé devient alors une préoccupation
pour l'utilisateur. Celui-ci peut utiliser des authentificateurs tel que les cartes à puce.
Pour satisfaire aux exigences de sécurité et résoudre les problèmes de sécurité analysés ci-
dessus, nous pouvons résumer les issues de sécurité par l’architecture illustré dans la Figure II-1.
La gestion de sécurité
30
Chapitre II Sécurité dans le Cloud Computing
Comment, pour une entreprise, gérer les risques actuels et aussi les nouveaux risques de
conformité du Cloud? Cela sera traité en utilisant l'impact potentiel de Cloud Computing qu’il
peut avoir sur l'entreprise en matière de gouvernance et législation.
Lors de la mise en place d’une cadre de Cloud qui adresse spécifiquement la sécurité de
l’information des entreprises, les cadres supérieurs et la direction, il faut chercher à adapter et à
intégrer les politiques actuelles de protection des données, de confiance et de confidentialité dans
la formulation de l’ensemble compréhensive de directives du Cloud Computing. Ces directives
peuvent inclure:
La mise en place d'une politique globale des affaires en Cloud qui souligne la position des
entreprises en matière de protection des informations.
L'exploitation des processus actuels d'audit de la technologie de l'information et aussi bien les
processus TAX avec l'intégration des pratiques de divulgation de la sécurité du Cloud et d'audit
Cloud.
Les directives de Cloud Computing sont considérées comme la pierre angulaire de la stratégie
Cloud. Ils comportent la gouvernance du Cloud et leurs parties responsables. Dans la suite, nous
analysons ces implications dans la gestion de la sécurité Cloud.
La plupart des entreprises ont des politiques et procédures de sécurité pour protéger leur
propriété intellectuelle et leurs activités. En plus, les entreprises devraient établir un cadre de
gouvernance de manière formel qui définit les chaînes d’autorité, de responsabilité et de
communication. Ceci décrit les responsabilités des personnes impliquées, comment elles
interagissent et communiquent, ainsi que les politiques et règles générales [71].
31
Chapitre II Sécurité dans le Cloud Computing
Les Clouds publics sont plus susceptibles d'être perçus comme le Cloud qui a un degré de
transparence plus élevé par rapport aux modèles de Cloud hybride ou privé. Cela est dû au fait que
les fournisseurs de Cloud public ont une offre de Cloud « standardisée », ciblant ainsi une base de
clients plus large. Par contre, les Clouds privés sont généralement conçus pour des entreprises
spécifiques qui ont plus d'attention à la personnalisation aux fonctionnalités.
Comme les fabricants d’ordinateurs, les employeurs et les universités déploient des Clouds
basés sur les outils de bureau, de nombreux utilisateurs risquent de ne pas se rendre compte à les
utiliser. Ce risque de confusion augmentera lorsque les applications en Cloud sont exploitées par
des navigateurs non connus qui ont parfois continu à fonctionner même lorsque l'utilisateur n'est
pas en connexion. Il est possible pour les sites Web malveillants d'exploiter les vulnérabilités des
navigateurs afin de dérober des informations associées à d'autres sessions de navigation, telles
qu'un compte de messagerie ou une session de banque en ligne. L’utilisation des protocole HTTPS
cryptée, SW Sécurisée et les normes de sécurité XML [90] pour réduire ces risques, nécessite
beaucoup plus de puissance de traitement et de mémoire pour un serveur Web que pour une
connexion Web normale [91].
Les attaques ont un impact économique pour le client. Ces attaques peuvent être contrées grâce
à la scalabilité du Cloud et donc engendrer des coûts supplémentaires pour le client. Pour cela, les
entreprises doivent toujours décider si les mesures de sécurité appropriées sont mises en place ou
si elles partagent une responsabilité commune avec les fournisseurs lorsqu’elles s’engagent dans
l’environnement Cloud [92]. Dans le cas où l’entreprise n'a pas mis en place ces types de solutions,
il risque que son infrastructure soit hors service et donc des pertes de bénéfices pour celui-ci.
32
Chapitre II Sécurité dans le Cloud Computing
L’implication d’une bonne protection des données est à cause que les données sont au cœur
de toutes les préoccupations de sécurité informatique. Le Cloud ne change pas cette préoccupation
mais apporte de nouveaux implications en raison de la nature du Cloud Computing tels que
l’opération d’audit et le processus métier, l’évaluation des différentes considérations de stratégie
de sécurité, l’évaluation des contrôles de sécurité et l’infrastructure physique et les réseaux et les
connexions, etc [93].
Le modèle de déploiement de services est l'un des nombreux aspects à prendre en compte dans
le cadre d'une enquête exhaustive sur la sécurité du Cloud. La sécurité à différents niveaux, tels
que le niveau réseau, le niveau hôte et le niveau données ou application, est nécessaire pour que le
Cloud reste opérationnel et fonctionne en permanence. En fonction de ces différents niveaux,
différents types de violations de sécurité peuvent survenir. Celles-ci ont été classées dans le reste
de cette section.
33
Chapitre II Sécurité dans le Cloud Computing
Attaque XSS
L’attaque XSS (Cross Site Scripting) est un type de faille de sécurité des sites web qui injecte
des scripts malveillants dans le contenu Web. Elle est devenue très populaires depuis la création
du Web 2.0. Les possibilités des XSS sont très larges puisque l'attaquant peut utiliser tous les
langages pris en charge par le navigateur (JavaScript, PHP, Flash...) et de nouvelles possibilités
sont régulièrement découvertes notamment avec l'arrivée de nouvelles technologies comme
HTML5. Selon le type de services fournis, un site Web peut être classé comme statique ou
dynamique. Les sites Web statiques ne souffrent pas des menaces de sécurité comme les sites Web
dynamiques en raison de leur dynamisme dans la fourniture de services multiples aux utilisateurs.
Il est possible de rediriger un utilisateur vers un autre site pour l'hameçonnage ou encore de voler
la session en récupérant les cookies. Dans l’exemple suivant un scripte d‘une attaque XSS pour
afficher le dernier commentaire d'une base de données [99] :
print "<html>"
print "<h1>Most recent comment</h1>"
print [Link]
print "</html>"
Il a souvent été observé qu'au cours de travaux sur Internet, des pages Web ou des fenêtres
contextuelles s'ouvrent à la demande d'un clic pour afficher le contenu qu'elles contiennent. Le
plus souvent, inconsciemment (sur les dangers possibles) ou par curiosité, les utilisateurs cliquent
sur ces liens dangereux et ainsi, le tiers intrus obtient le contrôle de ses informations personnelles
et il pirate ses comptes. Diverses techniques telles que le filtrage du contenu actif, la prévention
des fuites de données basée sur le contenu, la technologie de détection de la vulnérabilité des
applications Web, etc. ont déjà été proposées pour traiter ces types d’attaques [100].
34
Chapitre II Sécurité dans le Cloud Computing
Une autre classe d'attaques très connue en SaaS est appelée l’attaque au milieu (Man in the
Middle attacks MITM), parfois appelée attaque de l'intercepteur. Dans une telle attaque, l’attaquant
a pour but d'intercepter les communications entre les parties, sans qu’elles puissent se douter que
le canal de communication entre elles a été compromis. L'attaque de l'intercepteur est
particulièrement applicable dans les échanges sans authentification. Plusieurs outils mettant en
œuvre des technologies de cryptage puissantes telles que: Dsniff, Cain, Ettercap, Wsniff, Airjack,
etc. ont été développés pour assurer la protection. Une étude détaillée sur la prévention des attaques
de l'homme au milieu a été présentée dans [102].
Les chercheurs dans [103] ont récemment mentionné, dans un article publié sur [Link]
pour s'occuper aux failles de sécurité traditionnelles, l'évaluation des logiciels en tant que sécurité
du service, la séparation des processus de sécurité des serveurs et les terminaux et l'évaluation de
la virtualisation au niveau du serveur. Par conséquent, la sécurité à différents niveaux est nécessaire
pour garantir la bonne mise en œuvre du Cloud Computing, telles que: la sécurité d'accès de serveur,
la sécurité d'accès à Internet, la sécurité d'accès aux bases de données, la sécurité des données et
la sécurité des programmes. En outre, il doit assurer la sécurité des données au niveau de la couche
réseau et la sécurité des données au niveau de la couche physique et de la couche application pour
maintenir un Cloud sécurisé.
35
Chapitre II Sécurité dans le Cloud Computing
attaques par Sniffer, problème ou la réutilisation d'adresse IP, l’attaque par déni de service (DoS)
et l’attaque par déni de service distribué (DDoS), etc.
Attaque de DNS
Un serveur de nom de domaine (DNS) met en œuvre les mécanismes de transfert d'un nom de
domaine vers une adresse IP. Les serveurs DNS sont nécessaires parce que les noms de domaine
sont beaucoup et n’est pas faciles à les retenir. L'objectif de ce type d’attaque est de rediriger des
Internautes vers des sites pirates en utilisant des faiblesses du protocole DNS et/ou de son
implémentation à travers des serveurs de nom de domaine. Il existe deux principales attaques de
type DNS: le DNS ID Spoofing et DNS Cache Poisoning.
L'utilisation de mesures de sécurité DNS telles que: les extensions de sécurité du système de
noms de domaine (DNSSEC) réduit les effets des menaces DNS, mais il peut arriver que ces
mesures de sécurité s'avèrent inadéquates lorsque le chemin entre l'expéditeur et le destinataire est
redirigé via une connexion malveillante. Il peut arriver que même après que toutes les mesures de
sécurité DNS aient été prises, la route sélectionnée entre l'expéditeur et le destinataire provoque
des problèmes de sécurité [105].
Balayage de port
Le balayage de ports (Port scanning) est une technique servant à rechercher les ports ouverts
sur un serveur de réseau. Généralement cette technique est utilisée par les administrateurs des
systèmes informatiques pour contrôler la sécurité des serveurs de leurs réseaux. Les pirates
informatiques utilisent cette technique pour tenter de trouver des failles dans des systèmes
informatiques. Ce type d'attaque permet à celui-ci de découvrir des ports de communication
exploitables. Les ressources du Cloud sont sensibles à l'attaque par balayage de port si celle-ci est
effectuée en parallèle. Cette attaque peut être évitée en utilisant des systèmes de sécurité comme
un système de détection d'intrusion IDS ou encore un pare-feu [106, 107].
36
Chapitre II Sécurité dans le Cloud Computing
Attaque SNIFFER
L’attaque par Sniffing ou reniflement de trafics est une forme d'attaque sur le réseau qui est
couramment utilisée par les pirates pour espionner le trafic sur le réseau. Ces types d’attaques sont
lancés par des applications capables de capturer des paquets circulant sur un réseau. Si les données
transférées via ces paquets ne sont pas cryptées, elles peuvent être lues. Il est donc possible que
des informations vitales circulant sur le réseau puissent être tracées ou capturés. Dans la pratique,
les pirates ont généralement recours à cette méthode pour détecter tous les messages circulant sur
le réseau en retrouvant des mots de passe et des données sensibles. Il existe des plateformes de
détection de sniffing malveillante basées sur ARP (Address Resolution Protocol) et RTT (round
trip time) qui peuvent être utilisées pour détecter un système de sniffing s'exécutant sur un réseau
[108].
Détournement de BGP
Le protocole BGP (Border Gateway Protocol) est utilisé pour diriger le trafic sur Internet. Les
réseaux utilisent le protocole BGP pour échanger des informations d'accessibilité. Tout réseau
connecté à Internet dépend éventuellement d’un BGP pour atteindre à d'autres réseaux. Le
détournement ou le hijacking de BGP est donc un type d’attaque réseau. Il y a aujourd'hui deux
types d'attaques BGP. La première se traduit par l’annonce erronée concernant les adresses IP
associées à un système autonome (AS), permettant ainsi à des tiers malveillants d’avoir accès aux
adresses IP qui ne leur appartiennent pas. Le second type d'attaques se produit lorsqu'un ASN
injecte une route qui recouvre une annonce existante. Dans ce cas, la route " plus spécifique "
prend la priorité, et le nouvel ASN peut recouvrir une portion de l'espace d'adressage d'un tiers.
Quand les spammers le font, ils annoncent la route pour quelques minutes ou quelques heures
seulement. Un système de sécurité autonome pour les systèmes autonomes a été expliqué dans
[109].
37
Chapitre II Sécurité dans le Cloud Computing
Avec les récents progrès technologiques, différentes méthodes et techniques a été réalisés pour
faire face aux problèmes de sécurité augmentés. Les menaces au niveau des applications se
produisent dynamiquement et de façon adaptable aux contrôles de sécurité. Un travail dans [110]
consiste à développer un dispositif ASIC orienté tâche, il est capable de gérer une tâche spécifique
offrant des niveaux de sécurité plus élevés avec des performances plus élevées.
Même dans l'environnement virtuel, des entreprises telles que VMware, etc. utilisent la
technologie de virtualisation Intel pour améliorer les performances et la sécurité. Il a été observé
que le plus souvent des sites Web sont sécurisés au niveau du réseau et disposent des mesures
solides de sécurité, mais il peut exister des failles de sécurité au niveau de l'application qui peuvent
permettre l'accès non autorisé.
Les menaces sur la sécurité des applications incluent les attaques XSS, l’empoisonnement des
cookies, la manipulation de champs cachés, les attaques par injection SQL, les attaques par déni
de service, les options de porte dérobée et de débogage, la rupture de CAPTCHA, etc., résultants
à l’utilisation non autorisée des applications [111].
En addition, il peut arriver qu'un système invité essaie d'exécuter un code malveillant sur le
système hôte qui est devenu inactif, et par conséquent il perd le contrôle total et bloque l'accès aux
autres systèmes d'exploitation invités. On ne peut nier qu'il existe des risques associés au partage
d'une même infrastructure physique entre plusieurs utilisateurs. Même un utilisateur malveillant
peut entraîner des menaces pour les autres utilisateurs de la même infrastructure [112].
Par conséquent, la sécurité vis-à-vis de l'hyperviseur est un sujet de grande préoccupation, car
il contrôle tous les systèmes invités. Sur la base de l'apprentissage du comportement des différents
38
Chapitre II Sécurité dans le Cloud Computing
L'attaque DoS pourrait utiliser certaines des techniques suivantes de submerger les ressources
d'une Cloud telles que le remplissage de l'espace disque de stockage à l'aide d'énormes fichiers, ou
l’envoi d'un message qui réinitialise un masque de sous-réseau de l'hôte cible, provoquant une
perturbation de sous-réseau de routage du Target [101]. L'utilisation d'un système de détection
d'intrusion (IDS) est la méthode de défense la plus répandue contre ce type d'attaques [115]. Une
fédération de défense est utilisée dans [116] pour se protéger contre de telles attaques. Chaque
Cloud est chargé avec un IDS séparé. Les différents systèmes de détection d'intrusion fonctionnent
sur la base d'un échange d'informations. Si un Cloud spécifique est attaqué, la coopérative IDS
alerte le système dans son ensemble.
Il est nécessaire d’étudier les outils les plus importants dans ce domaine pour mieux
comprendre ce type d'attaque, qui doivent leur notoriété à des célèbres attaques ayant visé des
grands sites sur l’internet. Dans DDoS, l'attaque est relayée par différents réseaux dynamiques qui
ont déjà été compromis contrairement au DOS. Les ttaquants ont le pouvoir de contrôler le flux
d'informations en permettant à certaines informations d'être disponibles à certains moments. Ainsi,
le volume et le type d'informations disponibles pour un usage public sont clairement sous le
contrôle de l'attaquant. Un réseau typique dans un attaque DDoS se compose en trois unités
fonctionnelles: Un Maître (point central), des esclaves (de nombreux hôtes distants ou démons) et
une victime. Pendant la phase de déroulement de l'attaque, les hackers se connectent au maître qui
envoie alors un ordre à tous les hôtes distants qui procèdent comme un tableau de bord pour le
39
Chapitre II Sécurité dans le Cloud Computing
Maître (via TCP, UDP ou ICMP). Toutes les communications entre ces parties peuvent également
dans certains cas être chiffrées. Ensuite, les hôtes distants vont attaquer la cible finale suivant la
technique choisie par les hackers [117]. Ils vont par exemple se mettre à envoyer un maximum de
paquets UDP sur des ports spécifiés de la machine cible. Le nombre important des paquets va
submerger la cible qui ne pourra plus répondre à aucune autre requête (d'où le terme de déni de
service distribuée). D'autres exemples d’attaques existent, comme le SYN flood (TCP), les
attaques de type smurf, l'ICMP flood, les attaques de déni de service dites agressives (dont le but
est bel et bien de faire crasher complètement la cible), les attaques dites furtives, ou encore des
attaques de type "stream attack" (TCP ACK sur des ports au hasard), etc.
En général, les approches utilisées pour défendre contre les attaques DDoS impliquent une
modification en profondeur du réseau. Ces modifications deviennent souvent coûteuses pour les
utilisateurs. Les chercheurs dans [117] ont proposé une logique basée sur les essaims pour
surveiller contre les attaques DDoS. Cette logique fournit une couche de transport transparente,
grâce à laquelle les protocoles courants tels que HTTP, HTTPS, SMTP, etc. peuvent fonctionner
facilement. L'utilisation d'IDS dans la machine virtuelle est proposée dans [118] pour protéger le
Cloud contre les attaques DDoS. Un mécanisme de détection d'intrusion de type SNORT est chargé
sur la machine virtuelle pour détecter tous les trafics entrés ou sortis. Une autre méthode
couramment utilisée pour protéger contre ces attaques DDoS consiste à installer des systèmes de
détection d’intrusion sur toutes les machines physiques contenant les machines virtuelles de
l’utilisateur [119].
40
Chapitre II Sécurité dans le Cloud Computing
accès non autorisé à une page Web ou à une application. Malheureusement, plusieurs failles
permettent de voler des cookies ; à titre d’exemple le vol par accès physique à la machine. Si le
hacker a un accès physiquement à la machine, rien de plus simple que de récupérer les cookies. Il
va dans le répertoire de stockage des cookies en fonction du système d'exploitation et copie les
cookies. Autre exemple c’est le vol par sniffing ou par Man-in-the-middle où le les cookies passent
par les requêtes HTTP. Si l'attaquant peut intercepter les requêtes HTTP, soit à l'aide d'un sniffer,
soit par attaque par le milieu, il peut donc récupérer tous les cookies sans aucun problème ; à
condition bien sûr que le flux HTTP ne soit pas chiffré (HTTPS) [120]. Ce type d’attaque peut être
évité en effectuant un nettoyage régulier des cookies ou en mettant en place un système de
chiffrement des données du cookie [121].
Les applications Web utilisent les entrées des requêtes HTTP (et parfois des fichiers) pour
déterminer comment répondre. Les attaquants peuvent modifier n’importe quelle partie d’une
requête HTTP, y compris l’URL, la chaîne de requête, les en-têtes, les cookies, les champs de
formulaire et les champs cachés, pour tenter de contourner les mécanismes de sécurité du site.
Lorsqu'un utilisateur effectue une sélection sur une page HTML, la sélection est généralement
stockée sous forme de valeurs de champ et envoyée à l'application sous forme de requête HTTP
(GET ou POST). L'attaquant peut examiner le code HTML de la page et modifier les valeurs des
champs masqués afin de modifier les requêtes envoyées vers le serveur, l’exemple suivant explique
ces étapes de l’attaque :
Code HTML vulnérable
<form method="post" action="[Link]">
<input type="hidden" name="PRICE" value="200">
Product name : <input type="text" name="product" value="shop" name="product"
value="Shirt"><br>
Product price:200.00"><br>
<input type="submit" value="submit">
</form>
Requête normale :
[Link]
Requête malveillante :
[Link]
41
Chapitre II Sécurité dans le Cloud Computing
Les développeurs, dans l’habitude, activent l'option de Backdoor (porte dérobée) avant de la
publication d'un site Web, cela leur permettent d’apporter des modifications dans le
développement du code et de les implémenter dans le site Web. Puisque ces options facilitent
l’entrée des développeurs dans l’arrière-plan, et que parfois ces options sont ignorés, Cela pourrait
être la cause de l'attaque des pirates [123]. Par conséquent, une attention particulière doit être
portée à ces options afin d'éviter ce problème.
CAPTCHA rupture
La définition de CAPTCHA est un test dans lequel l'utilisateur d'un site Web est obligé à
déchiffrer une image ou un audio déformées qui sont utilisés pour protéger ce site Web contre les
attaques automatisées. Les CAPTCHA ont été développés pour empêcher les bots ou les processus
robots d'utiliser les ressources. Ces bots sont généralement des spams ou des surexploitations des
ressources du réseau. Dernièrement, les spammeurs sont capables de casser le CAPTCHA [115].
Ils utilisent un système audio capable de lire les caractères CAPTCHA pour les utilisateurs
malvoyants et utilisent un logiciel de conversion de parole en texte pour faire échouer le test.
42
Chapitre II Sécurité dans le Cloud Computing
Stockage
Le stockage est l'action pour former les données numériques selon un type référentiel
de stockage structuré ou non structuré (base de données ou fichier). Cette opération se
produit généralement en même temps que la création. Ici, la classification et les droits des
contrôles de sécurité doivent être mappés, y compris les contrôles d'accès, le chiffrement
et la gestion des droits.
Utilisation
Les données sont visualisées, traitées ou utilisées dans une manière où ces données
originales ne sont pas modifiées. Ces activités s’appliquent généralement aux données
stockées au moment de l’utilisation d’après d’un PC ou d’une application de l’utilisateur.
Pour assurer ce type d’activité, il existe des contrôles de détection tels que la surveillance
d'activité, des contrôles préventifs tels que la gestion des droits et des contrôles logiques
qui sont généralement appliqués dans les bases de données et les applications.
Partage
Les données sont rendues accessibles aux autres, et elles sont échangées entre les
utilisateurs, les clients et les partenaires. Les contrôles de cette phase incluent une
combinaison des opérations de détection et de prévention, de cryptage pour un échange
sécurisé des données, des contrôles logiques ainsi que la sécurité des applications.
Archivage
Les données restent sans utilisation et entrent dans la mémoire à long terme doivent
être archivées, ici, la protection des données et leur disponibilité sont assurées par une
combinaison de gestion de cryptage et de gestion des bénéfices.
43
Chapitre II Sécurité dans le Cloud Computing
Suppression
Les données sont détruites de manière permanente à l'aide des moyens physiques ou
logiques. Les données doivent être supprimées de manière sécurisée et doivent être utilisées
des outils pour retrouver les copies permanentes.
Localisation et accès
La grande lacune dans le cycle de vie de données est qu’elle ne montre pas correctement
l’emplacement de données lorsqu’elles se déplacent entre les entrepôts, les environnements et les
organisations, ni comment on y accède au cours de ces phases. Le but de la localisation peut être
représenté en considérant le cycle de vie comme une série de cycles de vie plus petits s'exécutant
dans des environnements d'exploitation différents et non comme une opération linéaire unique.
Les données peuvent être donc déplacées dans, hors et entre ces environnements à n'importe quelle
phase de leur cycle de vie.
Une sécurité élevée de données peut être obtenue en identifiant ces mouvements et en
appliquant les contrôles appropriés aux limites de sécurité appropriées. Ces environnements
peuvent être des Clouds internes, externes, publics ou privés, des fournisseurs de Cloud ou des
sous-traitants traditionnels, etc. Pour cela, il est très important de comprendre les emplacements
logiques et physiques des données [127].
44
Chapitre II Sécurité dans le Cloud Computing
Lorsque les données sont dans le Cloud, il est recommandé de suivre ses historiques, pour
savoir exactement où et quand les données ont été localisées dans le Cloud. Une analyse de lignage
de données peut être réalisée avec les outils ETL15 et permet de suivre les modifications de
données en présentant une série de dépendances entrée-sortie de données dans un environnement
tel qu'un graphe de nœuds et liens. Cette visualisation de chemin de données s'appelle lignage de
données. Bien que la fourniture du lignage de données soit très importante pour l’assurance de
l’audit, ce processus prend beaucoup de temps et n’est pas vraiment possible pour un Cloud public.
Un problème plus complexe pour les clients est de fournir une provenance plus précise des
données. La provenance des données représente une sorte de métadonnées, contenant l'historique
de dérivation d’une production de données à partir de ses sources d'origine dans un entrepôt de
données [132].
Le dernier aspect de la sécurité des données est la rémanence des données ou la représentation
résiduelle des données numériques. Par exemple, les données ne doivent pas être disparus même
après des tentatives d’effacement. Certains systèmes d'exploitation ne suppriment pas les données
immédiatement lorsque l'utilisateur demande, mais les déplacent vers une zone de stockage afin
de pouvoir les récupérer facilement en cas d’écrasement ou d'erreur [133]. Le Cloud Computing
avec ses caractéristiques de la virtualisation complique la rémanence des données. Il est
pratiquement impossible de remplacer le support physique, car l’infrastructure en Cloud peut
répartir le stockage du client ou l’instance de machine virtuelle sur plusieurs lecteurs physiques.
De ce qui précède, on peut dire que la seule option réalisable pour faciliter la sécurité des
données consiste à s’assurer que les données sensibles ne seront pas stockées dans un Cloud public
ou on utilise la technique de chiffrement avec des clés stockées localement.
45
Chapitre II Sécurité dans le Cloud Computing
II.5 Conclusion
Le défis de sécurité devrait être réglés avant que les utilisateurs puissent profiter de tous les
avantages du Cloud Computing et y placer leur confiance. En effet, le renforcement de la sécurité
et les pratiques de confidentialité vont attirer plus d'entreprises au monde de l'informatique dans
le Cloud.
Dans ce chapitre, nous avons identifié les différentes exigences de sécurité du Cloud. La
sécurité est généralement liée aux trois aspects principaux qui sont la confidentialité, l’intégrité et
la disponibilité (CID), et cela du côté client comme du côté fournisseur du Cloud. Nous avons
ensuite identifié les problèmes de gestion et de contrôle de la sécurité du Cloud et les principaux
impactes de la sécurité.
Nous avons également identifié les menaces de la sécurité du Cloud qui sont classé à différents
niveaux, tels que le niveau de base, le niveau réseau, le niveau application, le niveau physique ou
données. Et selon ces différents niveaux, des différentes violations de sécurité peuvent survenir.
46
Chapitre III Contribution 1
Chapitre III
III.1 Introduction
La génération volumineuse de données, dans la dernière décennie, a créée de nombreux défis
qui ont conduit les chercheurs à concevoir de nouvelles techniques permettant de stocker et de
protéger cette vaste quantité de données. Selon un rapport d’IBM [134]: « 90% des données dans
le monde ont été créées au cours des dernières années et dans chaque jour il y a une création de
plus de 2,5 milliards octets ». En effet, cette augmentation de données générées offre des avantages
particuliers dans les systèmes dynamiques et évolutifs. Le principe du service Cloud est que les
entités génératrices de données doivent partager leurs données générées entre elles. Cette raison a
conduit à utiliser les services de Cloud tel qu’un serveur en cloud. Les serveurs cloud ou
généralement les XaaS offre de nombreux avantages tels qu’un grand espace de stockage, une
vitesse de calcul mais ils sont généralement considérés comme des entités non confiantes surtout
pour des données critiques. Par conséquent, les recherches dans ce contexte traitent la
problématique de protection de données stockées sur le serveur Cloud en proposant des solutions
adaptatives aux environnements Cloud pour répondre aux besoins requis.
Pour sécuriser les données stockée dans le cloud, plusieurs techniques de chiffrement ont été
proposées [135, 136]. Dans [137] les données sont uniquement chiffrées lors de la phase du
transfert, celles-ci doivent être en clair lorsqu'elles sont stockées dans le Cloud. Cela garantit la
confidentialité durant la phase transfert mais les données sont stockées en clair dans le Cloud. Dans
[138] les données sont chiffrées et stockées chiffrée dans le Cloud. Dans ce cas, on ne peut pas
exécuter des opérations dans le Cloud ; par exemple, une recherche ou des opérations arithmétique
sur les données chiffrées. Pour effectuer des opérations récupérer les données, déchiffrer, appliquer
les opérations, rechiffrer et renvoyer s’il est nécessaire. Ce mode de fonctionnement sur les
données chiffrées n’est pas efficace et engendre des latences importantes de traitement et
consomme les ressources matériels et réseaux (Bande passante, capacité de calcul, RAM,
routage…). Pour répondre à ces limites, plusieurs solutions théoriques ont été proposées ; il s’agit
des systèmes de chiffrements homomorphiques [139, 140, 141, 142, 143]. Ces systèmes de
chiffrement permettent de traiter des requêtes et des opérations sur les données chiffrées sans
47
Chapitre III Contribution 1
devoir les récupérer localement, les déchiffrer, ensuite les chiffrer de nouveau et les renvoyer au
Cloud. La limite principale de ces techniques est qu’elles ne garantissent pas l’ordre entre les
données.
L’objectif principal de travail présenté dans ce chapitre est de proposer une solution pour
protéger les données en fournissant un schéma de chiffrement permettant de conserver certaines
opérations telles que l’addition, la multiplication et la préservation de l’ordre sur les données
chiffrées dans le Cloud. Cette méthode permettra de traiter les opérations sur les données en
utilisant des langages standard, tel que SQL.
Solutions de sécurité
Chiffrement préservant
l’ordre
Chiffrement homomorphique
aditif
Chiffrement homomorphique
multiplicatif
Figure III-1 : Taxonomie sur les solutions de sécurité des données dans le Cloud
48
Chapitre III Contribution 1
Le travail dans [148] fournit une construction de deux Clouds avec une série de protocoles de
communication pour un service de base de données externalisé. La technique proposée garantie la
protection et la confidentialité de données, les propriétés statistiques et la conception des requêtes.
Le système proposé comprend un administrateur de base de données et deux Clouds non
complotés. Dans ce modèle, l’administrateur de base de données peut être implémenté au côté du
client. Les deux Clouds (notés Cloud A et Cloud B) fournissent le stockage et le service de calcul.
Les deux Clouds travaillent ensemble pour répondre à chaque demande d'interrogation du client /
des utilisateurs autorisés. Données
Clés
Les auteurs dans [149] ont proposé un schéma de base de données en tant que service
(SecureDBaaS) dans lequel les données sont conservées dans un état confidentiel et sécurisé. Ce
travail prend en charge l'exécution des opérations simultanées et indépendantes sur une base de
données chiffrée dans le Cloud. SecureDBaaS implémente de nombreuses techniques pour
convertir les données de texte en clair vers données, métadonnées ou structures de données
49
Chapitre III Contribution 1
chiffrées. Dans SecureDBaaS, il existe principalement trois opérations dont la première est la
phase d’installation, dans laquelle la table de stockage de métadonnées est créée. Cette métadonnée
contient les types de données, les clés principales ainsi que les techniques de chiffrement. La
deuxième phase est la phase de l’utilisation qui consiste à générer les requêtes SQL exécutable et
qui ont lieu après l'authentification d'un utilisateur. Un client de SecureDBaaS analyse l'opération
et récupère les métadonnées pour réaliser la communication. Les informations des métadonnées
sont utilisées pour convertir le SQL en clair vers la requête exécutable dans le Cloud. Enfin, dans
la phase finale, les résultats sont ensuite déchiffrés et remis à l'utilisateur. Cette approche est basée
sur l'exécution d'opérations de chiffrement via des algorithmes de chiffrement SQL-aware, qui
avait été initialement proposée dans [150]. Il s’agit donc des techniques de chiffrement coûteux,
et la table de stockage des métadonnées est située sur un serveur non confiant, ce qui pose
d’énormes problèmes pour la sécurité de ce schéma.
classement de rappel sur les données chiffrées afin de récupérer le fichier d'origine dans le Cloud,
ce qui permet aux fournisseurs de Cloud de conclure le fichier requis et de le renvoyer sans aucune
information expressive. Cette approche préserve la confidentialité des données de tout menace.
La recherche par mot-clé classé montre un système pratique, qui fournit un classement basé
sur le score de pertinence afin de l’utiliser dans le processus de recherche. Le client reçoit le fichier
le plus pertinent plutôt que tous les fichiers, ce qui réduit la bande passante et confirme la précision
et l'intégrité des données extraites. Cette approche garantit également la confidentialité des
données et une faible complexité de calcul. La technique produit un index pour un fichier et
conserve les index et les fichiers dans le Cloud de manière chiffrée. Pour récupérer les données,
l'utilisateur autorisé génère une requête vers le serveur. Le serveur recherche ensuite les fichiers
correspondants et les renvoie à l'utilisateur. La mise en œuvre de la méthode de recherche par mot
clé classée de cette approche est inefficace lors de la recherche dans de données volumineuses.
Cependant, toute modification, suppression et ajout au données ou index représente un nouveau
risque en ce qui concerne l'approche sans surcharge de calcul, ce qui nécessite un processus
dynamique et efficace sur les données et les index sans menacé la confidentialité. De plus, du côté
serveur, l'approche ne fournit pas la citation de résultat ordonnée car elle ne peut pas être utilisée
d’une manière efficace, de manière que le client ne reconnaît pas les données récupérées qui
seraient les plus appropriées.
Dans [162], une nouvelle technique de gestion de base de données CryptDB, est utilisée pour
protéger la confidentialité des données et traiter les requêtes SQL de manière efficace. CryptDB
vise à exécuter des requêtes sur une base de données chiffrée et qui est gérée par le fournisseur de
Cloud, à l'instant de l'exécution de requêtes sur une base de données non chiffrée. L'architecture
CryptDB comprend une partie proxy de base de données et une partie SGBD chiffrée dans le
Cloud. La partie proxy est considéré comme un serveur confiant, et qui stocke la clé principale
secrète et le schéma de la base de données. Le proxy est utilisé comme couche intermédiaire qui
chiffre et déchiffre toutes les données et modifie tous les opérateurs des requêtes. Dans cette
approche, les données sont chiffrées en couches, appelées oignon [150]. Le mot « oignon » fait
51
Chapitre III Contribution 1
référence à des couches de chiffrement qui se chevauchent comme les couvertures d'un oignon.
Ces oignons ont différentes couches, chacune chiffrée à l'aide d'algorithmes et de clés différents.
CryptDB pose un problème majeur, qui consiste à effectuer des calculs au niveau du serveur sur
des données chiffrées pour différents objectifs, car les textes en clair sont chiffrés avec des clés
différentes. La solution traditionnelle consiste à exécuter le calcul après le déchiffrement des
données. CryptDB est beaucoup plus efficace mais ne peut pas prendre en charge la plupart des
requêtes analytiques sur des données chiffrées. De plus, il est trop coûteux pour certains calculs,
comme pour les agrégats à grande échelle.
Les auteurs dans [163, 164] ont proposé un chiffrement noté dodrantencryption qui utilise un
chiffrement déterministe limité en conjonction avec un chiffrement semi-homomorphique et des
tables logarithmiques et anti-logarithmiques afin de développer l'ensemble des requêtes SQL
numériques. Ils ont proposé une solution palliative pour le chiffrement homomorphique qui utilise
une variante déterministe du schéma de chiffrement de Paillier [165] et les grandes tables. Ce
travail a permis de calculer des sommes et des produits de sommes, mais pas toutes les requêtes
SQL impliquant des valeurs numériques. En particulier, il ne peut pas comparer deux valeurs
numériques chiffrées.
Le bootstrapping [166] est une technique permettant de « rafraîchir » périodiquement les texte
chiffrés associés aux nœuds intérieurs d’un circuit de chiffrement. En pratique, cette technique est
coûteuse car elle sera appelée après chaque multiplication. La technique de [167] a introduit une
nouvelle procédure de gestion du bruit. Il consiste à réduire le bruit en convertissant un texte chiffré
par réduction modulo. Cette technique permet de transformer un texte chiffré en un autre texte
chiffré en utilisant deux clés différentes. En raison de cette réduction, les schémas de chiffrement
complétement homomorphiques sont toujours coûteux et lents en termes de calcul.
Les auteurs de [168] proposent une solution pour le traitement de requêtes algébriques de
données chiffrées et d'autres défis liés aux données chiffrées avec chiffrement homomorphique.
En outre, ils fournissent une base de données sécurisée en tant que service pour les clients. Le
travail décrit comment effectuer et traiter toute opération algébrique sur des données chiffrées. Le
document montre les avantages du chiffrement FHE, qui permet de réaliser tout processus sur des
données chiffrées. De plus, il indique comment appliquer FHE pour obtenir un facteur de sécurité
52
Chapitre III Contribution 1
robuste afin que le fournisseur de service puisse effectuer toute requête. En fait, les auteurs se
concentrent sur deux facteurs à atteindre pour réaliser FHE: 1) la garantie de sécurité et 2) les
capacités de traitement des requêtes. Le travail fournit une bonne solution pour la recherche qui
comprend quatre parties: (a) un modèle de données (b) un modèle de calcul, (c) des algorithmes
pour différents opérateurs d’algèbre relationnelle et (d) des méthodes pour transférer les résultats
des requêtes vers le client. Cette solution fournit un facteur de sécurité par rapport à l’attaque en
texte clair, et l’utilisateur est élaboré dans la phase de chiffrement des données et des requêtes et
la phase de déchiffrement des résultats de requête. Cependant, le travail a des manques dans les
aspects pratiques du FHE et dans les issues d’authentification des utilisateurs, ainsi que dans la
manière de construction des index. Le fournisseur ne peut traiter que des processus partiels et le
client effectue le reste du traitement. De plus, l'approche conduit à un espace mémoire important
et à une complexité de calcul élevée. La récupération des données chez le client nécessite de
nombreuses étapes pour obtenir les fichiers obligatoires.
La propriété du chiffrement préservant l’ordre garantit la relation d’ordre entre les éléments
de données en fonction de leurs valeurs chiffrées, sans révéler les données elles-mêmes (c’est-à-
dire que l’ordre entre les valeurs de texte en clair est conservé après le chiffrement). Cela permet
de créer des index sur des données chiffrées qui peuvent être utilisées pour des requêtes d’ordre.
Il existe de nombreuses approches pour établir cette propriété, comme [169, 170, 171] qui utilisent
des fonctions linéaires et non linéaires pour indexer les données.
En conclusion, les techniques de sécurité homomorphiques peuvent être assurées par des
mécanismes cryptographiques et mathématiques distribués. La sélection du mécanisme le plus
approprié est l’une des parties vitales du système. Le mécanisme sélectionné doit répondre aux
contraintes des utilisateurs telles que la taille des clés, la taille des données, le temps de traitement
et les caractéristiques des données tel que l’ordre, la possibilité de réalisation des opérations
arithmétiques, etc.
53
Chapitre III Contribution 1
Pour cette raison, cette section a pour but de trouver une méthode englobant le calcul sur les
données chiffrées. Principalement, la technique FHE proposée permet des calculs arbitraires sur
des données chiffrées. Cette section explique les détails de notre proposition qui sera présenté dans
deux parties : la première partie décrit le modèle formel de notre proposition et la deuxième
explique l’architecture de la proposition.
Soit deux groupes (M, ∆) et (C, ○). On note eM (respectivement eC ) l’élément neutre de M
(respectivement de C). Une application f : M→ C est un homomorphisme de groupe si:
Propriété :
Soit f : M→ C un homomorphisme de groupes.
Alors :
1) f(1M)=1C
2) Pour tout élément x de M, f(x-1)=f(x)-1
3) Pour tout entier non nul n, f(xn)= f(x)n
4) Pour tout entier non nul n, f(x-n)=f(x) –n
54
Chapitre III Contribution 1
Formellement, si c1 et c2 sont deux éléments d’un groupe noté C et qui sont les chiffrés de m1
et m2 respectivement, où m1 et m2 deux éléments d’un groupe noté M. Une fonction de chiffrement
f : M→C est un homomorphisme s’il existe deux opérations ∆ et ○ telles que :
Typiquement, ∆ sera une addition ou une multiplication modulaire, mais ce n’est pas toujours
le cas. L’utilisons de l’opération arithmétique modulaire est pour gagner plus d’efficacité qui
permet de réaliser algébriquement un chiffrement homomorphique. De plus, les axiomes suivants
doivent être satisfaits:
f -1: C à M
f
m c
1 1
f
m ο m =m c c =c
1 2 1 2
f
c
m 2
2
55
Chapitre III Contribution 1
Nous présentons les définitions mathématiques et les concepts importants requis dans la
technique proposée. Dans ce travail, notre système de chiffrement conçu est inspiré des fonctions
de chiffrement homomorphes proposées par James Dyer et al. dans [172]. Ce chiffrement est basé
sur l’opérateur modulaire qui fonctionne sur le groupe cyclique Zn, où ses séquences arithmétiques
ne sont pas ordonnées telles quelles dans Z. Nous définissons donc notre fonction FHE comme
indiquée dans l'équation (3).
f: ci = (mi + randi ∗ k) mod (k ∗ p) (3)
où
randi = (mi∗ p) mod k (4)
et nous utilisons la notation k, la clé de chiffrement utilisée, car dans notre cas d'utilisation, la
même entité qui a chiffré les données le déchiffrera ultérieurement. Cependant, le processus de
déchiffrement suit l'équation (5).
f -1: mi = ci mod k (5)
Par conséquent, dans ces conditions, nous pouvons chiffrer et déchiffrer à l’aide de modulaire
de k. L’homomorphique additif est réalisé en appliquant f(m1 + m2) = f(m1) + f(m2), et
l'homomorphique multiplicatif par f(m1 ∗ m2) = f(m1) ∗ f(m2), ces propriétés sont démontrées
dans la section 3.2. Dans la suite, nous définirons l’algorithmes de la génération de clé,
l’algorithme de chiffrement et l’algorithme de déchiffrement.
Génération de clé: Soit λ un paramètre de sécurité. Soit k et p deux grands nombres premiers
distincts choisis de manière aléatoire tels que p ∈ [2λ-1, 2λ] et k ∈ [2η-1, 2η], où η ≈ λ2 / ρ - λ et ρ
est l’entropie de distribution. Ici, λ doit être assez grand pour annuler la factorisation directe de
k*p, et k et p sont choisis pour annuler l’attaque de Coppersmith [173].
56
Chapitre III Contribution 1
Algorithme 1 Notre_schema
Génération de clés KeyGen (λ, ρ)
Entré: λ, ρ
1 Calculer : p ∈ [2λ-1, 2λ] un grand nombre premier
2 Calculer: η ≈ λ2 / ρ - λ
3 Calculer: k ∈ [2η-1, 2η] un grand nombre premier
Sortie : (k, p)
Chiffrement Chiff(m, k, p)
Entré: m, k, p
1 Calculer: rand = (m ∗ p) mod k
2 Calculer: c = (m + rand ∗ k) mod (k ∗ p)
Sortie : c
Déchiffrement Déchiff (c, k)
Entré: c, k
1 Calculer: m = c mod k
Sortie: m
Calcule index CalIndex(m, k, p)
Entré: m, k, p
1 Calculer: rand = (m ∗ p) mod k
2 Calculer: I = (m*k + rand)
Sortie : I
57
Chapitre III Contribution 1
Remarque: La propriété symétrique de f, c'est-à-dire que les ensembles M et C ont les mêmes
éléments, assure l'égalité :
((m1 + rand1 ∗ k) mod k∗p (+|∗)(m2 + rand1 ∗ k) mod k∗p) mod k∗p =
(m1 + rand1 ∗ k) mod k∗p (+|∗)(m2 + rand1 ∗ k) mod k∗p
qui est vrai si et seulement si (m1 (+|∗) m2) ∈ M et m1,m2 ∈ M.
Préservation de l'ordre
Une technique de préservation de l'ordre est une solution d'indexation de données chiffrées.
Son rôle est de garantir la possibilité de réalisation des requêtes d’ordre. L'objectif de préservation
de l'ordre consiste à conserver les séquences entières des éléments d'origine et à randomiser chaque
index dans un intervalle donné, de sorte que les éléments d'origine ne puissent pas être révélés à
partir des index. Ce travail gère les requêtes d’ordre sur les bases de données chiffrées de Cloud
en incluant un schéma optimisé de chiffrement préservant l’ordre. Dans cette section, nous
proposerons un schéma d’indexation efficace préservant l’ordre. Une expression linéaire simple
de la forme a∗x + b est utilisée. Afin de masquer la valeur des entiers utilisés, le coefficient b est
gardé secret (connu de l'utilisateur du Cloud uniquement) et la valeur de a∗x sera masquée dans b
à l'aide de l'opérateur de l'addition. Les expressions linéaires doivent respecter l'ordre d'indexation,
ce qui nous amène à définir la fonction de préservation de l'ordre comme suit:
Par sa définition, randi est borné par 0 ≤ randi <k, ce qui garantit que l'expression linéaire
augmente strictement. Par conséquent, ∀ m1, m2 si m1 < m2, alors k ∗ m1 + rand1 < k∗m2+rand2.
Ainsi, l'expression linéaire de base respecte l'ordre des m utilisés dans M. Ce mécanisme
d'indexation empêche les attaquants de casser les indices s'ils ne connaissent pas les randi de tout
mi donné.
Pour interroger la base de données chiffrée, le client dispose d'un proxy qui gère la
communication entre la base de données chiffrée et les applications client. Lorsque le client
exécute une requête, le proxy la convertit en une requête chiffrée qui s’exécute directement dans
le Cloud. Lorsqu'un résultat de requête est repris du Cloud, le proxy le déchiffre avant de le
transmettre au client. Le proxy dépend d'un module de métadonnées, qui contient les schémas de
base de données et les clés de chiffrement et de déchiffrement.
58
Chapitre III Contribution 1
Plus précisément, avant qu’un tuple soit inséré dans la base de données, le proxy utilise le
mécanisme de chiffrement FHE et d'indexation proposés au-dessus pour générer un index et un
texte chiffré (IA, CA) pour chaque attribut A du tuple. Le tuple est ensuite stocké dans la base de
données chiffrée. Lorsqu'une requête est reçue du client, le proxy analyse sa syntaxe. Pour les
paramètres d'une opération de classement, le proxy calcule l'index correspondant à la valeur dans
la condition de requête et, pour les paramètres d'une opération homomorphique, le proxy calcule
son chiffrement. Ensuite, le proxy envoie la requête transférée au Cloud pour qu'elle soit exécutée
dans la base de données chiffrées. Une fois le résultat renvoyé depuis le Cloud, le proxy le
déchiffre.
Client 1
Métadonnée
Proxy
Fournisseur de
service cloud
Client M
Métadonnée Base de données chifrée N
Proxy
59
Chapitre III Contribution 1
Table T
... R …
Table T_ET
… RI_ER RV_ER ...
60
Chapitre III Contribution 1
avec des limites gratuits, ce qui nécessite une configuration manuelle. Ce fournisseur de Cloud
propose des solutions prêtes à l'emploi aux locataires, mais ils ne permettent pas un accès complet
au système de base de données. Il propose des interfaces SQL standard et des API propriétaires
qui simplifient l'évolutivité et la disponibilité de la base de données. Cela empêche l'installation
de logiciels supplémentaires et l'utilisation d'outils et toute personnalisation.
Du côté positif, l’approche proposée utilise des commandes SQL standard qui peuvent chiffrer
les données utilisateur sur n’importe quel service de base de données. De plus, certains calculs
avancés sur les données chiffrées nécessitent l'installation de bibliothèques personnalisées sur
l'infrastructure client. C'est le cas de Postgres Plus Cloud qui fournit un accès par SSL (Secure
Socket Layer) pour enrichir la base de données par des fonctionnalités supplémentaires. Le
comportement du proxy consiste en une bibliothèque Java et un package de sécurité. La
communication entre le client et la base de données en Cloud s'effectue via le proxy, à l'aide du
protocole SSL. Cela permet une protection solide contre les tentatives malveillantes de détection
de paquets. D'autres composants sont inclus dans notre implémentation système, qui consiste en
plusieurs lignes de code Java, avec plusieurs lignes supplémentaires de code de test.
BaseDeDonnées Colonne
-Id: number
-Nom: string Tabel -Id: number
-host: string -Nom: string
-user: string -Id: number -Type: string
-password: string -Nom: string + Créer ()
-protocol: string + Créer () + ChiffrNom()
-port: string + ChiffrNom () + DéchiffrNom()
-ChiffreCléK: bigint + ChiffrValu ()
-ChiffreCléP: bigint
+ DéchiffNom ()
+ DéchiffrValu ()
+ Créer ()
+ GénérerCléKP ()
+ CalIndex ()
61
Chapitre III Contribution 1
tiendrons pas compte des problèmes d’optimisation des performances qui seront abordés par la
suite. Le client se connecte à sa base de données Cloud via le proxy. Il crée, insère et interroge sur
ses données chiffrées. Pour une meilleure explication, nous avons utilisé une grande table
Employer, qui est utilisé pour gérer le système d’information de l’employeur EMSYS. Dans le cas
général, la base de données de EMSYS se compose de nombreuses tables. Dans cet exemple, nous
allons les réunir dans une table Employer. Elle comporte de nombreuses colonnes parmi lesquelles
nous en considérons trois: ID, Nom et Salaire. ID représente le numéro d'identification de
l'employé, Nom représente le nom de l'employé et Salary est son salaire. Étant donné que les
requêtes au-dessous sont exécutées, le proxy crée la table chiffrée qui est présentée dans la Table
III-1 en utilisant l’algorithme 2 telle que Structure dans ce cas est une table et Donnée est une
colonne. Cette table représente la base de données du nouveau système CRYPTEMSYS.
Create table Employee (ID int, Name varchar, Salary float,...);
Insert into Employee (ID, Name, Salary) values (1, "Amine", 100000);
Insert into Employee (ID, Name, Salary) values (2, "Ali", 50000);
Insert into Employee (ID, Name, Salary) values (3, "Yahya", 40000);
Dans la Table III-2 au-dessous, nous reprenons les requêtes de base d’après le standard SQL
qui sont utilisables dans EMSYS et CRYPTEMSYS.
Requête d’insertion
62
Chapitre III Contribution 1
Requête simple
Toute requête ne contenant pas de condition, comme illustré ci-dessous, sera considérée
comme une requête simple. Dans ce type de requêtes, il n'y a généralement aucune analyse de
l'instruction de requête. Un exemple pour ce type de requête est l'instruction suivante:
La création de nouvelle requête est décrite dans l'algorithme 3 qui est similaire à l'algorithme
2, mais sans chiffrement de valeur.
Algorithme 3 Génération de requête simple
Entré: requête, k, p
1 Si requête est insertion alors
2 Génération de requête d’insertion
3 Sinon
4 Créer nouveau requête
5 Add table nom [Link]=”T_”+[Link]([Link], k, p);
6 Pour tout colonne Ri dans requête
7 Add colonne nom [Link]=”RV_”+ [Link]([Link], k, p);
8 Fin pour
9 Fin Sinon
Sortie : nouveau requête
Requêtes d’ordre
Pour permettre l’utilisation de requêtes de sélection ou d’ordre, nous supposons qu'une requête
du client prend la forme de base suivante:
select R1, ..., Rn
from Ti
where Rc1 [ > | < ] V1 { C1}
[AND | OR] ......
[AND | OR] Rcm [ > | < ] Vm { Cm}
63
Chapitre III Contribution 1
La condition de requêtes est définie par une composition des formules logiques comme Ri <Vi
ou Ri> Vi, où Vi est une valeur du domaine de la colonne Ri, à l'aide des connecteurs logiques
(c'est-à-dire, et, ou). Lors de la traduction de la condition Ci, il suffit de remplacer chaque
expression logique par celle traduite. La condition Rci [> | <] Vi est traduit en:
”RI ” + [Link]([Link], k, p) [> | <] CalIndex(Vi, k, p).
La contrainte "order by Ri" est fréquemment utilisée dans les requêtes. Elle est traduite en
"order by ”RI ” + [Link]([Link], k, p)".
Requête homomorphique
Le proxy chiffre les valeurs et les noms des colonnes pour la création de nouvelle requête pour
et l'envoyer au Cloud. L’opération de création de requêtes de propriétés homomorphique et d’ordre
est décrite dans l’algorithme 4.
Algorithme 4 Génération de requête
Entré: requête, k, p
1 Si requête est simple alors
2 Génération de requête simple
3 Sinon
4 Créer nouveau requête
5 Add table nom [Link]=”T_”+[Link]([Link], k, p);
6 Pour tout colonne Ri dans requête
7 Add colonne nom [Link]=”RV_”+ [Link]([Link], k, p);
8 Fin pour
9 Pour tout condition Ci dans requête
10 Si Ci dans {> , < } alors
11 Add ”RI_”+[Link]([Link], k, p) [>|<] [Link](Vi, k, p);
12 Sinon
13 Si Ci dans {=} alors
14 Add ”RV_”+[Link]([Link], k, p) [ = ] [Link](Vi, k, p);
15 Sinon
16 Add ”RV_”+[Link]([Link], k, p) op ”RV_”+[Link]([Link], k, p)
[ = ] colonne. ChiffValu(Vi, k, p);
17 Fin Sinon
18 Fin Sinon
19 Fin pour
20 Fin Sinon
Sortie : nouveau requête
64
Chapitre III Contribution 1
Cependant, certains calculs ne peuvent pas être adaptés aux données chiffrées. Une analyse
approfondie montre quelques cas. Par exemple, la requête de la dernière ligne de la Table III-2
avec la condition (Salaire * 10 < 100000) n'est pas adaptée pour le calcul et la comparaison sur la
même colonne. Le serveur de Cloud peut traiter cette requête, mais cela nécessiterait également
un traitement sur le proxy. Dans le proxy, la requête doit être réécrite en sous-requête qui
sélectionne une colonne, Select RV_54…*Chiffval(10), calculé à l'aide de la propriété
homomorphique. Dans la deuxième étape, rechiffré dans le proxy, une nouvelle colonne NCol est
créée, qui contient les nouvelles valeurs chiffrées. Enfin, la requête d'origine avec le condition
Where NCol < 100000 doit être exécutée. Les principaux traitements et transformations du proxy
sont décrits dans la Table III-2.
65
Chapitre III Contribution 1
sur l'analyse et le traitement des requêtes hors le proxy. La surcharge cryptographique est
relativement faible car notre technique de chiffrement est efficace. L’amélioration de vitesse de
calcul de la méthode proposée est remarquable lorsque nous comparons notre proposition avec
CryptDB.
CRYPTEMSYS
EMSYS temps CryptDB temps
Type de quêter temps de réponse (ms)
de réponse (ms) de réponse (ms)
Proxy server
Create 0.30 0.19 0.34 /
Insert 0.06 0.07 0.07 0.47
Delete 0.05 0.05 0.05 0.36
Update 0.09 0.10 0.10 0.50
Select avec égale 0.08 0.16 0.08 0.97
Select avec ordre 0.14 0.22 0.20 1.00
Select avec Hom 0.09 0.18 0.34 1.45
Select avec ordre et Hom 0.14 0.42 0.64 Not resolved
General 0.08 0.14 0.18 /
66
Chapitre III Contribution 1
70
60
50
40
30
20
10
0
32 bits 64 bits 128 bits 256 bits 512 bits
Figure III-7 : Temps de réponse (ms) des requêtes avec clés de 32 bits, 64, 128, 256 et 512 bits
III.5 Conclusion
Dans ce chapitre, nous avons proposé une méthode pour générer un chiffrement complètement
homomorphique en assurant la préservation de l'ordre entre les données chiffrées qui sont stockées
sur le Cloud, afin de permettre l'exécution des différentes opérations sur ces données protégées.
Cette technique est simple à utiliser car elle est basée sur des expressions linéaires et modulaires.
Nous avons évalué la complexité de la modification d'une application pour qu'elle fonctionne selon
notre approche. Les types de requêtes et d'applications peuvent prendre en charge un niveau de
sécurité prédéfini et l'impact sur les performances obtenues à l'aide du calcul linéaire.
Nous avons aussi décrit SQL CRYPTEMSYS en prenant un scénario simple dans lequel nous
avons supposé que la base de données Cloud est chez un fournisseur non confiant. Dans la section
de l’implémentation, nous avons analysé la technique proposée et validé son applicabilité pour
différentes solutions de Cloud. Les tests importants sont orientés pour vérifier sa fonctionnalité
dans l’environnement de bases de données en Cloud.
Notre proposition est une technique plus formelle qu’architecturelle pour cela elle est
adaptable à la base de données NoSQL qui peut remédier aux limitations des bases de données
relationnelles. Il peut répondre aux besoins d'écriture et de lecture à haute fréquence, d'accès et de
stockage à haute efficacité, ainsi qu'à une disponibilité et une évolutivité élevées. Comme NoSQL
demande un schéma rigide et se trouve généralement dans une structure distribuée et contrairement
aux bases de données SQL, les données de la base de données NoSQL n’impose aucune structure
de données et il n’est donc pas nécessaire de déclarer un schéma de table avant l’insertion.
67
Chapitre IV Contribution 2
Chapitre IV
IV.1 Introduction
Garantir la préservation de la vie privée, la confidentialité et l'intégrité des données deviennent
la préoccupation essentielle, en veillant à ce que les données et le calcul soient gardés secrètes et
inaltéré [175]. Les services de stockage de données dans le Cloud apportent de nombreux
problèmes de conception complexes en raison de la nature structurelle de ces environnements et
la perte de contrôle physique. Ces défis ont une influence notable sur la sécurité des données et les
performances des systèmes du Cloud.
D’autre côté, la préservation de la confidentialité des données, dans des environnements multi-
tenants et à distant, devient plus difficile et conflictuelle, surtout dans la phase de communication
ou de transfert de données. Dans [4] nous avons proposé d’utiliser le chiffrement des données, du
côté client. Ainsi, le client conserve les clés de déchiffrement, loin de la portée du fournisseur de
Cloud. Néanmoins, cette approche suscite plusieurs problèmes de gestion de clés, tels que, le
stockage et la disponibilité des clés. En outre, la préservation de la confidentialité devient plus
compliquée avec un partage de données dynamique entre un groupe d’utilisateurs.
La protection des données dans le Cloud ne concerne pas seulement la sécurité des données,
mais également le processus de transmission de données. Face à ces défis de sécurité et ces
faiblesses et vulnérabilités, nous présentons, dans ce chapitre, une approche SMA de sécuriser des
données dans le Cloud [3]. L’approche proposée conforme aux hypothèses proposées dans cette
étude. C’est une approche basée sur les systèmes multi agents et les techniques de chiffrements
pour faciliter l’exactitude de la confidentialité, la disponibilité et l’intégrité de la sécurité de
données du Cloud de manière flexible. Elle sépare les opérations d’authentification de
communication et de stockage. En plus, pour chaque opération nous appliquons un type de
chiffrement différent. Par conséquent, notre proposition permet un déploiement flexible et évolutif
de la solution, ainsi qu'une sécurité renforcée pour les données externalisées dans les serveurs de
Cloud.
68
Chapitre IV Contribution 2
Nous pouvons au départ considérer que les deux paradigmes distribués SMA et Cloud
Computing sont incompatibles. Par contre, des analyses détaillées montrent qu’ils sont en réalité
non seulement complémentaires, mais ils partagent entre eux une association considérable.
Nous allons présenter le travail réalisé en commençant par un état de l’art décrivant les axes
que nous avons fixés pour aborder les aspects communs entre le Cloud et les SMA. Cette partie
explicative sera suivie d’un aperçu des architectures et quelques solutions existantes. Nous
présenterons ensuite notre proposition concernant la conception du système multi agents, suivie
d’une revue de l’implémentation et discutions des résultats des premiers tests du notre proposition.
D’une part, des recherches dans le domaine du Cloud Computing tendent vers des solutions
pratiques pour affranchir les contraintes de l’outil informatique traditionnel à savoir les problèmes
de l’espace de stockage, la portabilité, l’élasticité et l’agilité des données. L’objectif donc est
d’avoir une haute disponibilité du service avec des coûts réduits. Par conséquent, les
environnements Cloud peuvent couvrir les besoins de calcul persistant requis par les systèmes
SMA pour différentes applications telles que l'exploration de données, la gestion de services
complexes, etc.
D’autre part, généralement, les systèmes multi agents sont utilisés dans la recherche dans les
trois domaines suivants: la résolution de problèmes, la simulation de phénomènes complexes et la
conception de programmes tout en mettant l’accent sur l’aspect d’intelligence individuelle et
collective. Le SMA est donc utilisé pour la conception adaptable des environnements Cloud
Computing et par conséquence les systèmes Cloud Computing bénéficient à ce paradigme de
nouvelles caractéristiques telles le contrôle distribué, l’apprentissage et l’intelligence, qui
69
Chapitre IV Contribution 2
permettent de développer des environnements informatiques beaucoup plus avancés dans tous les
domaines (services intelligents, interopérabilité entre les ressources partagées, etc.).
En effet, dans les deux sens les deux paradigmes restent complémentaires. Le nombre d'études
que l'on peut trouver sur le Cloud Computing avec la technologie des agents est tout à fait en
croissance [177, 178, 179, 180, 181, 182, 183]. Dans ce contexte, nous allons discuter les SMA et
la sécurité par SMA. Une étude bibliographique de la technologie est menée et l’intégration des
agents dans le domaine de la sécurité est mise en évidence.
70
Chapitre IV Contribution 2
plus importantes que d’autres. Parmi ces formes nous citons les plus importantes dans notre
domaine, le Cloud Computing :
Autonomie : C’est la caractéristique la plus intéressante de l’agent dans lequel il est capable
d’agir sans l’intervention d’un tiers extérieure et contrôle ses propres actions ainsi que son état
interne afin de prendre des décisions. L’agent est dit autonome dans le sens où le concepteur
du système ne pilote pas son comportement c'est-à-dire l’agent décide lui-même quelle action
à entreprendre parmi celles qui sont possibles.
Situation : L’agent est situé dans un environnement contenant également des entités passives.
Il est capable d’agir sur son environnement qu’il peut percevoir grâce à ses entrées sensorielles.
L’agent doit s'adapter sans cesse aux changements de son entourage qui pourraient modifier
de façon pertinente son comportement à tous les niveaux (objectif, plan, action…etc.).
Flexibilité : L’agent dans ce cas est capable de percevoir son environnement puis réagir et
répondre à temps. Il doit exhiber un comportement proactif et opportuniste, tout en étant
capable de prendre l’initiative au “bon” moment ; donc il est capable de prendre des initiatives
afin de s’adapter au changement de son environnement pour atteindre les objectifs qui lui ont
été fixé. La réflexibilité signifie dans ce cas: la réactivité, la proactivité et le comportement
social.
Agents réactifs
L’agent réactif est un agent simple qualifié non intelligent et de plus de bas niveau. Il ne
dispose que d’un protocole et d’un langage de communication réduite, il n’a pas une représentation
globale de leur environnement et n’est pas capables de tenir compte de leur actions passées. Leur
comportement est basé sur le principe de « Stimulus – action », c’est-à-dire, ils répondent d'une
manière opportune aux changements de leurs environnements. Le système d’agents réactifs est
caractérisé par le nombre important des agents qui sont capables de réaliser des processus
complexes.
Agents cognitifs
L’agent cognitif possède une représentation explicite de leur environnement et des autres
agents. C’est un agent “intelligent” qui tienne compte de leur passé et dispose d’un but explicite.
L’agent possède une base de connaissances qui contient l’ensemble des informations et des savoir-
faire nécessaires à la réalisation de sa tâche et à la gestion des interactions avec les autres agents
et avec son environnement. On dit aussi que l’agent est “intentionnel”, c’est-à-dire qu’il possède
des buts et des plans explicites leur permettant d’accomplir leur but.
71
Chapitre IV Contribution 2
La combinaison des deux classes d’agents donne une nouvelle architecture hybride d’agents
qui est un ensemble de modules organisés dans une hiérarchie, chaque module étant soit une
composante cognitive, soit une composante réactive. De cette manière, le comportement proactif
de l’agent, dirigé par les buts, est combiné avec un comportement réactif afin d’obtenir les
avantages des architectures cognitives et réactives, tout en éliminant leurs limitations.
Les systèmes multi-agents et les agents autonomes et mobiles représentent une approche pour
l’analyse, la conception et l’implantation des systèmes informatiques complexes. La vision basée
sur les caractères de SMA qui offre un puissant répertoire d’outils, de techniques, et de métaphores
qui y ont le potentiel d’améliorer considérablement les systèmes logiciels [186].
Dans un système Multi-Agent chaque agent possède des capacités à résoudre des problèmes
limités ou des informations incomplètes, donc chaque agent à un point de vue partiel. Il n’y a pas
de contrôle global du système où les données sont décentralisées et le calcul est asynchrone [189].
Généralement, les SMAs sont conçues pour modéliser des systèmes complexes qui ont des
ensembles constitués d’un grand nombre d’entités en interaction direct ou indirect. Ces SMAs sont
utilisés de manière performante dans plusieurs domaines; ces performances sont représentées selon
les caractéristiques (non exclusives et non exhaustives) suivantes [190]:
Distribution spatiale et fonctionnelle : les agents du système ainsi que leurs fonctionnalités
associées peuvent être situées à des endroits séparés.
Décentralisation : les contrôles centralisés permettant de gérer tous les traitements du système
ne sont pas souhaité.
Hétérogénéité : les données qui sont traitées et les décisions qui sont prises peuvent concerner
différents domaines complètement différents et indépendants les uns des autres.
Ouverture et extensibilité : les agents peuvent s'insérer ou se retirer du système à tout moment
en cours de fonctionnement. Ainsi, les agents ont l’indépendance les uns vis à vis des autres et ont
la possibilité de modifier leurs comportements.
Fiabilité et efficacité : correspond à la distribution des actions sur les agents en utilisant la
capacité de communication entre agents qui peuvent faciliter la résolution des problèmes de
façon rapide et efficace.
72
Chapitre IV Contribution 2
Maintenabilité : cette caractéristique est due à l’inter-indépendance entre les agents qui
permet également de maintenir chaque agent séparément des autres sans affecter le
fonctionnement global du système.
Généralement, un agent mobile est un paradigme de plus en plus utilisé dans les systèmes
distribués. Par exemple lorsqu’un client donne une mission à un SMA, le système active un agent
mobile avec la description de sa mission, ce dernier se déplace dans le réseau en accédant
localement aux services offerts par les hôtes du réseau et exécute sa mission et récupère
éventuellement des résultats. Dans cette proposition nous avons basé sur ce scénario.
Types de mobilité
La mobilité d’un agent mobile peut être classée sur plusieurs modèles. Selon [192] la mobilité
soit faible ou forte. La mobilité faible ne permet de transférer avec l’agent que son code et ses
données. Par contre dans la mobilité forte, l'agent une fois arrivé à sa destination, il reprend son
exécution au point précédent. Une autre classification des agents mobiles dans [193] selon la nature
de la tâche qu’ils sont en mesure d’accomplir. Il s’agit d’agent statique, agent visiteur, agent
collecteur, agent fusion, agent ordonnanceur et agent identificateur.
Un agent mobile est constitué par cinq composants ou attributs qui sont : un état, une
implémentation (code), une interface, un identifiant et une autorité [194], ces attributs sont
transportés par l’agent en se déplaçant à travers le réseau. L’état d’un agent peut être considéré
comme une image instantanée de son exécution. Notons que l’agent mobile possède un identifiant
unique et un code exécutable. Quand il se déplace à travers le réseau, l’agent fournit une interface
qui permet aux autres agents et systèmes d’interagir avec lui. Il peut soit emporter son code soit se
déplacer à destination puis voir le code qui est disponible sur la machine distante et récupérer le
code manquant à partir du réseau.
73
Chapitre IV Contribution 2
protégées partout où elles se trouvent. De ce fait, il est intéressant pour les clients de prendre leurs
propres mesures de sécurité, indépendamment de ce que les fournisseurs proposent. Ces mesures
peuvent être utilisées des méthodes de protection de données à savoir les méthodes de chiffrement,
d’authentification, les méthodes de transport sécurisés et les architectures sécurisées basées sur
des agents intelligents adaptatifs et capables d’agir en cas d’intrusion.
Dans ce sens, les chercheurs ont proposé de nombreuses travaux utilisant l’approche multi-
agents dans un contexte Cloud en vue de dominer les limites de ce dernier telles que la sécurité et
la confidentialité des données. Par exemple, dans l’article [195] l’auteur montre que l'utilisation
des SMA dans l’environnement Cloud peut bénéficier de hautes performances pour des
applications intelligentes et des systèmes complexes. Les SMA ont été aussi utilisés pour proposer
un service de gestion d'accès dans le Cloud. Cette recherche prouve ainsi qu’on peut obtenir une
infrastructure fiable et évolutive sur laquelle on exécute une application à grande échelle.
Les auteurs de l’article [196] soulignent que les systèmes traditionnels ne sont pas
suffisamment efficaces pour réaliser la fonctionnalité du contrôle d’accès dans le Cloud. En raison
de la grande extensibilité de l'environnement de Cloud, ils ont utilisé un système multi-agents pour
gérer le fonctionnement de leur modèle afin d’améliorer le système de contrôle d'accès.
D’autres utilisations des systèmes multi-agents pour fournir des services de sécurité basées
Cloud, ont proposés une architecture SMA dans le contexte de la sécurité du Cloud pour assurer
la confidentialité et la disponibilité pour un service de stockage collaboratif [197]. L’architecture
proposée consiste en deux couches principales, la première couche est la couche Cloud et l’autre
c’est la couche agent. Cette architecture comprend cinq types principaux d’agents. Plus
récemment, en 2014, les mêmes auteurs ont discuté la possibilité d’une jointure entre le Cloud et
le « MAS-based CBR » et l’article explique comment ceci peut être réalisé [198]. Dans [199], les
auteurs ont proposé un framework de sécurité des données en utilisant la flexibilité, la capacité
d’interaction et d’apprentissage des systèmes multi-agents. Cette architecture comprend quatre
agents, à savoir « l’agent de confidentialité », « l’agent d’exactitude », « l’agent de disponibilité »
et « l’agent d’intégrité ». Ce SMA permet d’assurer la sécurité du framework global.
Les auteurs de [200] ont proposé une sécurité à base d'agents du Cloud Computing utilisant la
technique de l'obscurcissement. Ils ont traité le problème d’un fournisseur de Cloud Computing
malveillant, par le biais d'un agent de protection de données sensibles d’un utilisateur. Ce travail
a permis de réduire la surcharge des sites des utilisateurs en utilisant un agent assurant la sécurité
par la définition de différents algorithmes permettant de masquer et de récupérer les données. En
outre, cette technique d'obfuscation permet d’améliorer l'aspect de complexité des algorithmes
utilisés et étend le modèle de sécurité proposé à un autre service de Cloud. Cependant, dans de tels
cas, il n’existe pas de base de données pour tous les concepts de cette technique d’obscurcissement
et le travail ne montre pas en détail comment intégrer les nouveaux concepts.
Il est à noter que les modèles SMA ont été utilisés pour simplifier et améliorer la gestion et le
contrôle de sécurité des architectures des service Cloud. A notre connaissance, aucun service de
74
Chapitre IV Contribution 2
sécurité totale du Cloud n’a été traité. La majorité des recherches se sont concentrées sur l’une des
méthodes d’authentification, de stockages ou de chiffrements des données dans le Cloud. Notre
travail traite de la sécurité des données dans un environnement Cloud sur toutes les phases de
l’authentification jusqu’à la réponse au requête ou le stockage dans le Cloud.
Dans les chapitres précédents, nous avons formalisé le contexte de notre environnement, dans
lesquels l'architecture proposée sera exécutée. Compte tenu de la complexité associée à un
environnement Cloud Computing, ainsi que des différentes composantes artificielles et humaines
impliquées dans ce contexte, il est nécessaire de définir la manière dont les services seront
représentés au niveau technique. Pour cette raison, chaque service peut être déployé simultanément
sur différents modules virtuels.
Cette étude est basée sur des aspects organisationnels, il est nécessaire d'identifier
l’architecture organisationnelle à utiliser. Pour ce faire, la première étape consiste à identifier les
composants de l'architecture, ce qui permet d'établir le modèle d'interaction sur la base d'une
analyse des besoins en terme des composants potentiels du système. Sur la base de cette analyse
(expliquée dans la Figure IV-1), il est possible de déduire les rôles des utilisateurs et les
composants participant au système ainsi que la manière dont ils échangeront des informations.
75
Chapitre IV Contribution 2
<<include>>
<<include>>
<<include>>
Intéroger BDD
Utilisation
<<include>>
Vérification SLA
Client Location
<<include>>
Payer
Fournisseur Contrôler
de service Cloud
Dans ce travail nous proposons une architecture multi-agents basée sur les techniques de
chiffrement et la virtualisation qui sont spécialement conçu pour la gestion des environnements
Cloud Computing [3]. Ainsi, nous décrivons l’architecture de sécurité de haut niveau des services
de stockage et de communication de données dans le Cloud. La Figure IV-2 montre une
représentation schématique de cette architecture. Le cadre est construit en utilisant deux couches,
tel que les fonctionnalités de ces couches peuvent être résumées comme suit:
La couche d’utilisateur: cette couche comporte cinq modules: le module d'interface utilisateur,
le module de gestion de clés, le module de chiffrement/déchiffrement, le module d'obfuscation
et le module de communication dans le Cloud.
La couche de fournisseur de services Cloud FSC: la couche FSC peut être identifiée en tant
que module de communication dans le coulds, module de gestion de clés, module de
chiffrement/déchiffrement et le centre de données.
76
Chapitre IV Contribution 2
Utilisateur
Fournisseur des services Cloud
Module de gestion de clés
Module de gestion de clés
Module de communication
Module de communication
Module de chiffrement / Module de chiffrement /
déchiffrement déchiffrement
Internet
Module d’Obfuscation
Data center
Module d’Interface
Ce module est situé chez le client. Le but principal de cette unité est d’introduire les opérations
du client et d’afficher les résultats. Ce composant présente un avantage en ce qui facilite
l’interaction entre les utilisateurs et le système via l’interface graphique. Dans ce cadre, nous
assignons un agent pour contrôler les données et normaliser les demandes. Cet agent s’appelé
l’Agent d’Interface utilisateur (UIA). UIA agit comme un pont efficace entre l'utilisateur et les
autres agents. L'UIA permet donc de :
De se connecter au système via son compte (dans le cas d'un compte existant),
Ce module est aussi situé au niveau client, tel que présenté en Figure IV-3. Il comporte deux
agents :
L'UIA qui fournit l’opération ou la requête sous forme d’un texte en clair.
77
Chapitre IV Contribution 2
L'obfuscation et la récupération des données sont effectués à l'aide du certificat proposé par
l'utilisateur. Pour construire ce certificat, nous utilisons une base de concepts d'obfuscation
enregistrée dans la couche de Cloud aidant à la proposition des concepts. L’objectif essentiel de
cette technique est de sécuriser l’interface utilisateur contre les attaques personnelles à l’interface
d’utilisateur.
Module de communication
Module d’Obfuscation
P
EDA
ObA
OB certificat
ObT
IA
Module d’Interface
Ce module de la couche d’utilisateur avec l’autre module dans la couche de fournisseur sont
responsable de générer les clés de chiffrement utilisées dans l’opération de transport. Les agents
de gestion de clés (Key Management Agent KMA) dans les deux couches génèrent les clés
nécessaires :
− Le KMA de la couche utilisateur génère deux clés d’une technique de chiffrement asymétrique
tel que la première est publique (encryption Key Asymmetric PUblic KAsPU) transférée au
Cloud par un agent de transport AT, et la deuxième est une clé privée (KAsPr).
Pour accomplir le transfert des clés nous proposons d’utiliser le scénario de transfert illustrées
dans la Figure IV-5. Ce scénario est une combinaison entre deux techniques de chiffrement qui
sont RSA et Blowfish. La combinaison de ces deux algorithmes est utile en termes d’une méthode
hybride, rapide, compacte, moins coûteuse et facile à mettre en œuvre. Le problème principal qui
doit être pris en considération est la taille des clés, qui doivent être maintenue très grande, de sorte
qu’on ne puisse pas les découvrir par substitution directe des clés. Cela rendra le processus
beaucoup plus lent. Par contre, la technique hybride permet d'utiliser une petite clé pour la
technique symétrique, parce que la substitution directe ne fonctionnera pas lorsqu’on la combine
78
Chapitre IV Contribution 2
avec RSA qui a une grande clé. Par conséquent, la vitesse de traitement est beaucoup plus rapide
que le traitement séparé.
Envoyer (ESKe)
Le deuxième agent est l’agent de gestion des clés de chiffrement des données stockées
(Storage Key Management Agent). Il gère les opérations de transmission des clés de
chiffrement et les métadonnées entre l'utilisateur et l'agent.
79
Chapitre IV Contribution 2
Module de chiffrement /
déchiffrement
KMA
Module de communication
TCit
ESK
TA
TCit EDA
SKMA
Module d’Obfuscation
MétaD SEK
Module d’Interface
Ce module est pareil au celui de couche utilisateur, il possède un agent KMA qui a aussi les
mêmes activités de KMA de la couche utilisateur. Cependant, la différence réside dans le fait que
si l'utilisateur souhaite envoyer le texte en clair, la couche FSC est responsable de l'envoi de la
ESK, sinon c'est l'inverse.
Ce module ( voir Figure IV-7) comporte quatre agents: l'agent KMA qui donne le KSE. Cet
agent est généré précédemment dans cette couche. L'agent de chiffrement / déchiffrement déchiffre
80
Chapitre IV Contribution 2
le texte chiffré transporté donné par l'agent de TA avec la clé KSE où SCit = Déchiffrer (TCiT,
KSE). Ce texte chiffré stocké doit être transféré au quatrième agent, c’est-à-dire l’agent de
stockage (SA).
Module de Communication
Module de chiffrement /
déchiffrement KMA
KSE
TCitT
TA EDA
SCit
SA
Centres de données
L'agent de stockage (SA) exécute la requête chiffrée dans la base de données qui est envoyée
par l'utilisateur. En cas de résultat, l'agent SA envoie ie résultat chiffré à l'EDA et le même scénario
de transmission se répète mais de l'autre côté.
Data Centre
SA
SCit
81
Chapitre IV Contribution 2
Évolutivité infinie: avec les agents, la communication dans le Cloud est optimale, car
à chaque fois que la requête d'utilisateur nécessite plus de communication avec le
Cloud, le système crée tous les types d'agent pour affecter une communication correcte.
Tolérance aux pannes et robustesse: les agents ont la capacité de réagir de manière
dynamique aux situations défavorables. L’objectif est de construire un système
distribué robuste et tolérant aux pannes. C’est le cas des agents de transport. Si l’un des
modules de Cloud Computing est sur le point d’être arrêté, les agents de transport
reprend la responsabilité de continuer l’exécution des tâches nécessaires dans cette
région et dans l’autre région.
Adapté aux réseaux hétérogènes: les agents mobiles étant basés sur JAVA, il sera
pratique de les utiliser dans les réseaux basés sur des systèmes matériels et logiciels
hétérogènes.
82
Chapitre IV Contribution 2
les agents, nous avons utilisés la plateforme JADE et l’environnement de développement intégré
Eclipse. Ce dernier fournit un langage de communication entre les agents en utilisant le FIPA-
ACL. Enfin, nous utilisons la plate-forme Cloudsim pour simuler les ressources virtuelles ainsi
que les tâches réalisées dans notre système.
Plateforme JADE
JADE (Java Agent Development framework) est une plateforme implémentée avec le langage
JAVA par le laboratoire TILAB [201]. Elle est destinée aux développeurs qui s’intéressent aux
systèmes multi-agents distribués. La plateforme JADE fournit une interopérabilité sans limite pour
les applications quelles prend en charge. Cette plateforme est indépendante du système
d’exploitation ainsi que du matériel sur laquelle elle est implémentée [202]. Cette plateforme
permet le développement des applications conformes aux normes FIPA qui propose le modèle
AMRM (Agent Management Reference Model) comme le modèle de base de l’architecture de la
plateforme JADE. Les principaux modules qui composent l’architecture JADE sont : DF, AMS et
également le MTS (Massage Transport Service), un moyen pour la communication entre plusieurs
plateformes JADE [203].
Nous avons développé notre système à l'aide de JADE-S, la version 2 de JADE. JADE-S est
formée par la combinaison de la version standard de JADE et du plug-in de sécurité [204]. JADE-
S inclut des fonctionnalités de sécurité telles que l'authentification des utilisateurs/agents,
l'autorisation et la communication sécurisée entre agents sur la même plateforme tels que [205]:
Certificats et autorité de certification: l'autorité de certification (CA) est l'entité qui signe tous
les certificats pour la plateforme, à l'aide d'une paire de clés publique / privée.
Simulateur Cloudsim
A cause de frais élevés et de limitation des tests sur un environnement Cloud réel comme
Amazon EC2, nous avons utilisé des simulations pour l’évaluation de notre approche. Un
simulateur Cloud est un outil qui permet aux développeurs d’utiliser des ressources et des
machines virtuelles puissantes. Pour valider les idées présentées dans ce chapitre, nous avons
83
Chapitre IV Contribution 2
utilisé le simulateur Cloudsim qui est l’un des principaux représentants des simulateurs de Clouds.
Cloudsim est un outil qui offre aux développeurs un moyen pour modéliser, simuler et réaliser des
expérimentations dans le but de créer une infrastructure Cloud. Les principales fonctionnalités de
Cloudsim sont détaillées dans [206, 207] :
84
Chapitre IV Contribution 2
CREATE DATABASE
Employer;
Creat and Cconfigure Database ...
Password List
Log in
5R6V2ph87@57kjuLkj5
EDA
4832ogzwjhMyO53...
711cd399bbf9bddbcb74e9e
eb85586963f5f25fa6a9885a
09e2d0f141ea585617415f0e
Cloudlets ...
Broker
Data centre (tasks)
Host
Cloudlets
Cloudsim (tasks)
VM1
VM2
SA TA
Cloudlets
(tasks)
85
Chapitre IV Contribution 2
notations JSON pour chiffrer les données utilisateur sur n’importe quel service de base de
données en Cloud.
Dans un premier temps l’utilisateur crée une instance de data centre après avoir choisir le type
de base de données, dans notre cas c’est une base de données MySQL. Puis il précise ses
paramètres et donne son schéma. L’agent EDA, lorsqu’il obtient le code de création, il génère
un autre schéma du Cloud selon l’algorithme 4 et un méta data pour l’envoyer à l’utilisateur.
Dans cet état la base de données du Cloud devient prêt à exploiter.
2) L’exploitation : cette étape représente toute la durée vie de la base de données après la
création. A chaque connexion d’un utilisateur à la base de données, le système crée l’ensemble
des agents et effectue la configuration du SMA. L’application charge automatiquement la
plateforme JADE dès son lancement. Nous avons programmé notre modèle JADE sur le
diagramme de classes représenté dans la Figure IV-10. Le comportement de l'agent principal
EDA consiste en la bibliothèque et le package de sécurité Java. Ce package comporte un
analyseur de requête, un chiffreur / réécriture de requête, qui chiffre les données ou les champs
de la requête avec tous les algorithmes de chiffrements. L'agent EDA est considéré comme un
proxy dans notre architecture, comme le proxy de travail [2].
86
Chapitre IV Contribution 2
Utilisateur
Connexion
- ID
+ Datedebut
* + DateFin *
+ IP
+ Créer ()
+ AffecterTache ()
SMA
*
Agent Place
- ID - ID
+ AddIP + AddIPLocal
+ DateCreation + DateArriv
+ Créer () + DateSort
+ AffecterTache ()
1 *
Agent Mobile
Agent Situé
- ID
- ID
+ AddIPLocal
+ Créer () + DateCreation
+ AffecterTache ()
+ Créer ()
SA + AffecterTache ()
- ID
KMA
+ Etat
- ID
+ Etat
IA + GénèrClésP () TA
+ GénèrClésS ()
- ID + AffecterTache () - ID
+ Etat + Etat 1
+ AffecterTache ()
SKMA + Créer ()
ObA EDA
- ID
- ID - ID
+ Etat
+ Etat + Etat
+ DateCreation
+ DateCreation + DateCreation
+ GénèrClés ()
+ Masquer () + ChiffrTrans ()
+ Ddémasquer () + DéchiffrTrans ()
+ AffecterTache ()
87
Chapitre IV Contribution 2
module de communication. La Table IV-1 montre la comparaison de ces trois algorithmes avec
notre algorithme hybride qui sont implémentées sous les mêmes conditions matériel et logiciel. La
comparaison montre que l’algorithme proposée est beaucoup plus rapide que les autres
algorithmes. Le meilleur temps est obtenu car la clé de Blowfish est très petite, et la clé de RSA,
qui est plus puissante, assure un niveau de sécurité optimal.
88
Chapitre IV Contribution 2
65
61
38
34 35
32 30
25
19
14
SMA CRYPTEMSYS
Figure IV-11 : Durée de traitement de la requête (ms) avec clés de chiffrement de 512 bits
IV.6 Conclusion
La sécurité des données est un problème crucial dans l'environnement de cloud computing.
Pour protéger les données stockées en cloud, de nombreuses technologies sont proposées en
utilisant les techniques de chiffrements et les systèmes multi-agents. Dans ce chapitre, nous avons
présenté une approche basée sur les systèmes multi-agent et les techniques de chiffrements afin de
fournir une architecture de sécurité multi-niveaux solide et pratique. Le premier niveau est
l'interface utilisateur. Il montre la technique de l'obscurcissement pour de garantir la confidentialité
des données existantes dans cette interface.
Le deuxième niveau vise à assurer les opérations de communication, qui combinent les
algorithmes de chiffrements symétriques et asymétriques. Ces méthodes combinées prouvent que
la nouvelle technique proposée garantissant les avantages de l’algorithme symétrique en termes de
temps de traitement et garantissant la robustesse de l’algorithme asymétrique en longueur de clé.
En fait, cette nouvelle approche est plus rapide que d’autres techniques cryptographiques en termes
de traitement de données. De plus, le chiffrement asymétrique est un moyen robuste et sécurisé
pour le mécanisme de distribution de clé.
Le dernier niveau est conçu pour assurer les opérations de stockage. Pour cela, nous avons
manipulé les données de l'utilisateur en utilisant une méthode de chiffrement complètement
homomorphique. En se basant sur la réalisation d’un système multi-agents, l’intégrité et la
souplesse inter-agents peuvent être étendus à une structure multi-proxy pour la réalisation des
autres systèmes plus complexes tel que les systèmes gérant les Big Data.
89
Conclusion générale
Conclusion générale
Les efforts récents visant le développement des technologies Cloud en utilisant des nouvelles
techniques, méthodes, politiques et mécanismes efficaces de sécurisation. Cette thèse s'est
intéressée à ce challenge du Cloud Computing. En particulier, le travail de cette thèse s’intègre
dans le contexte du problème de la sécurité des données. Notre objectif principal était de proposer
une approche pour la sécurité de données dans le Cloud Computing. Le but ultime est de satisfaire
les besoins des utilisateurs Cloud, tout en proposant une solution pour la sécurisation des données
la plus sûre et la plus confiée. La solution proposée doit garantir en premier lieu la confidentialité
et l’intégrité.
Dans l’introduction générale et les deux premiers chapitres, nous sommes focalisés sur le
concept de la sécurité de Cloud Computing. Nous avons présenté la définition et l’objectif général
de notre contexte d’étude. Ensuite, nous avons présenté la définition, les caractéristiques et les
principaux défis et challenges de recherche dans le cadre du Cloud. Après, nous avons détaillé les
principales exigences, normes, stratégies de la gestion de la sécurité du Cloud Computing. Nous
avons discuté aussi les problèmes de sécurité, de confidentialité, de contrôle des données et les
menaces de la sécurité. En effet, cette partie représente l’état de l’art de ce travail de thèse.
Dans le troisième chapitre, nous avons présenté notre première contribution. Il met l'accent
sur la problématique de la confidentialité des données stockées dans le Cloud. Nous avons mis en
place un modèle garantissant la confidentialité des données. Nous avons proposé aussi une
technique pour générer un chiffrement complètement homomorphique en assurant la préservation
de l'ordre entre les données chiffrées stockées sur le Cloud. L’objectif est de permettre l'exécution
des différentes opérations sur ces données protégées. Cette technique est simple à utiliser car elle
est basée sur des expressions linéaires et modulaires. Nous avons validé cette solution par un
scénario simple décrit par SQL CRYPTEMSYS.
Dans le dernier chapitre (le quatrième chapitre), nous avons introduit notre deuxième
contribution en utilisant des systèmes multi-agentes. Plus précisément, Nous avons présenté une
approche basée sur les systèmes multi-agent et les techniques de chiffrements. Cette approche a
fourni une architecture de sécurité multi-niveaux. Nous avons considéré le niveau interface
utilisateur et le niveau supports de communication. Le système proposé utilise une approche de
chiffrement hybride rapide et robustesse. En fin, dans le dernier niveau du data centre, nous avons
manipulé les données de l'utilisateur en utilisant une méthode de chiffrement complètement
homomorphique.
90
Conclusion générale
Pour conclure, cette thèse nous a permis d’examiner un large éventail de concepts, de modèles
et de technologies dans les domaines de la sécurité des données et de Cloud. Notre objectif était
d’étudier les problèmes de sécurité des données stockées dans le Cloud, tout en se concentrant sur
la confidentialité des données et l’intégrité des données à distance. Nous avons fourni des
nouvelles architectures basées sur les techniques de chiffrements pour répondre à nos objectifs.
Nous avons montré aussi que le travail proposé rejoint une thématique de recherche riche et
encourageante.
Cette thèse constitue une base de travail à partir du quelle, de nouvelles activités de recherche
peuvent être lancées afin d'améliorer le travail présenté. Les perspectives que nous proposons
peuvent donc s'orienter vers les directions suivantes:
• La tendance forte des appareils mobiles et des réseaux de capteurs faire appel aux
services de gestion de données en Cloud. Il sera intéressant d’étudier les mécanismes
de sécurité des données de faible coût. En effet, notre technique de chiffrement de
données peut être adaptable. Elle mérite d’être mis en œuvre sur un matériel mobile
réel pour évaluer les coûts de calcul.
• Publier les deux travaux [2] et [4] qui reposent sur la virtualisation d'agents
intelligents, ce qui permet de fournir une nouvelle solution requise par les plates-
formes Cloud.
Enfin, nous affirmons que la sécurité de données en Cloud est toujours pleine de défis et d’une
importance majeure. De nombreux problèmes de recherche restent à identifier et à étudier.
91
Bibliographie
Bibliographie
[1] Y. Mohammed Amine, K. Okba, L. Abdelkader, B. Ahcène, E. Reinhardt et A. Muath, «An Adaptive
and Efficient Fully Homomorphic Encryption Technique,» The 2nd International Conference on
Future Networks & Distributed Systems, Amman, Jordan, 26-27 June 2018.
[2] Y. Mohammed Amine, K. Okba, L. Abdelkader, B. Ahcène et E. Reinhardt, «An Efficient and Adapted
Fully Homomorphic and Order Preserving Encryption in Cloud Computing».
[4] Y. Mohammed Amine, K. Okba, L. Abdelkader et I. Kerthio, «Intelligent cloud protection based on
Multi Agent System Approach Using Advanced Cryptographic Algorithm».
[5] I. Foster et C. Kesselman, The grid: blueprint for a new computing infrastructure, San Francisco:
Morgan Kaufmann, 1999.
[7] M. A Vouk, «Cloud computing–issues, research and implementations,» Journal of computing and
information technology, vol. 16, n° %14, pp. 235-246, 2008.
[8] S. Ried, K. Holger, M. Pascal, B. Andrew et L. Miroslaw, «Sizing the cloud, understanding and
quantifying the future of cloud computing,» Forrester Research, Inc 21 , 2011.
[9] P. Mell et T. Grance, «The NIST Definition of Cloud Computing.,» NIST, [En ligne]. Available:
[Link] [Accès le 07 octobre 2018].
[12] Y. Yang, K. Liu, J. Chen, . X. Liu, D. Yua et J. Hai, «An algorithm in SwinDeW-C for scheduling
transaction-intensive cost-constrained cloud workflows.,» chez eScience'08. IEEE Fourth
International Conference, 374-375, Indianapolis, USA, 2008.
92
Bibliographie
[15] S. Subashini et K. Veeraruna, «A survey on security issues in service delivery models of cloud
computing,» Journal of network and computer applications, vol. 34, n° %11, pp. 1-11, 2011.
[17] . P. Wieder, J. M. Butler et W. Theilmann, Service level agreements for cloud computing, Springer
Science & Business Media, 2011.
[18] R. Buyya, K. G. Saurabh et N. C. Rodrigo, «SLA-oriented resource provisioning for cloud computing:
Challenges, architecture, and solutions,» Cloud and Service Computing (CSC), 2011 International
Conference onCloud and Service Computing (CSC), Hong Kong, China, pp. pp. 1-10. IEEE, 2011.
[19] R. Buyya, S. Y. Chee et V. Srikumar, «Market-oriented cloud computing: Vision, hype, and reality
for delivering it services as computing utilities,» 10th IEEE International Conference on on High
Performance Computing and Communications (HPCC-08), Dalian, China, pp. 5-13, September 2008.
[20] L. Wang, T. Jie, K. Marcel, C. C. Alvaro, K. David et K. Wolfgang, «Cloud Computing : Early Definition
and Experience,,» Proc. of the 10th IEEE Int. Conf. on High Performance Computing and
Communications, Washington, DC, USA, pp. 825-830, September 2008.
[22] C. N. Höfer et G. Karagiannis, «Cloud computing services : taxonomy and comparison,» Journal of
Internet Services and Applications, vol. 2, n° %12, pp. 81-94, 2011.
[23] I. Foster, Z. Yong, R. Ioan et L. Shiyong, «Cloud computing and grid computing 360-degree
compared,» In Grid Computing Environments Workshop, GCE'08, Ieee , pp. 1-10, 2008.
[24] R. N. Calheiros, R. Rajiv, B. Anton, A. D. R. César et B. Rajkumar, « CloudSim: a toolkit for modeling
and simulation of cloud computing environments and evaluation of resource provisioning
algorithms,» Software: Practice and experience, vol. 41, n° %11, pp. 23-50, 2011.
[25] H. D, «Cloud computing : a taxonomy of platform and infrastructure-level offerings,» chez Tech Rep
GIT-CERCS-09-13,CERCS, Georgia Institute of Technology., 2009.
[26] S. Weil, «CEPH : Reliable, scalable, and high-performance distributed storage,» PhD thesis,
University of California - SANTA CRUZ, 2007.
[27] G. Diana, H. Marcus et A. Streit, «Evaluating the performance and scalability of the ceph distributed
storage system.,» IEEE International Conferenceon Big Data, 2014.
93
Bibliographie
[28] S. Konstantin, K. Hairong, R. Sanjay et C. Robert, «The hadoop distributed file system,» chez In
Proceedings of the 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST),
2010 .
[29] D. Benjamin, L. M. Gaël et S. Cyril, «Analysis of six distributed file systems,» 2013.
[30] P. Mayur, I. Adriana, R. Matei et G. Simson, «Amazon s3 for science grids : a viable solution ?,» In
Proceedings of the 2008 international workshop on Data-aware distributed computing, p. 55–64,
June 2008.
[31] T. Yusuke, Y. Seiya et H. Takahiro, «A high performance, qos-enabled, s3-based object store,» 14th
IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, p. 784–791, 2014.
[33] L. Qian, L. Zhiguo, D. Yujian et G. Leitao, «Cloud computing: An overview.,» In IEEE International
Conference on Cloud Computing, Springer, Berlin, Heidelberg, pp. 626-631, 2009.
[34] G. Pierre et S. Corina, «ConPaaS: a platform for hosting elastic cloud applications,» IEEE Internet
Computing, vol. 5, n° %15 , pp. 88-92, 2012.
[35] P. Guillaume et S. Corina, «Conpaas : A platform for hosting elastic cloud applications,» IEEE
Internet Computing, p. 88–92, 2012.
[38] «Elastic Beanstalk,» amazon, [En ligne]. Available: AWS Elastic Beanstalk.
[Link] [Accès le 26 October 2018].
[39] P. Guillaume et S. Corina, «Conpaas : A platform for hosting elastic cloud applications,» IEEE
Internet Computing, p. 88–92, 2012.
[40] C. N. Höfer et G. Karagiannis, «Cloud computing services : taxonomy and comparison,» Journal of
Internet Services and Applications, vol. 2, n° %12, pp. 81-94, 2011.
[42] I. Foster, Y. Zhao, I. Raicu et S. Lu, «Cloud Computing and Grid Computing 360-Degree Compared,»
Grid Computing Environments Workshop. GCE ’08, pp. 10-56, 2008.
[43] V. J. Winkler, Securing the Cloud: Cloud computer Security techniques and tactics, Elsevier, 2011.
94
Bibliographie
[44] X. Xu, «From cloud computing to cloud manufacturing",,» Robotics and computerintegrated
manufacturing, vol. 28, n° %11, p. 75 – 86, 2012.
[45] C. Curino, P. J. Evan, A. P. Raluca, M. Nirmesh, W. Eugene, M. Sam, B. Hari et Z. Nickolai, «Relational
cloud: A database-as-a-service for the cloud,» MITLibraries, 2011.
[46] E. Brewer, «Towards robust distributed systems,» chez In PODC (Vol 7), July 2000.
[47] R. Cattell, «Scalable SQL and NoSQL data stores,» Acm Sigmod Record, vol. 39, n° %14, pp. 12-27,
2011.
[48] H.-E. Chihoub, I. Shadi, L. Yue, A. Gabriel, P. María et B. Luc, «Exploring energy-consistency trade-
offs in cassandra cloud storage system,» chez In SBAC-PAD'15-The 27th International Symposium
on Computer Architecture and High Performance Computing, 2015.
[49] L. Bing, H. Yutao et X. Ke, «The nosql principles and basic application of cassandra model,» chez
International Conference on Computer Science and Service System, 2012.
[50] K. Chodorow, MongoDB: The Definitive Guide: Powerful and Scalable Data Storage, O'Reilly Media,
2013.
[51] A. Ortiz, J. Jacques et M. Abdelaziz, « Toward a new direction on data management in grids,» In
15th IEEE International Conference on High Performance Distributed Computing, pp. 377-378,
2006.
[52] V. J. Winkler, Securing the Cloud: Cloud computer Security techniques and tactics, Elsevier, 2011.
[55] D. Sarna, chez Implementing and Developing Cloud Computing Applications, Taylor & Francis
Group, 2010, p. 2.
[56] A. Lee-Post et P. Ram, «Cloud computing: A comprehensive introduction,» In Security, Trust, and
Regulatory Aspects of Cloud Computing in Business Environments, IGI Global, pp. 1-23, 2014.
[57] M. Abdelhak, Approche de composition de services web dans le Cloud Computing basée sur la
coopération des agents, Université Mohamed Khider – BISKRA, Département d’informatique,
20/02/2018.
[58] D. Rountree et I. Castrillo, chez The Basics of Cloud Computing Understanding the Fundamentals of
Cloud Computing in Theory and Practice, Elsivier , 2014, p. 45.
95
Bibliographie
[60] A. Michael, D. J. Anthony, H. K. Randy et A. P. David, «Above the Clouds : A Berkeley View of Cloud
Computing,» chez Technical Report UCB/EECS-2009-28, , EECS Department , University of
California, Berkeley, 2009.
[61] M. Marzolla, B. Ozalp et P. Fabio, «Server consolidation in clouds through gossiping,» IEEE
International Symposium on a World of Wireless, Mobile and Multimedia Networks, pp. 1-6, 2011.
[63] T. C. T et R. J. R, «Metaheuristic scheduling for cloud : A survey,» IEEE Systems, vol. 8, n° %11, p.
279–291, 2014.
[64] B. Rochwerger, D. Breitgand et A. Epstein, «Reservoir-when one cloud is not enough’,» Computer,
vol. 44, n° %13, p. 1–7, 2011.
[65] V. BHAGAWAT et A. KUMAR, «Survey on data security issues in cloud environment.,» International
Journal of Innovative Research in Advanced Engineering, vol. 2, n° %11, pp. 31-35, 2015.
[66] N. MacDonald, «Security is the top Concern for Public Cloud, but What Does That Really Mean?,»
[En ligne]. Available: [Link]
concern-for-public-cloud-but-what-does-that-really-mean/. [Accès le 13 Novembre 2018].
[68] N. Gohring, «Amazon's data storage service hit by outage,» [En ligne]. Available:
[Link]
[Link]. [Accès le Novembre 2018].
[69] «Google Docs leaks out private data,» [En ligne]. Available: [Link]
[Link]/news/google-docs-leaks-out-private-data/. [Accès le Novembre 2018].
[70] J. Kirk, «Google’s gmail hit with two-hour outage,,» [En ligne]. Available:
[Link]
[Link]. [Accès le Novembre 2018].
[71] D. Chen et H. Zhao, « Data security and privacy protection issues in cloud computing,» In : Computer
Science and Electronics Engineering (ICCSEE), 2012 International Conference on. IEEE, p. 647–651,
2012 .
96
Bibliographie
[72] J. Brodkin, « Loss of customer data spurs closure of online storage service ’the linkup’,» [En ligne].
Available: [Link] data-center/loss-of-customer-data-
spurs-closure-of-online-sto html. [Accès le Novembre 2018].
[73] R. CHOW, P. GOLLE, M. JAKOBSSON, E. Shi, J. Staddon, R. Masuoka et J. Molina, «Controlling data
in the cloud: outsourcing computation without outsourcing control,» In : Proceedings of the 2009
ACM workshop on Cloud computing security. ACM, pp. 85-90, 2009.
[74] H. TIANFIELD, « Security issues in cloud computing.,» In : Systems, Man, and Cybernetics (SMC)
2012 IEEE International Conference on. IEEE, pp. 1082-1089, 2012.
[76] D.-W. SUN, G.-R. CHANG, S. GAO, L. Z. Jin et X. W. Wang, «Modeling a dynamic data replication
strategy to increase system availability in cloud computing environments.,» Journal of computer
science and technology, vol. 27, n° %12, pp. 256-272, 2012.
[77] P. X. WEN et L. DONG, «Quality model for evaluating SaaS service,» In : Emerging Intelligent Data
and Web Technologies (EIDWT), 2013 Fourth International Conference on. IEEE, pp. 83-87, 2013.
[78] P. RANE, Securing SaaS applications: a cloud security perspective for application providers,
Information Security Management Handbook, vol. 5, 2010.
[80] A. NAGARAJAN et V. VARADHARAJAN, «Dynamic trust enhanced security model for trusted
platform based services,» Future Generation Computer Systems, vol. 27, n° %15, pp. 564-573, 2011.
[81] Y. Zhang et J. Joshi, Access control and trust management for emerging multidomain environments,
In: S. Upadhyaya and R. O. Rao, eds., Annals of Emerging Research in Information Assurance,
Security and Privacy Services, Emerald Group Publishing, 2009.
[82] D. SHIN et G.-J. AHN, «Role-based privilege and trust management.,» Computer Systems Science
and Engineering, vol. 20, n° %16, pp. 401-410, 2005.
[84] A. REED, C. REZEK et P. SIMMONDS, «Security guidance for critical areas of focus in cloud
computing,» v3. 0. Cloud Security Alliance, , pp. 14-44, 2011.
[85] J. G. BRODKIN, «Seven cloud-computing security risks.,» Infoworld, vol. 2008, pp. 1-3, 2008.
[86] A. M., G. J., M. I. et e. al., «An analysis of the cloud computing security problem,» in: Proceedings
of APSEC 2010 Cloud Workshop, Sydney, Australia, , 30 Nov, 2010..
97
Bibliographie
[88] B. R. Kandukuri et R. Atanu, «Cloud security issues." Services Computing,» SCC'09. IEEE
International Conference on. IEEE, 2009.
[89] M. David et S. Stuart, «Self Hosting vs. Cloud Hosting: Accounting for the security impact of hosting
in the cloud,» Microsoft Research, pp. 1 - 18, 2010.
[90] M. Jensen, J. Schwenk, N. Gruschka et L. L. Iacono, «On technical security issues in cloud
computing.,» In Cloud Computing CLOUD'09. IEEE International Conference on, pp. 109-116,
Septembre 2009.
[91] C. Soghoian, «Caught in the cloud: Privacy, encryption, and government back doors in the web 2.0
era,» J. on Telecomm. & High Tech. L, vol. 8, p. 359, 2010.
[94] J. Networks, «Security Consideration for Cloud Ready DataCentres,» Oct. 2009. [En ligne].
Available: [Link] [Accès le 27
Novembre 2018].
[95] S. Subashini et K. Veeraruna, «A survey on security issues in service delivery models of cloud
computing,» Journal of network and computer applications , vol. 34, n° %11, pp. 1-11, 2011.
[96] A. A. Noureddine et Meledath Damodaran, «Security in web 2.0 application development,» chez
Proceedings of the 10th International Conference on Information Integration and Web-based
Applications & Services, ACM, 2008.
[97] B. Benatallah, F. Casati, F. Daniel et J. Yu, «Mashups, saas, and cloud computing: Evolutions and
revolutions in the integration landscape.,» Document based on Tutorial at ICDE , 2009.
[98] R. Pradnyesh, Securing SaaS Applications: A Cloud Security Perspective for Application Providers,”
Information Systems Security", 2010.
[100] «Web 2.0/SaaS Security, Tokyo Research Laboratory,,» IBM Research, [En ligne]. Available:
[Link] htm. [Accès le 27 Novembre 2018].
98
Bibliographie
[101] L. NEWCOMBE, Securing cloud services: a pragmatic approach to security architecture in the cloud,
IT Governance Publishing, 2012.
[103] E. Ogren, «Whitelists SaaS modify traditional security, tackle flaws,» 17 Sep. 2009. [En ligne].
Available: [Link] techtarget.
com/news/column/0,294698,sid14_gci1368647,[Link]/. [Accès le Novembre 2018].
[105] C. Sample, «Senior Scientist, BBN Technologies, Diana Kelley, Partner, Security Curve,“Cloud
computing security: Routing and DNS security threats».
[106] R. L. Krutz et D. V. Russell, Cloud security: A comprehensive guide to secure cloud computing, Wiley
Publishing, 2010.
[109] J. KARLIN, S. FORREST et J. REXFORD, «Autonomous security for autonomous systems.,» Computer
Networks, vol. 52, n° %115, pp. 2908-2923, 2008.
[110] «Scalable Security Solutions, Check Point Open Performance Architecture, Quad-Core Intel Xeon
Processors, “Delivering Application-Level Security at Data Centre Performance Levels,» Intel
Corporation, [Link] 2008.
[111] R. Bhadauria, R. Chaki, N. Chaki et S. Sanyal, « SECURITY ISSUES IN CLOUD COMPUTING.,» Acta
Technica Corvininesis-Bulletin of Engineering, , vol. 7, n° %14, pp. 159-177, 2014.
[112] S. Pal, S. Khatua, N. Chaki et S. Sanyal, «A new trusted and collaborative agent based approach for
ensuring cloud security.,» arXiv preprint arXiv:1108.4100, 2011.
[113] F. LOMBARDI et R. DI PIETRO, «Secure virtualization for cloud computing.,» Journal of network and
computer applications, vol. 34, n° %14, pp. 1113-1122, 2011.
[114] H. Wu, Y. Ding, C. Winer et L. Yao, «Network security for virtual machine in cloud computing,» In
Computer Sciences and Convergence Information Technology (ICCIT), 5th International Conference
on. IEEE, pp. 18-21, 2010.
99
Bibliographie
[115] K. VIEIRA, A. SCHULTER et C. WESTPHALL, « Intrusion detection techniques in grid and cloud
computing environment,» IT Professional, IEEE Computer Society, vol. 12, n° %14, pp. 38-43, 2010.
[116] C.-C. Lo, H. Chun-Chieh, K. Joy et ", «A cooperative intrusion detection system framework for cloud
computing networks,» chez Parallel processing workshops (ICPPW), 2010 39th international
conference, IEEE, 2010.
[117] L. Ruiping et C. Y. Kin, «Mitigating DDoS Attacks with Transparent and Intelligent Fast-Flux Swarm
Network,» IEEE Network, vol. 25, n° %14, pp. 28-33, 2011.
[118] A. BAKSHI et Y. B. DUJODWALA, «Securing cloud from ddos attacks using intrusion detection
system in virtual machine,» In : Communication Software and Networks. ICCSN'10. Second
International Conference on. IEEE, pp. 260-264, 2010.
[119] M. Claudio, B. Roberto et C. Roberto, «Integrating a Network IDS into an Open Source Cloud
Computing Environment,» Sixth International Conference on Information Assurance and Security,
USA, pp. 265-270, 2010.
[121] D. GOLLMANN, «Securing web applications.,» Information Security Technical Report, vol. 13,
n° %11, pp. 1-9, 2008.
[122] R. BHADAURIA, R. CHAKI, N. CHAKI et S. Sanyal, «SECURITY ISSUES IN CLOUD COMPUTING,» Acta
Technica Corvininesis-Bulletin of Engineering, vol. 7, n° %14, 2014.
[125] D. Chen et H. Zhao, «Data security and privacy protection issues in cloud computing,» Computer
Science and Electronics Engineering (ICCSEE), International Conference on. IEEE, vol. 1, 2012.
[127] «Data security lifecycle 2.0,» [En ligne]. Available: [Link] data-security-
lifecycle-2.0. [Accès le 03 Decembre 2018].
[128] A. REED, C. REZEK et P. SIMMONDS, «Security guidance for critical areas of focus in cloud
computing v4,» Cloud Security Alliance, pp. 14-44, 2017.
[129] K. RAUBER, «Cloud cryptography,» International Journal of Pure and Applied Mathematics, vol. 85,
n° %11, pp. 1-11, 2013.
100
Bibliographie
[130] T. Mather, K. Subra et L. Shahed, Cloud security and privacy: an enterprise perspective on risks and
compliance, O'Reilly Media, Inc, 2009.
[131] B. PRINCE, « Ibm discovers encryption scheme that could improve cloud security,» spam filtering.
E-Week. com, 2009.
[134] P. BARNAGHI, W. WANG, C. HENSON et K. Taylor, «Semantics for the Internet of Things: early
progress and back to the future,» International Journal on Semantic Web and Information Systems
(IJSWIS), vol. 8, n° %11, pp. 1-21, 2012.
[135] V. P. P., B. P. S., N. P. S., I. B. N. et H. J. R., «Survey of various homomorphic encryption algorithms
and schemes,» International Journal of Computer Applications, vol. 91, n° %18 , 2014.
[136] S. S. et K. V., «A survey on security issues in service delivery models of cloud computing,» Journal
of network and computer applications, vol. 34, n° %11, p. 1–11, 2011.
[137] M. T., O. A., C. H., B. I., P. J.-M. et V. V. A., «Cloud computing: Survey on energy efficiency,» Acm
computing surveys (csur), vol. 47, n° %12, p. 33, 2015.
[138] M. K. I., K. A. et A. M., «Cloud computing security: A survey,» Computers, vol. 3, n° %11, p. 1–35,
2014.
[139] D. A., Q. Y., W. Q. et H. S., «An advanced survey on secure energy-efficient hierarchical routing
protocols in wireless sensor networks,» arXiv preprint arXiv, pp. 1306-4595, 2013.
[141] M. C., O. M., O. E., D. Y. et S. B., «Practical homomorphic encryption: A survey,” in Circuits and
Systems (ISCAS),» IEEE International Symposium on. IEEE, p. 2792–2795, 2014.
[142] E.-Y. A. et D. E. M., «Fully homomorphic encryption: state of art and comparison,» International
Journal of Computer Science and Information Security, vol. 14, n° %14, p. 159, 2016.
[144] Z. O., D. A. et D. H., «Cloud computing security through parallelizing fully homomorphic encryption
applied to multi-cloud approach,» Journal of Theoretical & Applied Information Technology, vol.
87, n° %12, 2016.
101
Bibliographie
[145] B. A., C. M., Q. B., A. F. et S. P., «Depsky: dependable and secure storage in a cloud-of-clouds,» ACM
Transactions on Storage (TOS), vol. 9, n° %14, p. 12, 2013.
[146] A. M. A., P. E., S. B. et T. J. A., «Cloud computing security: from single to multi-clouds,» System
Science (HICSS), 2012 45th Hawaii International Conference on. IEEE, p. 5490–5499, 2012.
[147] D. B. J., J. A. et O. A., «Hail: A high-availability and integrity layer for cloud storage,» Proceedings of
the 16th ACM Conference on Computer and communications Security. ACM, p. 187–198, 2009.
[148] X. K., L. S., H. J., X. Y., Y. N. et H. P., «Two-cloud secure database for numeric-related sql range
queries with privacy preserving,» IEEE Transactions on Information Forensics and Security, vol. 12,
n° %17, p. 1596–1608, 2017.
[149] F. L., C. M. et M. M., «Distributed, concurrent, and independent access to encrypted cloud
databases,» IEEE Transactions on Parallel and Distributed Systems, vol. 25, n° %12, p. 437–446,
2014.
[150] A. P. R., R. C., Z. N. et B. H., «Cryptdb: protecting confidentiality with encrypted query processing,»
Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles. ACM, p. 85–
100, 2011.
[151] G. S. et M. S., «Probabilistic encryption,» Journal of Computer and System Sciences, n° %12, p. 270–
299, 1984.
[152] N. D. et S. J., «A new public-key cryptosystem,» International Conference on the Theory and
Applications of Cryptographic Techniques. Springe, p. 27–36, 1997.
[154] P. P., «Public-key cryptosystems based on composite degree residuosity classes,» International
Conference on the Theory and Applications of Cryptographic Techniques. Springer, p. 223– 238,
1999.
[155] T. T. et S.-S. K., «Paillier’s cryptosystem modulo p2q and its applications to trapdoor commitment
scheme,» 2005.
[156] L. R. R., S. A. et A. L., «A method for obtaining digital signatures and public-key cryptosystems,»
Communications of the ACM, vol. 21, n° %12, p. 120–126, 1978.
[157] E. T., «A public key cryptosystem and a signature scheme based on discrete logarithms,» IEEE
Transactions on Information Theory, vol. 31, n° %14, p. 469–472, 1985.
[158] S. T., Y. A. et Y. M., «Non-interactive cryptocomputing for nc/sup 1,» Foundations of Computer
Science, 1999. 40th Annual Symposium on. IEEE, p. 554–566, 1999.
102
Bibliographie
[159] K. P. S., R. S. et B. R., «An efficient and secure privacy-preserving approach for outsourced data of
resource constrained mobile devices in cloud computing,» Journal of Network and Computer
Applications, vol. 64, p. 12–22, 2016.
[160] K. J., « Theory of Cryptography: Second Theory of Cryptography Conference,» TCC 2005,
Cambridge, MA, USA, Proceedings. Springer, vol. 3378, 10-12 February 2005.
[161] M. A., G. P. et H. J., «Additively homomorphic encryption with d-operand multiplications,» Annual
Cryptology Conference. Springer, p. 138–154, 2010.
[162] D. Z., «Secure database in cloud computing-cryptdb revis-˘ ited,» International Journal of
Information Security Science, vol. 3, n° %11, p. 129–147, 2014.
[163] J. S., L. W. et S. T., «Numerical sql value expressions over encrypted cloud databases,» International
Conference on Database and Expert Systems Applications. Springer, p. 455–478, 2015.
[164] S. T., «Dodrant-homomorphic encryption for cloud databases using table lookup,» Networks,
Computers and Communications (ISNCC), 2017 International Symposium on. IEEE, p. 1–6, 2017.
[165] C. D., G. R., H.-G. N. et Q. N. P., «Paillier’s cryptosystem revisited,» Proceedings of the 8th ACM
Conference on Computer and Communications Security. ACM, p. 206–214, 2001.
[166] G. C., A fully homomorphic encryption scheme, Stanford : Stanford University, 2009.
[167] B. Z. et e. al., Efficient fully homomorphic encryption from (standard) lwe, focs, 2011.
[168] M. M., S. K. et G. M., «Enabling secure database as a service using fully homomorphic encryption:
Challenges and opportunities,» arXiv preprint arXiv: 1302. 2654, 2013.
[170] L. D. et W. S., «Programmable order-preserving secure index for encrypted database query,” in,»
Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on. IEEE, p. 502–509, 2012.
[171] L. D. et w. S., «Nonlinear order preserving index for encrypted database query in service cloud
environments,» Concurrency and Computation: Practice and Experience, vol. 25, n° %113, p. 1967–
1984, 2013.
[172] D. J., D. M. et X. J., «Practical homomorphic encryption over the integers,» ArXiv Preprint
ArXiv:1702.07588, , 2017.
[173] J.-S. CORON, A. MANDAL, D. NACCACHE et M. Tibouchi, «Fully homomorphic encryption over the
integers with shorter public keys.,» Annual Cryptology Conference. Springer, Berlin, Heidelberg, pp.
487-504, 2011.
103
Bibliographie
[176] M. Armbrust, A. Fox, G. R. A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, R. Ariel, I. Stoica
et Z. Matei, «A view of cloud computing,» Communications of the ACM, vol. 53, n° %14, pp. 50-58,
2010.
[177] J. Kang et K. M. Sim, «Cloudle: An ontology-enhanced cloud service search engine,» In Web
Information Systems Engineering–WISE 2010 Workshops. Springer Berlin Heidelberg, pp. 416-427,
2011, January.
[178] J. Kang et K. M. Sim, «Ontology and search engine for cloud computing system,» In System Science
and Engineering (ICSSE), International Conference IEEE, pp. 276-281, 2011 .
[179] K. M. Sim, «Agent-based Cloud Computing,» IEEE TRANSACTIONS ON SERVICES COMPUTING, 2012.
[180] K. M. Sim, « Complex and concurrent negotiations for multiple interrelated emarkets,» IEEE
Transactions on Systems, Man and Cybernetics, Part B: Cybernetic , vol. 43, n° %11, pp. 230-245,
2013.
[181] D. Talia, «Cloud Computing and Software Agents: Towards Cloud Intelligent Services,» In WOA, pp.
2-6, 2011.
[182] D. Talia, « Clouds meet agents: Toward intelligent cloud services,» Internet Computing, IEEE, vol.
16, n° %12, pp. 78-81, 2012.
[183] S. Venticinque, R. Aversa, B. Di Martino, M. Rak et D. Petcu, «A cloud agency for SLA negotiation
and management,» In Euro-Par 2010 Parallel Processing Workshops, Springer Berlin Heidelberg,
pp. 587-594, 2010 .
[184] F. J., Les systèmes Multi-Agents Vers une intelligence collective., Paris: Inter Edition, 1995.
[185] J. I. et C.-D. B., Aperçu sur les systèmes Multi-Agents, CIRANO: Série Scientifique du centre inter
universitaire de recherche en analyse des organisations, 2002.
[186] N. R. Jennings, «On agent-based software engineering,» Artificial Intelligence Journal, 2000.
[187] o. Khayati, «Modèles formels et outils génériques pour la gestion et la recherche de composants,»
chez Thèse, INSTITUT NATIONAL POLYTECHNIQUE DE GRENOBLE, 2005.
[188] J. Ferber, Les systèmes multi-agents, vers une intelligence collective, InterEditions, 1995.
104
Bibliographie
[190] K. Sycara, «Multi-agent system,» AI Magazine, vol. 19, n° %12, p. 79–92, 1998.
[191] S. O. K. Hamza, «Découverte de services web via le Cloud computing à base d’agents mobiles,»
chez thèse de doctorat, Université de Biskra, 2015.
[192] S. Perret, «Agents mobiles pour l’accès nomade à l’information répartie dans les réseaux de grande
envergure,» chez Thèse de doctorat de l’Université Joseph Fourier - Grenoble I, 1997.
[193] L. M. Jeffrey et J. P. Tsai, «Security modeling and analysis of mobile agent systems,» chez Series in
Electrical and Computer Engineering Vol 5, 2006.
[194] F. A. BARIKA, «Vers un IDS Intelligent à base d’Agents Mobiles,» chez Mémoire de DEA, Université
de Tunis Institut Supérieur de Gestion, SOI2E-ISG-TUNIS, LERIA-EPITECH-PARIS, 2003.
[195] S. Rodríguez González, Modèle adaptatif pour les organisations d'agents virtuels, 2010.
[196] J. W. Ross et G. Westerman, «Preparing for utility computing: The role of IT architecture and
relationship management,» IBM systems journal, vol. 43, n° %11, pp. 5-19, 2004.
[198] A. M. Talib et E. N. E. M., «Multi agent system-based on case based reasoning for cloud computing
system,» In APJES, vol. 2, n° %12, p. 34–38, 2014.
[199] H. Zhou et Q. S., «Security framework for cloud data storage based on multiagent system.,»
Computer Modelling & New Technologies, p. 548–553, 2014.
[200] K. Govinda et E. Sathiyamoorthy, «Agent based security for cloud computing using obfuscation’,,»
International Conference On Modelling Optimization And Computing Procedia Engineering, vol. 38,
p. 125–129, 2012.
[201] B. F., P. A. et R. G., «Developing multi-agent systems with JADE,» Intelligent Agents VII Agent
Theories Architectures and Languages, Springer, p. 89–103, 2001.
[202] F. Bellifemine, A. Poggi et G. Rimassa, «JADE—a FIPA compliant agent framework,» Proceedings of
the 4th international conference and exhibition on the practical application of intelligent agents
and multi-agents, UK, p. 97–108, 1999.
[203] M. N. Huhns, «Agents as Web services,» IEEE Internet computing, vol. 6, n° %14, pp. 93-95, 2002.
105
Bibliographie
[204] A. Poggi, G. Rimassa et M. Tomaiuolo, «Multi-user and security support for multi-agent systems,»
Proceedings of WOA, Dagli oggetti agli, 2001 .
[206] N. Rodrigo, R. Rajiv, B. Anton, D. César, B. Rajkumar, N. Calheiros, R. Ranjan, A. Beloglazov, A. De-
Rose et R. Buyya, «CloudSim : A Toolkit for Modeling and Simulation of Cloud Computing
Environments and Evaluation of Resource Provisioning Algorithms,» Software : Practice and
Experience (SPE), vol. 41, n° %11, pp. 23-50, 2011.
106