Windows Update draait vervalste chips de nek om

Hardware hackers die interactieve gadgets bouwen op basis van Arduino microcontrollers, ontdekken dat een recente driver update die Microsoft aanbracht via Windows Update sommige hardware lamlegt (‘bricked’), en ontoegankelijk maakt voor de meeste software in zowel Windows als Linux. Dit werd gemeld op de hardware hacking site Hack A Day.

De desbetreffende driver is bedoeld voor een lijn USB-naar-serieel chips, ontworpen door de Schotse firma FTDI. De chips van FTDI zijn ongelooflijk populair, omdat zo ongeveer elke microcontroller en elke embedded component  kan communiceren via een seriële poort. Maar deze populariteit heeft zijn keerzijde; er is een groot aantal namaakchips in omloop. Ze zien er uit alsof ze zijn gemaakt door FTDI, maar dat is niet het geval.

Drivers

FTDI ontwikkelt drivers voor zijn chips. Die kunnen rechtstreeks worden betrokken van FTDI, of ze kunnen automatisch worden gedownload via Windows Update. Voor veel mensen is dat laatste gemakkelijk, omdat het plug-and-play mogelijk maakt. De nieuwste versie van de driver is uitgebracht in augustus en bevat wat nieuwe taal in zijn EULA en een eigenschap die mensen heeft overrompeld: hij herprogrammeert vervalste chips, waardoor ze grotendeels onbruikbaar worden en mogelijk onherstelbaar beschadigd raken.

Dit wordt weliswaar gemeld in de licentieverklaring die is opgenomen in de files van de driver, maar die melding zit nogal weggestopt en je ziet hem alleen als je er expliciet naar zoekt.

Het gevolg is dat goedbedoelende hardware-ontwikkelaars die hun systeem hebben geactualiseerd met Windows Update moeten constateren dat hun seriële controllers ermee zijn gestopt. Erger nog, het is niet zo dat de drivers simpelweg dienst weigeren, maar de chips werken ook niet meer met Linux systemen. Dit gebeurde zelfs bij ontwikkelaars die veronderstelden dat ze legitieme FTDI onderdelen hadden gekocht. Het is vaak moeilijk te zien en er doen verhalen de ronde van OEM’s en ODM’s die stilletjes de specs negeren en namaakcomponenten toepassen.

ID

Elke USB-component heeft twee ID’s. De ene, de vendor ID (VID), wordt toegewezen door de USB Group. Elke leverancier heeft zijn eigen, unieke ID en gebruikt die op elke geproduceerde USB-component. De tweede is de product ID (PID), die wordt toegewezen door de leverancier en waarbij elk type chip zijn eigen PID krijgt. Windows gebruikt het VID/PID-paar om uit te zoeken welke driver voor een bepaald stuk hardware nodig is. De vervalste chips gebruiken de VID van FTDI’s en zetten de PID op de PID van de chip die ze klonen.

De nieuwe driver herprogrammeert de PID van vervalste chips op 0000. Omdat deze PID niet overeenkomy met een echte FTDI component, herkennen FTDI drivers de chips niet meer en dan is toegang tot de chips onmogelijk. De PID wordt opgeslagen in een niet-vluchtig geheugen, dus als de chip eenmaal is geherprogrammeerd blijft de PID staan op 0000, zelfs als er oudere drivers worden gebruikt – en ook in Linux.

Hoe? 

De defecte componenten lijken te kunnen worden hersteld: FTDI heeft recovery software waarmee de chips kunnen worden geherprogrammeerd en als ze worden gebruikt met sommige oudere drivers lijkt het mogelijk om de ‘correcte’ PID opnieuw te installeren. Maar als de chips daarna weer worden gebruikt met recente drivers, zal de PID weer op 0000 worden gezet.

Het is niet direct duidelijk hoe en waarom de drivers dit doen. Het is mogelijk dat ze op de een of andere manier vervalsingen detecteren en dat ze die opzettelijk herprogrammeeren. Maar het is ook mogelijk dat de drivers dezelfde instructies sturen naar zowel de goede als de foute componenten, en dat deze instructies in de echte FTDI chips geen schade veroorzaken en in de vervalste juist wel. FDTI wil daar desgevraagd geen  toelichting op geven. Ook Microsoft wil geen commentaar geven.

Te ver gegaan

De hardware hacker community is boos op FTDI. Men neemt aan dat de schade opzettelijk wordt veroorzaakt, en hoewel er een zeker sympathie is voor het aanpakken van vervalsingen, vindt men toch dat FTDI te ver aat door de vervalste chips onbruikbaar te maken. Volgens de hackers moet FTDI de producenten van de vervalsingen aanpakken, en niet de consumenten.