180 likes | 322 Views
Stockage d’information sur un périphérique non sécurisé. Soutenance de Vincent JANTET. Stage INRIA - Projet SMIS Cryptographie et Bases de données Septembre 2006. Plan de la présentation. Le projet SMIS (et la crypto) Quelques propositions contre le rejeu. Le projet SMIS (et la crypto).
E N D
Stockage d’information sur un périphérique non sécurisé Soutenance de Vincent JANTET Stage INRIA - Projet SMIS Cryptographie et Bases de données Septembre 2006
Plan de la présentation • Le projet SMIS (et la crypto) • Quelques propositions contre le rejeu
Cadre des bases de données BD • Stocker de l’information … • Utilisation d’un serveur • … de façon confidentielle • Protection logicielle • Protection matérielle utilisateur Attaque de l’empreinte disque Contournement des droits administrateur Attaque système Pirate Attaque de l’empreinte disque Serveur BD
Le modèle étroitement-connecté UOE, RT SOE 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) Program Program SOE Program Stockage extérieur Programme Accès aux données Requête Environnement sécurisé Transfert de données Résultat Program Program Program Utilisateur RT UOE client-serveur tout-embarqué UOE FLASH SOE RT RT SOE UOE
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.
Examen Chiffrement opaque(ex: CBC-AES) Protection cryptographique Quatre attaques Data ?#wEr4 • Corruption • Ajouter un Hash(digest, HMAC) ?#wEr4 ?#wEr4 Digest Ident • Substitution • Ajouter un identifiant (ex: l’adresse) ?#wEr4 ?#wEr4 Digest ID / V° • Rejeu • Indicateur de fraîcheur (ex: numéro de version) ?#wEr4 ?#wEr4 Digest
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
Ordonnancement Ecrire «EFGH» à l’adresse [3] Mémoire non sûre Mémoire sécurisée Plus vieille version ie2S7 128 028 31 30 29 129 pt4iZ 130 U8Zgt À l’adresse @01 @04 @02 @03
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
Rejeu (bitmaps) • Base « checking the correctness… » Écrire «EFGH» à l’adresse [325] Déchiffrage Mémoire sécurisée Mémoire non sûre Plus vieille version «ABCD | 149» Version 149 valide Péremption de 149 Oui Nouvelle version 243 Chiffrage «EFGH | 243» Prochain Inutilisé gl4z8F
Caractéristiques • Garbage collector • Expansion du tableau • Mémoriser la partie intéressante seulement • Stockage compressifs (matrice creuse) Mémoire sécurisée Plus vieille version Oui • 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) Prochain Inutilisé
Rejeu (adresses « secrète ») • Stocker les numéro de version sur le disqueOn suppose le serveur non curieux Écrire «EFGH» à l’adresse 5325 Décodage Mémoire non sûre «ABCD 91 | @0007» Version valide Péremption de 91 29 Nouvelle version: 29 à l’adresse @0003 Encodage «EFGH 29 | @0003» gl4z8F
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
Versions et indexation • Arbre d’indexation : b-Arbre • Chaque nœud certifie la fraîcheur de ses fils Mémoire sécurisée [ @01;68 | K01 | @02;76 | K02 | @03;54 ] 28 Version dela racine 28 [ @21;37 | K21 | @22;48 | K22 | @23;24 [ @11;23 | K11 | @12;95 ] 68 QSDF 95 WXCV 37 ABCD 23
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
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 ?