La technologie Java Card, inventée en 1996, a considérablement évolué au fil du temps, particulièrement en termes de sécurité. Initialement, les plateformes Java Card étaient vulnérables aux attaques logiques, mais au fur et à mesure que de nouvelles fonctionnalités ont été intégrées, des possibilités d’hébergement de plusieurs applications sur une même carte sont apparues, ce qui a ouvert de nouvelles perspectives, notamment avec le NFC et les Trusted Service Managers.
Dans ce contexte, il devient crucial pour les développeurs de plateformes Java Card, ainsi que pour les experts en sécurité, de maîtriser les techniques d’attaque et les meilleures pratiques de défense pour concevoir des solutions sécurisées. Cette formation en sécurité Java Card est dédiée à ceux qui souhaitent approfondir leur connaissance des mécanismes de sécurité de ces plateformes et des méthodes de protection contre les différentes attaques.
Objectifs de la formation Sécurité Java Card
Objectif opérationnel :
Maîtriser les techniques de sécurisation des plateformes Java Card et savoir répondre aux attaques logicielles et matérielles.
Objectifs pédagogiques :
À l’issue de cette formation, vous serez capable de :
- Comprendre le fonctionnement d’une machine virtuelle Java Card et les mécanismes de sécurité associés.
- Identifier les faiblesses de sécurité des plateformes Java Card et apprendre à y remédier.
- Développer des applets Java Card sécurisées et effectuer des attaques pour tester leur robustesse.
- Appliquer les bonnes pratiques en matière de programmation sécurisée sur les plateformes Java Card.
À qui s’adresse cette formation ?
Public :
Cette formation s’adresse principalement aux développeurs de plateformes Java Card, aux évaluateurs de sécurité de ces plateformes et aux développeurs d’applets Java Card. Elle est plus axée sur les aspects techniques liés à la sécurité des cartes à puce et des machines virtuelles Java Card.
Prérequis :
Une bonne maîtrise de la programmation Java Card et des notions de cryptographie sont nécessaires pour suivre cette formation.
Contenu du cours Sécurité Java Card
Jour 1 : Fonctionnement d’une machine virtuelle Java Card
- Rappel Java : La pile, le tas et les passages de paramètres.
- La VM Java Card : Introduction aux fichiers CAP (Converted Applet).
- Mécanismes de sécurité de Java Card : Analyse des faiblesses et des vulnérabilités de la plateforme.
- Usage des API de sécurité : Travaux pratiques de programmation pour renforcer la sécurité des applications Java Card.
Jour 2 : Sécurité et Attaques contre la VM et le RT
- Règles de programmation sécurisée : Apprendre à écrire des programmes Java Card résistants aux attaques.
- Rappels cryptographiques : Comprendre l’importance des protocoles cryptographiques et de la norme GlobalPlatform.
- Applets mal typées : Manipulation de fichiers CAP pour comprendre les risques de sécurité.
- Réalisation d’attaques cryptographiques : Mettre en pratique des attaques basées sur la cryptographie dans le cadre de travaux pratiques.
Jour 3 : Attaques logiques et attaques mixtes
- Rich shell code et code natif : Étudier l’exploitation des failles avec des techniques de shell et de code natif.
- Protection du linker embarqué : Apprendre à protéger les processus de linkage pour éviter les manipulations malveillantes.
- Attaques mixtes et mutants : Comprendre et contrer les attaques combinant plusieurs méthodes d’exploitation.
- Reverse engineering : Techniques de rétro-ingénierie pour analyser et exploiter des plateformes Java Card.
- Réalisation d’attaques : Mise en pratique des attaques en environnements contrôlés pour tester la sécurité des plateformes Java Card.
Travaux Pratiques
Chaque module théorique est suivi par des travaux pratiques utilisant de véritables lecteurs de cartes et cartes à puce, permettant ainsi aux participants de manipuler directement les technologies abordées.
Cette formation vous fournira les compétences nécessaires pour sécuriser les plateformes Java Card, répondre aux attaques courantes et développer des applications robustes et fiables. Vous bénéficierez d’une approche pratique grâce à des travaux sur de réelles cartes à puce et machines virtuelles Java Card.