Las Aventuras en el Firmado UEFI de Microsoft

Les paso a traducir este artículo que escribió James Bottomley, consejero técnico de la Linux Foundation, quien se puso a armar un pre-bootloader para que pueda arrancar Linux.

Como expliqué en mi post anterior, tenemos el código para el pre-bootloader de la Linux Foundation en su lugar. Sin embargo, hubo una demora mientras tuvimos acceso al sistema de firmado de Microsoft.

Lo primero que hay que hacer es pagar los $99 a Verisign (ahora Symantec) y tener una clave verificada por Verisign. Lo hicimos para la Linux Foundation, y todo lo que quieren hacer ellos es llamar a la sede para verificar. La clave vuelve en una URL que se instala en tu navegador, pero las herramientas Linux SSL estándar pueden ser usadas para extraerla y crear un certificado PEM y una clave usuales. No tiene nada que ver con el firmado UEFI, pero se usa para validar al sistema sysdev de Microsoft que sos quien decís que sos. Antes de que puedas crear una cuenta sysdev account, tenés que probarlo firmando un ejecutable que te dan y subirlo. Ellos hacen requerimientos estrictos de que lo firmes en una plataforma Windows específica, pero sbsign al menos funcionó y bingo nuestra cuenta fue creada.

Una vez que se crea la cuenta, todavía no puedes subir binarios UEFI para firmar sin antes firmar un contrato en papel. Los acuerdos son muy onerosos, incluyendo un montón de licencias excluidas (incluyendo todas las GPL para drivers, pero no para bootloaders). La parte más onerosa es que los acuerdos parecen llegar más allá de los objetos UEFI que firmes. Los abogados de la Linux Foundation concluyeron que es mayormente inofensiva para la LF porque no vendemos productos, pero puede ser repugnante para otras compañías. De acuerdo a Matthew Garrett, Microsoft está dispuesto a negociar acuerdos especiales con distribuciones para mitigar algunos de esos problemas.

Una vez que los acuerdos se firmen, comienza la verdadera diversión técnica. No podés sólo subir un binario UEFI y tenerlo firmado. Primero tenés que envolverlo en un archivo .cab. Afortunadamente, hay un proyecto open source que puede crear archivos cabinet llamado lcab. Luego hay que firmar el archivo .cab con la clave Verisign. De nuevo, hay otro proyecto open source que puede hacer eso: osslsigncode. Para cualquiera que necesite esas herramientas, están disponibles en mi repositorio Build Service UEFI de openSuse. El problema final es que la subida del archivo requiere silverlight. Desafortunadamente, moonlight no parece funcionar e incluso con la preview de la versión 4, el upload box se pone en blanco, así que es hora de usar windows 7 bajo una kvm (máquina virtual basada en kernel). Cuando llegues a esa parte, tenés también que certificar que el binario “para ser firmado, no debe estar licenciado bajo la GPLv3 o licencias open source similares”. Asumo que es por miedo a la divulgación de la clave pero no es claro en lo absoluto (lo mismo con que son las “licencias open source similares”).

Una vez que termina la subida, el archivo cabinet para por siete etapas. Desafortunadamente, la primera subida de prueba se quedó trancada en la etapa 6 (la del firmado de los archivos). Después de 6 días  mandé un mail de soporte a Microsoft preguntando que pasaba. La respuesta: “El código de error que tira el proceso de firmado es que su archivo no es una aplicación Win32 válida. ¿Es una aplicación Win32 válida?”. Respuesta: obvio que no, es un binario UEFI de 64 bits válido. No hubo más respuestas

Lo intenté de nuevo. Esta vez recibí un mail de descarga por el archivo firmado y el tablero dice que el firmado falló. Lo bajé y verifiqué. El binario funciona en la plataforma secureboot y está firmado con la clave

subject=/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/OU=MOPR/CN=Microsoft Windows UEFI Driver Publisher
issuer=/C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/CN=Microsoft Corporation UEFI CA 2011

Le pregunté al soporte por qué el proceso indicaba un fallo pero tuve una descargá válida y, después de una ráfaga de emails, me responden “no uses ese archivo que fue firmado incorrectamente. Volveré contigo.” Sigo sin estar seguro de cual es el problema, pero si se fijan en el Subject de la clave de firmado, no hay nada en la clave para indicar a la Linux Foundation, por lo tanto sospecho que el problema es que el binario está firmado con una clave de Microsoft genérica en vez de una clave específica (y revocable) ligada a la Linux Foundation.

Sin embargo, este es el status: Seguiremos esperando a que Microsoft le de a la Linux Foundation un pre-bootloader firmado y validado. Cuando eso ocurra, será subido al sitio de la Linux Foundation para que todos lo usen.

Fuente: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/

Saquen sus conclusiones, pero esto va a tardar.


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   rolo dijo

    si realmente el tema de los pc con win8 OEM q vengan con el sistema UEFI se soluciona desactivando UEFI desde la BIOS, me parece un error que tanto la Linux fundación como Fedora, Ubuntu y no se cual otra distro más, paguen el certificado y acepten las limitaciones q impone Microsoft.

    HAY QUE DEJAR DE SER CORDEROS!!!!!

    1.    sieg84 dijo

      pero sé quedan sin arrancar Windows 8

      1.    Blaire Pascal dijo

        Jejeje, ni que fuera la gran cosa. Bueno, al menos para mí. Es una opinión personal, no quiero ofender a nadie.

    2.    Shiba87 dijo

      UEFI no puede ser desactivado desde la Bios, ya que UEFI es el Firmware que viene a sustituir a la más que longeva BIOS.

      De lo que hablamos es de Secure Boot, una característica de UEFI que verifica la autenticidad del software con el que arrancamos el equipo mediante firmas digitales, es Secure Boot lo que habría que desactivar.

      No es tan sencillo como desactivar secure Boot y ya está, es necesario que el fabricante haya tenido la consideración de incluir un menú que permita a los usuarios desactivar Secure Boot, si el fabricante no quiere que éste sea desactivado será muy complicado para el usuario poder hacerlo, posiblemente llegando hasta extremos de tener que sustituir el firmware de la placa base por otro no oficial.

      La solución de la Fundación Linux supondría una solución «universal» para cualquier hardware afectado por este mal y permitiría instalar cualquier sistema pagando una única firma digital sólo una vez, que es seguramente lo que les de miedo y por lo que se estén haciendo tanto de rogar

      1.    msx dijo

        «No es tan sencillo como desactivar secure Boot y ya está, es necesario que el fabricante haya tenido la consideración de incluir un menú que permita a los usuarios desactivar Secure Boot, si el fabricante no quiere que éste sea desactivado será muy complicado para el usuario poder hacerlo,»

        Entonces lo que hay que hacer es una campaña de alfebetización digital donde se explique a los usuarios que exijan computadoras con esa característica y sino que compren otras.

      2.    taregon dijo

        Todo esto es para ganar dinero al validar lo que puede o no arrancar con secure boot.

  2.   anti dijo

    La total incompetencia es indistinguible de las malas intenciones.

  3.   Hugo dijo

    Si bien hay una famosa frase por Robert J. Hanlon que dice: «Nunca atribuir a la malicia aquello que se explica adecuadamente por la estupidez», en el caso particular de Microsoft, tantas dificultades tontas a un proceso supuestamente bien concebido e ideado para una mejor seguridad, no deja de dar la impresión de que están poniendo trabas a la Linux Foundation para que linux no pueda instalarse en las PCs nuevas con UEFI, de modo que Microsoft no tenga competencia.

    1.    Blaire Pascal dijo

      Exacto. A mí no me gusta la idea, un supuesto arranque seguro… Me da miedo. A mí me da la impresión de que Microsoft tiene fines muy… Mafiosos.

      1.    Bamler dijo

        Estoy mas que cansado de Microsoft y sus manipulaciones, y me da hasta miedo de sus intenciones, y harto de que pretenda dominar cada uno de los PCs o dispositivos que existen en el mercado.

        Espero que Linux termine de despegar masivamente y se imponga entre los usuarios finales y Windows quede finalmente marginado, total, para la porquería de SO que es.

        1.    Hugo dijo

          Esto me recuerda la patente que otorgaron a Microsoft mediante la cual el sistema por defecto viene limitado, y para desbloquear su potencial completo o instalar cualquier programa de terceros, son necesarias unas licencias por las cuales naturalmente tiene que pagar o bien el usuario, o los terceros que desean que sus aplicaciones se instalen en el sistema operativo. Que no lo hayan implementado aun, no significa que no pretendan hacerlo, y me da la impresíon que UEFI está preparando el terreno para esto.

  4.   ErunamoJAZZ dijo

    Lo que me sorprende es que los binarios de 64bist fallen y obligue a usar binarios de 32bits…. son retrogradas, ya casi no hay procesadores nuevos de arquitectura x86 a 32bits en el mercado. Debería funcionar a 64bits.

    u.u

  5.   jorgemanjarrezlerma dijo

    La firma digital o secure boot es tratar de evitar que «algo» que no sea el sistema arranque. También es con el fin de evitar la tan llamada pirateria o copia ilegal de software privativo.

    Haciendo un análisis e investigando un poco el tan llamado seguro Win8 con su tan cacareado secure boot ha demostrado su incompetencia ya que hace poco descubrieron un agujero de seguridad.

    Por lo anterior y sin tener que ser un genio de la industria, con doctarados y demás se puede deducir que sólo es un concepto de mercadotecnia acompañado de la premisa de microsoft de convertirse en un sistema cerrado al estilo apple.

    En lo personal revisando, consultando y estudiando puedo decir bajo mi óptica personal que UEFI/Secure Boot es un fraude y una estafa que sólo tiene como objetivo el forzar y apoyar el proyecto de microsoft de cerrar su ecosistema por completo aprovechando que aún puede ejercer cierta presión en el segmento de la computación personal.

  6.   Pavloco dijo

    Estas vacaciones voy a buscar la forma de demandar a Microsoft. Los odio.

    1.    Blaire Pascal dijo

      Jejeje, si yo tuviera ganas y tiempo los demandaría también. Es una violación a la libertad. A menos que hagan otra versión de la infame EULA donde especifiquen que al aceptar el contrato se atiene a no instalar ningún otro software jejeje, lo que no me sorprendería.

    2.    Bamler dijo

      +1

  7.   nosferatux dijo

    Ya veremos como le va a microsoft con su win8 y su UEFI/secureboot, quizas pierda algo de mercado en pro de las macbook o de las chromebook.

    Y quien sabe tal ves algun dia surga por ahi algún fabricante de pc’s en pro de linux y otros sistemas libres.

  8.   nosferatux dijo

    mmm y si comunidades linuxeras se «manifestaran» en el dia de internet y el dia del programador por ejemplo, frente a alguna hp store (por decir algo) mostrando su aprecio por la marca pero su desacuerdo con usar windows?.

    Y si en esos dias el «install fest» sale a las calles o plazas publicas?

    1.    Hugo dijo

      La triste realidad es que todos los usuarios de Linux combinados hacen una fracción de los usuarios de Windows, por lo que los fabricantes de hardware naturalmente priorizan el sistema operativo de mayor cuota en el mercado. de modo que veo poco probable que una manifestación cambie las cosas.

      En mi opinión, por ejemplo, hacer de Linux una plataforma más atractiva para aplicaciones y juegos podría tener más influencia que muchas manifestaciones contra MS. Pero esto toma su tiempo (y recursos).

  9.   Charlie-Brown dijo

    Está bien lo de arremeter contra Micro$oft y su Secure Boot, pero recuerden que son los fabricantes de placas madres los que lo han incluido por defecto en la UEFI, como si existiera únicamente un SO; el de Microsoft… mal camino han tomado. Visto el caso, me parece que en el futuro nos veremos obligados a flashear la UEFI de los boards con versiones «liberadas» como hoy hacemos con la ROM de ciertos productos. Por suerte el ingenio de los que aspiran a la libertad ha demostrado ser más fuerte que el de aquellos que pretenden extirparla.

    1.    Shiba87 dijo

      Hombre….no es tan sencillo como que el fabricante elija si incluye o no secure boot en su hardware, no hay que olvidar que Microsoft es un Monopolio, de hecho es EL Monopolio y como fabricante, decir no a Microsoft puede suponer desde tener que enfrentarte a sus abogados, encarecimiento de las licencias que haga que tus equipos sean mucho más caros, o incluso perder el 80 % del mercado doméstico.

      No es que los defienda, pero si algo saber hacer Microsoft es precisamente eso, imponer a base de extorsión y Monopolio, la única opción sería que todos los fabricantes o al menos la mayoría se pusieran de acuerdo y le pararan los piesde una vez, pero eso es tremendamente difícil que ocurra y una sóla compañía, por grande que sea se lo pensará dos veces antes de arriesgar su negocio, por muy injusto/rastrero/absurdo que sea lo que pida Microsoft.

  10.   Alf dijo

    Sobre este tema se a hablado mucho en varios blogs y foros, pero tengo días pensando en algo, tal vez sea tontería mía pero, en el caso de DELL y HP (no conozco otras empresas) que venden máquinas con Linux, ¿el secure boot vendrá desactivado?

    1.    Hugo dijo

      Creo haber leido que en estos casos los fabricantes colocan un sistema dual UEFI/BIOS de modo que si desactivas el UEFI haces fallback al BIOS. Esto naturalmente debe aumentar los costos.

      Eventualmente el BIOS debe desaparecer como lo conocemos en favor de UEFI u otros estándares mejores que se creen, porque la tecnología del BIOS es antigua y por lo tanto impone limitantes.

  11.   Shiba87 dijo

    Señores, una firma a la petición de la FSF sobre este tema:

    Nosotros, los firmantes, instamos a todos los fabricantes de ordenadores que implementan el llamado «Secure Boot» del UEFI a hacerlo de una manera que permita la instalación de sistemas operativos libres. Para respetar la libertad del usuario y proteger realmente su seguridad, los fabricantes deben permitir que los propietarios de los ordenadores puedan desactivar las restricciones de arranque, o proporcionar un sistema fiable para instalar y ejecutar un sistema operativo libre de su elección. Nos comprometemos a que no compraremos ni recomendaremos ordenadores que le arrebaten al usuario esta libertad crítica, y que animaremos activamente a la gente de nuestras comunidades a evitar este tipo de sistemas enjaulados.

    http://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/statement

    1.    msx dijo

      Perfect, petición firmada y compartida con el LUG y el resto de la web, gracias por el comment.