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 administrateur Attaque système Serveur BD utilisateur Attaque de l’empreinte disque Contournement des droits BD Pirate Attaque 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èletout-embarqué client-serveur Program Programme Program Utilisateur Stockage extérieur Environnement sécurisé Accès aux données Transfert de données Requête Résultat Terminal de retourEnvironnement 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é SOE UOE, RT SOE RT UOE SOE UOE RT
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 Protection cryptographique –Examen Chiffrement opaque (ex: CBC-AES) Data ?#wEr4 Ident ?#wEr4 ID / V° –Corruption Ajouter un Hash (digest, HMAC) –Substitution Ajouter un identifiant (ex: l’adresse) –Rejeu Indicateur 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 … Plus vieille version Mémoire sécurisée Mémoire non sûre Version … Ecrire «EFGH» à l’adresse [3] 29 ie2S
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 … … Périmé Non Oui Non Oui Non … … Prochain Inutilisé Adresse … … Plus vieille version Écrire «EFGH» à l’adresse [325] Déchiffrage Oui «ABCD | 149» Version 149 valide Pé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 … … Périmé Non Oui Non … … Oui Expansion du tableau Mémoriser la partie intéressante seulement Stockage compressifs (matrice creuse) Mémoire sécurisée Prochain Inutilisé Plus vieille version 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 disque On suppose le serveur non curieux Information … sDf1gs Sgj5sd Ed5Hj md6aS 4Qor6t dp3pS9 … Adresse … … Mémoire non sûre Numéro de version … Adresse … Écrire «EFGH» à l’adresse 5325 Décodage «ABCD 91 Version valide Péremption de 91 Encodage «EFGH 29 Nouvelle version: 29 à 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 | K01 | K02 ] 28 | K11 ] 68 | K21 | K22 ABCD 23 QSDF 95 Version de la 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’information Nœ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 ?