¿Cómo evitar el almacenamiento de la contraseña de WiFi en la partición de recuperación?

11

Siempre me pregunté cómo podría conectarse mi Mac a Internet cuando la partición de recuperación se inicia y la partición de mi sistema principal está bloqueada (filevault2).

Algunos googles revelados hoy (por ejemplo, aquí , aquí , y también en preguntar diferente ) que la contraseña de WiFi aparentemente se almacena en la NVRAM y que debe restablecerse para eliminar la contraseña. Como persona consciente de la seguridad, esto es inaceptable para mí. Al usar Full Disk Encryption (es decir, Filevault2) espero que el sistema sea seguro, también contra mi red.

Entonces, ¿hay alguna manera de evitar que OS X haga que la contraseña esté disponible en la partición de recuperación? No estoy seguro de cómo o cuándo entra en NVRAM en primer lugar.

ACTUALIZACIÓN1 : La NVRAM contiene las siguientes teclas: ( 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

Las llaves efi-apple-recovery y efi-boot-device Parece que podrían contener datos encriptados.

n1000
fuente
De acuerdo con una de tus publicaciones recientes, tienes un MacBook Pro (mediados de 2012), ¿verdad? Si es así, este es un Intel Base Mac y no tiene PRAM como lo fue con los Mac basados ​​en PowerPC. Los Mac basados ​​en Intel tienen NVRAM. Por favor, proporcione un enlace al artículo que mencionó.
user3439894
@ user3439894 gracias por la lección de historia :) Actualicé la pregunta. Supongo que este problema es independiente de Mac y OS X (lo noté primero en 10.7).
n1000
1
Tu preguntaste " Entonces, ¿hay alguna manera de evitar que OS X almacene la contraseña en la partición de recuperación? "y a partir de los enlaces que proporcionaste, parece que la contraseña se está almacenando en la NVRAM, no en la partición de HD de recuperación, dos cosas diferentes. Si en una Terminal usas nvram -p ¿Puede saber por la salida qué variable de firmware tiene la contraseña de Wi-Fi? Si es así, puede borrar solo esa variable sin reiniciar toda la NVRAM. Utilizar sudo nvram -d variable_name en una terminal.
user3439894
@ usuario3439894 Interesante. Actualicé la pregunta.
n1000

Respuestas:

15

Siempre me he preguntado lo mismo: cómo evitar que OS X almacene la frase de contraseña WPA (o PSK) en la NVRAM.

Al usar 'nvram' nunca pude encontrar la variable que pensé que tenía estas credenciales. Hoy, he intentado arrancar a una imagen en vivo USB de Linux y ejecutar Chipsec . Su comando para enumerar las variables EFI tiene muchos más resultados de los que obtuve al ejecutar nvram dentro de OS X. Entre las variables en mi MacBook Pro (mediados de 2010) estaban:

  • red actual
  • redes preferidas
  • contraseña de seguridad

los red actual Los datos de la variable incluyen el SSID de mi enrutador doméstico, en texto plano. Luego se rellena con 0 bytes hasta el final, que es de 32 bytes, y representa los 64 dígitos hexadecimales de la Clave precompartida (PSK) .

los redes preferidas variable se parece a los mismos contenidos que red actual .

los contraseña de seguridad La variable contiene exactamente el mismo número de bytes que la contraseña de EFI que configuré, por lo que asumo que esta es la contraseña de bloqueo de firmware. Sospecho que utiliza algún tipo de enmascaramiento / codificación. Una teoría que tuve es que estas contraseñas se almacenan como códigos de escaneo del teclado o algo así, pero todavía no tengo suficiente información.

Tal vez utilizando Chipsec u otra herramienta EFI, puede poner a cero estas variables EFI y establecer un indicador de control de acceso / permisos en ellas para que no se puedan reescribir. Quizás incluso solo ponerlos a cero sea una solución para usted (si solo necesita revender la computadora portátil o algo así). No sé si OS X los vuelve a escribir con regularidad o solo cuando cambia sus credenciales de WPA.

EDITAR : Acabo de enterarme de un comando para recuperar contraseñas wifi de NVRAM: /usr/libexec/airportd readNVRAM

Además, al adjuntar el GUID, nvram puede leer estos valores:

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

Entonces, tal vez puedas eliminar esas variables y ver cómo van las cosas.

Editar 2 : como lo mencionó un comentario anterior, el método para eliminar una variable EFI es el siguiente (se requiere sudo para eliminar): sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network

Aún no está claro si la variable volverá.

Mike Myers
fuente
Perspectivas interesantes. Por favor, mantennos actualizados si aprendes más! En mi humilde opinión, una respuesta completa a esta pregunta idealmente proporcionaría alguna instrucción para eliminar la contraseña ... Cuando lo haga /usr/libexec/airportd readNVRAM hay la red actual en la lista, pero el Recovery Networks la lista esta vacía.
n1000
Gracias. Agregué una edición con una nota sobre cómo eliminar la variable, pero no sé cómo evitar que vuelva.
Mike Myers
¿No tienes que estar ejecutando como root para acceder a nvram? Parece que cifran la contraseña. ¿No debería ser suficiente desde la perspectiva de la seguridad?
videoguy
No es necesario que se ejecute como root para leer nvram, pero sí lo necesita para eliminar.
Mike Myers
1
En cuanto a si cifran la contraseña: las credenciales de la red inalámbrica no se almacenan como la contraseña / contraseña, sino en realidad el PSK, que está en binario. Puede parecer encriptado cuando se muestra, pero no lo está. Es una cadena hexadecimal codificada. Es más fácil de leer con el comando airportd que cuando ejecuta el comando nvram. Acabo de probar con OS X 10.11 y el método de comando nvram todavía funciona. En cuanto a airportd, parece ignorar el comando "readNVRAM" ahora si eres root o no. No estoy seguro de lo que cambiaron. ¿Su página de manual todavía dice que el comando existe, pero ya no funciona?
Mike Myers