Stockage d’information sur un périphérique non sécurisé Stage INRIA - Projet SMIS Cryptographie et Bases de données Septembre 2006 Soutenance de Vincent JANTET
Jan 08, 2016
Stockage d’information sur un périphérique non sécurisé
Stage INRIA - Projet SMIS
Cryptographie et Bases de données
Septembre 2006
Soutenance de Vincent JANTET
Crypto / BD 2
Plan de la présentation
1. Le projet SMIS (et la crypto)
2. Quelques propositions contre le rejeu
Le projet SMIS (et la crypto)
Crypto / BD 4
Cadre des bases de données
administrateurAttaque système
Serveur BD
utilisateurAttaque de l’empreinte disque Contournement des droits
BD
PirateAttaque de l’empreinte disque
• Stocker de l’information …– Utilisation d’un serveur
• … de façon confidentielle– Protection logicielle
– Protection matérielle
Crypto / BD 5
Le modèle
tout-embarquétout-embarqué client-serveurclient-serveur
ProgramProgramProgramProgramme
ProgramProgramProgramUtilisateur
Stockage extérieur
Stockage extérieur
Environnement sécurisé
Accès aux données
Transfert de données
Requête
Résultat
Terminal de retour Environnement non-sécurisé
• Environnement sécurisé (SOE) : élément de confiance.
• Environnement non-sécurisé (UOE) : sujet aux attaques.
• Terminal de retour (RT)
SOE
UOE
RT
FLASH
étroitement-connectéétroitement-connecté
SOE UOE, RTSOE
RTUOE
SOE
UOERT
Crypto / BD 6
Le problème
Concevoir des techniques d’exécution de requêtes efficaces, compatibles avec les contraintes de la puce, permettant l’évaluation de vues complexes sur des données extérieures à la puce protégées par des méthodes cryptographiques.
Crypto / BD 7
Digest
Digest
Digest
Protection cryptographique
– Examen
Chiffrement opaque(ex: CBC-AES)
Data ?#wEr4
?#wEr4 ?#wEr4
?#wEr4 ?#wEr4
Ident
?#wEr4 ?#wEr4
ID / V°
– CorruptionAjouter un Hash
(digest, HMAC)
– SubstitutionAjouter un identifiant
(ex: l’adresse)
– RejeuIndicateur de fraîcheur
(ex: numéro de version)
Quatre attaques
Crypto / BD 8
Problèmes majeurs
• Conservations des numéros de version– Espace mémoire sécurisé limité
• Granularité fine donc:– beaucoup d’informations
– beaucoup de numéros de versions
Quelques propositions
Contre le rejeu
Crypto / BD 10
Ordonnancement
Information
md6aS
sDf1gs
Sgj5sd
Ed5Hj
4Qor6t
…
dp3pS9
cge6hU
À l’adresse
Adresse
00
01
02
03
04
…
98
99
Plus vieilleversion
Mémoire sécurisée
Mémoire non sûre
Version
127
028
029
030
031
…
125
126
028
@01
Ecrire «EFGH» à l’adresse [3]
29 ie2S73031
@02
pt4iZ
U8Zgt
@03@04
128129
130
Crypto / BD 11
Caractéristiques
• Accès à n'importe quelle position– Lecture en coût constant
• Écritures séquentiel des données– Écriture en coût linéaire de la taille de la mémoire
– Avantage en cas d’écriture séquentielle
– Dans le pire cas : Actualiser toute la mémoire
Crypto / BD 12
Rejeu (bitmaps)
• Base « checking the correctness… »
Information
…
sDf1gs
Sgj5sd
Ed5Hj
md6aS
4Qor6t
dp3pS9
…
Numéro
146
147
148
149
150
151
…
243
244
…
Périmé
Non
Oui
Oui
Non
Oui
Non
…
Non
Non
…
ProchainInutilisé
Adresse
…
322
324
325
326
327
328
…
Plus vieilleversion
Écrire «EFGH» à l’adresse [325]
Déchiffrage
Oui
«ABCD | 149» Version 149 validePéremption de 149
Chiffrage«EFGH | 243»
Nouvelle version 243
gl4z8F
Mémoire sécurisée Mémoire non sûre
Crypto / BD 13
Caractéristiques
• Garbage collector
Numéro
146
147
148
149
150
151
…
243
244
…
Périmé
Non
Oui
Oui
Oui
Oui
Non
…
Non
Non
…
Oui
Expansion du tableau
• Mémoriser la partie intéressante seulement• Stockage compressifs (matrice creuse)
Mémoire sécurisée
ProchainInutilisé
Plus vieilleversion
Rafraîchir certaines informations
• Surcoût en temps• Gain en volume mémoire sécurisé• Implique de conserver l’association
Version/Adresse (en mémoire non sûre)
Crypto / BD 14
Rejeu (adresses « secrète »)
• Stocker les numéro de version sur le disqueOn suppose le serveur non curieux
Information
…
sDf1gs
Sgj5sd
Ed5Hj
md6aS
4Qor6t
dp3pS9
…
Adresse
…
5322
5324
5325
5326
5327
5328
…
Mémoire non sûre
Numéro de version
75
25
-
14
78
-
91
57
…
Adresse
0001
0002
0003
0004
0005
0006
0007
0008
…
Écrire «EFGH» à l’adresse 5325
Décodage
«ABCD 91 | @0007» Version valide
Péremption de 91
Encodage«EFGH 29 | @0003»
Nouvelle version:29 à l’adresse @0003
gl4z8F
29
Crypto / BD 15
Caractéristiques
• Problèmes :– Ne résiste pas à une observation des accès mémoires
– Avec plusieurs images de la mémoire peu différentes:possibilité de retrouver les adresses des numéros de
version
– Possibilité de rejouer toute la base
• Avantages :– Pas de mémoire sécurisées
– Extension immédiate dans le cas de plusieurs utilisateurs
Crypto / BD 16
Versions et indexation
• Arbre d’indexation : b-Arbre– Chaque nœud certifie la fraîcheur de ses fils
[ @01;68 | K01 | @02;76 | K02 | @03;54 ] 28
[ @11;23 | K11 | @12;95 ] 68 [ @21;37 | K21 | @22;48 | K22 | @23;24
ABCD 23 QSDF 95
Version dela racine
Mémoire sécurisée
28
WXCV 37
Crypto / BD 17
Caractéristiques
• Coût de lecture logarithmique– Accès aux données uniquement par l’arbre
– Obligation de déchiffrer une grande quantité d’informationNœud en général assez gros
• Coût d’écriture logarithmique– A chaque écriture : Rafraîchissement d’une branche de TOUT les
arbres d’indexation
• Faible quantité d’information à sécuriser– Les versions des racines de chaque arbre d’indexation
Crypto / BD 18
Conclusion
• Plusieurs solutions– Des avantages
– Des inconvénients• Choix suivant les utilisations
• Optimisation– Sécurité en opposition avec performance
– Revoir algorithme de stockage, d’indexation, de chiffrement, …
Des questions ?