bootloader

Secure Boot Linux

Secure Boot Linux

Linux: o que é 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 Basic Input Output System (BIOS). Em contraste, os Macs usam OpenFirmware, o Android tem um carregador de boot, apenas, e um Raspberry Pi começa a partir de um firmware mantido no System on a chip (SoC). Esta etapa inicial inclui verificações de hardware, bem como pesquisa de sistemas operacionais disponíveis na mídia de armazenamento que faz parte do computador como um disco rígido, CDROM / DVD ou um cartão SD, ou conectado a ele via rede (Network File System (NFS) , Inicialização 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.

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

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


O que é inicialização segura?

Inicialização segura é sobre confiança. A ideia geral por trás disso é iniciar a máquina de forma segura, a fim de evitar que o computador funcione com malware desde o início. Em geral, um começo limpo com um sistema confiável é uma abordagem a ser fortemente apoiada.

O Secure Boot faz parte da Unified Extensible Firmware Interface (UEFI) - 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 um substituto para o BIOS. Em 2012, versão 2.3.1 de UEFI foi introduzido com o Microsoft Windows 8. A Microsoft tornou obrigatório para os fabricantes de computador implementarem UEFI se desejassem obter uma certificação do Windows 8 para suas máquinas recém-construídas [15].

Mas por que a inicialização segura é chamada de inicialização segura? O que o torna uma opção de inicialização segura? A inicialização segura só permite a inicialização a partir de carregadores de inicialização atribuídos anteriormente e, portanto, destina-se a impedir a inicialização de malware ou outros programas indesejados. Um BIOS tradicional inicializaria qualquer software. Ele até permitiria que malware, como um rootkit, substituísse seu carregador de boot. O rootkit seria então capaz de carregar seu sistema operacional e permanecer completamente invisível e indetectável em seu sistema. Enquanto com a inicialização segura, o firmware do sistema primeiro verifica se o carregador de inicialização do sistema está 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 permitirá que o sistema inicialize. Essa assinatura válida deve seguir uma especificação da Autoridade de Certificação (CA) da UEFI da Microsoft.


Perspectivas diferentes

À primeira vista, isso parece muito bom, mas sempre há dois lados da moeda. Como as vantagens e desvantagens habituais coexistem. As críticas da imprensa elogiam ou demonizam a inicialização segura, dependendo de quem está escrevendo a crítica.

Em primeiro lugar, tenha em mente que a autoridade sobre as chaves criptográficas está nas mãos de um único player global - a Microsoft. Fornecer energia a milhões de máquinas para uma única empresa nunca é uma boa ideia. Dessa forma, a Microsoft garante a si mesma o controle total de sua máquina. 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 desejar instalar hardware de um fabricante diferente em um estágio posterior, você precisará garantir que a chave do novo componente foi armazenada no sistema de banco de dados. Deixando você com flexibilidade e escolhas restritas - especialmente se você for um desenvolvedor.

Em segundo lugar, não apenas suas escolhas de hardware são restritas, mas também as escolhas de seu sistema operacional devem ser limitadas devido à tecnologia UEFI introduzida pelo Windows. Isso significa que está dificultando a vida da comunidade Linux. Antes de seu uso em hardware baseado em UEFI, os carregadores de boot do Linux, como o GRUB, precisam primeiro ser certificados e, portanto, ele retarda o desenvolvimento bastante rápido, pois a comunidade Open Source é conhecida por. Ninguém sabe o que acontece se o validador central cometer um erro durante a validação ou bloquear o lançamento de um software atualizado.

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

Em quarto lugar, existem reservas quanto à segurança. De acordo com os desenvolvimentos atuais, o comprimento das chaves criptográficas é relativamente curto. A inicialização segura permite apenas certificados X509 e chaves 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, esse nível de segurança deverá ser quebrado. Hoje, as chaves criptográficas com comprimento de 4096 bits são recomendadas.

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


Soluções para código aberto

Mas onde há um problema, também há uma solução. A Microsoft oferece generosamente a oportunidade para os distribuidores Linux acessarem seu portal Microsoft Sysdev, a fim de ter seus carregadores de boot assinados [17]. No entanto, este serviço vem com uma etiqueta de preço.

Distribuições Linux têm apenas um “shim” [11] assinado no portal da Microsoft. O shim é um pequeno gerenciador de inicialização que inicializa o gerenciador de inicialização GRUB principal da distribuição Linux. A Microsoft apenas verifica o shim assinado e, a partir daí, sua distribuição Linux inicializa normalmente. Isso ajuda a manter o sistema Linux normalmente.

Conforme relatado por várias fontes, (U) EFI funciona bem com Fedora / RedHat, Ubuntu, Arch Linux e Linux Mint. Para Debian GNU / Linux não há suporte oficial em relação ao Secure Boot [9]. De qualquer forma, há uma postagem interessante no blog sobre como configurar isso [18], bem como uma descrição no Debian Wiki [14].

Alternativas para UEFI

UEFI não é o único sucessor do BIOS do PC - existem alternativas. Você pode dar uma olhada mais de perto no OpenBIOS [4], libreboot [7], Open Firmware [8,9] e coreboot [10]. Para este artigo, não os testamos, mas é útil saber que existem implementações alternativas e estão funcionando perfeitamente.


Conclusão

Como mencionado antes, a questão principal é a confiança. Com relação aos computadores, pergunte a si mesmo em quais partes do seu sistema você confia - os componentes de hardware (firmware, chips, TPM) e / ou os componentes de software (carregador de boot, sistema operacional, software que está em uso). Você não pode depurar todo o sistema. Pode ser útil saber que seu sistema operacional não funciona contra seus interesses e que você realiza as coisas para as quais comprou o sistema - de maneira segura, sem ser controlado por um monopolista.


Links e referências

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.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...
Top jogos do Oculus App Lab
Se você é proprietário de um fone de ouvido Oculus, deve estar informado sobre o carregamento lateral. Sideload é o processo de instalação de conteúdo...