Linus Torvalds, le créateur de Linux, a souvent des avis tranchés et n'hésite pas à les donner en ligne. Et cette fois, il s'attaque à une fonction des processeurs AMD qui est pourtant obligatoire pour installer Windows 11, le dernier système de Microsoft : fTPM.
Si vous avez l'impression d'en avoir déjà entendu parler, c'est normal : fTPM est à la base de la faille dans les véhicules de Tesla traitée aujourd'hui. Les problèmes du fTPM nécessitent quelques explications, et le premier va être de préciser ce qu'est le fTPM. Le TPM, pour Trusted Platform Module, est une technologie qui doit permettre de sécuriser les clés de chiffrement et effectuer certaines tâches liées à la sécurité, comme fournir des nombres aléatoires réellement aléatoires.
L'implémentation classique du TPM se présente sous la forme d'une puce dédiée, qui est intégrée directement sur la carte mère. Cette solution n'est pas nouvelle : elle a été employée par Apple pour protéger Mac OS X dans le cas du kit de développement de 2005 et les premiers Mac Intel possédaient une puce de ce type, inutilisée. Avec Windows 11, Microsoft a imposé la présence de la technologie et les fabricants de CPU ont donc proposé une solution pour éviter d'ajouter une puce supplémentaire : une version embarquée dans le processeur. Chez AMD, cette voie porte le nom de fTPM et le f signifie ici firmware.
Dans l'absolu, elle est intéressante : tout fonctionne sans surcoût particulier. Mais — et c'est la raison du courroux de Linus —, l'implémentation d'AMD est perfectible. Le générateur de nombres aléatoires, très utilisé par le noyau Linux, peut en effet causer de gros ralentissements dans certains cas. Une des raisons est que le module virtuel fTPM dépend en partie d'une mémoire flash placée sur la carte mère, dont l'accès est très lent. Et tant que le générateur n'a pas terminé sa tâche, le système est bloqué. Ce problème a souvent été vu sous Windows et a parfois forcé certains utilisateurs à installer un module dédié pour éviter les ralentissements.
En théorie, une mise à jour de l'UEFI de la carte mère peut régler le problème, mais — comme l'explique Phoronix — de nouveaux bugs liés au fTPM apparaissent ponctuellement. La solution proposée par Linus, qui ne met pas les formes, est donc de désactiver totalement le fTPM dans l'interface du BIOS du PC. Le message commence par « Let's just disable the stupid fTPM hwrnd thing. », soit « Désactivons simplement le stupide hwrnd1 du fTPM ». La suite indique qu'il est peut-être meilleur pour le côté aléatoire, mais ne devrait pas être employé; que l'intérêt de passer par ce système alors que les CPU modernes disposent d'instructions dédiées est faible et que si vous ne considérez pas le CPU comme fiable, ne pensez pas que le fTPM l'est, sans même prendre en compte ses problèmes. Enfin, il termine en expliquant qu'il considère qu'il est possible de dire que ce truc ne fonctionne pas et qu'il existe de toute façon des alternatives qui ne sont pas pires.
Pour terminer, et c'est un point noté dans le message de Linus Torvalds, le fait de passer sur le générateur de nombres aléatoires du processeur ne règle pas nécessairement tous les problèmes : celui intégré dans les CPU AMD Ryzen a longtemps posé des soucis, avec des nombres aléatoires qui n'étaient pas totalement aléatoires ou même une absence de réponse qui bloquait le démarrage, comme le montre cet article d'Ars Technica en 2019. Enfin, rappelons-le, désactiver le fTPM sans installer une puce dédiée peut empêcher le démarrage de Windows 11. Mais c'est probablement un souci qui n'a même pas effleuré Linus.
-
Le générateur de nombres aléatoires accéléré matériellement. ↩︎