Interface de firmware extensível unificada

A Unified Extensible Firmware Interface (abreviatura UEFI , inglês para Unified Extensible Firmware Interface ) é uma definição de interface publicada pela Intel em 1998 para firmware de computador para a Intel, ao mesmo tempo que uma implementação de referência imaginada. A UEFI se estabeleceu como sucessora do BIOS e, como tal, forma a interface central entre o firmware da plataforma e o sistema operacional .

Originalmente, a Intel era para o firmware de 64 bits - arquitetura Itanium desenvolvida como Extensible Firmware Interface , abreviatura de EFI . A EFI surgiu com a arquitetura x86 ao mesmo tempo que a extensão do conjunto de instruções x64 , com a qual a arquitetura x86 IA-32 de 32 bits também se tornou uma arquitetura de 64 bits. No entanto, o EFI foi inicialmente implementado apenas como firmware de 32 bits, incluindo: com Intel Macs da Apple que usaram EFI versão 1.10 como firmware de 2006 em diante. A partir da versão 2.0 do EFI, existe oficialmente uma implementação de 64 bits no x86.

Para permanecer em sistemas x86 com software existente compatível com o Módulo de Suporte de Compatibilidade em Inglês integrado, CSM curto, uma camada de compatibilidade de BIOS, permanece totalmente compatível com o BIOS UEFI. Desde cerca de 2010, a UEFI vem substituindo gradualmente o BIOS, que, portanto, também é conhecido como legado . No entanto, desde 2020, o CSM, o modo de compatibilidade do BIOS, foi omitido por fabricantes individuais.

Como o UEFI substituiu o firmware anterior - o BIOS - no IBM PC e em computadores compatíveis , o UEFI também é freqüentemente referido como UEFI BIOS e sua configuração de firmware é (ainda) freqüentemente referida como configuração do BIOS.

Os recursos essenciais da UEFI são o uso da tabela de partição GUID , que permanece parcialmente compatível com o registro mestre de inicialização usado pelo BIOS , suporte gráfico baseado em buffer de quadro , funcionalidade de rede e, desde a versão 2.3.1 da UEFI, inicialização segura , uma função que permite a inicialização em bootloader assinado anteriormente limitado e, portanto, malware ou outros programas indesejados para evitar que ele seja iniciado.

Localização da interface

funcionalidades

Em contraste com o antigo sistema BIOS, o UEFI contém interfaces e tabelas de dados com informações de plataforma, bem como serviços de inicialização e tempo de execução que estão disponíveis para o carregador do sistema operacional e, como resultado, o sistema operacional. O firmware UEFI oferece várias vantagens técnicas sobre o sistema BIOS:

  • A UEFI é independente do tipo de CPU e diferentes tipos de sistemas, incluindo arquitetura Arm e x64 , podem ser inicializados com ela.
  • Podem ser usados discos rígidos grandes com mais de 2 TB com uma tabela de partição GUID (GPT) introduzida como parte do UEFI .
  • Todos os dados e programas para UEFI são mantidos na forma de arquivos convencionais em uma partição separada, que deve estar no formato VFAT . Em contraste com o BIOS, nenhum dado como o do carregador do sistema operacional é mantido em certas áreas fixas e imutáveis ​​da memória, como o Master Boot Record (MBR).
  • Capacidade de rede. Em contraste com o Preboot Execution Environment (PXE) do BIOS mais antigo , que requer os drivers apropriados no BIOS da placa de rede, o UEFI é compatível com a rede e, com base no procedimento do PXE, permite inicializar diretamente pela rede.
  • Projeto geralmente modular e expansível nas estruturas. Por exemplo, é possível chamar um shell UEFI semelhante ao shell Unix durante o processo de inicialização.
  • O armazenamento permanente de certos dados, por exemplo, a sequência de inicialização de diferentes mídias, ocorre na NVRAM de acordo com os procedimentos especificados no padrão UEFI.

história

O BIOS do PC original apareceu em 1981 com o primeiro IBM PC . Há algum tempo, ele não é capaz de atender aos requisitos de hardware e sistemas operacionais modernos, apesar de muitas extensões posteriores. Em particular, não é adequado para 64 bits, e os fabricantes de hardware (como Intel ou AMD) não parecem mais ser capazes de realizar outras medidas temporárias para compensar essa falha.

Uma iniciativa da Intel para encontrar um substituto para o BIOS para uso na arquitetura Itanium ( Intel Architecture 64-Bit , IA-64 para breve) foi decisiva para o novo desenvolvimento EFI . No programa Intel Boot Initiative (IBI) fundado em 1998 , a ideia foi especificada.

O sucessor real do BIOS é o Firmware Foundation Code , que é lançado sob as condições da CPL ( Common Public License ) e implementa a Extensible Firmware Interface.

EFI unificado (UEFI)

Logotipo da UEFI

O Unified EFI Forum foi fundado em 2005 para promover e desenvolver o EFI . Além da Intel, AMD , Microsoft, Hewlett-Packard e muitos outros fabricantes de PC e BIOS também estão envolvidos, de forma que a interface agora conhecida como Unified EFI (UEFI) não é mais determinada apenas pela Intel. O EFI versão 2.0 foi lançado em janeiro de 2006.

Modo de segurança

Com a introdução do Windows 8 em 2012, o UEFI versão 2.3.1 foi cada vez mais introduzido com um mecanismo de inicialização seguro que restringe a inicialização para carregadores de inicialização previamente assinados . Isso aumenta a segurança na inicialização do sistema, uma vez que é impossível para os fabricantes de malware sem as assinaturas adequadas intervirem neste processo. Isso permite o início seguro de uma "cadeia de confiança" ininterrupta do firmware do hardware ao aplicativo do usuário. No entanto, isso não impede que todos os elos da cadeia também carreguem software "não confiável". Por exemplo, há um bootloader assinado pela Microsoft com Shim , que pode recarregar um GRUB não certificado e quaisquer outros binários por meio dele.

Shim tornou-se necessário porque muitos fabricantes de placas-mãe apenas fornecem assinaturas para produtos Microsoft em suas implementações UEFI e a instalação de assinaturas específicas do usuário em seu hardware, por exemplo, B. para a instalação de um kernel Linux, ou pelo menos não apenas possível com os recursos de bordo UEFI. Praticamente todas as distribuições atuais do Linux usam Shim para iniciar computadores com a Inicialização segura ativada.

Conforme os pesquisadores da Mitre Corporation anunciaram em meados de 2014, a implementação de referência da Intel da UEFI também tem uma falha de segurança que permite que o malware seja infiltrado continuamente . Uma função de atualização defeituosa é usada para isso, o que leva a estouros de inteiros e torna o código malicioso executável. Muitos usam o código de implementação de referência da Intel como base para sua UEFI.

Em 2016, tornou-se conhecida uma vulnerabilidade de segurança no bootloader da Microsoft que permitiu que a proteção fosse contornada.

Equipe de Resposta de Segurança UEFI (USRT)

A UEFI Security Response Team (USRT) foi fundada em 2017 para atuar como uma interface e pessoa de contato entre o pessoal de segurança de TI, como bons hackers (os chamados "chapéus brancos") e empresas que fabricam hardware baseado em UEFI. O objetivo é facilitar e encurtar o caminho que alguém deve seguir para informar a indústria sobre uma falha de segurança encontrada na UEFI, para que, em última análise, a indústria também possa reagir mais rapidamente com patches de segurança.

Implementações

Tianocore EDK2

Com o TianoCore EDK2, uma implementação de referência está disponível sob a licença BSD . Isso é baseado em um desenvolvimento anterior da Intel .

O submarino

A API UEFI está disponível no carregador de inicialização universal ( Das U-Boot ) desde 2017. Na arquitetura Armv8-A , as distribuições Linux usam a implementação U-Boot UEFI junto com GNU GRUB para inicializar (por exemplo, SUSE Linux ). O OpenBSD também usa a API UEFI para iniciar a partir do U-Boot.

Alternativas

A plataforma e processador independente Forth indústria baseada padrão Open Firmware (IEEE-1275) foi especificado para PowerPC e SPARC computadores em 1994 para estações de trabalho e servidores Unix . As vantagens técnicas significativas do EFI de desenvolvimento interno da Intel em comparação com o Open Firmware, além do aumento significativo da velocidade de execução (comparação entre Mac com Open Firmware e Mac com EFI do mesmo ano), não eram conhecidas na época.

Outra alternativa é o firmware coreboot (anteriormente LinuxBIOS ), que é licenciado sob a GPL . Coreboot é um sistema mínimo que inicializa o hardware apenas de tal forma que outro programa (uma chamada carga útil ) pode ser chamado, como um kernel Linux , um bootloader como GRUB , mas também firmware alternativo como um BIOS (usando SeaBIOS), firmware aberto ou UEFI (usando TianoCore).

Técnicas e possibilidades

O processo de um sistema começa com EFI

A interface EFI deve eliminar as desvantagens do BIOS, que se espalhou desde a década de 1980, e abrir novas possibilidades. De acordo com as especificações da EFI, incluem:

  • Fácil expansão (por exemplo, para gerenciamento de direitos digitais )
  • Módulo de rede embutido (para manutenção remota)
  • Preboot Execution Environment (sistema de inicialização de rede universal)
  • Suporte para placas gráficas de alta resolução no início do computador
  • opcionalmente, uma emulação de BIOS através do "Módulo de Suporte de Compatibilidade" (CSM) para manter a compatibilidade com os sistemas operacionais existentes que não suportam UEFI e requerem um BIOS
  • um shell por meio do qual, por exemplo, aplicativos EFI (* .efi) podem ser chamados
  • Os drivers podem ser integrados ao EFI como módulos para que não precisem mais ser carregados pelo sistema operacional. Tal como acontece com o Open Firmware , isso permite drivers independentes do sistema.
  • O sistema pode operar em modo sandbox , com gerenciamento de rede e armazenamento rodando no firmware em vez do sistema operacional.
  • O EFI oferece uma opção de seleção para os sistemas operacionais instalados no sistema e os inicia; Isso significa que os carregadores de boot (upstream dos sistemas operacionais) são supérfluos.
  • Com a GUID Partition Table (GPT), ele apresenta um sucessor mais flexível para tabelas de partição com base no registro mestre de inicialização . O GPT é necessário para inicializar a partir de um disco rígido > 2 TB ou para criar e gerenciar partições > 2 TB.

Penetração de mercado

O estabelecimento da Extensible Firmware Interface como substituto do BIOS falhou na área dos PCs inicialmente devido à resistência dos fabricantes de computadores e BIOS. Apenas a Apple usou EFI exclusivamente a partir da entrada no mercado x86 com Macs baseados em Intel .

Em fevereiro de 2008, a primeira placa-mãe x86 "normal" (P35 Neo3 da MSI ), que é baseada no chipset P35 da Intel, deve aparecer com EFI. No entanto, nunca foi publicado. No entanto, a MSI planejou o lançamento no mercado de EFI para placas P45 em julho de 2008. Ao contrário do que esta notícia sugeriu, a MSI não planejou o lançamento de uma placa-mãe com uma instalação EFI de fábrica, mas tem um EFI como um beta público para o placas-mãe mencionadas lá -, ou seja, a versão de teste. Em 2009, vários fabricantes se comprometeram com (U) EFI (incluindo Insyde , Intel e Phoenix ). As razões para isso são a compatibilidade x86_64 e o tempo de carregamento reduzido do respectivo sistema. No final de 2010, o fabricante Asus entregou as primeiras placas-mãe para o soquete 1155 com EFI.

A EFI é financiada principalmente pela Intel e - com algumas restrições - também pela Microsoft . Os sistemas Itanium da Intel funcionaram exclusivamente com EFI desde o início. Junto com CPUs da Intel sentou - se a partir de 2006 também Apple EFI. As versões do Windows para servidores IA - 64 com EFI existem desde o Windows 2000 . O Windows Vista (x64) tem suporte para UEFI 2.0 desde SP1, assim como o Windows Server 2008 (mesma base de desenvolvimento do Vista com SP1), mas não o padrão EFI 1.3 mais antigo, que tem sido usado em Macs Intel até agora.

Sistemas operacionais

Com a maioria dos sistemas operacionais, um kernel de 64 bits só pode usar drivers de 64 bits, incluindo drivers (U) EFI, e um kernel de 32 bits só pode usar drivers que também sejam de 32 bits. Isso geralmente significa que apenas um sistema operacional de 32 bits pode ser iniciado a partir de um firmware EFI de 32 bits (U) e apenas um sistema operacional de 64 bits pode ser iniciado a partir de um firmware EFI de 64 bits (U) (por exemplo, com Microsoft Windows e a maioria das distribuições Linux). No entanto, um EFI de 32/64 bits (U) não impede, em princípio, o início de um sistema operacional de 64/32 bits; Por exemplo, o bootloader da popular distribuição Linux Fedora pode iniciar um Linux de 64 bits em um sistema com apenas UEFI de 32 bits.

Itanium (IA-64)

A arquitetura Itanium da Intel e HP, também conhecida pela abreviatura IA-64 (" Intel Architecture 64-Bit"), foi a primeira arquitetura de computador na qual EFI foi usado como firmware. Os sistemas operacionais executados em computadores Itanium, portanto, suportam pelo menos a parte usada para carregar o próprio sistema operacional. Isso inclui as versões IA-64 do FreeBSD , HP-UX , Linux , NetBSD , OpenVMS e Windows ( Windows 2000 a Server 2008 R2 ).

x86 (IA-32)

O processador x86 foi retronimamente referido pela Intel como IA-32, que significa " Intel Architecture 32-Bit". No entanto, essa foi a arquitetura do processador para o x64 - instrução definida em 2003 também para a arquitetura de 64 bits.

janelas

Para usuários finais, o Windows (U) oferece suporte a EFI principalmente nas versões de 64 bits do Windows Vista com Service Pack 1 integrado ou Windows Server 2008; algumas versões do Windows de 32 bits também oferecem suporte à UEFI de 32 bits.

Para o sucessor do Windows 7, o Windows 8 , o EFI 2.x é recomendado. Os sistemas com discos de sistema com mais de 2 terabytes e os sistemas com processadores arm requerem EFI.

Todas as versões do Windows anteriores ao Vista para a arquitetura x86 funcionam apenas em placas-mãe (U) EFI se uma Camada de Compatibilidade do BIOS (CSM) estiver presente. Este é z. B. Fornecido por computadores Macintosh com processadores Intel, mas também faz parte da maioria das implementações UEFI atuais em placas-mãe de PC até 2020.

Linux

EFI também é compatível com Linux . A partir da versão 2.6.25, o branch estável do kernel Linux também oferece suporte para EFI para a arquitetura x86.

A HP tem desenvolvido o gerenciador de inicialização elilo desde o surgimento dos primeiros sistemas Itanium . Inicialmente, ele foi projetado apenas para IA-64 (Itanium), mas depois foi portado para IA-32 (x86) e x86-64 (x64). GRUB 2 também oferece suporte a PCs EFI.

O Fedora suporta EFI a partir da versão 17 na instalação e configura o sistema de acordo para poder trabalhar com EFI. O Debian suporta EFI da versão 7.0 Wheezy com seu próprio gerenciador de inicialização. O carregador de inicialização do Fedora ainda pode instalar e iniciar um Linux de 64 bits em um sistema compatível com 64 bits com apenas UEFI de 32 bits, o que a maioria das outras distribuições do Linux não pode fazer.

macOS (Mac OS X)

Os computadores Apple Macintosh com macOS (originalmente chamados de “Mac OS X” e de 2012 a 2016 “OS X”), que foram apresentados em janeiro de 2006 e todos os subsequentes , que são baseados em processadores Intel, usam EFI como firmware. Isso os torna - junto com alguns PCs de centro de mídia, como o Gateway 610 de 2003 - os primeiros computadores para o mercado de massa baseados em EFI. O uso exclusivo do EFI sem a camada de compatibilidade de BIOS opcional CSM inicialmente impediu o Windows XP de inicializar em computadores Macintosh baseados em Intel. Logo, porém, o projeto xom implementou uma emulação de BIOS que permitia que o Windows fosse iniciado.

A Apple atualizou o “BIOS Layer” (CSM) após alguns meses com uma atualização de firmware e até meados de outubro de 2007 ofereceu uma solução gratuita chamada “ Boot Camp ”, que possibilitou ter Mac OS X e Windows XP em duas partições de o mesmo Para instalar o computador e alternar entre o sistema operacional reiniciando ( inicializando ) ("solução de inicialização dupla"). Desde o lançamento do Mac OS X Leopard (10.5, 2007), o Boot Camp foi pré-instalado em todos os Macs Intel por padrão. A versão beta do Boot Camp, que também rodava no Mac OS X Tiger (10.4, 2005), não pode mais ser executada oficialmente.

Com o EFi-X , o firmware atualizável para PCs apareceu no verão de 2008, com o qual o OS X pode ser instalado a partir de um DVD original não modificado e disponível comercialmente em hardware selecionado de outros fabricantes, que é composto principalmente de uma combinação de placas-mãe de gigabyte com certos Nvidia - e placas gráficas ATI . O firmware EFi-X está alojado em um dongle USB, que é conectado a um slot USB interno na placa-mãe. Quando o sistema é iniciado, uma emulação EFI e um “gerenciador de inicialização múltipla” são carregados, os quais podem ser usados ​​para iniciar o OS X assim como o Windows XP, Vista ou Linux.

Enquanto isso, há também o bootloader Chameleon com o qual o macOS - kernel pode ser carregado diretamente, ou Clover , que é um Macintosh -EFI completamente emulado por software.

Também existe o firmware Ozmosis , que é um driver de plataforma para macOS. Um BIOS duplo como nas placas-mãe Gigabyte é recomendado porque o risco de " bricking " é minimizado. O macOS pode ser iniciado diretamente desse PC.

crítica

A EFI foi criticada por adicionar mais complexidade ao sistema sem oferecer vantagens significativas e por tornar impossível a substituição completa por alternativas de código aberto, como OpenBIOS ou coreboot . Isso não resolve um dos problemas de longa data com o BIOS - ou seja, a maioria do hardware requer dois drivers diferentes. Não está claro por que seria útil ter dois sistemas operacionais completamente diferentes em execução ao mesmo tempo, que basicamente realizam as mesmas tarefas, ou por que um novo sistema operacional teria que ser escrito do zero.

De acordo com um desenvolvedor da coreboot, o EFI é considerado um possível risco de segurança em ambientes críticos para a segurança - como bancos - porque a pilha de rede implementada teoricamente permitiria que os dados fossem enviados para qualquer endereço despercebido pelo sistema operacional. A própria pilha de rede para TCP / IP, que roda "abaixo" do sistema operacional direta e independentemente na placa-mãe, torna possível manipular, infectar ou monitorar o sistema sem ser capaz de controlá-lo ou restringi-lo no lado do sistema operacional. O EFI também pode ser usado para fins de DRM , por exemplo, para monitorar o fluxo de dados de E / S para marcas d'água digitais. Por essas razões, alguns usuários defendem um sistema de código aberto, como coreboot (antigo LinuxBIOS ).

Implementações defeituosas da UEFI causaram danos irreparáveis ​​aos sistemas de vários fabricantes. Em junho de 2013, os notebooks Samsung foram congelados durante o processo de inicialização com o Linux assim que o sistema operacional teve acesso de gravação ao firmware UEFI. Isso bloqueou a placa - mãe inextricavelmente . O mesmo problema ocorreu com dispositivos Lenovo no início de 2014 e dispositivos Asus no final de 2015 .

Links da web

Commons : Extensible Firmware Interface  - coleção de imagens, vídeos e arquivos de áudio

Evidência individual

  1. ^ Christoph Pfisterer: Uma breve história de Apple e de EFI. 29 de dezembro de 2008, acessado em 14 de março de 2020 .
  2. Christof Windeck: Adeus ao BIOS do PC. In: Heise online . 3 de junho de 2011 . Recuperado em 14 de março de 2020.
  3. Christof Windeck: Intel: UEFI-BIOS perderá a compatibilidade do BIOS em 2020. In: Heise online . 15 de novembro de 2017 . Recuperado em 14 de março de 2020.
  4. Christian Hirsch: Intel Core i-11000: Compatibilidade do BIOS somente com placa de vídeo. In: Heise online . 9 de junho de 2021 . Retirado em 10 de junho de 2021.; Citação: "O número de notebooks e PCs completos que inicializam apenas via UEFI aumentou significativamente nos últimos anos."
  5. UEFI - Interface de firmware extensível unificada. In: Elektronik-Kompendium.de. Recuperado em 14 de março de 2020 : “(Seção: BIOS e UEFI) Os termos firmware UEFI e BIOS são freqüentemente usados ​​alternadamente. Embora uma placa-mãe tenha firmware UEFI, ainda falamos sobre a configuração do BIOS se quisermos alterar as configurações. "
  6. Instalação . Em: 3.4 instalação do BIOS . GNU GRUB . Recuperado em 25 de setembro de 2013.
  7. Editor CHIP: Intel deseja lançar o sucessor do BIOS como código-fonte aberto. Recuperado em 4 de dezembro de 2020 .
  8. BIOS Extreme Privilege Escalation ( Memento de 22 de dezembro de 2014 no Internet Archive )
  9. 'Backdoor' na inicialização segura: a proteção mais importante do Windows está quebrada. 10 de agosto de 2016, acessado em 4 de dezembro de 2020 .
  10. heise online: Erro cardinal: Microsoft acidentalmente checkmate Secure Boot. Recuperado em 4 de dezembro de 2020 .
  11. UEFI-BIOS recebe uma equipe de especialistas em segurança
  12. O que é TianoCore . Recuperado em 12 de setembro de 2018.
  13. ^ Casando-se com U-Boot UEFI e GRUB . Recuperado em 12 de setembro de 2018.
  14. UEFI no topo do U-Boot . Recuperado em 12 de setembro de 2018.
  15. Instalando o OpenBSD 6.3 no Raspberry 3 . Recuperado em 12 de setembro de 2018.
  16. Extensible Firmware Interface (EFI) e Unified EFI (UEFI). Acessado em 4 de dezembro de 2020 .
  17. Thomas Hübner: MSI enterra o BIOS com o P35 Neo3. Recuperado em 4 de dezembro de 2020 .
  18. ComputerBase: MSI traz EFI para placas P45 em julho
  19. O que é UEFI BIOS ( Memento de 15 de agosto de 2009 no Internet Archive )
  20. Intel Developer Forum: O firmware do notebook inicializa em menos de 1 segundo heise.de, 29 de setembro de 2009
  21. Pré-visualização da placa-mãe Asus LGA1155 . bit-tech.net. 16 de novembro de 2010. Recuperado em 28 de março de 2011.
  22. ↑ O Windows Vista Service Pack 1 está pronto heise.de, em 4 de fevereiro de 2008
  23. http://www.microsoft.com/whdc/system/platform/firmware/UEFI_Windows.mspx
  24. Farewell to the PC BIOS - Report to the C't , June 3, 2011
  25. https://shop.heise.de/katalog/neuer-untätze
  26. https://shop.heise.de/katalog/maskierte-ablosung
  27. heise open: Kernel 2.6.25 agora também suporta o sucessor de BIOS EFI designado na arquitetura x86
  28. Fedora x64 em UEFI de 32 bits: C't No. 23/2018 página 144
  29. Liane M. Dubowy: Linux Mint 19.2 publicado: Muitos ajustes finos e um desktop mais rápido. In: Heise online . 1º de agosto de 2019 . Recuperado em 12 de março de 2020.; Citação: “A imagem ISO está disponível para sistemas x86 de 32 e 64 bits. Apenas o último inicializa com UEFI. ".
  30. http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_diffs/chapter_3_section_10.html ( Memento de 3 de janeiro de 2009 no Internet Archive )
  31. http://www.efi-x.com/index.php?option=com_content&view=article&id=23&language=english efi-x.com informações do produto
  32. Camaleão
  33. Carregador de inicialização Clover EFI
  34. a b http://kerneltrap.org/node/6884 ( Memento de 8 de outubro de 2006 no Internet Archive )
  35. Entrevista: Ronald G Minnich
  36. a b https://www.youtube.com/watch?v=X72LgcMpM9k
  37. https://www.youtube.com/watch?v=QsW88Efgmlk&feature=related
  38. http://blog.thesilentnumber.me/2009/01/efi-hidden-threat-to-computing-freedom.html ( Memento de 10 de janeiro de 2015 no Internet Archive )
  39. c't: Dano de firmware , 6/2013
  40. heise.de: Firewall UEFI com defeito: Linux mata Thinkpads , 5 de fevereiro de 2014
  41. superuser.com: Problema de implementação UEFI (pode levar a um hard-brick) - ASUS Zenbook UX303LA-R4342H (inglês), 5 de outubro de 2015