# Hardware Security Module

Un Hardware Security Module ou HSM (en français, boîte noire transactionnelle ou BNT) est un matériel électronique offrant un service de sécurité qui consiste à générer, stocker et protéger des clefs cryptographiques ainsi qu'effectuer des opérations cryptographiques sensibles. Ce matériel peut être une carte électronique enfichable PCI sur un ordinateur ou un boîtier externe SCSI/IP par exemple.
Il est envisageable aussi d'obtenir ce service de manière logicielle (Software Security Module) mais un module matériel procure un plus haut niveau de sécurité.
Les HSMs répondent aux standards de sécurité internationaux tels que FIPS 140 (en)et Critères communs EAL4+ et peuvent supporter des API cryptographiques majeures PKCS#11, CryptoAPI, et Java JCA/JCE.
Ils peuvent aussi être utilisés directement par des serveurs de base de données comme Oracle ou MS SQL Server ("Gestion des Clefs Extensibles", en anglais EKM pour Extensible Key Management).
La confiance que l'on peut accorder à une infrastructure à clé publique est basée sur l'intégrité de l'autorité de certification (AC). Le certificat de cette autorité détient la clé de signature cryptographique racine. Cette clé sert à signer les clés publiques de ceux qui vont détenir des certificats de cette autorité. Mais surtout cette clé signe sa propre clé publique. Lorsque cette clé est compromise tous les certificats signés par l'autorité de certification sont suspects et la crédibilité de l'autorité de certification détruite. D'où l'importance de protéger cette clé et son usage, les HSM répondant à cette nécessité.

## L'intérêt des HSM pour une IGC

L'intérêt des HSM pour une infrastructure de gestion de clés (IGC) est double : la clé privée d'une autorité de confiance (généralement l'autorité racine) est protégée de manière logicielle et matérielle. De manière matérielle le HSM est un boitier qui auto-détruit ses données en cas de manipulation physique. De manière logicielle le HSM permet la répartition du secret (la clé privée) sur plusieurs acteurs humains par le truchement de cartes à puces. Il est alors nécessaire d'avoir un quorum de personnes présentes physiquement pour activer le secret. Ceci rend impossible l'utilisation du secret par une seule personne (administrateur disposant des droits complets sur le serveur de l'autorité de confiance, porteur d'une carte volée, etc.) et donc garantit l'intégrité de l'Autorité de Certification vis-à-vis de ses Politiques de Sécurité.
Un HSM peut ainsi être utilisé pour sécuriser les transactions réalisées dans de nombreux domaines d'activités. Il représente notamment une solution fonctionnelle pour sécuriser les transactions distantes opérées par un système télébillettique d'un opérateur de transport.
Certains SGBDR comme SQL Server, MySQL ou Oracle DB permettent d'utiliser un HSM pour chiffrer les données sensibles d'une base de données.

## Vulnérabilités

En 2019, deux chercheurs français ont découvert plusieurs vulnérabilités sur un HSM. Une fois exploitées, certaines de ces vulnérabilités permettaient à un attaquant non authentifié de prendre le contrôle total du HSM, rendant possible la récupération des clefs et l'introduction d'une porte dérobée. Le constructeur du HSM a été prévenu et a depuis publié des mises à jour de son firmware afin de corriger ces vulnérabilités.