Buy it, use it, break it... fix it : Caml Crush, un proxy PKCS#11 filtrant

Publié le 23 Juin 2014 Mis à jour le 23 Juin 2014

Par Ryad Benadjila, Thomas Calderon et Marion Daubignard, article du sujet présenté à Rennes dans le cadre de la conférence SSTIC 2014.

Les cartes à puce et les ressources cryptographiques dédiées sont des outils précieux pour renforcer la sécurité des systèmes d’information.
Ces périphériques peuvent être vus comme un cœur de confiance dans lequel des opérations cryptographiques vont être réalisées.
L’interface de programmation PKCS#11 est le standard de l’industrie pour dialoguer avec de telles ressources. Cependant, des publications récentes ont mis en évidence plusieurs attaques logiques et cryptographiques exploitant des faiblesses des interfaces PKCS#11 pour porter atteinte à la confidentialité ou à l’intégrité des clés cryptographiques stockées dans les ressources concernées.
L’ANSSI a développé un outil de filtrage des requêtes PKCS#11, Caml Crush, basé sur une architecture client/serveur et un moteur de filtrage configurable et extensible. La mise en œuvre d’un tel outil pour analyser des commandes PKCS#11 avant de les transmettre à une ressource cryptographique permet de réduire l’exposition de cette ressource à des attaques exploitant des faiblesses de son implémentation de PKCS#11.
Cet outil est mis à disposition sous forme de logiciel libre, sans engagement de l’ANSSI à assurer une quelconque prestation d’assistance technique ou de maintenance du logiciel. Les propositions de contributions techniques au projet et les retours d’expérience sont les bienvenus, et pourront éventuellement être intégrés dans de futures évolutions de l’outil.

L’article a été présenté à Rennes dans le cadre de la conférence SSTIC 2014, et le projet est accessible en ligne à l’adresse https://github.com/ANSSI-FR/caml-crush