De la sécurité des platesformes JavaCardTM face aux attaques matérielles
Auteur / Autrice : | Guillaume Barbu |
Direction : | Philippe Hoogvorst, Vincent Guérin |
Type : | Thèse de doctorat |
Discipline(s) : | Electronique et Communications |
Date : | Soutenance le 03/09/2012 |
Etablissement(s) : | Paris, ENST |
Ecole(s) doctorale(s) : | École doctorale Informatique, télécommunications et électronique de Paris (1992-...) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire Traitement et Communication de l'Information (Paris) / LTCI |
Jury : | Président / Présidente : Viktor Fischer |
Examinateurs / Examinatrices : Renaud Pacalet, Pascal Urien | |
Rapporteurs / Rapporteuses : Jean-Louis Lanet, Assia Tria |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Les cartes à puce jouent un rôle crucial dans de nombreuses applications que nous utilisons quotidiennement : paiement par carte bancaire, téléphonie mobile, titres de transport électroniques, etc. C'est dans ce contexte que la technologie Java Card s'est imposée depuis son introduction en 1996, réduisant les coûts de développement et de déploiement d'applications pour cartes à puce et permettant la cohabitation de plusieurs applications au sein d'une même carte. La communauté scientifique a rapidement démontré que la possibilité donnée à un attaquant d'installer des applications sur les cartes représente une menace. Mais dans le même temps, la sécurité des systèmes embarqués a également été un sujet d'étude très productif, révélant que des algorithmes cryptographiques considérés comme sûrs pouvaient être facilement cassés si leurs implémentations ne prenaient pas en compte certaines propriétés physiques des composants électroniques qui les accueillent. En particulier, une partie des attaques publiées repose sur la capacité de l'attaquant à perturber physiquement le composant pendant qu'un calcul est exécuté. Ces attaques par injections de fautes n'ont que très peu été étudiées dans le contexte de la technologie Java Card. Cette thèse étudie et analyse la sécurité des Java Cards contre des attaques combinant injections de fautes et installations d'applications malicieuses. Tout d'abord, nous présentons différents chemins d'attaques combinées et exposons dans quelle mesure ces attaques permettent de casser différents mécanismes sécuritaires de la plateforme. En particulier, notre analyse sécuritaire permet de démontrer que la propriété de sûreté du typage, l'intégrité du flot de contrôle, ainsi que le mécanisme d'isolation des applications peuvent être contournés et exploités par des combinaisons adéquates. Puis, nous présentons différentes approches permettant d'améliorer la résistance de la plateforme Java Card ainsi que des applications qu'elle accueille contre des attaques combinées. Ainsi, nous définissons plusieurs contremesures rendant les attaques exposées ainsi que certaines attaques de l'état de l'art inopérantes, et ce en gardant à l'esprit les fortes contraintes inhérentes au monde des cartes à puce.