Depuis des mois maintenant, plusieurs développeurs ou sociétés travaillent sur des méthodes pour permettre à Linux de démarrer sur un PC équipé du Secure Boot. Plusieurs techniques existent, mais lorsqu’un développeur pose la question de l’intégration des clés dans le noyau, Linus Torvalds se fâche pour de bon.
Un même problème, plusieurs solutions
Le sujet du Secure Boot dans la communauté open source est délicat. Cette fonctionnalité, présente dans les spécifications de l’UEFI, permet à un système d’exploitation de contrôler l’intégrité de la chaine des éléments impliqués dans le boot. Cela demande notamment le concours des constructeurs de GPU, et puisque Microsoft est arrivé le premier, ce sont surtout ses propres clés de sécurité qui importent.
Plusieurs solutions ont été envisagées, notamment celle de Matthew Garrett, développeur chez Red Hat, et celle mise en avant par la Linux Foundation. Les deux sont différentes et il se pourrait au final qu’elles soient rapprochées pour faire front commun. Mais un autre développeur de chez Red Hat, David Howells, a carrément posé la question de l’intégration éventuelle des clés de sécurité Microsoft au sein du noyau. Le bénéfice serait simple : permettre à une distribution Linux de démarrer directement sur une machine possédant le Secure Boot.
Linus Torvalds explose
La question a soulevé l’ire de Linus Torvalds, père du noyau Linux. Dans une réponse relativement grossière, il laisse éclater sa colère : « Si Red Hat veut pratiquer la gorge profonde sur Microsoft, c’est votre problème. Cela n’a absolument rien à voir avec le kernel que je maintiens. Il est facile pour vous les gars d’avoir un processus signature qui parse le binaire PE, vérifie les signatures et signe les clés résultantes avec votre propre clé. […] Pourquoi serais-je concerné ? Pourquoi le kernel devrait-il s'occuper d’une stupidité telle que « nous ne signons que les binaires PE » ? Nous supportons le X.509 qui est le standard pour les signatures ». Et d’indiquer que tout doit être fait en espace utilisateur et qu’aucune excuse n’est valable pour l’inclusion dans le kernel.
Au centre de la colère de Linus Torvalds se trouve en fait la manière dont Microsoft a conçu sa solution. Selon David Howells, la solution serait d’intégrer les clés de sécurité dans un certificat X.509, puis de placer ce dernier dans un EFI PE (Extensible Firmware Interface Portable Executable) pour le faire signer par Microsoft, ce dernier ne signant que des binaires. Mais les binaires sont justement à l’opposé de la philosophie open source : les fichiers sont déjà compilés et les développeurs n’en ont pas la maîtrise, à la manière d’un corps étranger. Les binaires se retrouvent le plus souvent dans certains pilotes, notamment graphiques, mais l’inclusion dans le noyau est une autre paire de manches.
La question de l'universalité
Matthew Garrett a toutefois participé lui aussi à la conversation. Il a ainsi tenu à rappeler que les constructeurs de composants souhaitent des clés qui ont été signées par un tiers de confiance. Actuellement, seul Microsoft répond à cette appellation, posant le délicat problème des entités responsables des signatures. Torvalds répondra que toute cette problématique n’intéresse pas grand-monde, et surtout pas lui.
Mais le véritable souci pour Garrett est l’universalité. Il explique ainsi que Red Hat se doit de trouver une solution et que celle-ci sera très certainement l’utilisation des clés de Microsoft car elles sont déjà employées par NVIDIA et AMD. Il se demande donc si toutes les distributions vont utiliser un modèle commun ou si chaque kernel aura sa propre solution.
Une question dont Microsoft doit bien peu se soucier.