Compromission de carte à puce via la couche protocolaire ISO 7816-3Guillaume Vinet

L'utilisation des cartes à puce pour embarquer des applications de porte-monnaie ou de passeport électroniques démontrent qu'elles sont reconnues comme un excellent coffre-fort numérique. Cette réputation s'appuie sur de nombreux schémas de certifications attestant de leur sécurité comme les Critères Communs, le programme Compliance Assessment and Security Testing (CAST) de MasterCard ou bien le VISA Chip Security Program (VCSP).


La sécurité des cartes à puce est sans cesse remise en question dans de nombreuses publications qui se placent tant du point de vue d'un attaquant que d'un défenseur, ou bien qui ciblent tant les couches physiques que celles logicielles. A travers les ans, de nouveaux types d'attaques sont apparues : les attaques cryptographiques par canaux cachées, les attaques semi-invasives avec les attaques par faute (avec un laser par exemple), ou bien les attaques logicielles avec des applications Java Cards malveillantes.


De nos jours, bien qu'une large palette d'attaque soit couverte, il n'y a quasiment aucun article discutant d'attaques logicielles ciblant la couche de communication des cartes à puce à contact : l'ISO 7816-3. Cette observation est étrange puisque la couche de communication bas niveau est souvent un chemin d'attaque apprécié, par exemple avec la couche TCP/IP ou USB.


Dans cette présentation courte, nous expliquerons l'intérêt de cibler la pile ISO 7816-3. Puis, nous analyserons les vulnérabilité de ce protocole, plus en mode T=1. Ensuite, nous exposerons l'ensemble des outils matériels et logiciels que nous avons mis en place pour tester des cartes. Finalement, nous présenterons nos résultats.