O impacto UEFI e SecureBoot, qual a gravidade?


18

Estou planejando comprar um laptop novo nos próximos dias e estou bastante impressionado com os novos Ultrabooks legais. Como usuário de longa data do GNU / Linux, é claro que instalarei uma distribuição de minha escolha.

Provavelmente, vou ter que comprar um computador com o Windows 8 pré-instalado; e é provável que ele execute o UEFI e tenha "inicialização segura", na qual os kernels não assinados não serão inicializados.

UEFI provavelmente é bom, o BIOS pode precisar se aposentar. Eu acho que o mais cabeludo é o Secure Boot .

Tanto quanto eu posso entender, alguns confiáveis certificados serão incorporados em firmware e assim no kernel etc . Se o certificado do kernel puder ser rastreado até um dos firmware , o kernel inicializará; caso contrário, a UEFI me indicará e se recusará a inicializar. Esse processo impedirá a inicialização de software não certificado. Isso pode ter benefícios, embora eu não possa vê-los.

Eu me pergunto como um kernel de código aberto pode obter uma dessas chaves e ainda estar livre . Eu li um tópico na lista de discussão do Linux em que um funcionário da Red hat pede a Linus Torvalds para puxar um conjunto de alterações que implementa a facilidade de analisar os binários de PE e tomar um conjunto complexo de ações para permitir que o kernel seja inicializado no modo Inicialização Segura (tanto quanto eu possa entender) ) Eles querem fazer isso porque a Microsoft assina apenas binários de PE. Torvalds rejeitou gentilmente esse conjunto de alterações, afirmando que o kernel já implementa o padrão, que não é PE . O RedHat está tentando empurrar esse código para o kernel, para que não precise bifurcá-lo um dia.

Veja, isso é uma coisa complicada. Deixe-me fazer minhas perguntas:

  • Quais benefícios vou obter com UEFI e Secure Boot, como usuário doméstico?
  • Como é feita essa assinatura ?
  • Quem pode obter assinaturas / certificados? É pago? Pode ser público? (Ele deve estar disponível no código fonte do Linux, não é?)
  • A Microsoft é a única autoridade para fornecer assinaturas? Não deveria haver uma fundação independente para fornecê-los?
  • Como será esse impacto de código aberto e kernels, desenvolvedores amadores / kernel acadêmica gratuitos etc . Por exemplo, esta inicialização ( um código do setor de inicialização muito básico ):

    hang:
       jmp hang
    times 510-($-$$) db 0
    db 0x55
    db 0xAA
    

Uma notícia neste site foi a fonte desta pergunta. Um grupo de usuários do Linux em espanhol chamado Hispalinux apresentou uma queixa contra a Microsoft sobre este assunto à Europan Comission.

Devo me preocupar? Recuso-me a usar nem software proprietário nem software assinado por empresas de confiança . Fiz isso até agora e quero continuar. Desde já, obrigado.


2
UEFIpor si só não é um grande problema, mas pode ser uma inicialização segura.
precisa saber é

3
Você sempre pode inicialização UEFI com inicialização segura desativada ...
jasonwryan

11
De acordo com este artigo, a Microsoft exige que os fornecedores impeçam a desativação do SecureBoot em dispositivos baseados em ARM para fornecer licença para o uso do logotipo compatível com o Windows 8.

11
Eu não olhei, mas se você não pode colocá-lo na sua placa-mãe e as coisas ainda funcionarem (cada dispositivo no estado adequado na transferência do POST-OS), isso não ajuda muito. E depois há o firmware da placa gráfica, por exemplo. Firmware do disco rígido? Teclado? ... Porém, isso está mais próximo da discussão do que dos pedidos de esclarecimento. (E, claro, pelo menos essa citação apenas afirma que UEFI é um esforço da comunidade; não a implementação específica.)
um CVn em

11
Dê uma olhada da Fundação Linux documento em UEFI e inicialização segura.
vonbrand

Respostas:


9

Esse processo impedirá a inicialização de software não certificado. Isso pode ter benefícios, embora eu não possa vê-los.

Você tem um novo mecanismo de segurança para controlar o que pode eo que não pode ser inicializado pelo seu hardware. Um recurso de segurança. Você não sente vontade de precisar até que seja tarde demais. Mas eu discordo.

Eu li um tópico na lista de discussão do Linux em que um funcionário da Red hat pede a Linus Torvalds que faça um conjunto de alterações que implementa a facilidade de analisar os binários de PE e execute um conjunto complexo de ações para permitir que o kernel seja inicializado no modo Inicialização Segura (tanto quanto eu entendo )

Drivers, como o firmware da GPU, precisam ser assinados de acordo com a Inicialização segura, caso contrário, pode ser outro rootkit. O status quo é que esses drivers são assinados no formato PE. O kernel pode inicializar sem eles, mas o hardware não funciona. A análise do formato PE no kernel é apenas uma opção tecnicamente mais simples para isso do que pedir a todos os fornecedores de hardware que assinem seus blobs para cada distribuição, ou configurar uma estrutura de espaço do usuário para fazer isso. Linus decide não chupar o pau da Microsoft. Isso não é um argumento técnico.

Quais benefícios vou obter com UEFI e Secure Boot, como usuário doméstico?

O recurso mais visível é a inicialização rápida da UEFI. Eu tenho minhas mãos em vários desktops com logotipo do Windows 8 e eles inicializam tão rápido que muitas vezes sinto falta de abrir o menu de inicialização. Intel e OEMs têm alguma engenharia nisso.

Se você é do tipo de usuário do Linux que odeia inchaço e duplicação de código com paixão, também pode querer gerenciar a inicialização múltipla no nível do firmware e se livrar dos gerenciadores de inicialização. O UEFI fornece um gerenciador de inicialização com o qual você pode inicializar diretamente no kernel ou optar por inicializar outro SO com o menu de firmware. Embora possa precisar de alguns ajustes.

Além disso, gráficos mais sofisticados durante o tempo de inicialização e no menu do firmware. Melhor segurança durante a inicialização (Inicialização Segura). Outros recursos (inicialização de rede IPv4 / 6, dispositivos de inicialização de 2 TB + etc.) destinam-se principalmente a usuários corporativos.

De qualquer forma, como Linus disse , o BIOS / UEFI deveria "simplesmente carregar o sistema operacional e dar o fora daqui", e o UEFI certamente parece o mesmo para usuários domésticos com inicialização rápida. Certamente faz mais coisas do que o BIOS, mas se estamos falando de usuários domésticos, eles não se importam com isso.

Como é feita essa assinatura?

Teoricamente, um binário é criptografado com uma chave privada para produzir uma assinatura. Em seguida, a assinatura pode ser verificada com a chave pública para provar que o binário é assinado pelo proprietário da chave privada e, em seguida, o binário verificado. Veja mais na Wikipedia .

Tecnicamente, apenas o hash do binário é assinado, e a assinatura é incorporada no binário com o formato PE e ajustes adicionais no formato.

Processualmente, a chave pública é armazenada no firmware pelo seu OEM e é da Microsoft. Você tem duas opções:

  1. Gere seu próprio par de chaves e gerencie-os com segurança, instale sua própria chave pública no firmware e assine o binário com sua própria chave privada ( sbsign do Ubuntu ou pesign do Fedora) ou
  2. Envie seu binário para a Microsoft e deixe-o assinar.

Quem pode obter assinaturas / certificados? É pago? Pode ser público? (Ele deve estar disponível no código fonte do Linux, não é?)

Como assinaturas / certificados são incorporados em binários, espera-se que todos os usuários os obtenham. Qualquer pessoa pode configurar sua própria CA e gerar um certificado para si mesma. Mas se você deseja que a Microsoft gere um certificado para você, você deve passar pela Verisign para verificar sua identidade. O processo custa US $ 99. A chave pública está no firmware. A chave privada está no cofre da Microsoft. O certificado está no binário assinado. Nenhum código fonte envolvido.

A Microsoft é a única autoridade para fornecer assinaturas? Não deveria haver uma fundação independente para fornecê-los?

O lado técnico é bastante trivial, comparado ao processo de gerenciamento de PKI, verificação de identidade, coordenação com todos os fabricantes conhecidos de OEM e hardware. Isso custa um caro. Por acaso, a Microsoft possui infraestrutura (WHQL) e experiência há anos. Então eles se oferecem para assinar binários. Qualquer fundação independente pode se oferecer para oferecer a mesma coisa, mas nenhuma até agora.

Em uma sessão da UEFI na IDF 2013, vejo que a Canonical também começou a colocar sua própria chave em algum firmware de tablet. Portanto, a Canonical pode assinar seus próprios binários sem passar pela Microsoft. Mas é improvável que assinem binários para você porque não sabem quem você é.

Como isso afetará os kernels de código aberto e gratuito, os desenvolvedores amadores / acadêmicos do kernel etc.

Seu kernel personalizado não será inicializado no Secure Boot, porque não está assinado. Você pode desligá-lo embora.

O modelo de confiança do Secure Boot bloqueia alguns aspectos do kernel. Como você não pode destruir seu kernel, escrevendo para / dev / kmem, mesmo que você seja root agora. Você não pode hibernar para o disco (sendo processado upstream) porque não há como garantir que a imagem do kernel não seja alterada para um kit de inicialização ao reiniciar. Você não pode despejar o núcleo quando o kernel entra em pânico, porque o mecanismo do kdump (kexec) pode ser usado para inicializar um kit de inicialização (também sendo trabalhado upstream). Isso é controverso e não é aceito por Linus no kernel da linha principal, mas algumas distribuições (Fedora, RHEL, Ubuntu, openSUSE, SUSE) são enviadas com seus próprios patches de Inicialização Segura de qualquer maneira.

Pessoalmente, a assinatura do módulo necessária para a criação de um kernel do Secure Boot custa 10 minutos, enquanto a compilação real leva apenas 5 minutos. Se eu desativar a assinatura do módulo e ativar o ccache, a criação do kernel leva apenas um minuto.

UEFI é um caminho de inicialização completamente diferente do BIOS. Todo o código de inicialização do BIOS não será chamado pelo firmware UEFI.

Um grupo de usuários do Linux em espanhol chamado Hispalinux apresentou uma queixa contra a Microsoft sobre este assunto à Europan Comission.

Como dito acima, ninguém, exceto a Microsoft, intensificou o serviço público. Atualmente, não há evidências da intenção da Microsoft de fazer algum mal com isso, mas também não há nada para impedir que a Microsoft abuse do seu monopólio de fato e faça uma viagem de poder. Portanto, embora os grupos de usuários do FSF e Linux possam não parecer muito pragmáticos e não tenham realmente se sentado para resolver problemas de forma construtiva, é necessário que as pessoas pressionem a Microsoft e avisem sobre as repercussões.

Devo me preocupar? Recuso-me a usar nem software proprietário nem software assinado por empresas confiáveis. Fiz isso até agora e quero continuar.

Razões para adotar o Secure Boot:

  • Elimina um vetor de ataque de segurança real.
  • É um mecanismo técnico para dar ao usuário mais liberdade para controlar seu hardware.
  • Os usuários do Linux precisam entender o mecanismo de Inicialização Segura e agir proativamente antes que a Microsoft chegue ao monopólio da política de Inicialização Segura .

2
Obrigado por esta resposta detalhada e impressionante! Muito abrangente. O UEFI parece bem legal, embora eu não tenha usado nem escrito código para ele.

11
Resposta muito boa, de fato. Apenas duas coisas: 1) geralmente existe a possibilidade de carregar suas próprias chaves no UEFI - dessa forma, você pode inicializar com segurança qualquer coisa que assinar; 2) A inicialização segura é segura apenas até o ponto em que se confia na UEFI - se alguém usa uma atualização maliciosa de firmware, a cadeia de confiança é interrompida. E isso não é inconcebível .
Peterph

Então, as distribuições GNU / Linux usam o FastBoot / QuickBoot? Não vejo por que seria difícil, mas também não consigo encontrar informações sobre isso - mas como você menciona isso como o recurso visível para o usuário final, acho que ele finalmente é usado?
Hi-Angel

9

Acabei de passar por isso com uma recente compra de laptop que acompanha o Windows 8 e a inicialização segura UEFI. Depois de muito tempo e pesquisa, eis o que posso responder:

  • Não parece que você se encaixa na categoria "usuário doméstico".

Os benefícios da UEFI que o usuário comum notará é que a primeira coisa que eles vêem na tela será a exibição do carregador de inicialização UEFI da marca Microsoft / Vendor. Nenhuma dessas coisas assustadoras, como "Pressione Del para instalação, F11 para selecionar o dispositivo de inicialização", etc.

Em seguida, ele fará a transição agradável para a tela de espera do kernel / carregador de inicialização da Microsoft. Isso apresenta um "poder de solicitar" a experiência temática da Microsoft. Se esse é um benefício real, está nos olhos de quem vê, eu acho. Fiquei muito impressionado por não ter as informações normais que espero ver na inicialização. Por exemplo, boa sorte se o seu fornecedor não usar uma chave padrão para entrar na configuração básica do UEFI / Bios.

Ah, sim, e a teoria é que isso interromperá os vírus do setor de inicialização ou, pelo menos, fará com que os criadores criem / roubem a identificação de alguém e paguem US $ 99 à Verisign (a rota RedHat Fedora. Pesquise no Google).

Ah, e há o problema. Qualquer pessoa pode assinar código com qualquer tecla. O problema é que a máquina executará apenas o código assinado por uma chave de autoridade confiável. A metade pública da chave é instalada no núcleo UEFI dos sistemas na fábrica e é usada para verificar a assinatura dos programas UEFI (código de inicialização) assinados com a chave privada.

Adivinha quem é a chave pública instalada na fábrica? Adivinha quem exige que a Inicialização Segura seja ativada por padrão?

Todo fabricante de sistemas obviamente colocará a chave da Microsoft lá. Eles também podem inserir as chaves da Canonical (Ubuntu), da Red Hat, da Apple, etc. Mais chaves significam mais pontos por violações, e obviamente há um limite físico para o quanto elas poderiam armazenar.

E qual é a solução para um usuário de computador rebelde como você?

  • Espero que o fornecedor do sistema permita que você acesse a configuração de inicialização do sistema

  • Espero que eles permitam desativar a inicialização segura. O código de inicialização do Windows ainda será executado sem inicialização segura.

  • Se você tiver realmente sorte, o fornecedor do sistema permitirá que você insira suas próprias chaves de autoridade de certificação e você poderá assinar suas próprias coisas. Isso só é realmente necessário se você quiser brincar com o Secure Boot.

Meu laptop MSI permite que eu faça todas as opções acima.

Eu gostaria de ver um mundo em que qualquer pessoa possa pegar uma cópia gratuita de uma distribuição Linux e substituir seu sistema operacional. Isso é o que tínhamos antes do Secure Boot. Também tivemos muitos vírus no setor de inicialização. Ter que desativar a inicialização segura na configuração do sistema provavelmente é um obstáculo pequeno o suficiente para verificar se você tem capacidade cerebral para instalar um sistema operacional ou conhece alguém que o faça.

Não ter a capacidade de desligá-lo é uma coisa ruim, e isso depende do fabricante. Não culpe a Microsoft, a menos que esteja "convencendo" o fabricante a impedir a desativação da inicialização segura.


Bem-vindo e obrigado! Resposta muito legal, mas vou esperar um pouco mais antes de aceitar, pois quero ver os pensamentos de outras pessoas.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.