HSM : un module de sécurité matériel pour votre CA
Sommaire
I. Présentation
Au sein d'une autorité de certification, le stockage de la clé privée du certificat de l'autorité de manière sécurisée est crucial ! En effet, toute compromission, par un attaquant, de ce certificat engendrerait la compromission de tous les certificats délivrés par cette autorité.
Si la cible est une autorité racine, et que, par exemple, deux autorités intermédiaires composent en plus l'infrastructure de PKI, cela signifie qu'il faudrait repartir de zéro, en montant une nouvelle autorité racine + deux autorités intermédiaires, puis réémettre tous les certificats issus de ces autorités.
De plus, considérant le rôle incontournable des certificats dans le processus d'authentification Active Directory, la compromission d'une autorité peut même engendrer une compromission de l'annuaire Active Directory (voir le chapitre sur le hardening où nous évoquons le Tier Model).

Voyons les possibilités qui permettent de mieux protéger la clé privée.
II. Quelles solutions pour protéger la clé privée ?
Souvenez-vous, lorsque l'on exécute l'assistant de configuration AD CS, on nous demande de choisir le « Key Storage Provider » c'est-à-dire le container de stockage qui va accueillir la clé privée de l'autorité. Ici, je fais référence à cette étape :

Par défaut, il s'agit d'un coffre-fort logiciel peu évolué. Pour faire mieux d'un point de vue sécurité, on peut recourir à un « HSM » : Hardware Security Module. Il s'agit d'un module cryptographique matériel qui permet de stocker des secrets orientés serveur et parmi eux, une clé privée d'autorité de certification. Cette solution spécialisée apporte des mécanismes de sécurité qui ne sont pas fournis nativement par Windows Server.
La plupart des solutions de HSM sont couteuses, le ticket d'entrée est souvent situé autour de 20 000€. La raison est simple, ce sont des matériels destinés à des entreprises de grande taille pouvant supporter 15 000 opérations par seconde. Pour une organisation de taille plus modeste, la solution est surdimensionnée. Un fabricant a décidé de s'adresser à de plus petits clients, pour qui, un produit supportant 30 opérations par seconde est amplement suffisant, il s'agit de Yubico, avec son produit YubiHSM.

On peut même créer un cluster de YubiHSM pour démultiplier la puissance de calcul, si toutefois elle s'avérait insuffisante.
Même s'il s'agit d'un matériel sous forme de clé USB, il est tout à fait possible de pointer le HSM depuis une machine virtuelle. Les pilotes fournis par le fabricant le permettent.
Par ailleurs, le format « Nano » évite d'avoir à insérer une carte additionnelle dans le serveur. Si un port USB est présent sur la carte mère, il est alors possible que la YubiHSM soit protégée à l'intérieur de la machine.
Son prix indicatif est de 650€.
III. Implémentation d'un HSM
Stocker la clé privée sur un HSM lors du déploiement du rôle AD CS est une opération simple dont voici les grandes étapes :
- Installer l'agent/pilote du fabricant du HSM,
- Ajouter des entrées de registre permettant de fixer le paramétrage pour contacter le HSM depuis la machine,
- Sélectionner le fournisseur de chiffrement correspondant au HSM, par exemple YubiHSM Key Storage Provider au lieu de RSA#Microsoft, lors de l'exécution de l'assistant de configuration AD CS, pour que la clé privée y soit stockée.
En revanche, pour une autorité existante, le processus est plus compliqué, car il s'approche d'une migration d'autorité. Cela implique :
- De sauvegarder la base de données de l'autorité ainsi que son certificat + sa clé privée,
- D'installer l'agent/pilote du fabricant du HSM,
- D'ajouter des entrées de registre permettant de fixer le paramétrage pour contacter le HSM depuis la machine,
- De modifier certaines entrées de registre et dans certains cas de désinstaller le rôle AD CS pour le réinstaller ensuite,
- De réémettre une CRL et de tester que l'émission de certificats fonctionne.
IV. Conclusion
Renforcer la protection de la clé privée d'une autorité est indéniablement un plus en matière de sécurité. Un module HSM ne se limite pas à stocker la clé privée d'une autorité, dans un environnement industriel, il peut stocker des secrets utilisés pour signer un micrologiciel ou encore sécuriser des échanges entre périphériques IoT. Autre exemple, dans un contexte d'échange de cryptomonnaie, on peut aussi y avoir recours.
