AVIS DE SOUTENANCE de Madame Subashiny TANIGASSALAME

L’Ecole doctorale : Ecole Doctorale de l’Institut Polytechnique de Paris

et le Laboratoire de recherche SAMOVAR – Services rĂ©partis, Architectures, ModĂ©lisation, Validation, Administration des RĂ©seaux

présentent

l’AVIS DE SOUTENANCE de Madame Subashiny TANIGASSALAME

AutorisĂ©e Ă  prĂ©senter ses travaux en vue de l’obtention du Doctorat de l’Institut Polytechnique de Paris, prĂ©parĂ© Ă  TĂ©lĂ©com SudParis en :

Informatique

« Privagic: Utilisation d’environnement d’exĂ©cution sĂ©curisĂ© rendu pratique avec typage »

le VENDREDI 5 AVRIL 2024 à 10h30 à

Amphi 2, 19 Pl. Marguerite Perey, 91120 Palaiseau

Membres du jury :

M. Marc SHAPIRO, Directeur de recherche Ă©mĂ©rite, Sorbonne UniversitĂ© LIP6, FRANCE – Rapporteur
M. Laurent RÉVEILLÈRE, Professeur, UniversitĂ© de Bordeaux, FRANCE – Rapporteur
Mme Sonia BEN MOKHTAR, Directrice de recherche, LIRIS CNRS, FRANCE – Examinateur
M. StĂ©phane DUCASSE, Directeur de recherche, Inria, FRANCE – Examinateur
M. GaĂ«l THOMAS, Directeur de recherche, Inria Saclay, FRANCE – Directeur de these

« Privagic: Utilisation d’environnement d’exĂ©cution sĂ©curisĂ© rendu pratique avec typage »

présenté par Madame Subashiny TANIGASSALAME

Résumé :

Pendant plus de vingt ans, plusieurs outils ont Ă©tĂ© proposĂ©s pour partitionner automatiquement une application entre une zone de mĂ©moire sĂ©curisĂ©e et une zone de mĂ©moire non sĂ©curisĂ©e. Ces outils analysent le flux de donnĂ©es de l’application afin d’identifier les emplacements mĂ©moire susceptibles de contenir des valeurs sensibles. La plupart de ces outils se comportent de maniĂšre incorrecte en prĂ©sence de pointeurs. Lorsqu’ils sont corrects, ils sont incapables de gĂ©rer les threads en raison de la difficultĂ© Ă  suivre les pointeurs dans une application multi-thread. Les outils actuels sont Ă©galement incapables de diviser une application en plus de deux partitions, en raison de la sur-approximation, qui entraĂźne le partage erronĂ© d’emplacements mĂ©moire entre les deux partitions. Dans cette thĂšse, au lieu de partir de l’analyse du flux de donnĂ©es, nous proposons de partir d’une technique plus prĂ©cise : le typage de langage. Nous introduisons le typage sĂ©curisĂ©, qui consiste Ă  incorporer un identifiant de partition dans le systĂšme de types d’un langage. Sur la base du typage sĂ©curisĂ©, nous avons conçu un compilateur indĂ©pendant du langage basĂ© sur LLVM. Le compilateur prend en entrĂ©e une application enrichie de types sĂ©curisĂ©s et gĂ©nĂšre plusieurs partitions pour Intel SGX. Notre Ă©valuation avec des micro- et macro-applications montre que (i) le typage sĂ©curisĂ© peut gĂ©rer les pointeurs, les threads multiples et plus de deux partitions, (ii) l’ajout de types sĂ©curisĂ©s dans une application hĂ©ritĂ©e est simple, (iii) le typage sĂ©curisĂ© rĂ©duit la base de confiance en informatique et est plus efficace que l’incorporation d’une application complĂšte dans une enclave.

Abstract :

For more than twenty years, several tools have been proposed to automatically partition an application between a secure memory zone and a non-secure memory zone. These tools analyze the data flow of the application in order to identify the memory locations that may contain sensitive values. Most of these tools behave incorrectly in the presence of pointers. When they are correct, they are unable to handle threads because of the difficulty to track pointers in a multi-threaded application. The current tools are also unable to split an application in more than two partitions. This is caused by over-approximation, which leads to memory locations falsely shared between the two partitions. In the thesis, instead of starting from data flow analysis, we propose to start from a more accurate technique: language typing. We introduce secure typing, which consists in embedding a partition identifier in the type system of a language. Based on secure typing, we designed a language-agnostic compiler based on LLVM. The compiler takes a legacy application enriched with secure types as input, and generates multiple partitions for Intel SGX. Our evaluation with micro- and macro-applications show that (i) secure typing can handle pointers, multiple threads and more than two partitions, (ii) adding secure types in a legacy application is easy, (iii) secure typing reduces the trusted computing base, and is more efficient than embedding a full application inside an enclave.