Confidentialité dans les bases de données

43
Confidentialité dans les bases de données DRUIDE 2004 Luc Bouganim, Philippe Pucheral INRIA & Université de Versailles Pré[email protected]

description

Confidentialité dans les bases de données. DRUIDE 2004 Luc Bouganim, Philippe Pucheral INRIA & Université de Versailles Pré[email protected]. Plan. Problématique Besoins de confidentialité Caractérisation des attaques Définition du problème et approches traditionnelles - PowerPoint PPT Presentation

Transcript of Confidentialité dans les bases de données

Page 1: Confidentialité dans les bases de données

Confidentialité dans les bases de données

DRUIDE 2004

Luc Bouganim, Philippe Pucheral

INRIA & Université de Versailles

Pré[email protected]

Page 2: Confidentialité dans les bases de données

2

Plan• Problématique

– Besoins de confidentialité– Caractérisation des attaques– Définition du problème et approches traditionnelles

• Protection de BD relationnelles– Modèle de contrôle d’accès SQL– Chiffrement et interrogation

• Protection de données XML– Modèle(s) de contrôle d’accès XML– Chiffrement et interrogation/diffusion

• Perspectives – Evolution des modèles de contrôle d’accès– Contrôle d’usage

Page 3: Confidentialité dans les bases de données

Problématique

Page 4: Confidentialité dans les bases de données

4

Besoins de confidentialité (1) ?

• Omniprésence des bases de données– Grands systèmes d’information (publics ou privés)– BD PME – BD personnelles (agenda, carnet d’adresses, bookmarks …) – BD "ambiantes" (capteurs, aware home …)

• L’organisation des données est un facteur de risque– L’analyse d’une collection d’informations insignifiantes peut

générer des résultats sensibles

• L’inter-connexion croissante en est un autre– Connexions permanentes, accès ubiquitaires, objets

communicants

Page 5: Confidentialité dans les bases de données

5

Besoins de confidentialité (2) ?

• Hébergement de données (DSP)– Hébergement de site Web, sous-traitance de la gestion du système

d’information d’une PME, équipes virtuelles, dossiers personnels …– caspio.com, quickbase.com, cyberworker.com, primadoctor.com …– Nombreuses violations de chartes de privacité [AKS02]

• Vulnérabilité des serveurs d’entreprise – Source CSI/FBI : coût des attaques BD $103 milliards/an, 45% des

attaques sont internes– Source ZATAK : 1551 sites français piratés dans le musée de ZATAZ– Source Clusif (Club de la Sécurité des Systèmes d'Information Français ) :

• Modification, par un concurrent, du carnet de commande d’un équipementier automobile, induisant des ruptures de stock gravissimes

• Détournement, par une compagnie concurrente, d’informations commerciales du fichier clients de la compagnie aérienne Virgin

Page 6: Confidentialité dans les bases de données

6

Besoins de confidentialité (3) ?

• Indexation des bases de données– "Google entre vie privée et secret défense" (source : confidentiel.net)

• Négligence– Craquage d'un système bancaire US (mots de passe trop courts par rapport au

nb de comptes gérés)

– Consultation de la facture détaillée d’autrui (télécom brésil)

• Croisement de bases de données– CAPPS-II (Computer Assisted Passenger Pre-Screening System) croise des

BD pour lutter contre le terrorisme

Ron Rivest : « La révolution digitale inverse les défauts : ce qui était autrefois difficile à copier devient facile à dupliquer, ce qui était oublié

devient mémorisé à jamais et ce qui était privé devient public

Page 7: Confidentialité dans les bases de données

7

• Oracle's 'Unbreakable' Boast Attracts Hackers– Hack attempts on the company's website have increased to

30,000 per week.

Protection : Solution Oracle ?

• Some days after ….– 'When they say their software is unbreakable, they're lying.'

-- Bruce Schneier

– U.K. security researcher David Litchfield revealed that a common programming error -- a buffer overflow -- was present in Oracle's application server

Page 8: Confidentialité dans les bases de données

8

Confidentialité vs. sécurité 

• Authentification

• Contrôle d'accès (droits)

• Confidentialité

• Intégrité (Logique, Physique, Com)

• Complétude (du résultat)

• Disponibilité

• Sauvegarde et reprise sur panne

• Détection d'intrusion

• Audit

• …

SE

CU

RIT

E

Page 9: Confidentialité dans les bases de données

9

Caractérisation des attaques de confidentialité

administrateurAttaque système

BD P.M.E.

Serveur BD

utilisateurContournement des

droits, inférence

BD

PirateAttaque empreinte

disque

Consommateur/gestionnaire

usage illicite du contenu

Page 10: Confidentialité dans les bases de données

10

Définition du problème

Confidentialité des données : Interdire toute consultation aux personnes non autorisées

SGBD idéal : Data + Query Mgr + Rights Mgr enceinte sécurisée

– Mise en œuvre « impossible » dans un cadre général• Les sites les plus « sûrs » sont piratés

Data Data Data

Data Data Data

Data Query Mgr UserRightsMgr

Page 11: Confidentialité dans les bases de données

11

T1 : Identification/authentification

• Base : login + password

• Nombreux protocoles et systèmes matériels (carte à puce, biométrie …)

Nécessaire mais insuffisant !!

ServeurBD

BD

Utilisateur

Page 12: Confidentialité dans les bases de données

12

T2 : Chiffrement des communications

• Technologie éprouvée

• Chiffrement => confidentialité des messages

• Hachage => intégrité des messages

• Signature => non répudiation des transactions

Nécessaire mais insuffisant !!

ServeurBD

BD

Utilisateur

Page 13: Confidentialité dans les bases de données

13

T3 : Mécanismes de contrôle d’accès

• Droits sophistiqués contrôlés par le serveur• Ne résiste pas à une attaque sur les fichiers du serveur ou

à une attaque du DBA (DataBase Administrator) !

Nécessaire mais insuffisant !!

ServeurBD

BD

Utilisateur

Page 14: Confidentialité dans les bases de données

14

T4 : Protection de la BD

• Principe : chiffrer l’empreinte disque de la BD

• Seule solution pour résister aux attaques sur les fichiers

• Mise en œuvre et limites de cette solution ?

ServeurBD

BD

Utilisateur

Page 15: Confidentialité dans les bases de données

Protection de bases de données

relationnelles

Page 16: Confidentialité dans les bases de données

16L’approche ‘‘Bases de données’’

BDVIII - Concurrence d’accès

VII - Gestion des pannes

I- Indépendance Physique

IX - Gestion de la confidentialité

II- Indépendance Logique

VI - Gestion de la cohérence

X - Standards

V - Optimisation des questions

III – Langage de manipulation

IV - Gestion des vues

Page 17: Confidentialité dans les bases de données

17

Modélisation Relationnelle

DocteursId-D Nom Prénom

1 Dupont

Pierre

2 Durand Paul

3 Masse Jean

…. …….. ……

VisitesId-D Id-P Id-V Date Prix

1 2 1 15 juin 250

1 1 2 12 août 180

2 2 3 13 juillet

350

2 3 4 1 mars 250

PatientsId-P Nom Prénom Ville

1 Lebeau Jacques Paris

2 Troger Zoe Evry

3 Doe John Paris

4 Perry Paule Valenton

…. ……. ……. …….

PrescriptionsId-V Ligne Id-M Posologie

1 1 12 1 par jour

1 2 5 10 gouttes

2 1 8 2 par jour

2 2 12 1 par jour

2 3 3 2 gouttes

…. …. …. …………

MédicamentsId-M Nom Description

1 Aspegic 1000

……………………………..

2 Fluisédal ……………………………..

3 Mucomyst ……………………………..

…. …….. ……………………………..

Page 18: Confidentialité dans les bases de données

18

Gestion des vues

• Les vues permettent de créer des objets virtuels

• Vue = Question SQL stockée

• Le SGBD stocke la définition et non le résultat

• Exemple : la vue des patients parisiens

Create View Parisiens as (

Select Nom, Prénom

From Patients

Where Patients.Ville = ’Paris’ )

Page 19: Confidentialité dans les bases de données

19

Gestion des vues

Le SGBD transforme la question sur les vues en question sur les relations de base

Requête Qsur des vues

Gestionnaire de Vues

Définition des vues

Requête Q’ sur les relations

de base

Exécution de requête

Résultat

Page 20: Confidentialité dans les bases de données

20

Confidentialité via les vues

Principe : les droits d’accès sont exprimés sur les vues plutôt que sur les relations de base

Vérification des droits

Requête Q sur des vues

Gestionnaire de Vues

Définition des Vues

+ Droits

associés

Requête Q’ sur les relations

de base

Exécution de requête

OK

OKRésultat

Page 21: Confidentialité dans les bases de données

21

Confidentialité via les vues

Id-E Nom Prénom Poste Adresse Ville Salaire

1 Ricks Jim 5485 ………. Paris 230

2 Trock Jack 1254 ………. Versailles 120

3 Lerich Zoe 5489 ………. Chartres 380

4 Doe Joe 4049 ………. Paris 160

Id-E Nom Prénom Poste

1 Ricks Jim 5485

2 Trock Jack 1254

3 Lerich Zoe 5489

4 Doe Joe 4049

Nombred’employés

MasseSalariale

4 890

Service des ressources humaines

Employés(intranet)

Public(internet)

Page 22: Confidentialité dans les bases de données

22

Confidentialité dans les SGBDR (bilan)

• GRANT operation ON relations, vues, procédures stockées …

TO utilisateur, groupe

• Modèle de base DAC (Discretionary Access Control)

• Certains systèmes supportent également– RBAC => adjonction de rôles

– MAC => sécurité multi-niveaux (ex: Trusted Oracle 7 -> 9i, DB2 …)

tous les cas supposent que l'utilisateur passe "par la porte d'entrée" !!

Page 23: Confidentialité dans les bases de données

23

Oracle Obfuscation Toolkit

• Fourniture d’un « package » permettant le chiffrement / déchiffrement de données

• Problèmes : – Gestion et partage de clés à la charge de l’application

– Système non résistant à un pirate administrateur• Les packages peuvent être substitués,

• Les données apparaissent en clair lors de l’exécution des requêtes

• ORACLE : « DBA has all privileges » !!

Page 24: Confidentialité dans les bases de données

24

Protegrity Secure.Data

• Solution basée sur 2 modules :– Secure.Manager : gestion des utilisateurs, droits et clés

– Secure.Server : module de chiffrement intégré au noyau SGBD

• … et 2 personnes physiques différentes …– Database Administrator (DBA) / Security Administrator (SA)

• Isolation DBA/SA ?• Données toujours en clair à un moment de l’exécution

SGBD +

SecureServer

BD

Utilisateur

SecureManager

Clés UtilisateursPrivilèges

Page 25: Confidentialité dans les bases de données

25

Alternatives : déchiffrement et contrôle sur le client

[HIL02] : hébergement de données privées

Query Mgr

Data Data Data

Data Data Data

Data UserEncryptionDecryption

Query Mgr

Data Data Data

Data Data

Data Query Mgr

Data

EncryptionDecryption User

Query Mgr

RightsMgr

C-SDA [BoP02] : Données partagées (droits différents)

Page 26: Confidentialité dans les bases de données

26

Tradeoff : Confidentialité vs Performance

Data Data Data

Data Data Data

Data

Con

fide

ntia

lité

Data Data Data

Data Data

Data Query Mgr

Data

Data Data Data

Data Data

Data Query Mgr

Data

Client

Client

Client

Perform

ance

Performance inacceptableConfidentialité maximale

Performance maximaleConfidentialité minimale

SGBD classique

[HIL02]

C-SDA [BoP02]

???

Page 27: Confidentialité dans les bases de données

27

– Les données sont chiffrées par attribut en respectant la propriété : a=b E(a)=E(b)

– La partie des requêtes non évaluable sur les données chiffrées est évaluée sur la carte (prédicats <, >, fonctions de calcul, etc..)

C-SDA [BoP02]: Chiffrement granule attribut

Terminal Serveur

Trouver la moyenne des salaires des employés

de type = "cadre1"

C-SDAC-SDAC-SDAC-SDA

Calcul de la moyenne

9400

Moyenne

…..

Fffe 

zze

SGBD

Trouver le zze des lqskdqs de sdeefa= "zarevgzd"

dgssiukèefsaSdedf’g

Fffe zarevgzddedefzszd

zzesdeefaazdssdz

............ lqsk

dq

s

Page 28: Confidentialité dans les bases de données

28

C-SDA : Décomposition d’une requête

1. Produit cartésien des relations du FROM : Client X Commande

2. Prédicats du WHERE : C.code = Q.Code and Q.date > 1996

3. Groupement (GROUP BY) : C.Code, C.Nom

4. Calcul des agrégats : Count(*) , sum(Q.montant)

5. Prédicats du HAVING : Count(*) >= 10

6. Projection (SELECT) : C.Code, C.nom, sum(Q.montant)

7. Tri final (ORDER BY) : C.Nom

SELECT C.Code, C.nom, sum(Q.montant)FROM Client C, Commandes QWHERE C.Code = Q.Code and Q.date > 1996GROUP BY C.Code, C.nomHAVING count(*) >= 10ORDER BY C.nom

Page 29: Confidentialité dans les bases de données

29

Alternatives à l’hypothèse a=b E(a)=E(b)

id name salaryageEncrypted row Iid Iname Iage Isalary

Row:

Encrypted row:

index

• [Hacigumus et al, SIGMOD’02], Univ. Irvine, CA

• Granule de chiffrement = tuple dans sa globalité

• Ajout d’index d’attributs– Indique l’appartenance d’un attribut d’un tuple à une plage de valeurs

– Permet des traitements approximatifs sur le serveur

Query Mgr

Data Data Data

Data Data Data

Data UserEncryptionDecryption

Query Mgr

Page 30: Confidentialité dans les bases de données

30

[HIL02] : Attributs numériques

h(1)=1720 55

h(2)=4h(3)=12h(4)=3h(5)=6h(6)=1h(7)=925 30 35 40 45 50

E(R1) 3

E(R2) 9

E(R3) 4

(Age=37)

(Age=53)

(Age=26)

• Partitionner le domaine de variation d’un attribut

Connaissance du client

Connaissance du serveur

32<Age<40

IAgeIAge= 12

or IAge= 3

Age=53

IAge= 9

Page 31: Confidentialité dans les bases de données

31

[HIL02] : Attributs String

• Signatures de string (n-grams)

string signature

'Greencar'

'Bigrecordman'

'Bigman'

110

111

101

name LIKE '%green%'

IName in (110, 111)

E(R1) 110

E(R2) 111

E(R3) 101

Connaissance du client N={"g", "re", "ma"}

exemple :

Connaissance du serveur IName

Page 32: Confidentialité dans les bases de données

Protection de données XML

Page 33: Confidentialité dans les bases de données

33

Données XML

• Modèle de données XML– Modèle de données semi-structuré et arborescent

– Standard pour l’échange, le stockage, la description d’information

• Impact– Comment définir la vue autorisée d’un document XML ?

– Comment prendre en compte des modèles de diffusion ?

• Exemple : un agenda en XML

Appointment Appointment

CategoryWork

General CategoryFriend

Start10:00

End12:00

Avail.Busy

Content

ContactFrançois

General

Start22:00

End24:00

Avail.Out

Content

Notes…..

TiltleCinemaKill Bil

....

Titlee-gate

ContactBob

Notes….

Page 34: Confidentialité dans les bases de données

34

Règles d’autorisation dans XML

• Plusieurs modèles proposés – pas encore de standard…

• Les règles d’autorisation sont décrites sous forme d’ACL

• ACL : un utilisateur a une permission (ou une interdiction) d’accéder à une ressource donnée

• Utilisation du langage XPATH pour désigner …• des « ressources » sur le document à protéger

• éventuellement des sujets, sur un document XML les contenant

sujet accès

objet

Page 35: Confidentialité dans les bases de données

35

Exemple (simplifié)

• Politique fermée

• Rule 1 : < Friends, , //Appointment /general>• Rule 2 : < Friends, , //Appointment[Content/Contact=USER]/Content>• Rule 3 : < Friends, , //Notes>

Appointment Appointment

CategoryWork

General CategoryFriend

Start10:00

End12:00

Avail.Busy

Content

ContactFrançois

General

Start22:00

End24:00

Avail.Out

Content

Notes…..

TiltleCinemaKill Bil

....

Titlee-gate

ContactBob

Notes….

Page 36: Confidentialité dans les bases de données

36

Exemple (simplifié)

• Politique fermée

• Rule 1 : < Friends, , //Appointment /general>• Rule 2 : < Friends, , //Appointment[Content/Contact=USER]/Content>• Rule 3 : < Friends, , //Notes>

• Règles de gestion de conflits :– Denial-Takes-Precedence – Most-Specific-Object-Takes-Precedence

Appointment Appointment

CategoryWork

General CategoryFriend

Start10:00

End12:00

Avail.Busy

Content

ContactFrançois

General

Start22:00

End24:00

Avail.Out

Content

Notes…..

TiltleCinemaKill Bil

....

Titlee-gate

ContactBob

Notes….

Page 37: Confidentialité dans les bases de données

37

Chiffrement de données XML

• Les mêmes problèmes qu’en relationnel se posent : – Où et qui vérifie les droits ?

– Où réalise-t-on le déchiffrement ?

• Et si l’on considère des modèles de diffusion …– Comment distribuer les clés ?

– Comment mettre à jour les droits ?

– Comment faire le contrôle en flux ?

Page 38: Confidentialité dans les bases de données

38

Exemples : AuthorX [BCF01], [BDP04]

AuthorX [BCF01] associe clés et droit. – droits "compilés" statiquement lors du

chiffrement

– clés distribuées en fonction des droits

– Mise à jour des droits rechiffrement et redistribution des clés

Au contraire, [BDP04] dissocie droit et chiffrt – Pas de contrainte de chiffrement

– droits évalués dynamiquement dans un SOE

– Maj des droits facile à prendre en compte

– Evaluation en flux des droits XPATH

Vue autorisée

Règlesd’accès

Document chiffré en fonction des droits

Clés del’utilisateur

Diffusion

Vueautorisée

SOE

DecryptionIntegrity controlAccess control

Document chiffré

Canal sécuriséRègles d’accèsClés de chiffrt

Diffusion

Page 39: Confidentialité dans les bases de données

Perspectives(non exhaustif)

Page 40: Confidentialité dans les bases de données

40

Contrôle d’usage

• Hippocratic Databases [AKS+02]– contrôler l’usage des données gérées par un SGBD

• 10 principes fondateurs : – 1-Purpose Specification, 2-Consent, 3-Limited Collection,

4-Limited Use, 5-Limited Disclosure, 6-Limited Retention, 7-Accuracy, 8-Safety, 9-Openness, 10-Compliance

• Chacun de ces principes génère un problème de recherche

• Travaux connexes :– P3P (Platform for Privacy Preference, W3C)

– Relais d’anonymat, pseudonymat, contrôle parental

– Et aussi gestion des droits d’accès digitaux (XrML, XACML, ODRL …)

Page 41: Confidentialité dans les bases de données

41

Evolution des modèles de contrôle d’accès

• Les données sont de moins en moins centralisées – Sources largement distribuées, autonomes, parfois « pervasives »

(intelligence ambiante)– Qui fixe les règles du contrôle d’accès ?– Qui contrôle ces règles ?– Qui contrôle le contrôleur ?– Comment empêcher l’inférence d’informations illicites par croisement

d’informations autorisées ?

• Les données sont variées et complexes– Prise en compte de données arborescents et semi-structurés– Contrôle sur des images, des vidéos …

• Les modes d’accès à l’information se diversifient– Client/serveur, diffusion, P2P …– Prise en compte du contexte de l’accès (obligations, traçabilité) [ABM03]

• Un cas d’école : le futur dossier médical partagé (Libération 25/05)

Page 42: Confidentialité dans les bases de données

42

Références bibliographiques (1)• Motivations :

[CaB02] The Caspio Bridge DSP. www.caspio.com/bridge.htm[DSS94] La menace et les attaques informatiques, Délégation Interministérielle pour

la Sécurité des Systèmes d'Information, 1994[eCr02] The eCriteria DSP. www.ecriteria.net[FBI03] Computer Security Institute, "CSI/FBI Computer Crime and Security

Survey" http://www.gocsi.com/forms /fbi/pdf.html).[Goo01] “Google entre vie privée et secret défense” http://www.confidentiel.firstream.net/[Qck02] The Quickbase DSP. https://www.quickbase.com/[Ora04] Oracle Unbreakable

http://www.techtv.com/news/securityalert/story/0,24195,3364291,00.html

• BD relationnelles : [BoP02] L. Bouganim, P. Pucheral, "Chip-Secured Data Access: Confidential Data on

Untrusted Servers", VLDB, 2002.[HeW01] J. He, M. Wang, "Cryptography and Relational Database Management

Systems", IDEAS, 2001.[HIL02] H. Hacigumus, B. Iyer, C. Li, S. Mehrotra, "Executing SQL over encrypted

data in the database-service-provider model", ACM SIGMOD, 2002.[Mat00] U. Mattsson, Secure.Data Functional Overview, Protegity Technical Paper

TWP-0011, 2000. (http://www.protegrity.com/White_Papers.html)[Ora02] Oracle Corp., “Advanced Security Administrator Guide”, Release 9.2, 2002.

Page 43: Confidentialité dans les bases de données

43

Références bibliographiques (2)

• XML :[BCF00] E.Bertino, S.Castano, E.Ferrari, M.Mesiti, "Specifying and Enforcing Access

Control Policies for XML Document Sources", WWW Journal, vol.3, n.3, 2000.

[BCF01] E. Bertino, S. Castano, E. Ferrari, "Securing XML documents with Author-X", IEEE Internet Computing, 2001.

[BDP04] L. Bouganim, F. Dang Ngoc, P. Pucheral, “Client-Based Access Control Management for XML documents”, VLDB, 2004

[DDP02] E. Damiani, S. De Capitani di Vimercati, S. Paraboschi, P. Samarati, "A Fine-Grained Access Control System for XML Documents", ACM TISSEC, vol. 5, n. 2, 2002.

[GaB01] A. Gabillon and E. Bruno, “Regulating access to XML documents. IFIP Working Conference on Database and Application Security, 2001.

• Perspectives :[ABM03] A. El Kalam, S. Benferhat, A. Miege, R. Baida, F. Cuppens, C. Saurel, P.

Balbiani, Y. Deswarte, G. Trouessin, "Organization based access control", IEEE 4th International Workshop on Policies for Distributed Systems and Networks, 2003.

[AKS02] Agrawal R., Kiernan J., Srikant R., Xu Y., “Hippocratic Databases”, VLDB , 2002.