13.07.2015 Views

[Slides]Attestation-distante-dintegrite-sous-Android

[Slides]Attestation-distante-dintegrite-sous-Android

[Slides]Attestation-distante-dintegrite-sous-Android

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Attestation</strong> <strong>distante</strong>d’intégrité <strong>sous</strong> <strong>Android</strong>Dimitri Kirchner – @TibapbedoumAMOSSYS


Ingénieur sécurité à AMOSSYS<strong>Android</strong>Informatique de confiance<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>2


Source :http://favim.com/image/49365/<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 4


Un ordinateur avec un TPM…Un téléphone…<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>5


Hypothèse :Le téléphone est de confiance<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 6


• Étape 1 : L’utilisateur connecte son smartphone• Étape 2 : Le poste utilisateur prouve son intégrité ausmartphone• Étape 3 : L’utilisateur prend une décision<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>7


• Étape 1 : L’utilisateur connecte son smartphone• Étape 2 : Le poste utilisateur prouve son intégrité ausmartphone• Étape 3 : L’utilisateur prend une décision<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>8


Quelques rappels sur l’informatique de confiance• Attester de l’intégrité d’un logiciel• Trusted Computing Group• Trusted Platform Module<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 9


Registres PCR• Platform Configuration Registers• Mémoires internes au TPM• Contiennent les mesures agrégées<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>12


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 14


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 15


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 16


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>17


Trust me if you can• Comment avoir confiance dans le fil d’exécution ?• Nécessité d’une racine de confiance• Nécessité d’une chaine de confianceo Chaque élément exécuté doit avoir été préalablement mesuré<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>18


Exemple d’une chaine de confiance au démarrage


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 20


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 21


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 22


‣ Utilisation des fonctionnalités de signature du TPM‣ Signature des PCR extraits<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 23


Cinématique d’une attestation <strong>distante</strong><strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 24


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 25


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 26


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 27


Théorie<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>28


• Quelles implémentations existantes ?• « Open<strong>Attestation</strong> » : Intel• « OpenPTS » : universitaires japonais<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 29


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 30


Open<strong>Attestation</strong> – By IntelSource :Open<strong>Attestation</strong> SDK Overviewhttps://github.com/Open<strong>Attestation</strong>/Open<strong>Attestation</strong>/blob/master/docs/Overview.pdf<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>31


Open<strong>Attestation</strong> – By IntelSource :Open<strong>Attestation</strong> SDK Overviewhttps://github.com/Open<strong>Attestation</strong>/Open<strong>Attestation</strong>/blob/master/docs/Overview.pdfApache + PHP + MySQL...<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>33


Open<strong>Attestation</strong> – By Intel• Utilisation d’une PKI pour vérifier l’identité des TPM• Embarquer une PKI sur un smartphone…<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>34


OpenPTS• (Open) Platform Trust Services• 2 binaires : un Collecteur, un Vérifieur• Implémentation de référence du TCG<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>35


SSHSource :Open Platform Trust Services (OpenPTS) User Guidehttp://sourceforge.jp/projects/openpts/wiki/!pdf/FrontPage.pdf<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>36


OpenPTS• Version du Vérifieur disponible en Java• Nécessité d’une connexion SSH<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>37


<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 38


USB tethering• Permet de partager la connexion réseau du téléphone• Initialisation d’une interface réseau dédiée<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>39


Introducing <strong>Android</strong>-attest• DVM == JVM• SSH over USB<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>40


Introducing <strong>Android</strong>-attest<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>41


Cas d’utilisation• Pendant un déplacement avec des femmes de ménage unpeu louches• Pour des admins souhaitant vérifier l’intégrité d’un serveur<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>42


Conclusion• Attester de l’intégrité d’un poste autonome, en basant saconfiance sur son téléphone• Plug ‘n play !• Preuve de concept disponible (bientôt) <strong>sous</strong> la forme d’undépôt GitHub<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>43


• Développé dans le cadre du projet de rechercheOpenDTeXoooSubventionné par la DGA <strong>sous</strong> la forme d’un projet RAPIDRenforcer la sécurité des postes de travailImplémentant des concepts d’informatique de confiance (boot sécurisé,DRTM, …)<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong> 44


• Questions• Discussions<strong>Attestation</strong> <strong>distante</strong> d’intégrité <strong>sous</strong> <strong>Android</strong>45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!