El impacto UEFI y SecureBoot, ¿qué tan grave?

18

Estoy planeando comprar una nueva computadora portátil en los próximos días, y estoy bastante impresionado con los nuevos y geniales Ultrabooks. Como usuario de GNU / Linux desde hace mucho tiempo, por supuesto, instalaré una distribución de mi elección en él.

Lo más probable es que tenga que comprar una computadora con Windows 8 preinstalado; y es probable que ejecute UEFI y tenga un "arranque seguro", en el que los núcleos no firmados no arrancarán.

UEFI es probablemente bueno, BIOS puede necesitar retirarse. Supongo que lo peludo es el arranque seguro .

Por lo que yo puedo entender, algunas de confianza certificados serán integrados en el firmware y así en el núcleo etc . Si el certificado del núcleo se puede rastrear a cualquiera de los firmware , el núcleo se iniciará, de lo contrario, UEFI me avisará y se negará a iniciar. Este proceso evitará el arranque de software no certificado. Esto puede tener beneficios, aunque no puedo verlos.

Me pregunto cómo puede un núcleo de código abierto obtener una de estas claves y aún así ser libre . He leído un hilo en la lista de correo de Linux donde un empleado de Red Hat le pide a Linus Torvalds que extraiga un conjunto de cambios que implemente la facilidad para analizar binarios PE y tomar un conjunto complejo de acciones para permitir que el kernel arranque en modo de arranque seguro (hasta donde puedo entender ) Quieren hacer esto porque Microsoft solo firma los binarios de PE. El Sr. Torvalds ha rechazado amablemente este conjunto de cambios, afirmando que el núcleo ya implementa el estándar, que no es PE . RedHat está tratando de llevar este código al kernel para que no tengan que bifurcarlo algún día.

Mira, esto es algo complicado. Déjame hacerte mis preguntas:

  • ¿Qué beneficios obtendré con UEFI y Secure Boot, como usuario doméstico?
  • ¿Cómo se hace esta firma ?
  • ¿Quién puede obtener firmas / certificados? ¿Está pagado? ¿Puede ser público? (Debería estar disponible en el código fuente de Linux, ¿no?)
  • ¿Es Microsoft la única autoridad para proporcionar firmas? ¿No debería haber una base independiente para proporcionarlos?
  • ¿Cómo afectará esto a los núcleos de código abierto y gratuitos, a los desarrolladores de kernel aficionados / académicos, etc. ? Por ejemplo, ¿este arranque ( un código de sector de arranque muy básico ):

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

Una noticia en este sitio web fue la inspiración de esta pregunta. Un grupo de usuarios de Linux español llamado Hispalinux ha presentado una queja contra Microsoft sobre este tema ante Europan Comission.

¿Debería Preocuparme? Rechazo no utilizar software propietario ni software firmado por empresas de confianza . Lo he hecho hasta ahora y quiero continuar así. Gracias por adelantado.


fuente
2
UEFIen sí no es un gran problema, pero puede ser un arranque seguro.
jordanm
3
Siempre puede arrancar UEFI con el arranque seguro deshabilitado ...
jasonwryan
1
Según este artículo, Microsoft requiere que los proveedores eviten que SecureBoot se desactive en dispositivos basados ​​en ARM para proporcionar una licencia para el uso del logotipo compatible con Windows-8.
1
No lo he buscado, pero si no puede flashearlo en su placa base y las cosas siguen funcionando (cada dispositivo en el estado correcto en la transferencia POST-OS), no ayuda mucho. Y luego está el firmware de la tarjeta gráfica, por ejemplo. Firmware del disco duro? ¿Teclado? ... Sin embargo, esto se está acercando más a la discusión que a las solicitudes de aclaración. (Y, por supuesto, al menos esa cita solo afirma que UEFI es un esfuerzo de la comunidad; no la implementación particular.)
un CVn
1
Eche un vistazo al documento de la Fundación Linux sobre UEFI y arranque seguro.
vonbrand

Respuestas:

9

Este proceso evitará el arranque de software no certificado. Esto puede tener beneficios, aunque no puedo verlos.

Tiene un nuevo mecanismo de seguridad para controlar qué puede y qué no puede arrancar desde su hardware. Una característica de seguridad. No sientes que lo necesitas hasta que sea demasiado tarde. Pero yo divago.

He leído un hilo en la lista de correo de Linux donde un empleado de Red Hat le pide a Linus Torvalds que extraiga un conjunto de cambios que implemente la facilidad para analizar binarios PE y tomar un conjunto complejo de acciones para permitir que el kernel arranque en modo de arranque seguro (hasta donde puedo entender )

Los controladores, como el firmware de su GPU, deben estar firmados en línea con el Arranque seguro, de lo contrario, puede ser otro rootkit. El status quo es que esos controladores están firmados en formato PE. El núcleo puede arrancar sin esos de todos modos, pero el hardware no funcionará. Analizar el formato PE en el kernel es una opción técnicamente más simple para esto que pedirle a cada proveedor de hardware que firme sus blobs para cada distribución, o configurar un marco de espacio de usuario para hacerlo. Linus decide no chupar la polla de Microsoft. Ese no es un argumento técnico.

¿Qué beneficios obtendré con UEFI y Secure Boot, como usuario doméstico?

La característica más visible es el arranque rápido UEFI. Tengo en mis manos varios escritorios con el logotipo de Windows 8 y se inician tan rápido que a menudo echo de menos que aparezca el menú de inicio. Intel y los OEM tienen bastante ingeniería en esto.

Si eres del tipo de usuarios de Linux que odian la hinchazón y la duplicación de código con pasión, también puedes administrar el arranque múltiple a nivel de firmware y deshacerte de los cargadores de arranque por completo. UEFI proporciona un administrador de arranque con el que puede iniciar directamente en el kernel o elegir iniciar otros sistemas operativos con el menú de firmware. Aunque puede necesitar algunos retoques.

Además, gráficos más elegantes durante el tiempo de arranque y en el menú de firmware. Mayor seguridad durante el arranque (arranque seguro). Otras características (arranque de red IPv4 / 6, dispositivos de arranque de 2 TB +, etc.) están destinadas principalmente a usuarios empresariales.

De todos modos, como dijo Linus , se supone que BIOS / UEFI "simplemente carga el sistema operativo y salga de allí", y UEFI ciertamente lo parece para los usuarios domésticos con arranque rápido. Ciertamente hace más cosas que BIOS debajo del capó, pero si estamos hablando de usuarios domésticos, no les importará eso.

¿Cómo se hace esta firma?

Teóricamente, un binario se cifra con una clave privada para generar una firma. Luego, la firma se puede verificar con la clave pública para demostrar que el binario está firmado por el propietario de la clave privada, luego se verifica el binario. Ver más en Wikipedia .

Técnicamente, solo se firma el hash del binario, y la firma se incrusta en el binario con formato PE y twiddling de formato adicional.

De manera procesal, su OEM almacena la clave pública en su firmware, y es de Microsoft. Tienes dos opciones:

  1. Genere su propio par de claves y adminístrelas de forma segura, instale su propia clave pública en el firmware y firme el binario con su propia clave privada ( sbsign de Ubuntu o pesign de Fedora), o
  2. Envía tu binario a Microsoft y deja que lo firmen.

¿Quién puede obtener firmas / certificados? ¿Está pagado? ¿Puede ser público? (Debería estar disponible en el código fuente de Linux, ¿no?)

Como las firmas / certificados están integrados en los archivos binarios, se espera que todos los usuarios los obtengan. Cualquiera puede configurar su propia CA y generar un certificado para sí mismo. Pero si desea que Microsoft genere un certificado para usted, debe pasar por Verisign para verificar su identidad. El proceso cuesta $ 99. La clave pública está en el firmware. La clave privada está en la caja fuerte de Microsoft. El certificado está en el binario firmado. No hay código fuente involucrado.

¿Es Microsoft la única autoridad para proporcionar firmas? ¿No debería haber una base independiente para proporcionarlos?

El aspecto técnico es bastante trivial, en comparación con el proceso de gestión de PKI, verificación de identidad, coordinación con todos los OEM y proveedores de hardware conocidos. Esto cuesta un querido. Microsoft tiene una infraestructura (WHQL) y experiencia para esto por años. Entonces ofrecen firmar binarios. Cualquier fundación independiente puede dar un paso adelante para ofrecer lo mismo, pero ninguna lo ha hecho hasta ahora.

Desde una sesión UEFI en IDF 2013, veo que Canonical también ha comenzado a poner su propia clave para el firmware de algunas tabletas. De modo que Canonical puede firmar sus propios binarios sin pasar por Microsoft. Pero es poco probable que firmen binarios por usted porque no saben quién es usted.

¿Cómo afectará esto a los núcleos de código abierto y gratuitos, a los desarrolladores de kernel aficionados / académicos, etc.

Su kernel personalizado no arrancará en Arranque seguro, porque no está firmado. Sin embargo, puedes apagarlo.

El modelo de confianza de Arranque seguro bloquea algunos aspectos del núcleo. Como si no pudieras destruir tu núcleo escribiendo a / dev / kmem incluso si eres root ahora. No puede hibernar en el disco (se está trabajando en sentido ascendente) porque no hay forma de garantizar que la imagen del núcleo no se cambie a un kit de arranque cuando se reanude. No puede volcar el núcleo cuando el núcleo entra en pánico, porque el mecanismo de kdump (kexec) se puede usar para arrancar un bootkit (que también se trabaja en sentido ascendente). Estos son controvertidos y Linus no los acepta en el núcleo de la línea principal, pero algunas distribuciones (Fedora, RHEL, Ubuntu, openSUSE, SUSE) se envían con sus propios parches de arranque seguro de todos modos.

Personalmente, la firma del módulo requerida para construir un núcleo de arranque seguro cuesta 10 minutos, mientras que la compilación real solo toma 5 minutos. Si apago la firma del módulo y enciendo ccache, la construcción del kernel solo toma un minuto.

UEFI es una ruta de inicio completamente diferente del BIOS. El firmware UEFI no invocará todo el código de arranque del BIOS.

Un grupo de usuarios de Linux español llamado Hispalinux ha presentado una queja contra Microsoft sobre este tema ante Europan Comission.

Como se dijo anteriormente, nadie, excepto Microsoft, ha dado un paso al frente para hacer el servicio público. Actualmente no hay evidencia de la intención de Microsoft de hacer algo malo con esto, pero tampoco hay nada que evite que Microsoft abuse de su monopolio de facto e inicie un viaje de poder. Por lo tanto, si bien los grupos de usuarios de FSF y Linux pueden no parecer bastante pragmáticos y no se han sentado para resolver problemas de manera constructiva, es bastante necesario que las personas presionen a Microsoft y le adviertan sobre las repercusiones.

¿Debería Preocuparme? Rechazo no utilizar software privativo ni software firmado por compañías confiables. Lo he hecho hasta ahora y quiero continuar así.

Razones para adoptar el arranque seguro:

  • Elimina un vector de ataque de seguridad real.
  • Es un mecanismo técnico para dar al usuario más libertad para controlar su hardware.
  • Los usuarios de Linux deben comprender el mecanismo de arranque seguro y actuar de manera proactiva antes de que Microsoft llegue demasiado lejos al monopolio de la política de arranque seguro .
Lingzhu Xiang
fuente
2
¡Gracias por esta detallada y sorprendente respuesta! Muy completo. UEFI suena bastante bien, aunque no he usado ni escrito código para ello.
1
Muy buena respuesta, de hecho. Solo dos cosas: 1) por lo general, existe la posibilidad de cargar sus propias claves en su UEFI: de esta manera puede iniciar de forma segura cualquier cosa que firme usted mismo; 2) El arranque seguro es seguro solo hasta el punto en que se confía en UEFI: si se usa una actualización de firmware maliciosa, se rompe la cadena de confianza. Y eso no es inconcebible .
Peter
Entonces, ¿las distribuciones de GNU / Linux usan FastBoot / QuickBoot? No veo por qué sería difícil hacerlo, pero tampoco puedo encontrar una información al respecto, pero dado que mencionas esto como la característica visible para el usuario final, supongo que finalmente se usa.
Hola Ángel,
9

Acabo de pasar por esto con una compra reciente de computadora portátil que vino con Windows 8 y el arranque seguro UEFI. Después de mucho tiempo e investigación, esto es lo que puedo responder:

  • No parece que encajes en la categoría de 'usuario doméstico'.

Los beneficios de UEFI que notará el usuario promedio es que lo primero que verá en su pantalla será la pantalla del cargador de arranque UEFI de la marca Microsoft / Vendor. Ninguna de esas cosas aterradoras como "Presione Supr para la configuración, F11 para seleccionar el dispositivo de arranque", etc.

Luego hará una transición agradable en la pantalla de espera del kernel / cargador de arranque de Microsoft. Esto presenta un "poder para impulsar" la experiencia temática de Microsoft. Si eso es un beneficio real está en el ojo del espectador, supongo. Estaba bastante molesto porque no tenía la información normal que esperaba ver en el arranque. Por ejemplo, buena suerte si su proveedor no utiliza una clave estándar para ingresar a la configuración básica de UEFI / Bios.

Ah, sí, y la teoría es que esto detendrá los virus del sector de arranque, o al menos hará que los creadores creen / roben la identificación de alguien y paguen $ 99 a Verisign (la ruta de RedHat Fedora. Google).

Ah, y ahí está el problema. Cualquiera puede firmar el código con cualquier clave. El problema es que la máquina solo ejecutará código firmado por una clave de autoridades de confianza. La mitad pública de la clave se instala en el núcleo UEFI de los sistemas en la fábrica y se utiliza para verificar la firma de los programas UEFI (código de inicio) firmados con la clave privada.

¿Adivina quién es la clave pública instalada en la fábrica? ¿Adivina quién requiere que el arranque seguro esté habilitado de forma predeterminada?

Todos los fabricantes de sistemas obviamente pondrán la clave de Microsoft allí. También podrían poner la clave de Canonical (Ubuntu), la clave de Red Hat, la clave de Apple, etc. Sin embargo, más claves significan más puntos por infracciones, y obviamente hay un límite físico a la cantidad que pueden almacenar.

¿Y cuál es la solución para un usuario rebelde como usted?

  • Espero que su proveedor del sistema le permita acceder a la configuración de arranque del sistema

  • Espero que te permitan desactivar el arranque seguro. El código de arranque de Windows seguirá ejecutándose sin un arranque seguro.

  • Si es realmente afortunado, el proveedor del sistema le permitirá ingresar sus propias claves de autoridad de certificación y podrá firmar sus propias cosas. Esto solo es realmente necesario si quieres jugar con Secure Boot.

Mi computadora portátil MSI me permite hacer todo lo anterior.

Me gustaría ver un mundo donde cualquiera pueda recoger una copia gratuita de una distribución de Linux y reemplazar su sistema operativo. Esto es lo que teníamos antes del arranque seguro. También tuvimos muchos virus del sector de arranque. Tener que deshabilitar el arranque seguro en la configuración de su sistema es probablemente un obstáculo lo suficientemente pequeño como para verificar que tiene el poder mental para instalar un sistema operativo o conocer a alguien que lo haga.

No tener la capacidad de apagarlo es lo malo, y eso depende del fabricante. No culpe a Microsoft, a menos que estén 'convenciendo' al fabricante para que evite deshabilitar el arranque seguro.

El otro tipo
fuente
Bienvenido y gracias! Muy buena respuesta, pero esperaré un poco más antes de aceptar, ya que quiero ver los pensamientos de otras personas.