Linux de inicialização segura

Linux de inicialização segura

Linux: o que é uma inicialização segura?

No início, um computador executa um programa específico para detectar e inicializar seus componentes de hardware. Tradicionalmente, os PCs compatíveis com IBM usam o sistema de saída de entrada básico (BIOS). Por outro lado, os Macs usam o OpenFirmware, o Android possui apenas um carregador de inicialização, e um Raspberry Pi começa a partir de um firmware mantido no sistema em um chip (SOC). Esta etapa inicial inclui verificações de hardware, além de procurar sistemas operacionais disponíveis em mídias de armazenamento que fazem parte do computador como um disco rígido, cdrom/dvd ou um cartão SD ou conectado a ele via rede (sistema de arquivos de rede (NFS) , Bota pxe).

A ordem de pesquisa real depende das configurações do BIOS do computador. A Figura 2 mostra uma lista de dispositivos disponíveis para inicializar de.

No final, uma lista de sistemas operacionais disponíveis com parâmetros específicos (chamados “opções de inicialização disponíveis”) é exibida em um menu do qual você escolhe o sistema operacional desejado para iniciar.

Desde 2012, a Boot Secure está em uso. Este artigo explicará o que é, qual é a intenção por trás disso e como funciona. Além disso, responderemos à pergunta se a inicialização segura for necessária para máquinas baseadas em Linux e como as distribuições Linux lidam com este caso.


O que é uma bota segura?

Botta segura é sobre confiança. A idéia geral por trás dela é iniciar a máquina de uma maneira segura para impedir que o computador funcione com malware desde o início. Em geral, um começo limpo com um sistema confiável é uma abordagem para ser fortemente suportada.

A Botta Segura faz parte da interface de firmware extensível (UEFI) unificada - uma interface central entre o firmware, os componentes individuais do computador e o sistema operacional [3]. Por um período de cerca de cinco anos, foi desenvolvido pela Intel e Microsoft como substituto para o BIOS. Em 2012, versão 2.3.1 da UEFI foi introduzido com o Microsoft Windows 8. A Microsoft tornou obrigatório que os fabricantes de computadores implementem a UEFI se eles desejarem obter uma certificação Windows 8 para suas máquinas de construção recém -construídas [15].

Mas por que a bota segura é chamada de inicialização segura? O que o torna uma opção de inicialização segura? A inicialização segura permite apenas a inicialização de carregadores de inicialização atribuídos anteriormente e, portanto, destina -se a impedir que malware ou outros programas indesejados iniciem. Um BIOS tradicional inicializaria qualquer software. Até permitiria malware, como um rootkit, substituir seu carregador de inicialização. O rootkit seria capaz de carregar seu sistema operacional e permanecer completamente invisível e indetectável em seu sistema. Considerando que, com inicialização segura, o firmware do sistema verifica primeiro se o carregador de inicialização do sistema é assinado com uma chave criptográfica. A chave criptográfica é uma chave que foi autorizada por um banco de dados contido no firmware. Somente se a chave for reconhecida, ela permitirá que o sistema inicialize. Uma assinatura tão válida deve seguir uma especificação da Microsoft UEFI Certificate Authority (CA).


Perspectivas diferentes

À primeira vista, isso parece muito bom, mas sempre há dois lados de uma moeda. Como sempre, vantagens e desvantagens coexistem. Pressione as análises elogios ou demonize a inicialização segura, dependendo de quem está escrevendo a revisão.

Primeiro, lembre -se de que a autoridade sobre as chaves criptográficas está nas mãos de um único jogador global - Microsoft. Dar poder a milhões de máquinas a uma única empresa nunca é uma boa ideia. Dessa forma, a Microsoft se protege. Com uma única decisão, a Microsoft é capaz de bloquear todo o mercado com um único golpe e barrar seus concorrentes e você como cliente. E.g. Se você desejar instalar hardware de um fabricante diferente em um estágio posterior, você precisaria garantir que a chave do novo componente tenha sido armazenada no sistema de banco de dados. Deixando você com flexibilidade e escolhas restritas - especialmente se você é um desenvolvedor.

Segundo, não apenas suas opções de hardware são restritas, mas também as opções do seu sistema operacional pretendem ser limitadas devido à tecnologia UEFI introduzida pelo Windows. Isso significa que está dificultando a vida para a comunidade Linux. Antes de seu uso em hardware baseado na UEFI, os carregadores de botas Linux como o Grub primeiro devem ser certificados e, portanto, diminuem os desenvolvimentos bastante rápidos à medida que a comunidade de código aberto é conhecido. Ninguém sabe o que acontece se o validador central comete um erro durante a validação ou bloquear a liberação de um software atualizado.

Terceiro, o que o termo malware significa hoje e amanhã? Inclui sistemas operacionais de concorrentes [5] ou são excluídos? O processo de validação corre atrás das cortinas e ninguém pode provar isso.

Quarto, há reservas em relação à segurança. De acordo com os desenvolvimentos atuais, a duração das chaves criptográficas é relativamente curta. A inicialização segura permite apenas certificados x509 e teclas RSA com um comprimento fixo de 2048 bits [16]. Em um futuro próximo, com o uso de paralelização em massa e mais poder de computação com base na virtualização, espera -se que esse nível de segurança seja quebrado. Hoje, as chaves criptográficas com um comprimento de 4096 bits são recomendadas.

Quinto, parece que o software, que é oferecido por um grande fornecedor e certificado é seguro e sem erros. Como a história mostra que todos sabemos que isso não é verdade, o software sempre contém bugs. Uma certificação apenas leva você a uma falsa sensação de segurança.


Soluções para código aberto

Mas onde há um problema, há uma solução também. A Microsoft oferece generosamente a oportunidade para os distribuidores do Linux acessarem seu portal Microsoft Sysdev para que seus carregadores de botas assinem [17]. Este serviço, no entanto, vem com um preço.

As distribuições Linux têm apenas um "calço" [11] assinado no portal da Microsoft. O calço é um pequeno carregador de inicialização que inicializa as distribuições Linux principal carregador de inicialização do Grub Grub. A Microsoft verifica apenas o calço assinado e depois suas botas de distribuição Linux normalmente. Isso ajuda a manter o sistema Linux como de costume.

Conforme relatado em várias fontes, (U) EFI funciona bem com Fedora/Redhat, Ubuntu, Arch Linux e Linux Mint. Para o Debian GNU/Linux, não há apoio oficial em relação à Bot Secure [9]. De qualquer forma, há um post interessante sobre como configurar isso [18], bem como uma descrição no Wiki Debian [14].

Alternativas à UEFI

UEFI não é o único sucessor do PC BIOS - existem alternativas. Você pode dar uma olhada mais de perto no OpenBios [4], Libreboot [7], firmware aberto [8,9] e Coreboot [10]. Para este artigo, não os testamos, mas é útil saber que as implementações alternativas existem e estão trabalhando sem problemas.


Conclusão

Como mencionado antes da questão -chave, a confiança. Com relação aos computadores, pergunte -se qual partes do seu sistema você confia - os componentes de hardware (firmware, chips, TPM) e/ou componentes de software (carregador de inicialização, sistema operacional, software que está em uso). Você não pode depurar todo o sistema. Pode ajudar a saber que seu sistema operacional não funciona contra seus interesses e que você faz as coisas pelas quais comprou o sistema - de uma maneira segura sem ser controlado por um monopolista.


Links e referências

  • [1] Kristian Kißling: Debian 9 Stretch Ohne Secure Boot, Linux-Magazin
  • [2] Uefi Nachbearbeitung
  • [3] EFI e Linux: O futuro está aqui, e é horrível - Matthew Garrett
  • [4] OpenBios, https: // OpenBios.Info/Welcome_to_openbios
  • [5] Hendrik Schwartke, Ralf Spenneberg: Einlaßkontrolle. UEFI-SECURE-BOOT UNS alternativo BetriebsSysteme, Admin-Magzin 03/2014
  • [6] BootVorgang Eines Apple Mac
  • [7] Libreboot, https: // libreboot.org/
  • [8] Firmware aberto (Wikipedia)
  • [9] Firmware aberto, https: // github.com/openbios
  • [10] Coreboot, https: // www.Coreboot.org/welcome_to_coreboot
  • [11] Shim (Github), https: // github.com/rhboot/calço
  • [12] Thorsten Leemhuis: UEFI Secure Boot und Linux, FAQ
  • [13] Bom Cromwell: como o Linux Boot? Parte 3: UEFI para Shim para o próximo link na cadeia
  • [14] Secureboot em Debian, https: // wiki.Debian.Org/Secureboot
  • [15] Chris Hoffman: como a bota segura funciona no Windows 8 e 10, e o que significa para o Linux
  • [16] James Bottomley: o significado de todas as teclas da UEFI
  • [17] Microsoft Hardware Developer Center, UEFI Firmware Assination
  • [18] Botta segura com testes do Debian

Reconhecimentos

Frank Hofmann e Mandy Neumeyer são co-autores do artigo. Os autores gostariam de agradecer a Justin Kelly por sua ajuda e comentários críticos ao escrever este artigo.