Les aventures dans la signature UEFI de Microsoft

Il se trouve que je traduis cet article qu'il a écrit James Bottomley, conseiller technique du Linux Foundation, qui a commencé à mettre en place un pré-bootloader pour que vous puissiez démarrer Linux.

Comme je l'ai expliqué dans mon article précédent, nous avons le code du pré-chargeur de démarrage Linux Foundation en place. Cependant, il y avait un retarder alors que nous avions accès au système de signature Microsoft.

La première chose à faire est payer les 99 $ à Verisign (maintenant Symantec) et faire vérifier une clé par Verisign. Nous l'avons fait pour la Linux Foundation, et tout ce qu'ils veulent, c'est appeler le siège pour vérifier. La clé revient dans une URL installée dans votre navigateur, mais les outils SSL Linux standard peuvent être utilisés pour l'extraire et créer un certificat et une clé PEM habituels. Cela n'a rien à voir avec la signature UEFI, mais est utilisé pour valider le système développement système Microsoft que vous êtes ce que vous dites être. Avant de pouvoir créer un compte sysdev, vous devez le tester signer un exécutable qu'ils vous donnent et le télécharger. Ils exigent que vous le signiez sur une plate-forme Windows spécifique, mais sbsign au moins cela a fonctionné et notre compte de bingo a été créé.

Une fois le compte créé, vous ne pouvez toujours pas télécharger les binaires UEFI pour signer sans d'abord signer un contrat papier. Les offres sont très onéreuses, y compris de nombreuses licences exclues (y compris toutes les GPL pour les pilotes, mais pas pour les chargeurs de démarrage). La partie la plus lourde est que les accords semblent arriver au-delà des objets UEFI que vous signez. Les avocats de la Linux Foundation ont conclu qu'il est généralement inoffensif pour la FL parce que nous ne vendons pas de produits, mais cela peut être dégoûtant pour d'autres entreprises. Selon Matthew Garrett, Microsoft est prêt à négocier des accords spéciaux avec les distributions pour atténuer certains de ces problèmes.

Une fois les accords signés, le vrai plaisir technique. Vous ne pouvez pas simplement télécharger un binaire UEFI et le faire signer. Vous devez d'abord enveloppez-le dans un fichier .cab. Heureusement, il existe un projet open source qui peut créer des fichiers CAB appelés lcab. Alors tu dois signer le fichier .cab avec la clé Verisign. Encore une fois, il existe un autre projet open source qui peut faire cela: osslsigncode. Pour tous ceux qui ont besoin de ces outils, ils sont disponibles dans mon référentiel UEFI openSuse Build Service. Le dernier problème est que le téléchargement du fichier nécessite Silverlight. Malheureusement, le clair de lune ne semble pas fonctionner et même avec l'aperçu de la version 4, la boîte de téléchargement devient vide, donc il est temps d'utiliser Windows 7 sous un kvm (machine virtuelle basée sur le noyau). Lorsque vous arrivez à cette partie, vous devez également certifier que le binaire «à signer, ne doit pas être sous licence GPLv3 ou licences open source similaires». Je suppose que c'est par crainte de divulgation de clés, mais ce n'est pas clair du tout (la même chose avec des «licences open source similaires»).

Une fois le téléchargement terminé, le fichier CAB s'arrête en sept étapes. Malheureusement, la première montée d'essai est restée verrouillé à l'étape 6 (la signature des fichiers). Après 6 jours, j'ai envoyé un e-mail de support à Microsoft demandant ce qui se passait. La réponse: "Le code d'erreur généré par le processus de signature est que votre fichier n'est pas une application Win32 valide. Est-ce une application Win32 valide? ». Réponse: évidemment non, c'est un binaire UEFI 64 bits valide. Il n'y avait plus de réponses...

J'ai réessayé. Cette fois, j'ai reçu un e-mail de téléchargement pour le fichier signé et le tableau dit que le signé a échoué. Je l'ai téléchargé et vérifié. Le binaire fonctionne sur la plateforme secureboot et est signé avec la clé

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

J'ai demandé au support pourquoi le processus indiquait un échec mais j'avais un téléchargement valide et, après une rafale d'e-mails, ils ont répondu «n'utilisez pas ce fichier qui était mal signé. Je te reviendrais. " Je ne sais toujours pas quel est le problème, mais si vous regardez le sujet de la clé de signature, il n'y a rien dans la clé pour indiquer à la Fondation Linux, donc je soupçonne que le problème est que le binaire est signé avec une clé Microsoft générique plutôt qu'une clé spécifique (et révocable) liée à la Linux Foundation.

Cependant, voici le statut: nous continuerons d'attendre que Microsoft donne à la Linux Foundation un pré-bootloader signé et validé. Lorsque cela se produit, il sera téléchargé sur le site de la Linux Foundation pour que tous puissent l'utiliser.

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

Tirez vos conclusions, mais cela prendra du temps.


Ajouter comme source préférée dans Google