Compromission d'une application bancaire JavaCard par attaque logicielleJulien Lancia

Les plateformes Java Card permettent de garantir la sécurité des applications embarquées sur cartes à puces au moyen de mécanismes de sécurité factorisés au niveau de la machine virtuelle. Cependant, le caractère optionnel du mécanisme de vérification de bytecode jusqu'à la version 2.2.2 de Java Card permet de charger des applications malicieuses et de réaliser des attaques logiques sur ces plateformes. Cet article présente une attaque logique sur une plateforme Java Card intégrant de nombreux mécanismes de sécurité allant au delà des recommandations sécuritaires imposées par les spécifications Java Card. Malgré ces protections, nous montrons qu'une vulnérabilité d'apparence anodine permet de compromettre intégralement l'application bancaire embarquée sur la plateforme Java Card. Nous détaillons également deux contre-mesures permettant de se prémunir contre cette attaque.