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

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

Algunas búsquedas en Google revelaron hoy (por ejemplo , aquí , aquí y también en askdifferent ) que la contraseña WiFi aparentemente está almacenada en NVRAM y que debe restablecerse para eliminar la contraseña. Como persona consciente de la seguridad, esto es inaceptable para mí. Cuando uso 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.

UPDATE1 : La NVRAM contiene las siguientes claves: ( 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 claves efi-apple-recoveryy efi-boot-deviceparece que podrían contener datos encriptados.

Según una de sus publicaciones recientes, tiene una MacBook Pro (mediados de 2012), ¿verdad? En caso afirmativo, se trata de un Intel Base Mac y no tiene PRAM como en los Mac basados ​​en PowerPC. Los Mac basados ​​en Intel tienen NVRAM. Proporcione un enlace al artículo que mencionó.
@ user3439894 gracias por la lección de historia :) Se actualizó la pregunta. Supongo que este problema es independiente de Mac y OS X (lo noté por primera vez en 10.7).
Usted preguntó: " ¿Hay alguna manera de evitar que OS X almacene la contraseña en la partición de recuperación? " y, según los enlaces que proporcionó, parece que la contraseña se almacena en NVRAM, no en la partición Recovery HD, dos cosas diferentes. Si en una Terminal que usa nvram -p, ¿puede saber a partir de la salida qué variable de firmware contiene la contraseña de Wi-Fi? En caso afirmativo, puede borrar solo esa variable sin restablecer toda la NVRAM. Usar sudo nvram -d variable_nameen una Terminal.
@ usuario3439894 Interesante. Actualicé la pregunta.

Respuestas (1)

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

Usando 'nvram' nunca pude encontrar la variable que pensé que contenía estas credenciales. Hoy, intenté arrancar con una imagen USB en vivo de Linux y ejecutar Chipsec . Su comando para enumerar las variables EFI tiene muchos más resultados de los que obtenía 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 datos de la variable de red actual incluyen el SSID de mi enrutador doméstico, en texto sin formato. Luego se rellena con 0 bytes hasta el final, que son 32 bytes y representan los 64 dígitos hexadecimales de la clave precompartida (PSK) .

La variable de redes preferidas tiene el mismo contenido que la red actual .

La variable de contraseña de seguridad contiene exactamente la misma cantidad de bytes que la contraseña 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 tenía es que estas contraseñas se almacenan como códigos de escaneo de teclado o algo así, pero aún no tengo suficiente información.

Tal vez usando 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. Tal vez incluso ponerlos a cero sea una solución para usted (si solo necesita revender la computadora portátil o algo así). Desconozco si OS X los reescribe regularmente o solo cuando cambia sus credenciales 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 va.

EDITAR 2 : como se mencionó en 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

Todavía no está claro si la variable regresará.

Ideas interesantes. ¡Por favor manténganos actualizados si aprende más! En mi humilde opinión, una respuesta completa a esta pregunta idealmente proporcionaría algunas instrucciones para eliminar la contraseña ... Cuando lo hago /usr/libexec/airportd readNVRAM, aparece la red actual en la lista, pero la Recovery Networkslista está vacía.
Gracias. Agregué una edición con una nota sobre cómo eliminar la variable, pero no sé cómo evitar que regrese.
¿No tienes que estar ejecutando como root para acceder a nvram? Parece que encriptan la contraseña. ¿No debería ser suficiente desde la perspectiva de la seguridad?
No es necesario que se ejecute como root para leer nvram, pero sí para eliminarlo.
En cuanto a si cifran la contraseña: las credenciales de la red inalámbrica no se almacenan como contraseña/frase de acceso, sino como PSK, que está en binario. Puede parecer cifrado cuando se muestra, pero no lo es. 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 aún funciona. En cuanto a airportd, parece ignorar el comando "readNVRAM" ahora, ya sea que sea 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?
Gracias. Nota: El número muy largo en el nombre de la clave variable en el comando de eliminación dado es universal y también funcionó en mi computadora. Originalmente pensé que necesitaba un número diferente en mi máquina. pero funcionó. Gracias por la solución.