Confidentialité dans les bases de données
description
Transcript of Confidentialité dans les bases de données
Confidentialité dans les bases de données
DRUIDE 2004
Luc Bouganim, Philippe Pucheral
INRIA & Université de Versailles
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
Problématique
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
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
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
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
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
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
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
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
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
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
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
Protection de bases de données
relationnelles
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
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 ……………………………..
…. …….. ……………………………..
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’ )
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
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
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)
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" !!
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 » !!
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
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)
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]
???
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
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
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
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
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
Protection de données XML
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….
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
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….
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….
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 ?
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
Perspectives(non exhaustif)
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 …)
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)
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.
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.