Getting to know your Card

Andriana Gkaniatsou, Fiona McNeill, Alan Bundy, Graham Steel, Riccardo Focardi, Claudio Bozzato
2015 Proceedings of the 31st Annual Computer Security Applications Conference on - ACSAC 2015  
Smart-cards are considered to be one of the most secure, tamperresistant, and trusted devices for implementing confidential operations, such as authentication, key management, encryption and decryption for financial, communication, security and data management purposes. The commonly used RSA PKCS#11 standard defines the Application Programming Interface for cryptographic devices such as smart-cards. Though there has been work on formally verifying the correctness of the implementation of
more » ... in the API level, little attention has been paid to the low-level cryptographic protocols that implement it. We present REPROVE, the first automated system that reverseengineers the low-level communication between a smart-card and a reader, deduces the card's functionality and translates PKCS#11 cryptographic functions into communication steps. REPROVE analyzes both standard-conforming and proprietary implementations, and does not require access to the card. To the best of our knowledge, REPROVE is the first system to address proprietary implementations and the only system that maps cryptographic functions to communication steps and on-card operations. We have evaluated REPROVE on five commercially available smart-cards and we show how essential functions to gain access to the card's private objects and perform cryptographic functions can be compromised through reverse-engineering traces of the low-level communication. Keywords Smart-card reverse-engineering, PKCS#11 low-level attacks, APDU formal modeling, APDU attacks. PKCS#11 API Function call low-level communication Smart-card APDU layer
doi:10.1145/2818000.2818020 dblp:conf/acsac/GkaniatsouMBSFB15 fatcat:s3ybzbtptndlreto3d5p5bda2e