Comment éviter de stocker le mot de passe WiFi sur la partition de récupération?

13

Je me suis toujours demandé comment mon Mac pouvait se connecter à Internet lorsque la partition de récupération était démarrée et que ma partition système principale était verrouillée (filevault2).

Une recherche sur Google a révélé aujourd'hui (par exemple ici , ici et également sur askdifferent ) que le mot de passe WiFi est apparemment stocké dans la NVRAM et qu'il doit être réinitialisé pour supprimer le mot de passe. En tant que personne soucieuse de la sécurité, cela est inacceptable pour moi. Lorsque j'utilise Full Disk Encryption (c'est-à-dire Filevault2), je m'attends à ce que le système soit sûr, également contre mon réseau.

Existe-t-il un moyen d'empêcher OS X de rendre le mot de passe disponible dans la partition de récupération? Je ne sais pas comment ni quand il entre dans la NVRAM en premier lieu.

UPDATE1 : La NVRAM contient les clés suivantes: ( nvram -p):

BootCampHD
SystemAudioVolume
SystemAudioVolumeDB
aht-results
backlight-level
bluetoothActiveControllerInfo
bluetoothInternalControllerInfo
boot-gamma
efi-apple-recovery
efi-boot-device
efi-boot-device-data
fmm-computer-name
good-samaritan-message
gpu-policy
prev-lang:kbd

Les clés efi-apple-recoveryet efi-boot-devicesemblent pouvoir contenir des données chiffrées.

n1000
la source
D'après l'un de vos articles récents, vous avez un MacBook Pro (mi-2012), n'est-ce pas? Si oui, il s'agit d'un Intel Base Mac et n'a pas de PRAM comme c'était le cas avec les Mac basés sur PowerPC. Les Mac à processeur Intel ont une NVRAM. Veuillez fournir un lien vers l'article que vous avez mentionné.
user3439894
@ user3439894 merci pour la leçon d'histoire :) Mise à jour de la question. Je suppose que ce problème est indépendant du Mac et d'OS X (je l'ai remarqué en premier en 10.7).
n1000
1
Vous avez demandé " Alors, y a-t-il un moyen d'empêcher OS X de stocker le mot de passe sur la partition de récupération? " Et d'après les liens que vous avez fournis, il semble que le mot de passe soit stocké dans NVRAM et non sur la partition Recovery HD, deux choses différentes. Si dans un terminal que vous utilisez, nvram -ppouvez-vous dire à partir de la sortie quelle variable de micrologiciel contient le mot de passe Wi-Fi? Si oui, vous pouvez effacer uniquement cette variable sans réinitialiser l'intégralité de la NVRAM. Utiliser sudo nvram -d variable_namedans un terminal.
user3439894
@ user3439894 Intéressant. J'ai mis à jour la question.
n1000

Réponses:

17

Je me suis toujours demandé la même chose: comment empêcher OS X de stocker la phrase secrète WPA (ou PSK) dans NVRAM.

En utilisant 'nvram', je n'ai jamais pu trouver la variable qui, selon moi, détenait ces informations d'identification. Aujourd'hui, j'ai essayé de démarrer sur une image live USB de Linux et d'exécuter Chipsec . Sa commande pour répertorier les variables EFI a beaucoup plus de résultats que ce que j'obtenais en exécutant nvram dans OS X. Parmi les variables de mon MacBook Pro (mi-2010), il y avait:

  • réseau actuel
  • réseaux préférés
  • mot de passe de sécurité

Les données de la variable réseau actuelle incluent le SSID de mon routeur domestique, en texte clair. Elle est ensuite complétée par 0 octet jusqu'à la fin, soit 32 octets, et représente les 64 chiffres hexadécimaux de la clé pré-partagée (PSK) .

La variable des réseaux préférés ressemble au même contenu que le réseau actuel .

La variable security-password contient exactement le même nombre d'octets que le mot de passe EFI que j'ai défini, donc je suppose que c'est le mot de passe de verrouillage du micrologiciel. Je soupçonne qu'il utilise une sorte de masquage / encodage. Une théorie que j'avais était que ces mots de passe sont stockés sous forme de codes de numérisation du clavier ou quelque chose, mais je n'ai pas encore assez d'informations.

Peut-être qu'en utilisant Chipsec ou un autre outil EFI, vous pouvez mettre à zéro ces variables EFI et définir un indicateur de contrôle d'accès / autorisations sur elles afin qu'elles ne puissent pas être réécrites. Peut-être même que les mettre à zéro sera une solution de contournement pour vous (si vous avez juste besoin de revendre l'ordinateur portable ou quelque chose). Je ne sais pas si OS X les réécrit régulièrement ou juste lorsque vous modifiez vos informations d'identification WPA.

EDIT : Je viens d'apprendre une commande pour récupérer les mots de passe wifi de NVRAM: /usr/libexec/airportd readNVRAM

De plus, en attachant le GUID, nvram peut réellement lire ces valeurs:

  • nvram 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network
  • nvram 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-networks
  • nvram 36C28AB5-6566-4C50-9EBD-CBB920F83843:preferred-count

Donc, vous pouvez peut-être faire sauter ces variables et voir comment ça se passe.

EDIT 2 : comme mentionné par un commentaire précédent, la méthode pour supprimer une variable EFI est la suivante (sudo requis pour supprimer):sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network

Il n'est pas encore clair si la variable reviendra.

Mike Myers
la source
Perspectives intéressantes. Veuillez nous tenir informés si vous en apprenez plus! À mon humble avis, une réponse complète à cette question devrait idéalement fournir des instructions pour supprimer le mot de passe ... Lorsque je le fais /usr/libexec/airportd readNVRAM, le réseau actuel est répertorié mais la Recovery Networksliste est vide.
n1000
Merci. J'ai ajouté une modification avec une note sur la façon de supprimer la variable, mais je ne sais pas comment l'empêcher de revenir.
Mike Myers
Ne devez-vous pas être exécuté en tant que root pour accéder à nvram? Il semble qu'ils chiffrent le mot de passe. Cela ne devrait-il pas suffire du point de vue de la sécurité?
achat vidéo
Vous n'avez pas besoin d'être exécuté en tant que root pour lire nvram, mais vous en avez besoin pour le supprimer.
Mike Myers
1
Quant à savoir s'ils chiffrent le mot de passe: les informations d'identification du réseau sans fil ne sont pas stockées en tant que mot de passe / phrase secrète, mais en fait le PSK, qui est en binaire. Il peut sembler crypté lorsqu'il est affiché, mais ce n'est pas le cas. C'est une chaîne hexadécimale codée. Il est plus facile de lire avec la commande airportd que lorsque vous exécutez la commande nvram. Je viens de tester avec OS X 10.11 et la méthode de commande nvram fonctionne toujours. Quant à airportd, il semble ignorer la commande "readNVRAM" maintenant que vous soyez root ou non. Je ne sais pas ce qu'ils ont changé. Sa page de manuel indique toujours que la commande existe, mais elle ne fonctionne plus?
Mike Myers