• Aucun résultat trouvé

Plateforme expérimentale

Chapitre 3 Architecture SWYSWYK

3.6 Validation de SWYSWYK

3.6.1 Plateforme expérimentale

La plateforme expérimentale utilisée pour valider notre proposition se fonde sur la combinaison du Cloud personnel Cozy, présenté dans la section 2.3.2, et de PlugDB43. PlugDB est une plateforme sécurisée matérielle et logicielle développée dans l‘équipe Petrus44 de l‘Inria Saclay. Elle combine les éléments suivants :

 Un Secure Element de type carte à puce, en charge des opérations cryptographiques et du stockage des secrets nécessaires.

 Un micro-contrôleur (MCU), qui exécute un moteur de base de données relationnelle requêtable en SQL et capable de gérer efficacement un grand volume de données [Anciaux 2007] avec une faible mémoire (quelques Ko).

 Une mémoire flash qui stocke la base de données chiffrée, pour se protéger des attaques actives et passives. Selon la déclinaison matérielle, cette mémoire peut être soit une puce soudée, soit une carte amovible de type microSD.

43

https://project.inria.fr/plugdb/en/

44

76 La combinaison de ces composants permet d‘obtenir un matériel conçu pour résister aux attaques physiques et capable de gérer une grande volumétrie de données malgré des ressources très limitées, avec typiquement une centaine de Ko de RAM. Cette limitation en ressources s‘explique à la fois pour des raisons financières – contrairement aux mémoires persistantes, la mémoire vive coûte cher – et pour des raisons de sécurité : plus la mémoire est grande et plus il est difficile de la protéger, or la mémoire vive est peu compacte.

PlugDB peut se décliner matériellement en diverses instances. Il est par exemple possible d‘avoir des interfaces de communication USB, Bluetooth ou même Wi-Fi. De même, l‘authentification peut se faire physiquement, par un code PIN ou un module d‘empreinte digitale. Nous utilisons ici une version qui dispose de deux interfaces de communication, une USB et une Wi-Fi.

La plateforme de Cloud personnel utilisée est Cozy qui utilise une base de données CouchDB, un moteur NoSQL qui représente les données en JSON et fournit un langage de requêtes et d‘indexation pour les manipuler. Nous utilisons un modèle de partage simple, implémenté dans la stack de Cozy, capable d‘exprimer des partages sur des sélections de documents avec des sélections de sujets. Par exemple : « Partager l‘album photo ‗Road-trip post-thèse‘ avec le groupe ‗Famille‘ ». Les règles de partage sont produites par des applications Cozy et évaluées par le Policy Translator.

La plateforme expérimentale, présentée en Figure 8, est une instance de l‘architecture de référence détaillée dans la section 3.5. Chaque environnement d‘exécution est distinct des autres, avec un matériel et du logiciel qui lui est propre :

1. L‘environnement de non-confiance (UE) est représenté par un ordinateur personnel relié à internet, sur lequel une instance Cozy s‘exécute. Le système d‘exploitation est Ubuntu45 16.04, une suite GNU/Linux populaire basée sur Debian46.

2. L‘environnement isolé (IE) est joué par un Raspberry Pi47, sur lequel tournent le

Policy translator, l’Administration GUI et le Viewer. Aucune connexion réseau n‘y est

45

https://ubuntu-fr.org/

46

77 disponible et la seule interface de communication possible est celle utilisée pour relier le SEE.

3. L‘environnement sécurisé (SEE) est représenté par PlugDB, dans lequel le moniteur de référenceet la console d‘administration sont exécutés. Les données sont stockées sur une carte flash microSD et chiffrées depuis une carte SIM de type BasicCard48. Afin de pouvoir requêter et manipuler les données stockées, PlugDB embarque un moteur relationnel, MiloDB [Anciaux 2014], spécialement conçu pour gérer efficacement de grands volumes de données avec les contraintes des mémoires flash dans des environnements avec peu de ressources. PlugDB est branché en USB High Speed 2.0) au Raspberry Pi et communique en Wi-Fi IEEE 802.11n avec l‘ordinateur personnel qui exécute le Cozy.

Figure 8. Plateforme expérimentale.

47 https://www.raspberrypi.org/ 48 http://basiccard.com/ Policy Translator Admin GUI Viewers Allowed Admin. console Advisor, Watchdog triggers Clés, Raspberry Pi PlugDB Ordinateur personnel CouchDB ACLs, S Is o la ted Env ir o nm ent Un trusted En v ir o nm ent Secur e Ex ec. Env ir o nm ent SD card (database) Wi-Fi Secure chip (secrets) MCU USB (MiloDB, SSF) Cozy

78 Pouvoir exécuter le moniteur de référence qui est le garant de l‘application du contrôle d‘accès, dans un environnement aussi contraint que celui de PlugDB est un gage de sa simplicité et de la possibilité de formellement prouver le code. Cela démontre également la

possibilité d‘embarquer un moteur SWYSWYK dans n‘importe quel type de SEE, y compris

provenant de l‘Internet des Objets, ou Internet of Things (IoT), qui sont généralement de faible puissance.

Dans l‘IE, la propriété d‘isolation est physiquement garantie par le Raspberry Pi, sur lequel les ports réseaux ont été rendus inutilisables. Aucune communication autre que celles passant par le SEE ne sont donc possibles. Ainsi, un code frauduleux n‘aurait que peu d‘impact dans cet environnement et pourrait au pire générer des permissions suspectes, ou rendre inutilisable l‘IE. Mais en aucun cas exposer des données personnelles du propriétaire. D‘autres instances d‘architectures peuvent être envisagées à terme, plus simples à mettre en œuvre et plus adaptées à des scénarios industriels. Par exemple, l’IE pourrait être implémentée par un hyperviseur certifié qui s‘exécuterait sur un processeur Intel SGX [Costan 2016], directement dans l‘ordinateur personnel (Figure 9, partie gauche). De même, des appareils équipés d‘une carte SIM, une mémoire flash et un processeur ARM Trustzone [Alves 2004] – comme la majorité des téléphones et tablettes aujourd‘hui – sont d‘autres options envisageables (Figure 9, milieu et partie droite). La différence majeure entre ces alternatives est dans la façon dont les environnements UE, IE et SEE communiquent. Dans l‘évaluation de performance que nous présentons dans la section suivante, nous mesurons et isolons le coût de communication afin de pouvoir en tirer des conclusions générales sur l‘architecture.

Dans nos expérimentations, l‘ordinateur personnel qui implémente l‘UE dispose d‘un processeur Intel Xeon E5-1660 CPU cadencé à 3.0 GHz, 8 Go de mémoire RAM et d‘un disque dur magnétique de 500 Go qui tourne à 10 000 rotations par minute. Le SEE incarné par PlugDB utilise un MCU de type STM32 F417GH6, qui embarque un micro-processeur

ARM Cortex M4 à 168 MHz, 192 Ko de RAM et 1 Mo de stockage NOR. Enfin, l‘IE est un

Raspberry Pi 3, qui comprend un processeur ARMv8 de 1,2 GHz et 1 Go de RAM. Une carte microSD externe de type UHS-I de 16 Go est utilisée à la fois pour le SEE et l‘IE.

79

Figure 9. Exemples d’autres instances d’architecture.