NOPE LinkedIn

Catégories:
wireguard

Pourquoi vous ne devriez pas utiliser la même clé WireGuard sur plusieurs clients

Pourquoi vous ne devriez pas utiliser la même clé WireGuard sur plusieurs clients image

Important

Traduction d’un article du site Pro Custodibus

Le contenu de cette page est la traduction Française de l’article Why You Shouldn’t Use the Same WireGuard Key on Multiple Clients de Justin Ludwig

Pourquoi vous ne devriez pas utiliser la même clé WireGuard sur plusieurs clients

Quand vous configurez un nouveau VPN WireGuard (réseau privé virtuel), vous pourriez vous demander : « Puis-je utiliser la même clé WireGuard pour plusieurs clients ? » ou « Ne peux-je pas simplement distribuer le même fichier de configuration WireGuard à tous les membres du même groupe ? » Il y a deux raisons majeures pour lesquelles vous ne devriez pas :

  1. C’est une mauvaise pratique en matière de sécurité.
  2. Cela entraînera une mauvaise expérience utilisateur.

Mauvaise pratique en matière de sécurité

Partager des clés WireGuard est nuisible pour les mêmes raisons que le partage d’accounts généralement est nuisible — cela cause des problèmes avec :

  1. Les traces d’audit.
  2. Le contrôle d’accès.
  3. La rotation secrète.

Traces d’audit

Quand vous partagez des clés (ou des comptes), vous ne pouvez jamais être sûr de savoir exactement qui a effectué quelle action. A-t-il été Alice, Bob ou quelqu’un d’autre qui a accédé à ce fichier ou supprimé cette enregistrement ? Ne connaître personne empêche-vous de pouvoir tenir quelqu’un responsable de la malveillance, du méchanceté ou simplement de l’incompétence.

Pour de nombreuses entreprises, être capable de connecter une action spécifique à une personne spécifique via vos journaux d’audit est une exigence légale ou autre de conformité. Si vos journaux d’audit n’ont pas la traçabilité à un individu ou une identité, ils sont probablement en train de ne pas atteindre leur but (que ce soit pour satisfaire les réglementations, activer la détection d’intrusion, permettre l’enquête sur des incidents de sécurité ou de performance, ou faciliter l’analyse des métriques de télémétrie du système ou d’autres indicateurs).

Contrôle d’accès

Partager des clés ou des comptes empêche également un contrôle d’accès efficace. Cela vous empêche d’appliquer un accès plus restrictif à différentes personnes qui ont accès à la clé/account partagée, déniant ainsi le Principe de moindre privilège.

Par exemple, imaginez que vous donnez à toute votre équipe d’accès à toutes vos applications en production via une seule clé WireGuard, même si l’équipe Alice n’a besoin d’accès qu’à l’application A et l’équipe Bob n’a besoin d’accès qu’à l’application B. Avec cette clé partagée, vous ne pouvez pas limiter l’accès inutile d’Alice à l’application B sans également limiter l’accès nécessaire de Bob à celle-ci ; et vous ne pouvez pas limiter l’accès inutile de Bob à l’application A sans également limiter l’accès nécessaire d’Alice à celle-ci.

La diffusion des clés rend également difficile la mise à jour des politiques de contrôle d’accès en réponse aux changements commerciaux. Par exemple, si initialement Alice et Bob avaient besoin d’accès à toutes les applications A et B, vous pourriez être tenté de leur permettre de partager une clé qui accorde l’accès à toutes les applications. Mais si un changement commercial nécessite de couper l’accès de Bob à l’application A (comme Bob est transféré dans une division qui ne peut pas légalement avoir accès à l’application A), vous ne pouvez pas le faire avec la clé partagée.

Rotation des secrets

La diffusion des clés/ comptes rend également la rotation des secrets un enjeu. Vous devez coordonner la rotation entre toutes les différentes parties ayant accès à la clé, pour s’assurer que personne n’est verrouillé ou dont ses tâches habituelles sont interrompues à un moment critique.

Et partager des clés signifie que la rotation sera encore plus fréquente que d’habitude — non seulement vous devrez respecter votre calendrier de rotation des secrets habituel, mais vous devrez également faire une rotation des clés chaque fois qu’une personne quitte le groupe ou change d’équipe.

Personne ayant accès à la clé a un compromis potentiel sur son compte, une infection par du maliciel, un ordinateur portable volé, une réaffectation à un autre poste, une réorganisation de son département, ou quitte votre entreprise, etc.

Mauvaise expérience utilisateur

WireGuard a été conçu pour prévenir l’utilisation incorrecte à partir de bonnes pratiques de sécurité — donc si vous essayez d’utiliser la même clé pour plusieurs clients, vous allez avoir une mauvaise expérience. WireGuard suppose que chaque client distinct (aka pair) utilisera un couple de clés cryptographiques distincts (clé publique et privée). La clé publique dans ce couple est non seulement utilisée pour établir une connexion sécurisée avec la pair — elle est également utilisée comme identifiant unique pour la pair.

En fait, WireGuard utilise la clé publique d’une pair comme clé de recherche dans sa table interne des pairs connectés ; lorsqu’il envoie du trafic crypté à une pair, WireGuard consulte cette table pour déterminer l’adresse IP et le port (aka point de terminaison) auquel il doit envoyer le trafic crypté. Si plusieurs points de terminaison essaient d’utiliser la même clé en même temps, l’entrée dans cette table pour les autres points de terminaison essayant d’utiliser la même clé sera remplacée par le dernier point de terminaison à utiliser la clé.

Lorsqu’un seul utilisateur utilise actuellement une clé, rien ne semble amiss — mais lorsque plusieurs utilisateurs essaient de se connecter au même hôte WireGuard avec la même clé en même temps, l’expérience pour tous les utilisateurs va mal — leur connexion apparaîtra sembler “geler” ou “s’embourber” jusqu’à ce que tous les autres utilisateurs abandonnent. En arrière-plan, WireGuard enverra la plupart des paquets à l’adresse de point de terminaison incorrecte la plupart du temps, entraînant des réponses manquées et des tentatives constantes par les applications que ces utilisateurs essaient d’utiliser via WireGuard.

Bonnes Pratiques

Les meilleures pratiques pour les clés WireGuard sont similaires à celles pour les clés SSH ou les certificats de client (ou tout autre type de credentials basé sur l’hôte) — aucun hôte ne devrait partager la même clé (même pour les hôtes considérés comme des “clients” simples). Bien que cela prenne un peu plus de temps à mettre en place, c’est beaucoup plus maintenable à long terme.

De plus, si vous opérez plusieurs interfaces WireGuard sur un même hôte, il est une pratique acceptable d’utiliser la même clé pour toutes les interfaces de l’hôte (ce ne résultera pas en mauvaise expérience utilisateur) — mais la meilleure pratique est d’utiliser une clé différente pour chaque interface individuelle. Les mêmes problèmes de sécurité décrits ci-dessus s’appliquent également lors du partage de clés entre les interfaces sur le même hôte (à un degré inférieur) — donc ne partager pas les clés permet une meilleure/plus facile auditabilité, contrôle d’accès et rotation des clés.

1/20/2021

par Justin Ludwig