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-recovery
und efi-boot-device
sehen aus, als könnten sie verschlüsselte Daten enthalten.
quelle
nvram -p
kö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. Verwendungsudo nvram -d variable_name
in einem Terminal.Antworten:
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:
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.
quelle
/usr/libexec/airportd readNVRAM
wird das aktuelle Netzwerk aufgelistet, aber dieRecovery Networks
Liste ist leer.