Remplacer une clé VPN compromise : ce que le serveur doit faire
Supprimer le fichier ne change rien sur le serveur. Le remplacement signifie une nouvelle identité qui fonctionne et une ancienne que la passerelle refuse réellement, dans cet ordre.
Un ordinateur portable contenant une clé client a été perdu, et la première action consiste généralement à supprimer la copie locale. Cela ne change rien sur le serveur, qui détient encore une autorisation qui acceptera cette clé jusqu’à ce que quelqu’un la retire. Le remplacement est deux opérations, et seule la seconde concerne l’ancien identifiant.
La copie locale n’est pas l’autorité
Un identifiant VPN est accepté parce que la configuration côté serveur le dit. Pour les certificats, cela signifie que le certificat s’enchaîne à un émetteur de confiance et n’apparaît pas sur une liste de révocation que la passerelle consulte. Pour WireGuard, cela signifie que la clé publique du pair apparaît dans la configuration de l’interface. Supprimer un fichier sur un client retire une copie d’un secret et laisse la règle d’acceptation intacte.
C’est pourquoi une clé volée continue de fonctionner après le nettoyage évident, et pourquoi l’incident semble irrésolu même lorsque la nouvelle configuration est installée.
Partez de la règle du serveur, puis progressez vers l’extérieur, vers le client.
Certificats : le serveur détient la décision
Émettez le remplacement via le processus propre de l’émetteur afin que la nouvelle identité soit enregistrée, puis retirez l’ancienne avec une révocation signée. La passerelle doit être configurée pour consulter cette source de révocation et doit la recharger, sinon le fichier reste sur le disque pendant que le tunnel continue d’accepter l’ancien numéro de série. Les sessions actives peuvent aussi survivre jusqu’à la renégociation, prévoyez donc une reconnexion.
Confirmez que le remplacement fonctionne pour l’application prévue, puis confirmez par un processus approuvé que le certificat retiré n’établit plus d’accès.
Ce sont deux tests différents et les deux sont nécessaires. RFC 5280 définit la sémantique de certificat et de révocation sur laquelle s’appuie la passerelle.
WireGuard : la clé du pair est l’identité
WireGuard n’a pas de couche de certificats : la clé publique du pair est l’identité, et l’entrée allowed-ips du serveur est l’autorisation. Retirer l’ancien pair de la configuration de l’interface constitue la révocation, et elle s’applique immédiatement aux nouvelles poignées de main.
Les sessions existantes se terminent lorsque la poignée de main suivante échoue, ce qui se produit généralement en quelques minutes et non instantanément.
Distribuez la nouvelle configuration par un canal auquel vous confieriez un mot de passe, car la clé privée est l’identifiant. Gardez une clé par appareil, afin qu’un seul appareil perdu n’oblige pas tous les appareils à changer.
Quoi d’autre dans ce paquet
Un paquet client porte souvent plus que la clé privée : une clé TLS statique, un nom d’utilisateur et un mot de passe, un secret pré-partagé ou un jeton de provisionnement. Limitez l’incident à ce qui a réellement été exposé et faites aussi tourner ces éléments. Faire tourner le certificat en laissant une clé statique partagée en place ferme une porte et en laisse une autre ouverte.
Si le paquet était partagé entre appareils, chaque appareil qui le porte hérite de l’exposition.
Notez ce qui a été renouvelé, car le prochain audit le demandera.
Prouvez le refus, puis enregistrez le remplacement
Le remplacement est complet lorsque deux faits tiennent : la nouvelle identité fonctionne pour le service prévu, et l’ancienne est refusée. Vérifiez le second avec l’identifiant retiré depuis un environnement de test, ou avec une tentative contrôlée approuvée par l’organisation, et lisez les journaux de la passerelle pour confirmer que le refus vient de la politique et non d’une faute de frappe. Ensuite, enregistrez l’ancien identifiant, le nouveau et l’heure du changement, car ces trois valeurs sont ce dont un auditeur a besoin pour le reconstituer. Rien d’autre dans le ticket n’expliquera l’écart.
Gardez les clés privées hors des tickets et des discussions, et retirez les exportations obsolètes du stockage et des sauvegardes conformément à la politique.
Un remplacement sans test de refus est une supposition et non une correction.