Attacking and Fixing PKCS#11 Security Tokens with TookanGraham Steel

Nous montrons comment extraire des clés cryptographiques sensibles à partir d'appareils de sécurité cryptographique variés en exploitant des vulnérabilités dans leurs API (conformes à la norme RSA PKCS #11). Les attaques sont effectuées par Tookan, un logiciel que nous avons développé, qui opère une ingénierie inverse sur l'appareil de test pour en déduire ses fonctionnalités, construit un modèle de son API pour un model-checker, et enfin exécute les attaques trouvées par le model-checker directement sur l'appareil pour confirmer l'existence de failles. Nous décrivons le fonctionnement de Tookan et les résultats de nos tests sur 18 appareils disponibles dans le commerce : 10 ont été vulnérables aux attaques, tandis que les 8 autres n'offraient que des fonctionnalités fortement restreintes. Une des attaques trouvées par le model-checker n'avait jamais été publiée. Nous montrons comment Tookan peut être utilisé pour vérifier des configurations sûres, et nous proposons une configuration sécurisée que nous avons mise en œuvre dans une rustine pour un simulateur logiciel d'un appareil. Il s'agit de la première configuration publiée qui n'exige pas l'ajout de nouveaux mécanismes au standard PKCS #11. Nous commentons sur les leçons pour l'avenir des API de gestion des clés.