Confidentiality and Tamper-‐Resistance of Embedded Databases ; Confidentialité et Intégrité de Bases de Données embarquées
As the amount of personal data collected by governments, institutions and companies increase, centralized data suffer from privacy violations arising from negligence, abusive use, internal and external attacks. Therefore, we envision a radically different, fully decentralized vision of personal data managed within a Personal Data Server (PDS) where the data is let under the control of its owner. The PDS approach resorts to Secure Portable Token (SPT), a new device which combines the tamper resistance of a smart card microcontroller with the mass storage capacity of NAND Flash. The data will be stored, accessed and its access rights controlled using such devices. To support powerful PDS application requirements, a full-fledged DBMS engine is embedded in the device. In order to cope with the SPT's hardware constraints, new database techniques have been introduced, based on pure sequential data structures to store the raw data, and also indexes, buffers, transaction logs, etc. To reach high scalability limits, the data structures must timely be stratified, i.e., reorganized into more efficient (but still sequential) data structures. In this novel context, the current thesis addresses the security techniques required to take full benefits of such a decentralized vision. Indeed, only the microcontroller of the SPT is secured. The database stored on the NAND Flash linked to the controller by a bus, remains outside the security perimeter of the microcontroller. As such, it may still suffer from confidentiality and integrity attacks. Moreover, PDS also relies on external supporting servers to provide data durability, availability, or other global processing functionalities. In the study, we consider the supporting servers as Honest-but-Curious, i.e., they correctly provide the services that are expected from them (typically serve store, retrieve, and delete data requests), but they may try to breach the confidentiality of any data that is stored locally. Therefore, appropriate secure protocols must be devised to achieve the services delegated to the supporting servers without breach. This thesis aims at providing security solutions to ensure the security of personal data by relying on cryptography techniques, without incurring large overhead to the existing system. More precisely, (i) we propose a set of light-weight, secure crypto-protection building blocks by considering hardware constraints and PDS engine's features, to fight against confidentiality and integrity attacks on Flash. (ii) We propose a preliminary design for the communication protocols between PDSs and supporting servers, such that the latter can serve requests correctly and securely (store, retrieve or delete data). (iii) Finally, we do a set of experiments with synthetic data and SPT simulator to evaluate the impact of the designed building blocks on the performance of PDS engine. The results show the effectiveness of our proposals. The proposed solutions can be reusable in other (more general) context or provide more opportunities for the coming works combining database security and cryptography. For example, smart selection enable selections on encrypted data by using traditional encryption algorithms in a novel way, thus it opens a different direction for executing queries on encrypted database (e.g., traditional centralized DBMS). ; La quantité de données personnelles collectées par les gouvernements, les institutions et les entreprises augmente considérablement. Ces données sont stockées sur des serveurs et sont la cible de violations de confidentialité provenant de négligence, utilisation abusive, d'attaques internes ou externes. Nous envisageons une approche radicalement différente, une vision totalement décentralisée dans laquelle les données personnelles sont gérées au sein de serveurs personnel de données (PDS) et laissées sous le contrôle de son propriétaire. L'approche PDS s'appuie sur un nouveau composant matériel, le Secure Portable Token (SPT), qui combine un microcontrôleur de carte à puce protégé matériellement contre toute attaque avec une mémoire de masse de type flash NAND. Les données personnelles sont stockées, rendues disponibles et les droits d'accès sont contrôlés à l'aide de tels dispositifs. Un moteur de base de données est intégré dans ce dispositif afin de permettre le développement d'applications manipulant ces données personnelles. Afin de faire face aux contraintes matérielles du SPT, de nouvelles techniques de stockage, d'indexation et d'exécution de requêtes basées uniquement sur des structures de données séquentielles ont été proposées. Ces structures doivent être régulièrement stratifiées, i.e., réorganisées en structures plus efficaces, toujours séquentielles, afin de passer à l'échelle. Dans ce nouveau contexte, cette thèse étudie les techniques de protection nécessaires pour sécuriser cette vision décentralisée. En effet, seul le microcontrôleur du SPT est matériellement sécurisé. La base de données, stockées sur la Flash NAND, liée au contrôleur par un bus, est donc en dehors du périmètre de sécurité et peut être la cible d'attaques sur la confidentialité ou l'intégrité des données. Par ailleurs, le PDS s'appuie également sur des serveurs externes de support pour offrir la durabilité et la disponibilité des données, ou d'autres traitements globaux. Dans cette étude, nous considérons les serveurs de support comme honnêtes-mais-curieux, c'est à dire qu'ils fournissent correctement les services attendus (stocker, retrouver ou supprimer des données ou des messages), mais qu'ils peuvent tenter d'attaquer les données stockées localement. Par conséquent, des protocoles sûrs doivent être conçus.Cette thèse vise donc à fournir des solutions pour assurer la sécurité des données personnelles en s'appuyant sur des techniques cryptographiques et en limitant les surcoûts générés. Plus précisément, (i) nous proposons un ensemble de briques de bases prenant en compte les contraintes matérielles et les fonctionnalités du moteur PDS, pour assurer efficacement la confidentialité et l'intégrité des données stockées en mémoire Flash. (ii) Nous proposons des protocoles de communication entre les PDS et les serveurs de support permettant d'assurer leurs fonctions en toute sécurité ; (iii) Enfin, nous validons les techniques proposées par des évaluations avec des données synthétiques et un simulateur de SPT. L'objectif est ici d'évaluer l'impact des techniques de protection proposées sur la performance du moteur de PDS. Les résultats montrent l'efficacité de nos propositions.Les solutions proposées peuvent, sans doute, être réutilisées dans d'autres contextes plus généraux ou inspirer de nouvelles études combinant sécurité des bases de données et cryptographie. Par exemple, l'algorithme « smart sélection » permet de réaliser des sélections directement sur les données chiffrées à l'aide d'algorithmes de chiffrement traditionnels. Il ouvre donc une autre direction pour exécuter des requêtes directement sur les données cryptées (dans le contexte plus traditionnel d'un SGBD centralisé).