Distributed systems and trusted execution environments : trade-offs and challenges (2019)

Les problèmes de sécurité et de confidentialité des systèmes informatiques ont pris de l’importance avec l’omniprésence des périphériques connectés. En outre, l’informatique en nuage accroît cette détresse, car les données privées sont stockées et traitées par des fournisseurs d’infrastructure hébergeant de multiples locataires. Ces dernières années, les environnements d’exécution de confiance, ou TEE (« trusted execution environments ») ont attiré l’attention des communautés scientifiques et industrielles, car ils sont devenus largement disponibles sur des machines de type utilisateur et serveur.<br> Les TEE fournissent des garanties de sécurité basées sur des constructions cryptographiques intégrées au matériel. Les puces de silicium étant difficiles à sonder ou étudier par ingénierie inverse, elles offrent une protection renforcée contre les attaques distantes, voire physiques, par rapport à leurs homologues logicielles. En particulier, les extensions de protection logicielle Intel SGX (« software guard extensions ») implémentent de puissants mécanismes qui peuvent protéger les données sensibles même contre les utilisateurs privilégiés disposant du contrôle total du logiciel de système.<br> La conception de systèmes repartis sécurisés est une tâche particulièrement ardue, car ils impliquent de nombreux processus coordonnés exécutés dans des noeuds géographiquement distants, ce qui entraîne de nombreux points d’attaque. Dans ce travail, nous explorons essentiellement certains de ces défis en utilisant Intel SGX comme pierre angulaire. Nous le faisons en concevant et en évaluant de manière expérimentale plusieurs systèmes élémentaires allant du logiciel médiateur de communication et de traitement à une solution de protection de la confidentialité pair-à-pair.<br> Nous commençons par des systèmes de support qui s’adaptent naturellement aux scénarios de déploiement dans le cloud, à savoir : des infrastructures de routage en fonction du contenu, de traitement par lots et de traitement de flux. Notre logiciel médiateur de communication protège la phase de mise en correspondance d’abonnements avec des publications, qui est la plus critique, en l’effectuant à l’intérieur d’enclaves sécurisées. Il permet des gains substantiels en performance par rapport aux équivalents traditionnels basés sur des logiciels. Les plates-formes de traitement reçoivent à leur tour des données chiffrées et du code à exécuter dans l’environnement sécurisé. Nos prototypes sont ensuite utilisés pour analyser les problèmes d’utilisation de mémoire qui sont inhérents à SGX.<br> Nous visons ensuite à protéger des données très sensibles : les clés cryptographiques. En utilisant les TEE, nous concevons des protocoles pour le partage de données de groupe présentant une complexité de calcul inférieure à celle des méthodes traditionnelles. De plus, nos propositions permettent d’importantes économies quant au volume de méta-données produites et au temps de traitement des opérations cryptographiques, le tout avec des garanties de sécurité équivalentes.<br> Enfin, nous concentrons notre attention sur les systèmes préservant la confidentialité. Après tout, les utilisateurs ne peuvent pas modifier certains systèmes existants, tels que les moteurs de recherche Web. Les fournisseurs de ces services peuvent conserver des profils individuels contenant des informations confidentielles les concernant. Nous visons à obtenir des propriétés d’indiscernabilité et indissociabilité en utilisant des techniques telles que l’analyse de sensibilité, l’obscurcissement de requêtes et l’utilisation de noeuds relais. Notre évaluation montre que nous proposons le système le plus robuste par rapport aux solutions existantes en ce qui concerne les taux de ré-identification des utilisateurs et la précision des résultats de manière évolutive.<br> Dans sa globalité, cette thèse propose de nouveaux mécanismes tirant parti des TEE pour les architectures de systèmes repartis. Nous montrons par approche empirique au-dessus de Intel SGX quels sont les compromis entre plusieurs modèles de conception distincts appliqués à la communication et au traitement répartis, aux protocoles cryptographiques et à la recherche privée sur le Web., Security and privacy concerns in computer systems have grown in importance with the ubiquity of connected devices. Additionally, cloud computing boosts such distress as private data is stored and processed in multi-tenant infrastructure providers. In recent years, trusted execution environments (TEEs) have caught the attention of scientific and industry communities as they became largely available in user- and server-class machines.<br> TEEs provide security guarantees based on cryptographic constructs built in hardware. Since silicon chips are difficult to probe or reverse engineer, they can offer stronger protection against remote or even physical attacks when compared to their software counterparts. Intel software guard extensions (SGX), in particular, implements powerful mechanisms that can shield sensitive data even from privileged users with full control of system software.<br> Designing secure distributed systems is a notably daunting task, since they involve many coordinated processes running in geographically-distant nodes, therefore having numerous points of attack. In this work, we essentially explore some of these challenges by using Intel SGX as a crucial tool. We do so by designing and experimentally evaluating several elementary systems ranging from communication and processing middleware to a peer-to-peer privacy-preserving solution.<br> We start with support systems that naturally fit cloud deployment scenarios, namely content-based routing, batching and stream processing frameworks. Our communication middleware protects the most critical stage of matching subscriptions against publications inside secure enclaves and achieves substantial performance gains in comparison to traditional software-based equivalents. The processing platforms, in turn, receive encrypted data and code to be executed within the trusted environment. Our prototypes are then used to analyse the manifested memory usage issues intrinsic to SGX.<br> Next, we aim at protecting very sensitive data: cryptographic keys. By leveraging TEEs, we design protocols for group data sharing that have lower computational complexity than legacy methods. As a bonus, our proposals allow large savings on metadata volume and processing time of cryptographic operations, all with equivalent security guarantees.<br> Finally, we focus our attention on privacy-preserving systems. After all, users cannot modify some existing systems like web-search engines, and the providers of these services may keep individual profiles containing sensitive private information about them. We aim at achieving indistinguishability and unlinkability properties by employing techniques like sensitivity analysis, query obfuscation and leveraging relay nodes. Our evaluation shows that we propose the most robust system in comparison to existing solutions with regard to user re-identification rates and results’ accuracy in a scalable way.<br> All in all, this thesis proposes new mechanisms that take advantage of TEEs for distributed system architectures. We show through an empirical approach on top of Intel SGX what are the trade-offs of distinct designs applied to distributed communication and processing, cryptographic protocols and private web search.