Criptografia de disco completo na GPT em problemas da BIOS

0

Como criptografar todos os dados no disco rígido (incluindo / boot e 1MB BIOS boot partition)? Como criar partição de BIOS inicializável do GRUB com criptografia? Meu disco rígido está vazio agora. Eu não posso usar este laptop agora.

    
por Stanislav Mikhaylenko 26.10.2016 / 21:50

1 resposta

3

Você não pode criptografar a partição de inicialização do BIOS; o processo de inicialização em um computador baseado em BIOS que usa o GRUB para inicializar o Ubuntu (ou qualquer outro Linux) é mais ou menos assim:

  1. A CPU liga e executa o código da BIOS, que não entende a criptografia.
  2. O
  3. BIOS lê o primeiro setor (MBR) do disco rígido, que é necesariamente não criptografado.
  4. O código MBR, que é pequeno, lê o código do carregador de inicialização mais extenso armazenado em outro local - normalmente na Partição de inicialização do BIOS no caso do GRUB em um disco GPT.
  5. O GRUB lê seu arquivo de configuração, normalmente de /boot/grub/grub.cfg . Também pode carregar código adicional de módulos armazenados em /boot/grub .
  6. O GRUB lê o kernel e o arquivo inicial de disco RAM (initrd) e, em seguida, executa o kernel.
  7. O kernel executa scripts de inicialização no initrd.
  8. O sistema de arquivos principal é montado e outros processos de inicialização são controlados a partir dele.

Como o BIOS não suporta criptografia, o MBR não pode ser criptografado. Em teoria, o MBR poderia incluir código de criptografia e, portanto, a partição de inicialização do BIOS poderia ser criptografada; no entanto, na prática isso é impraticável, talvez no extremo, porque o código de inicialização do MBR é um total de 440 bytes de tamanho (446 bytes se você esticar um pouco as definições). Note que bytes, não é KiB, MiB ou algum outro valor. O GRUB usa a Partição de Inicialização do BIOS porque 440 bytes são inadequados para fazer qualquer coisa além de direcionar o processo de inicialização para esse local maior; enfiar software de criptografia nesse espaço é um obstáculo que está além do campo da prática (e talvez totalmente impossível).

Assim, o primeiro ponto no qual a criptografia é uma possibilidade prática é depois que a Partição de Inicialização do BIOS é lida e, de fato, o GRUB suporta a leitura de sistemas de arquivos criptografados, portanto seu kernel Linux pode ser armazenado em um sistema de arquivos criptografado. (Pelo menos é o que eu ouço; nunca tentei eu mesmo).

Observe também que a criptografia da partição de inicialização do BIOS fornecerá proteções de privacidade adicionais limitadas ou não. A maior parte do que vai lá é software de código aberto. Ele pode ser ajustado e customizado para o seu sistema em particular, mas isso é principalmente para identificar a partição que contém o sistema de arquivos root ( / ) ou /boot do Linux, e talvez incluir drivers necessários em seu computador em particular. AFAIK, não há senhas, nomes de usuário ou outros dados confidenciais na partição de inicialização do BIOS. Se fosse possível, a criptografia da partição de inicialização do BIOS pode dificultar o uso de malware - mas, nesse cenário, o malware precisaria apenas ajustar o MBR para redirecionar o processo de inicialização para seu próprio código ou para - escreva a Partição de Inicialização do BIOS usando suas próprias chaves de criptografia.

Dito isso, em teoria, um disco inteiro poderia ser criptografado se o próprio disco, ou o controlador ao qual ele está conectado, suportasse esse recurso. Isso exigiria o disco ou o controlador para fazer a criptografia e descriptografia, "abaixo" do nível do BIOS. Não sei com certeza como uma senha poderia ser entregue em um disco conectado a um controlador padrão, mas se você tivesse uma placa de plug-in com um controlador de disco criptografado, ela necessariamente teria uma interface com o BIOS normal e poderia, portanto, solicitar uma senha no momento da inicialização. Para o sistema operacional, o disco se pareceria com um disco normal não criptografado. Lembro-me vagamente de ouvir sobre essas soluções, mas nunca as examinei e não sei se esse hardware está disponível hoje em dia. (Eu posso estar lembrando de reclamações por vaporware).

Note também que um EFI / UEFI funciona de maneira muito diferente de um BIOS; mas AFAIK, EFI / UEFI também não suporta a criptografia de 100% de um disco - o carregador de boot ainda deve residir em uma partição de sistema EFI não criptografada (ESP). A EFI é muito maior e mais complexa do que a BIOS, embora eu possa não ter conhecimento de um recurso obscuro, e pode ser mais fácil adicionar esse suporte à especificação EFI no futuro. Se você estiver interessado em criptografar a partição de inicialização do BIOS como uma forma de evitar adulterações de malware, o recurso de inicialização segura da maioria dos UEFIs modernos destina-se a resolver esse problema. Ao assinar o primeiro código de inicialização lido a partir do disco e fornecer uma cadeia de assinatura para o sistema operacional, o Secure Boot (teoricamente) impede a violação.

    
por Rod Smith 28.10.2016 / 15:51