Bagaimana mencegah penyimpanan kata sandi WiFi di partisi pemulihan?

13

Saya selalu bertanya-tanya bagaimana Mac saya dapat terhubung ke internet ketika partisi pemulihan di-boot dan partisi sistem utama saya terkunci (filevault2).

Beberapa googling mengungkapkan hari ini (mis. Di sini , di sini , dan juga pada askdifferent ) bahwa kata sandi WiFi tampaknya disimpan dalam NVRAM dan yang perlu diatur ulang untuk menghapus kata sandi. Sebagai orang yang sadar akan keamanan, ini tidak dapat saya terima. Saat menggunakan Enkripsi Disk Penuh (yaitu Filevault2) Saya mengharapkan sistem aman, juga terhadap jaringan saya.

Jadi apakah ada cara untuk mencegah OS X membuat kata sandi tersedia di partisi pemulihan? Saya tidak yakin bagaimana atau kapan itu masuk ke NVRAM di tempat pertama.

UPDATE1 : NVRAM berisi kunci-kunci berikut: ( 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

Kunci efi-apple-recoverydan efi-boot-devicesepertinya itu bisa berisi data terenkripsi.

n1000
sumber
Pergi dengan salah satu posting terbaru Anda, Anda memiliki MacBook Pro (mid2012) kan? Jika ya, ini adalah Intel Base Mac dan tidak memiliki PRAM seperti pada Mac berbasis PowerPC. Mac berbasis Intel memiliki NVRAM. Harap berikan tautan ke artikel yang Anda sebutkan.
user3439894
@ user3439894 terima kasih atas pelajaran sejarahnya :) Memperbarui pertanyaannya. Saya kira masalah ini tidak tergantung pada Mac dan OS X (perhatikan pertama kali pada 10.7).
n1000
1
Anda bertanya " Jadi, apakah ada cara untuk mencegah OS X dari menyimpan kata sandi pada partisi pemulihan? " Jika di Terminal yang Anda gunakan, nvram -pdapatkah Anda memberi tahu dari output variabel firmware mana yang menahan kata sandi Wi-Fi? Jika ya, Anda dapat menghapus satu variabel saja tanpa mengatur ulang seluruh NVRAM. Gunakan sudo nvram -d variable_namedi Terminal.
user3439894
@ user3439894 Menarik. Saya memperbarui pertanyaan.
n1000

Jawaban:

17

Saya selalu bertanya-tanya hal yang sama: bagaimana menjaga OS X dari menyimpan frasa sandi WPA (atau PSK) di NVRAM.

Menggunakan 'nvram' saya tidak pernah bisa menemukan variabel yang saya pikir memiliki kredensial ini. Hari ini, saya mencoba mem-boot ke USB live image Linux dan menjalankan Chipsec . Perintahnya untuk membuat daftar variabel EFI memiliki hasil lebih banyak daripada yang saya dapatkan dengan menjalankan nvram di dalam OS X. Di antara variabel di MacBook Pro saya (pertengahan 2010) adalah:

  • jaringan saat ini
  • jaringan pilihan
  • kata sandi keamanan

Data variabel jaringan saat ini termasuk SSID dari router rumah saya, dalam plaintext. Kemudian itu diisi dengan 0-byte hingga akhir, yaitu 32 byte, dan mewakili 64 hex hex digit dari Pre-Shared Key (PSK) .

The -jaringan pilihan penampilan variabel seperti isi yang sama seperti saat-jaringan .

The keamanan password variabel memegang persis jumlah yang sama byte sebagai password EFI I set, jadi saya menganggap ini adalah password Firmware Lock. Saya curiga ini menggunakan semacam masking / encoding. Satu teori yang saya miliki adalah bahwa kata sandi ini disimpan sebagai kode pindai keyboard atau sesuatu, tetapi saya belum memiliki informasi yang cukup.

Mungkin dengan menggunakan Chipsec atau alat EFI lainnya, Anda dapat menghilangkan variabel-variabel EFI ini dan menetapkan tanda kontrol akses / izin padanya sehingga tidak dapat ditulis ulang. Mungkin bahkan dengan memadamkannya akan menjadi solusi bagi Anda (jika Anda hanya perlu menjual kembali laptop atau sesuatu). Bagi saya tidak diketahui apakah OS X menulis ulang secara teratur atau hanya ketika Anda mengubah kredensial WPA Anda.

EDIT : Saya baru tahu tentang perintah untuk mengambil kata sandi wifi dari NVRAM: /usr/libexec/airportd readNVRAM

Juga, dengan melampirkan GUID, nvram dapat benar-benar membaca nilai-nilai ini:

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

Jadi, mungkin Anda bisa menghilangkan variabel-variabel itu dan melihat bagaimana hasilnya.

EDIT 2 : seperti yang disebutkan oleh komentar sebelumnya, metode untuk menghapus variabel EFI adalah sebagai berikut (sudo harus dihapus):sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network

Masih belum jelas apakah variabel akan kembali.

Mike Myers
sumber
Wawasan yang menarik. Harap beri kami informasi terbaru jika Anda mempelajari lebih lanjut! IMHO jawaban yang lengkap untuk pertanyaan ini idealnya akan memberikan beberapa instruksi untuk menghapus kata sandi ... Ketika saya lakukan /usr/libexec/airportd readNVRAMada jaringan saat ini terdaftar tetapi Recovery Networksdaftarnya kosong.
n1000
Terima kasih. Saya menambahkan suntingan dengan catatan tentang cara menghapus variabel, tetapi saya tidak tahu bagaimana mencegahnya kembali.
Mike Myers
Bukankah Anda harus menjalankan sebagai root untuk mengakses nvram? Sepertinya mereka mengenkripsi kata sandi. Tidakkah seharusnya itu cukup dari perspektif keamanan?
videoguy
Anda tidak perlu menjalankan sebagai root untuk membaca nvram, tetapi Anda perlu menghapusnya.
Mike Myers
1
Adapun apakah mereka mengenkripsi kata sandi: kredensial jaringan nirkabel tidak disimpan sebagai kata sandi / frasa sandi, tetapi sebenarnya PSK, yang dalam bentuk biner. Ini mungkin terlihat terenkripsi ketika ditampilkan, tetapi tidak. Ini adalah string hex yang disandikan. Lebih mudah dibaca dengan perintah airportd daripada saat Anda menjalankan perintah nvram. Saya baru saja menguji dengan OS X 10.11, dan metode perintah nvram masih berfungsi. Sedangkan untuk airportd, tampaknya mengabaikan perintah "readNVRAM" sekarang apakah Anda root atau tidak. Saya tidak yakin apa yang mereka ubah. Halaman manualnya masih mengatakan perintah itu ada, tetapi tidak lagi berfungsi?
Mike Myers