web-dev-qa-db-fra.com

Pourquoi Windows stocke-t-il les mots de passe Wi-Fi dans un format réversible?

Fonctionnement

netsh wlan export profile key=clear

dans PowerShell videra vos paramètres Wi-Fi stockés actuels, y compris le mot de passe, dans des fichiers xml à l'intérieur du répertoire dans lequel vous vous trouvez actuellement.

Pourquoi est-ce que Windows stockerait les informations d'identification dans un format réversible? Pourquoi ne stocke-t-il pas simplement le hachage du mot de passe qu'il envoie aux points d'accès pour terminer la prise de contact et établir la connexion?

65
Wazanator

tl; dr - Windows agit comme un gestionnaire de mots de passe et, comme tous les gestionnaires de mots de passe, il doit se souvenir des mots de passe ça gère. Vous pensez probablement à la chose où les serveurs sont censés stocker les hachages au lieu des mots de passe; cette stratégie ne s'applique pas ici.

réponse de @ forest démontre une mise en garde majeure - que, si nous supposons qu'un réseau sans fil utilisera toujours un protocole spécifique qui commence par hacher le mot de passe, par exemple WPA2, puis Windows pourrait oublier le mot de passe d'origine au profit du hachage spécifique au protocole.


Pourquoi est-ce que Windows stockerait les informations d'identification dans un format réversible? Pourquoi ne stocke-t-il pas simplement le hachage du mot de passe qu'il envoie aux points d'accès pour terminer la prise de contact et établir la connexion?

Windows joue ici deux rôles différents:

  1. Gestionnaire de mots de passe:
    Windows peut mémoriser les mots de passe réseau pour vous. Lorsqu'il le fait, il agit comme un gestionnaire de mots de passe. Comme tout autre gestionnaire de mots de passe, il doit stocker les mots de passe qu'il gère.

  2. Client:
    Windows doit convaincre le réseau WiFi qu'il connaît votre mot de passe. Pour ce faire, il doit connaître votre mot de passe.

Si vous craignez que Windows stocke votre mot de passe, il semblerait que vous puissiez simplement cesser d'utiliser sa fonction de gestion de mot de passe. Cependant, vous devrez toujours fournir à Windows un mot de passe réseau pour vous connecter à un réseau, tout comme vous devez fournir un portail de messagerie avec votre mot de passe de messagerie pour vous connecter.


Remarque: Les conseils auxquels vous pensez s'appliquent aux serveurs, pas aux clients.

Vous pensez probablement à la chose où un serveur ne devrait pas se souvenir des mots de passe en clair, mais plutôt d'un hachage de leur. Cela ne s'applique pas ici car Windows n'est pas le serveur.

Vous pouvez hacher le mot de passe WiFi si vous le souhaitez, mais le mot de passe haché serait le nouveau mot de passe. Ce serait essentiellement la même chose que d'utiliser une fonction de dérivation de clé pour générer votre mot de passe WiFi.


Exception: les hachages spécifiques au protocole peuvent être conservés.

La réponse ci-dessus est écrite pour un protocole général.

Cependant, des protocoles spécifiques peuvent nécessiter le hachage du mot de passe, comme dans le protocole sans fil populaire, WPA2. Si nous supposons que le réseau utilisera toujours un protocole spécifique comme WPA2 sur tous les points d'accès et toutes les heures, nous pouvons oublier le mot de passe d'origine si nous conservons simplement ce hachage.

Le problème avec la conservation du hachage est que ce n'est pas tant le mot de passe réseau que le mot de passe réseau spécifique au protocole. Autrement dit, un client qui ne conserve que le hachage sous un protocole se briserait si le réseau était mis à jour vers WPA3, ou s'il se trouvait dans la plage d'un ancien point d'accès WPA, etc.).

121
Nat

Le mot de passe n'est jamais envoyé. Il est haché et ce hachage est utilisé (indirectement) pour le chiffrement.

Le mot de passe peut être transmis via un algorithme appelé PBKDF2 - HMAC-SHA1 avec une sortie 256 bits et un sel dérivé de l'ESSID (nom du réseau) pour générer le PSK, une clé brute de 256 bits. Ce PSK est utilisé pour crypter une négociation, appelée 4-Way Handshake , entre le client et le routeur où une clé de cryptage de données aléatoire par session est échangée. Il est également utilisé pour l'authentification.

La raison pour laquelle Windows ne stocke pas le PSK brut plutôt que le mot de passe est pour une meilleure expérience utilisateur. Si quelqu'un ne connaît pas son mot de passe lors de l'ajout d'un nouvel appareil au réseau, il peut l'afficher sous Windows sans avoir besoin de se connecter au panneau d'administration du routeur. Le stockage des mots de passe dans un format irréversible est tile pour les serveurs où il existe un risque qu'une base de données de mots de passe soit volée en masse. Pour un simple mot de passe Wi-Fi personnel, ce risque est beaucoup moins prononcé.

Veuillez noter que cela ne s'applique qu'à WPA2-PSK. Il existe d'autres normes de cryptage Wi-Fi, même sous l'étiquette WPA2, qui n'utilisent aucun type de mot de passe pré-partagé, comme WPA2-EAP, qui peuvent négocier une clé à la volée.


Pour démontrer que cela est possible, cela peut être fait sur Linux avec wpa_passphrase . Nous utiliserons la commande sed pour supprimer les lignes commentées, qui contiennent une copie en clair du mot de passe d'origine:

$ wpa_passphrase MyNetworkName MySecretPassword | sed '/^\s*#/d'
network={
    ssid="MyNetworkName"
    psk=652f56f4a475711020fe175020912964f30bede1de36e7c08ed9da7eaf6d68c2
}

La ligne commentée contenant la phrase secrète d'origine a été supprimée. Il est important de savoir que ce PSK, s'il est volé, donnera à l'attaquant les mêmes capacités que s'il volait le mot de passe d'origine. Ils pourront décrypter les sessions stockées et s'authentifier auprès de votre point d'accès. Cependant, ils ne connaîtront pas le mot de passe d'origine lui-même, ce qui peut être utile s'il est utilisé ailleurs (une mauvaise idée).

35
forest

Je suppose que la raison pour laquelle Windows stocke ces informations dans un format réversible est pour qu'elles puissent être lues par le système d'exploitation ultérieurement.

Vous pouvez quand même lire la clé WiFi dans les paramètres, ce que certaines personnes trouvent utile de dire à leurs amis ce qu'est la clé sans fil afin qu'ils puissent rejoindre le réseau. (Windows 10 avait auparavant une fonctionnalité appelée "détection de wifi" qui partageait votre clé en clair avec vos contacts. info ici )

Je ne vois pas en quoi c'est un problème de sécurité, car quelqu'un ayant accès à une machine avec la clé est déjà sur le réseau de toute façon, et même s'il n'avait accès qu'à une clé hachée, il pourrait l'utiliser pour s'authentifier sur le réseau .

Personnellement, la seule raison pour laquelle j'ai une clé wifi en premier lieu est d'activer WPA2. Apparemment, il ne sera plus nécessaire pour WPA3 car le chiffrement et l'authentification sont des processus distincts.

0
bobsburner