Aller au contenu

Module cryptographique matériel et PKCS#11

Un module cryptographique matériel fait une chose et la fait bien : il refuse de laisser sortir une clé. Il signe, déchiffre, emballe d’autres clés, mais la clé elle-même reste dans le boîtier. Ce qui se vend nettement moins bien sur une slide que « sécuriser le cloud », et résiste nettement mieux à un dump mémoire. Le reste, c’est-à-dire qui a le droit de demander une signature, ce qui se passe quand le boîtier tombe en panne et comment on sauvegarde ce qui ne doit jamais sortir, relève de l’architecture et de l’exploitation, et c’est là que ce dossier passe l’essentiel de son temps.

→ Lire l’explication complète de la marmotte

L’ordre de lecture proposé commence par le module et son interface, continue par l’organisation des clés en couches (clés de données, clés de protection, emballage), puis par le renouvellement des clés et la haute disponibilité. La seconde partie traite l’exploitation : preuves, journaux, certifications, sauvegarde, dimensionnement, migration. Elle se lit à la carte, selon le problème du moment. Pour manipuler tout cela sans acheter de boîtier, un laboratoire SoftHSM imite fidèlement l’interface PKCS#11, et tout aussi fidèlement l’absence de frontière matérielle.

Une organisation qui néglige la protection matérielle de ses clés les laisse dans des fichiers, des variables d’environnement ou des sauvegardes, où elles se copient aussi facilement que n’importe quelle donnée : un seul accès en lecture suffit alors à emporter le secret, qui continue de fonctionner hors de l’organisation sans que rien ne le signale. Sans séparation entre clés de données et clés de protection, remplacer une clé compromise impose de rechiffrer l’ensemble des données, opération si coûteuse qu’elle finit reportée, et la clé exposée reste en service. Sans architecture redondante, enfin, la panne du module unique rend indisponible tout ce qu’il protège : la sécurité se transforme en arrêt de service, ce qui n’est pas exactement le compromis recherché.

Les systèmes informatiques protègent leurs données avec des clés, c’est-à-dire des valeurs secrètes utilisées par les calculs de chiffrement et de signature. Si une clé est volée, tout ce qu’elle protège devient lisible ou falsifiable. Ce dossier traite d’un composant matériel spécialisé, le module cryptographique matériel, qui génère et conserve les clés à l’intérieur d’un boîtier protégé. Les programmes ne lisent jamais la clé : ils envoient des données au module, qui fait le calcul lui-même et renvoie seulement le résultat. Pour dialoguer avec ce module, les programmes utilisent une interface standard nommée PKCS#11, qui définit les opérations disponibles. Le dossier explique ensuite la différence entre deux familles de clés : celles qui chiffrent directement les données, et celles qui servent seulement à protéger d’autres clés. Cette organisation en couches, appelée chiffrement en enveloppe, permet de garder dans le module une seule clé principale, tandis que les nombreuses clés de données sont stockées ailleurs sous forme chiffrée. Les opérations qui chiffrent une clé avec une autre, puis la déchiffrent au moment de s’en servir, portent le nom d’emballage et de déballage. Le parcours aborde ensuite le remplacement régulier des clés, et l’architecture qui garde le service disponible quand un module tombe en panne. La partie consacrée à l’exploitation répond aux questions du quotidien : comment prouver qu’une clé est bien restée dans le module, comment lire une certification, comment sauvegarder ou détruire une clé, comment partager un module entre plusieurs équipes et comment changer de fournisseur sans interrompre les services.