Microsoft a fini par répondre à Ars Technica : deux pilotes de FTDI ont été supprimés de Windows Update. La firme explique que ses ingénieurs travaillent avec le constructeur écossais afin que ce type de problème ne se reproduise pas. FTDI vient également de communiquer sur le sujet, en indiquant qu'il s'agissait effectivement d'une volonté d'affecter le matériel non-authentique. Cependant, le constructeur ajoute que des puces authentiques ont été touchées dans la manoeuvre, et que même si ses intentions étaient « honorables », les pilotes ont été supprimés, les prochains ne devant pas être si « invasifs ».
Un pilote distribué plus tôt dans le mois par Windows Update cause des ravages avec les anciens circuits Arduino (ou les modèles « compatibles ») et de nombreux équipements possédant un clone de puce FT232 du constructeur écossais FTDI. En cause, un pilote émis par ce dernier et rendant les copies de sa puce totalement inopérantes. Explications.
Un pilote qui reprogramme une puce
La puce FT232 de FTDI est relativement connue dans le monde des bidouilleurs. Elle est dédiée à une tâche : convertir le signal provenant d’un port USB vers un port série. Elle était présente notamment sur les circuits Arduino jusqu'en 2010 mais fait l’objet de très nombreuses copies. On distingue alors deux cas : il s’agit soit de puces génériques calquant son fonctionnement, soit de copies étant vendues comme des puces légitimes. Il s’agit donc de contrefaçons.
Chaque périphérique USB est identifié par deux références. La première, nommée VID (Vendor ID), est fournie par le groupe USB au constructeur, de manière unique. L’autre est le PID (Product ID) et dépend du constructeur pour la propre identification de ses produits. Windows se sert du duo d’identifiants pour reconnaître le matériel présent dans la machine, et ainsi installer un nouveau pilote quand il se présente dans Windows Update.
Le problème est qu’un nouveau pilote fourni par FTDI est venu mettre une sacrée pagaille dans le petit monde des bidouilleurs. Les fausses puces ont été reconnues comme des vraies, mais le pilote, lui, semble faire la différence. En cas de puce non officielle, il reprogramme le Product ID pour le fixer à 0000. Résultat : une fois l’opération effectuée, la puce ne fonctionne plus, que le périphérique soit branché à un PC sous Windows ou Linux, ou même sur un Mac. Aucune machine n’est plus à même de reconnaître un tel PID.
Un CLUF caché dans les fichiers d'installation
C’est le site Hack A Day qui a révélé l’ampleur du problème hier. Il indique que les copies de la puce FT232 sont très nombreuses et qu’il est particulièrement difficile de détecter les différences par un simple coup d’œil à la puce. Seul un examen particulièrement attentif du silicium permet de séparer la vraie puce de sa copie.
La question du pourquoi n’est pas claire. Actuellement, ni FTDI, ni Microsoft n’ont réagi aux questions sur le sujet. Les regards se dirigent surtout vers le constructeur écossais que beaucoup accusent d’avoir sciemment voulu se débarrasser des copies de la manière forte. Comme le pointe Ars Technica, le pilote est accompagné d’un CLUF mais il faut spécifiquement le chercher pour prendre connaissance d’un passage où FTDI annonce clairement qu’en cas de fausse puce, le composant pourrait « être endommagé irrémédiablement ».
Il faudra reprogrammer manuellement le PID de la puce
Le problème est qu’il est difficile de savoir s’il s’agit d’une réelle volonté de FTDI de se débarrasser d’une seule traite des copies de sa puce. Le constructeur pourra en tout cas difficilement arguer que le CLUF était là pour prévenir. En effet, l’installation via Windows Update réalise toutes les étapes de manière automatique. Dans le cas d'un pilote, le contrat de licence n’est jamais affiché, et l’utilisateur n’a aucun moyen de lire le texte… avant que le pilote ne soit déjà installé. Difficile pourtant d’imaginer qu’un constructeur se lancerait dans une méthode aussi brutale pour se débarrasser des copies, au risque d’en garder une très mauvaise réputation.
L'autre explication est que FTDI a pu fournir un pilote qui devait effectivement réaliser certaines tâches au niveau de la puce. Une FT232 authentique aurait accepté les instructions sans ciller, tandis que les copies, présentant de très légères différences, les auraient mal interprêtées.
Mais si le pilote a déjà été installé et que la puce semble effectivement endommagée, que peut-on faire pour remédier au programme ? Hack A Day indique qu’il faut se rendre sur la page des utilitaires fournis par FTDI et récupérer celui dédié aux puces FT232 (une recherche dans la page permet de tomber rapidement sur le lien). Il faut ensuite l’exécuter depuis un PC sous Windows XP ou Linux et changer le PID de la puce. Une fois la procédure réalisée, il faudra faire attention à ne plus rebrancher l’appareil USB sur Windows récent équipé du nouveau pilote.