Como evitar o armazenamento da senha do WiFi na partição de recuperação?

13

Eu sempre me perguntei como meu Mac poderia se conectar à Internet quando a partição de recuperação é inicializada e a minha partição principal do sistema está bloqueada (filevault2).

Alguns pesquisadores revelaram hoje (por exemplo , aqui , aqui e também em askdiferente ) que a senha do WiFi aparentemente está armazenada na NVRAM e que precisa ser redefinida para remover a senha. Como uma pessoa consciente de segurança, isso é inaceitável para mim. Ao usar a Criptografia de disco completo (ou seja, Filevault2), espero que o sistema seja seguro, também contra a minha rede.

Existe uma maneira de impedir que o OS X disponibilize a senha na partição de recuperação? Não tenho certeza de como ou quando ele entra na NVRAM.

UPDATE1 : A NVRAM contém as seguintes chaves: ( 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

As chaves efi-apple-recoverye efi-boot-deviceparecem que podem conter dados criptografados.

n1000
fonte
Passando por uma de suas postagens recentes, você tem um MacBook Pro (meados de 2012), certo? Se sim, este é um Mac Intel Base e não possui PRAM, como era o caso dos Mac com PowerPC. Macs baseados em Intel têm NVRAM. Forneça um link para o artigo que você mencionou.
user3439894
@ user3439894 obrigado pela lição de história :) Atualizada a pergunta. Eu acho que esse problema é independente do Mac e do OS X (notei pela primeira vez na versão 10.7).
N1000
1
Você perguntou " Existe uma maneira de impedir que o OS X armazene a senha na partição de recuperação? " E nos links fornecidos, parece que a senha está sendo armazenada na NVRAM e não na partição Recovery HD, duas coisas diferentes. Se em um terminal que você usa, você nvram -ppode dizer pela saída qual variável de firmware está mantendo a senha de Wi-Fi? Se sim, você pode limpar apenas essa variável sem redefinir toda a NVRAM. Use sudo nvram -d variable_nameem um terminal.
user3439894
@ user3439894 Interessante. Eu atualizei a pergunta.
N1000

Respostas:

17

Eu sempre me perguntei a mesma coisa: como impedir o OS X de armazenar a senha WPA (ou PSK) na NVRAM.

Usando o 'nvram', nunca consegui encontrar a variável que achava que possuía essas credenciais. Hoje, tentei inicializar com uma imagem ao vivo USB do Linux e executar o Chipsec . Seu comando para listar variáveis ​​EFI tem muito mais resultados do que eu estava executando com o nvram no OS X. Entre as variáveis ​​no meu MacBook Pro (meados de 2010) estavam:

  • rede atual
  • redes preferenciais
  • senha de segurança

Os dados da variável de rede atual incluem o SSID do meu roteador doméstico, em texto sem formatação. Em seguida, é preenchido com 0 bytes até o final, que é de 32 bytes, e representa os 64 dígitos hexadecimais da chave pré-compartilhada (PSK) .

A variável de redes preferenciais se parece com o mesmo conteúdo da rede atual .

A variável security-password contém exatamente o mesmo número de bytes que a senha EFI que eu defini, portanto, presumo que essa seja a senha do Firmware Lock. Eu suspeito que ele usa algum tipo de mascaramento / codificação. Uma teoria que eu tinha é que essas senhas são armazenadas como códigos de verificação do teclado ou algo assim, mas ainda não tenho informações suficientes.

Talvez usando o Chipsec ou outra ferramenta EFI, você pode zerar essas variáveis ​​EFI e definir um sinalizador de controle / permissões de acesso para que não possam ser reescritas. Talvez até zerá-los seja uma solução alternativa para você (se você precisar revender o laptop ou algo assim). Não se sabe se o OS X os reescreve regularmente ou apenas quando você altera suas credenciais WPA.

EDIT : Acabei de saber de um comando para recuperar senhas wifi da NVRAM: /usr/libexec/airportd readNVRAM

Além disso, anexando o GUID, o nvram pode realmente ler estes 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

Então, talvez você possa afastar essas variáveis ​​e ver como elas vão.

EDIT 2 : conforme mencionado em um comentário anterior, o método para excluir uma variável EFI é o seguinte (é necessário sudo para excluir):sudo nvram -d 36C28AB5-6566-4C50-9EBD-CBB920F83843:current-network

Ainda não está claro se a variável retornará.

Mike Myers
fonte
Informações interessantes. Por favor, mantenha-nos atualizados se você souber mais! IMHO uma resposta completa a esta pergunta seria idealmente fornecer algumas instruções para excluir a senha ... Quando eu faço, /usr/libexec/airportd readNVRAMhá a rede atual listada, mas a Recovery Networkslista está vazia.
N1000
Obrigado. Adicionei uma edição com uma nota sobre como excluir a variável, mas não sei como impedir que ela retorne.
18715 Mike Myers
Você não precisa estar executando como root para acessar o nvram? Parece que eles criptografam a senha. Não deveria ser suficiente do ponto de vista da segurança?
Videoguy 12/10
Você não precisa estar executando como root para ler o nvram, mas precisa excluí-lo.
Mike Myers
1
Quanto à criptografia da senha: as credenciais da rede sem fio não são armazenadas como senha / frase secreta, mas na verdade o PSK, que é binário. Pode parecer criptografado quando é exibido, mas não é. É uma sequência hexadecimal codificada. É mais fácil ler com o comando airportd do que quando você executa o comando nvram. Acabei de testar com o OS X 10.11, e o método de comando nvram ainda funciona. Quanto ao airportd, parece ignorar o comando "readNVRAM" agora, seja você root ou não. Não tenho certeza do que eles mudaram. Sua página de manual ainda diz que o comando existe, mas não funciona mais?
Mike Myers