Wie kann verhindert werden, dass das WLAN-Kennwort auf der Wiederherstellungspartition gespeichert wird?

13

Ich habe mich immer gefragt, wie mein Mac eine Verbindung zum Internet herstellen kann, wenn die Wiederherstellungspartition gestartet und meine Hauptsystempartition gesperrt wird (filevault2).

Einige Googler haben heute (z. B. hier , hier und auch auf Anfrage ) ergeben, dass das WLAN-Passwort anscheinend im NVRAM gespeichert ist und dass es zurückgesetzt werden muss, um das Passwort zu entfernen. Als sicherheitsbewusste Person ist dies für mich nicht akzeptabel. Bei Verwendung der vollständigen Festplattenverschlüsselung (dh Filevault2) erwarte ich, dass das System auch gegen mein Netzwerk sicher ist.

Gibt es eine Möglichkeit, zu verhindern, dass OS X das Kennwort in der Wiederherstellungspartition verfügbar macht? Ich bin mir nicht sicher, wie oder wann es überhaupt in den NVRAM gelangt.

UPDATE1 : Das NVRAM enthält die folgenden Schlüssel: ( 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

Die Schlüssel efi-apple-recoveryund efi-boot-devicesehen aus, als könnten sie verschlüsselte Daten enthalten.

n1000
quelle
Wenn Sie einen Ihrer letzten Beiträge lesen, haben Sie ein MacBook Pro (Mitte 2012), oder? Wenn ja, ist dies ein Intel Base Mac und verfügt nicht über PRAM wie bei PowerPC-basierten Macs. Intel-basierte Macs haben NVRAM. Bitte geben Sie einen Link zu dem Artikel an, den Sie erwähnt haben.
user3439894
@ user3439894 danke für die Geschichtsstunde :) Die Frage wurde aktualisiert. Ich denke, dieses Problem ist unabhängig von Mac und OS X (habe es zuerst in 10.7 bemerkt).
n1000
1
Sie haben gefragt, ob es eine Möglichkeit gibt, zu verhindern, dass OS X das Kennwort auf der Wiederherstellungspartition speichert. Unter den von Ihnen angegebenen Links wird angezeigt, dass das Kennwort im NVRAM und nicht in der Wiederherstellungs-HD-Partition gespeichert wird. Wenn Sie ein verwendetes Terminal verwenden, nvram -pkönnen Sie anhand der Ausgabe erkennen, welche Firmware-Variable das Wi-Fi-Kennwort enthält. Wenn ja, können Sie nur diese eine Variable löschen, ohne den gesamten NVRAM zurückzusetzen. Verwendung sudo nvram -d variable_namein einem Terminal.
user3439894
@ user3439894 Interessant. Ich habe die Frage aktualisiert.
n1000

Antworten:

17

Ich habe mich immer gefragt, wie ich verhindern kann, dass OS X die WPA-Passphrase (oder PSK) im NVRAM speichert.

Mit 'nvram' konnte ich nie die Variable finden, von der ich dachte, dass sie diese Anmeldeinformationen enthält. Heute habe ich versucht, ein USB-Live-Image von Linux zu booten und Chipsec auszuführen . Der Befehl zum Auflisten von EFI-Variablen hat viel mehr Ergebnisse als beim Ausführen von nvram unter OS X. Zu den Variablen in meinem MacBook Pro (Mitte 2010) gehörten:

  • aktuelles Netzwerk
  • bevorzugte Netzwerke
  • Sicherheitspasswort

Die Daten der aktuellen Netzwerkvariablen enthalten die SSID meines Heimrouters im Klartext. Dann wird es bis zum Ende mit 0 Bytes aufgefüllt, was 32 Bytes entspricht und die 64 hexadezimalen Ziffern des Pre-Shared Key (PSK) darstellt .

Die Variable " Bevorzugte Netzwerke" entspricht dem Inhalt des aktuellen Netzwerks .

Die Sicherheitskennwortvariable enthält genau die gleiche Anzahl von Bytes wie das von mir festgelegte EFI-Kennwort. Ich gehe also davon aus, dass dies das Kennwort für die Firmware-Sperre ist. Ich vermute, es verwendet eine Art Maskierung / Codierung. Eine Theorie, die ich hatte, ist, dass diese Passwörter als Tastatur-Scan-Codes oder so etwas gespeichert sind, aber ich habe noch nicht genug Informationen.

Möglicherweise können Sie mit Chipsec oder einem anderen EFI-Tool diese EFI-Variablen auf Null setzen und ein Zugriffssteuerungs- / Berechtigungsflag für sie setzen, damit sie nicht neu geschrieben werden können. Vielleicht ist es sogar eine Problemumgehung für Sie, sie einfach auf Null zu setzen (wenn Sie nur den Laptop oder etwas anderes weiterverkaufen müssen). Mir ist nicht bekannt, ob OS X sie regelmäßig neu schreibt oder nur, wenn Sie Ihre WPA-Anmeldeinformationen ändern.

BEARBEITEN : Ich habe gerade von einem Befehl zum Abrufen von WLAN-Passwörtern aus dem NVRAM erfahren: /usr/libexec/airportd readNVRAM

Durch Anhängen der GUID kann nvram außerdem die folgenden Werte lesen:

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

Vielleicht können Sie diese Variablen wegblasen und sehen, wie es geht.

EDIT 2 : Wie in einem früheren Kommentar erwähnt, ist die Methode zum Löschen einer EFI-Variablen wie folgt (zum Löschen ist sudo erforderlich):sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network

Es ist noch unklar, ob die Variable zurückkehren wird.

Mike Myers
quelle
Interessante Einblicke. Bitte halten Sie uns auf dem Laufenden, wenn Sie mehr erfahren! IMHO würde eine vollständige Antwort auf diese Frage idealerweise eine Anweisung zum Löschen des Passworts enthalten ... Wenn ich dies tue, /usr/libexec/airportd readNVRAMwird das aktuelle Netzwerk aufgelistet, aber die Recovery NetworksListe ist leer.
n1000
Vielen Dank. Ich habe eine Bearbeitung mit einem Hinweis zum Löschen der Variablen hinzugefügt, weiß aber nicht, wie ich verhindern kann, dass sie zurückgegeben wird.
Mike Myers
Müssen Sie nicht als Root ausgeführt werden, um auf nvram zugreifen zu können? Es sieht so aus, als würden sie das Passwort verschlüsseln. Sollte es aus Sicherheitsgründen nicht ausreichen?
Video
Sie müssen nicht als root ausgeführt werden, um nvram zu lesen, aber Sie müssen es löschen.
Mike Myers
1
Ob sie das Passwort verschlüsseln: Die Anmeldeinformationen des drahtlosen Netzwerks werden nicht als Passwort / Passphrase gespeichert, sondern als PSK, das binär ist. Es sieht möglicherweise verschlüsselt aus, wenn es angezeigt wird, ist es aber nicht. Es ist eine codierte Hex-Zeichenfolge. Mit dem Befehl Flughäfen ist das Lesen einfacher als mit dem Befehl nvram. Ich habe gerade mit OS X 10.11 getestet und die Befehlsmethode nvram funktioniert immer noch. Airportd scheint den Befehl "readNVRAM" jetzt zu ignorieren, unabhängig davon, ob Sie root sind oder nicht. Ich bin mir nicht sicher, was sie geändert haben. Die Manpage sagt immer noch, dass der Befehl existiert, aber er funktioniert nicht mehr?
Mike Myers