Jak zapobiec przechowywaniu hasła WiFi na partycji odzyskiwania?

13

Zawsze zastanawiałem się, jak mój komputer Mac może połączyć się z Internetem, gdy partycja odzyskiwania jest uruchamiana, a moja główna partycja systemowa jest zablokowana (filevault2).

Niektórzy google ujawnili dzisiaj (np. Tutaj , tutaj , a także na żądanie ), że hasło WiFi jest najwyraźniej przechowywane w pamięci NVRAM i że należy je zresetować, aby je usunąć. Jako osoba dbająca o bezpieczeństwo jest to dla mnie nie do przyjęcia. Podczas korzystania z pełnego szyfrowania dysku (tj. Filevault2) oczekuję, że system będzie bezpieczny, także przed moją siecią.

Czy istnieje sposób, aby uniemożliwić OS X udostępnienie hasła na partycji odzyskiwania? Nie jestem pewien, jak i kiedy w ogóle dostaje się do NVRAM.

AKTUALIZACJA 1 : NVRAM zawiera następujące klucze: ( 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

Klucze efi-apple-recoveryi efi-boot-devicewyglądają, jakby mogły zawierać zaszyfrowane dane.

n1000
źródło
Przechodząc do jednego z ostatnich postów masz MacBooka Pro (połowa 2012 r.), Prawda? Jeśli tak, jest to komputer Mac z procesorem Intel Base i nie ma pamięci PRAM, jak w przypadku komputerów Mac z procesorem PowerPC. Komputery Mac z procesorami Intel mają NVRAM. Podaj link do wspomnianego artykułu.
user3439894,
@ user3439894 dzięki za lekcję historii :) Zaktualizowałem pytanie. Wydaje mi się, że ten problem jest niezależny od Maca i OS X (zauważyłem go najpierw w 10.7).
n1000
1
Zapytałeś „ Czy istnieje sposób, aby zapobiec przechowywaniu hasła przez system OS X na partycji odzyskiwania? ”, A pod podanymi linkami wydaje się, że hasło jest przechowywane w pamięci NVRAM, a nie na partycji Recovery HD, dwie różne rzeczy. Jeśli w terminalu używasz, nvram -pczy na podstawie danych wyjściowych wiesz, która zmienna oprogramowania układowego przechowuje hasło Wi-Fi? Jeśli tak, możesz wyczyścić tylko jedną zmienną bez resetowania całej pamięci NVRAM. Użyj sudo nvram -d variable_namew terminalu.
user3439894,
@ user3439894 Ciekawe. Zaktualizowałem pytanie.
n1000

Odpowiedzi:

17

Zawsze zastanawiałem się nad tym samym: jak powstrzymać OS X przed przechowywaniem hasła WPA (lub PSK) w NVRAM.

Używając „nvram” nigdy nie mogłem znaleźć zmiennej, która moim zdaniem zawierała te poświadczenia. Dzisiaj próbowałem uruchomić system Linux na żywo z obrazu Linux i uruchomić Chipsec . Polecenie, aby wyświetlić zmienne EFI, ma o wiele więcej wyników niż uzyskiwałem, uruchamiając nvram w OS X. Wśród zmiennych w moim MacBooku Pro (połowa 2010 r.) Były:

  • sieć obecna
  • preferowane sieci
  • hasło bezpieczeństwa

Dane zmiennej bieżącej sieci obejmują SSID mojego domowego routera w postaci zwykłego tekstu. Następnie jest uzupełniany 0 bajtami do końca, który wynosi 32 bajty i reprezentuje 64 cyfry szesnastkowe klucza współdzielonego (PSK) .

Te korzystne sieciami zmienne wygląda jak same treści jak bieżącym-network .

Zabezpieczeniami hasło zmienna posiada dokładnie taką samą liczbę bajtów jako hasło EFI ustawić, więc zakładam, że jest to hasło blokady oprogramowania. Podejrzewam, że używa pewnego rodzaju maskowania / kodowania. Jedną z moich teorii jest to, że hasła są przechowywane jako kody skanowania klawiatury lub coś takiego, ale nie mam jeszcze wystarczających informacji.

Być może za pomocą Chipsec lub innego narzędzia EFI możesz wyzerować te zmienne EFI i ustawić na nich flagę kontroli dostępu / uprawnień, aby nie można było ich przepisać. Być może nawet samo ich wyzerowanie będzie dla Ciebie obejściem (jeśli potrzebujesz odsprzedać laptopa lub coś takiego). Nie wiadomo mi, czy system OS X przepisuje je regularnie, czy tylko po zmianie danych uwierzytelniających WPA.

EDYCJA : Właśnie dowiedziałem się o poleceniu pobierania haseł Wi-Fi z NVRAM: /usr/libexec/airportd readNVRAM

Ponadto, dołączając GUID, nvram może faktycznie odczytać te wartości:

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

Może więc zdmuchniesz te zmienne i zobaczysz, jak to działa.

EDYCJA 2 : jak wspomniano we wcześniejszym komentarzu, metoda usuwania zmiennej EFI jest następująca (sudo jest wymagane do usunięcia):sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network

Na razie nie jest jasne, czy zmienna powróci.

Mike Myers
źródło
Ciekawe spostrzeżenia. Prosimy o informowanie nas, jeśli dowiesz się więcej! IMHO pełna odpowiedź na to pytanie idealnie dałaby instrukcję usuwania hasła ... Gdy to zrobię, /usr/libexec/airportd readNVRAMna Recovery Networksliście jest obecna sieć, ale lista jest pusta.
n1000
Dzięki. Dodałem edycję z notatką, jak usunąć zmienną, ale nie wiem, jak zapobiec jej zwróceniu.
Mike Myers
Czy nie musisz działać jako root, aby uzyskać dostęp do nvram? Wygląda na to, że szyfrują hasło. Czy nie powinno to wystarczyć z punktu widzenia bezpieczeństwa?
wideo
Nie musisz działać jako root, aby czytać nvram, ale potrzebujesz go, aby go usunąć.
Mike Myers
1
Jeśli chodzi o to, czy szyfrują hasło: poświadczenia sieci bezprzewodowej nie są przechowywane jako hasło / hasło, ale w rzeczywistości PSK, który jest binarny. Może być zaszyfrowany, gdy jest wyświetlany, ale tak nie jest. To zakodowany ciąg szesnastkowy. Łatwiej jest czytać za pomocą polecenia airportd niż po uruchomieniu polecenia nvram. Właśnie przetestowałem z OS X 10.11, a metoda polecenia nvram nadal działa. Jeśli chodzi o airportd, wydaje się teraz ignorować polecenie „readNVRAM” niezależnie od tego, czy jesteś rootem, czy nie. Nie jestem pewien, co zmienili. Jego strona podręcznika nadal mówi, że polecenie istnieje, ale już nie działa?
Mike Myers