De la sécurité des platesformes JavaCardTM face aux attaques matérielles
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...
Main Author: | |
---|---|
Other Authors: | |
Language: | en fr |
Published: |
2012
|
Subjects: | |
Online Access: | http://www.theses.fr/2012ENST0037/document |
Summary: | 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. === Smart cards play a key role in various applications we use on a daily basis: payment, mobile communication, public transports, etc. In this context, the Java Card technology has evolved since its introduction in the mid-nineties to become nowadays the world leading smart card platform. In the context of Java Card, researches on security have revealed that the possibility of loading malicious applications represents a real threat. In the meantime, the scientific community has also paid interest to the security of embedded cryptography, revealing that theoretically strong cryptosystems can be easily broken if their implementation does not take into account certain physical properties of the underlying hardware device. In particular, a part of the published attacks relies on the attacker’s capacity to physically perturb the component during a cryptographic operation. These latter fault attacks have been rarely considered in the literature in the Java Card context. In this thesis, we study and evaluate the security of Java Cards against the combination of fault and software attacks in order to enhance it. First, we present various attack paths involving both hardware and software attacks and expose how these attacks allow to break various security mechanisms of Java Cards. In particular, our security analysis proves that the type-safety property, the control-flow integrity and the application isolation can be tampered with by the combination of adequate fault injections and malicious applications. Then, with regards to the goal of this thesis and the results of our security analysis, we present different approaches allowing to improve the resistance of Java Cards and Java Card applications against combined attacks. Thus we define several countermeasures against the attack we exposed as well as against some of the state-of-the-art attacks, always bearing in mind the strong constraints relative to smart cards. |
---|