Chipleverancier FTDI saboteert namaakchips met firmwareupdates, mag dat?

ftdi-chip-brick-fakeChipmaker FTDI heeft een geupdate Windowsdriver uitgebracht die klonen van hun chips brickt, oftewel onbruikbaar maakt. Als de driver concludeert dat de chip nep is, verandert hij een fabrieksinstelling in de chip waardoor deze niet meer te lezen is. Dat is best wel vervelend omdat deze chip een van de meest gekloonde ter wereld is in consumentenelektronica en het uitschakelen dus vele onschuldige consumenten treft.

De update aan de Windowsdriver zorgt ervoor dat de productidentifier op nul wordt gezet, waardoor besturingssystemen deze niet meer herkennen nu dat op basis van deze identifier gaat. Deze aanpassing is erg moeilijk te resetten door gewone gebruikers, en als de chip in een apparaatje zoals een router zit dan houdt het vrijwel altijd op voor eindgebruikers.

FTDI zal stellen dat dit pech gehad is, omdat het nu eenmaal niet toegestaan is om chips na te maken. Waarom deze chips nu precies ‘counterfeit’ zijn, is me niet duidelijk. Het meest voor de hand ligt dat er ten onrechte de merknaam van FTDI op staat. En op zich hebben ze dan een punt: het is niet toegestaan te handelen in namaakmerkproducten of deze te gebruiken voor commerciële doeleinden. (Maar als consument zonder winstoogmerk zo’n namaakproduct gebruiken valt buiten de merkenwet.)

Een van de rechten die een merkhouder heeft, is het opeisen van inbreukmakende artikelen zodat hij deze zou kunnen vernietigen of wat hij maar wil (art. 2.21 lid 3 BVIE). Je zou in theorie kunnen zeggen dat bricken van zulke artikelen effectief hetzelfde is als het opeisen en onder een stoomwals gooien. Alleen zit je dan nog met het punt dat hier wel een rechter tussen moet zitten:

De rechter kan bij wijze van schadevergoeding op vordering van de merkhouder bevelen tot de afgifte aan de merkhouder, van de goederen die een inbreuk maken op een merkrecht, alsmede, in passende gevallen, van de materialen en werktuigen die voornamelijk bij de productie van die goederen zijn gebruikt. De rechter kan gelasten dat de afgifte niet plaatsvindt dan tegen een door hem vast te stellen, door de eiser te betalen vergoeding.

Zelfstandig inbreukmakende producten opeisen kan dus niet, dit moet door de rechter goedgekeurd worden. En evenzo mag het bricken van zulke producten niet (als je zegt bricken==opeisen) zonder tussenkomst van de rechter.

Omgekeerd, is het verboden wat FTDI doet? Het voelt als iets onwenselijks, maar een specifiek wetsartikel hiertegen kan ik zo niet bedenken. Je zou van vernieling van computersysteen (art. 161sexies Strafrecht) kunnen spreken maar dat voelt wel wat gezocht. Wellicht dat de cookiewet hier een optie biedt: het is verboden om software via een netwerk te laten installeren zonder toestemming en zonder informatie over wat de software gaat doen. En het lijkt me best relevant te weten dat deze software namaakchips gaat uitschakelen.

Nu staat er natuurlijk iets in de EULA van de driver hiervoor:

Use of the Software as a driver for, or installation of the Software onto, a component that is not a Genuine FTDI Component, including without limitation counterfeit components, MAY IRRETRIEVABLY DAMAGE THAT COMPONENT

maar zoals bij Ars Technica al opgemerkt, niemand die dat zal lezen. En dat is dan een wettelijk probleem: dergelijke informatie moet duidelijk worden aangereikt, en mag niet zijn verstopt in een EULA, privacyverklaring of ander juridisch document.

Ik ben zelf altijd geneigd pas kwade opzet te vermoeden als incompetentie uitgesloten kan worden. Het is denkbaar dat de update dit bricken als een onbedoeld bijeffect heeft, omdat men bij het programmeren alleen rekening hield met het gedrag van de eigen chips. Maar gezien de breed gevoelde woede twijfel ik daar nu toch aan.

Arnoud

62 reacties

  1. Los van de juridische kant van de zaak, is deze keuze van FTDI natuurlijk een PR-nachtmerrie. Als je foto’s van de originele FTDI chip vergelijkt met die van een namaak versie (zie de link die Steven eerder heeft gepost), dan is er voor de gewone consument geen manier om vast te stellen of het gaat om een originele chip of een namaak. Bovendien: Wie maakt er nu z’n hardware open om alle IC’s na te kijken? Het effect van deze update is nu dat er mogelijk een heel aantal mensen zijn, die zonder zich daarvan bewust te zijn een product hebben gekocht dat gebruik maakt van de namaak chips (omdat de producent wat geld wou besparen), waarvan hun apparaat spontaan niet meer werkt. Dat FTDI haar handelsmerk en wil beschermen is begrijpelijk, maar was het niet beter geweest om de driver zo te programmeren dat deze een popup laat zien wanneer een namaak chip wordt aangetroffen, eventueel met informatie over het apparaat waar deze chip in zit (voor zover dit technisch mogelijk is)? Want in de huidige situatie wordt vooral de consument het slachtoffer van het conflict tussen FTDI en de kloon-makers.

    1. Los van de juridische kant van de zaak, is deze keuze van FTDI natuurlijk een PR-nachtmerrie.

      Dat valt wel mee. Alle afnemers van FTDI hebben geen centje pijn en hun klanten ook niet. De consumenten van illegale kloonchips zijn voor FTDI toch geen klanten dus wat maakt het uit.

      Want in de huidige situatie wordt vooral de consument het slachtoffer van het conflict tussen FTDI en de kloon-makers.

      Waarbij moet worden gezegd dat veel consumenten ook lekker geprofiteerd hebben van de illegaal gekopieerde chips in goedkopere vooral chinese kloonproducten.

      1. in goedkopere vooral chinese kloonproducten.

        Waar trek je die conclusie uit? Ik zie nergens iets vermeld over de specifieke fabrikanten of producten waar deze chips gebruikt zijn. Voor hetzelfde geld heb je net een nieuwe home cinema set gekocht welke een “namaakchip” gebruikt omdat de chipleverancier niet helemaal eerlijk geweest is tegenover de fabrikant van jouw home cinema set.

        1. Hier een lijst met daarin de diverse chipfabrikanten over de gehele wereld. Naast de USA zie je ook Taiwan en China veelvuldig opduiken in die lijst. China heeft dus genoeg middelen om deze chips na te maken. En China heeft te weinig controle over wat er precies in deze fabrieken wordt gefabriceerd. De productie van deze klonen is vrij lucratief omdat het ontwerp van de chip bekend is en ze sowieso de middelen al in huis hebben om deze te maken. Gewoon een kwestie van iemand die de fabriek een grote som geld wil betalen om veel van deze chips te produceren en poef! Rise of the Clones! (Zou een goede Star Wars titel kunnen zijn.) Hier is meer te vinden over deze nep-chips in het algemeen en de soorten nep-chips die worden gemaakt. Hierin wordt ook aangegeven dat het rest-afval van de chip-industrie veelal richting China werd ge-exporteerd alwaar men het ging recyclen en de ruwe materialen werden vervolgens gebruikt voor het produceren van de nep-chips. Tja, niemand die oplet op wat er met deze afvalproducten gebeurt. Veel electronica voor hobbyisten wordt ook in China geproduceerd. China is ook veel goedkoper op dit gebied dan andere fabrikanten, mede ook omdat hun productiekosten lager zijn. (En de vervuiling hoger, maar daar maken ze zich niet zo druk om.) Mijn Arduino-bordjes mogen dan wel uit Italie komen, maar er komt ook veel uit China met vergelijkbare kenmerken. Aangezien het Arduino-ontwerp gewoon open-source is, kunnen deze ook in China massaal (na)gemaakt worden. Dit soort hardware voor hobbyisten is vrij goedkoop. Vanaf 8 euro kun je al een klein Arduino-bordje kopen (mini) en deze vanaf je PC aansturen. Allerlei extra hardwate is veelal ook te koop met prijzen van een paar eurocent voor ledlampjes tot en met over de honderd euro voor een GSM-module om mee te SMS’en en bellen. Ook beeldschermpjes en motoren, camera’s en veel andere zaken zijn gewoon te koop voor vrij lage bedragen. Laag genoeg om enorm populair te zijn voor hobbyisten en dus een interessante markt voor fabrikanten. (Mede ook door het open-source gehalte.) Maar deze hobbyisten willen de boel ook graag aansluiten aan hun computer via USB en daar komt die FTDI-chip bij kijken. Zeker bij de Arduino mini die geen eigen USB-poort heeft. En dit is dan ook een interessant markt-onderdeel, alleen is de betreffende chip geen open-source. Het USB-protocol is dat wel, maar dan moeten fabrikanten hun eigen drivers gaan meeleveren met Windows. Maar ja, wie wil nou zijn eigen driver ontwikkelen als FTDI al een goede driver heeft ontwikkeld? En dat is het grootste probleem. Een goede, open-source driver voor USB-devices ontbreekt gewoon. En dat nodigt uit tot dit soort piraterij. Want voor FTDI is het probleem niet dat hun hardware wordt “nagemaakt” maar dat deze andere producten hun eigen drivers “misbruiken”.

  2. Afgezien van de strafrechtelijke kant van het verhaal, is dit niet een onrechtmatige daad waarvoor de consument in een civiele zaak een schadevergoeding kan eisen?

    Verder ben ik wel benieuwd of Microsoft hier juridisch nog bij betrokken kan worden. Zij zijn het immers die selecteren welke updates aan gebruikers beschikbaar worden gemaakt.

    1. Kun je wel schade claimen op een dergelijk illegaal product? Ik heb 50 euro schade omdat ik mijn illegale kloonchip opnieuw wil laten voorzien van de vorige FDTI firmwareversie die daar ook illegaal op was gekopieerd. Je kunt beter een schade procedure beginnen tegen je leverancier die je die illegale chip heeft geleverd om die op kosten van de leverancier te laten vervangen door de legale chip. Dat lijkt me een makkelijker te winnen zaak.

        1. Ik zie wel het onrechtmatige in het saboteren van de chip maar kun je ook legitieme schade claimen. Het herstellen van de chip vereist schijnbaar een illegale handeling namelijk het herstellen van inbreuk makende FTDI driver software op de illegale chips. Kun je een schadevergoeding vragen voor zo’n ‘illegale’ herstelactie?

  3. Het is vernieling, wat ik altijd begreep is dat juristen het op onrechtmatige daad gooien als ze niets anders meer kunnen vinden 🙂

    Is het onrechtmatig om namaak te sabotteren? Ik vind van wel, de reden daarvan ligt in het feit dat de consument te goeder trouw was toen het product aan is geschaft. Deze kan niet weten hoe de chip verkregen is en moet er maar vanuit gaan dat de fabrikant het op correcte wijze heeft geregeld (aanschaf of productie onder licentie).

    1. Als ik kijk waar deze chips gebruikt worden (ook in embedded systemen) is er een risico dat deze actie storingen in de infrastructuur kan veroorzaken. Of in medische systemen.

      Dat zou juridisch aangepakt kunnen worden als “met roekeloos gedrag levens in gevaar brengen”. Als ik me goed herinner is daar ook een computer-variant voor in het strafrecht.

  4. Mij lijkt dat vernieling vereist dat opzet wordt bewezen en dat zal niet makkelijk zijn, want de chipmaker kan claimen dat het per ongeluk mis is gegaan. Een fout zit in een klein hoekje, zeker als je alleen met je eigen chips test.

    1. Mij lijkt dat vernieling vereist dat opzet wordt bewezen en dat zal niet makkelijk zijn, want de chipmaker kan claimen dat het per ongeluk mis is gegaan. Een fout zit in een klein hoekje, zeker als je alleen met je eigen chips test.

      Maar kan in dat geval de consument de schade niet claimen bij de producent? Immers als ik iets per ongeluk stuk maak van iemand anders dan moet ik ook gewoon de schade vergoeden… (En nee, de fabrikant kan zich niet achter de EULA verstoppen want de update kwam mee met de windows update en dan wordt de EULA van de fabrikant niet getoond. Laat staan dat je er wel of niet mee kan instemmen).

      1. De producent heeft een goed functionerende chip geleverd. Hij maakt inbreuk op de rechten van FTDI maar daar heeft de consument op zich geen last van. Het is de update die de chip onbruikbaar heeft gemaakt.

  5. Gezien dat (volgens Ars extreem verstopte) tekstje in de EULA lijkt een onbedoeld bijeffect niet waarschijnlijk. Immers, zullen ze er dan niet van geweten hebben en was dat tekstje in de EULA dus niet nodig.

    Ik snap dat FTDI pissig omdat hun producten nagemaakt worden, maar als ze dit met opzet doen is dat volgens mij Gewoon Fout. Je blijft met je tengels van andermans eigendom af. Punt.

    Blijft open de vraag waarom het flashen van dat productID op de chip nou nodig is, waarom ze niet gewoon in hun driver konden zeggen “als nep dan BSOD”, ofzo.

  6. 161sexies Strafrecht:

    Hij die opzettelijk enig geautomatiseerd werk of enig werk voor telecommunicatie vernielt, beschadigt of onbruikbaar maakt, stoornis in de gang of in de werking van zodanig werk veroorzaakt, of een ten opzichte van zodanig werk genomen veiligheidsmaatregel verijdelt
    Ik vind dat helemaal niet vergezocht. Je moet alleen aantonen dat het opzettelijk is gebeurd; dat is denk ik een kwestie van de driver reverse-engineeren, kijken of het verantwoordelijke stukje code er uit ziet als “IF andere fabrikant THEN saboteer”, en zo ja, geef FTDI de kans om weerwoord te geven. Bij uitblijven van een plausibel weerwoord beschouw ik ze als schuldig.

    Ik vind het compleet ongewenst dat deze apparaten gebrickt worden, of het nou met of zonder toestemming van een rechter gebeurt. Het belangrijkste nut van het merkenrecht is bescherming van communicatie tussen koper en verkoper: de verkoper moet met goede producten de reputatie van zijn merk kunnen opbouwen, en de koper moet met de reputatie van het merk kunnen inschatten of iets een goed product is. Daar is hier helemaal geen sprake van: deze chipjes zijn kleine onderdelen van apparaten, en de gemiddelde consument kent het merk FTDI niet eens.

    De eigenlijke koper van FTDI-achtige chips is de fabrikant van consumenten-elektronica, die zulke chipjes inbouwt. Die moet beschermd worden door de verkoop van kopieën onder de naam FTDI tegen te gaan. Aan de andere kant: als zo’n fabrikant chipjes koopt waarvan hij weet dat het goedkope klonen zijn, dan is er geen probleem, zelfs niet als er wel FTDI op staat. De norm moet zijn of er bij de verkoop wel/geen sprake is van misleiding.

    Een fabrikant die wel is misleid, en inmiddels apparaten heeft verkocht waarin onterecht goedkope kloon-chips in ingebouwd zijn, zou kunnen overwegen om zijn kopers een gratis vervangend apparaat met echte FTDI-chip aan te bieden; dit om te voorkomen dat een slechte kloon zijn eigen reputatie aantast. Mocht de fabrikant hebben geadverteerd dat een apparaat een (echte) FTDI-chip bevat, dan zou zo’n vervanging verplicht aangeboden moeten worden, ter bescherming van zowel de consument als FTDI. Verder zou de consument er niets van moeten merken.

    Zo’n sabotage-actie is dus totaal ongepast, en zou bestraft moeten worden.

        1. Zoals ik het lees is het geen grap. Iemand heeft echt geprobeerd om het bricken ook in de linux kernel te krijgen.

          Overigens is het tegenovergestelde gebeurd. De Windows Driver wijzigt de ID waardoor windows het USB apparaat niet meer herkent en geen driver laadt. Linux herkent nu ook de in Windows overschreven ID en laadt alsnog de goede driver. Lang leve open source!

          Linux werkt, Windows niet! Overigens schandalig dat zoiets door de driver certificering van Microsoft komt!

          1. Overigens schandalig dat zoiets door de driver certificering van Microsoft komt!

            Microsoft gaat vast een driver vast niet testen op willekeurige kloonproducten en dus zal het in hun testomgeving prima werken.

              1. Het is nu bekend, heeft Microsoft de driver al teruggetrokken?

                Dat heeft FTDI zelf gedaan:

                Microsoft has given us a statement:

                Yesterday FTDI removed two driver versions from Windows Update. Our engineering team is engaging with FTDI to prevent these problems with their future driver updates via Windows Update.

  7. Wat de namaak chips doen is de functionaliteit en publieke interface van de FTDI chips nabouwen; intern zijn het heel andere chips! Vervolgens wordt er FTDI opgedrukt en wordt de boel verkocht. Wat is hiervan het voordeel: 1. De maker bespaart het maken van een driver en de kosten om die door bijvoorbeeld microsoft gecertificeerd te krijgen. 2. De fabrikant ontduikt de kosten voor het certificeren van zijn hardware (CE/FCC certificering)

    Maar om dit te doen moet het product dezelfde Vendor ID en product ID krijgen als FTDI chips, anders wordt deze niet herkend door de driver en windows update.

    Die VID en PID krijg je toegewezen als je een USB licentie afneemt, alleen zoals iemand op het internet al riep, het is niet verboden om zelf een VID/PID te verzinnen of die van een ander te gebruiken als je geen USB licentie hebt afgesloten (het is puur een contractueel voorbehoud). Zonder die licentie mag je het feitelijk geen USB noemen, maar dat boeit niet zo.

    De hele detectie van de namaak kan omdat de chip intern feitelijk anders is en dus niet volledig nagemaakt. (Eigenlijk alleen de API is nagemaakt) Het wijzigen van de VID/PID is een bewuste actie die de producten onbruikbaar maakt. Het wachten is dus op een partij die door deze actie een flinke schade oploopt in Europa. Ik verwacht in de VS weinig heil van een rechtzaak, omdat daar die onleesbare EULA bijna heilig zijn.

  8. Is het handelen van FDTI niet onrechtmatig omdat de consument in praktisch alle gevallen ter goeder trouw deze illegale chips gebruikt? Bij het kopen van goederen die later gestolen blijken te zijn is de consument ook beschermd. In dit geval zal je kunnen beweren dat de fabrikant zich schuldig maakt aan inbreuk (of heling) maar de consument niet.

  9. Valt dit niet gewoon onder garantie? Updates installeren is een normale acties dus daar moet het apparaat gewoon tegen kunnen. De leverancier moet maar zorgen dat het in orde komt, en zijn leverancier, etc, etc. Merken die nep-chips gebruiken zullen snel genoeg merken dat ze hun producten niet meer kwijt kunnen bij distributeurs.

    1. Je kunt niet zo alle updates op een hoop gooien en stellen dat een apparaat er tegen moet kunnen. Elke update is een unieke wijziging in software, en je kunt niet van te voren weten wat voor updates er gaan komen. De enige manier om een apparaat helemaal robuust te maken tegen elke mogelijke update is door het helemaal dicht te timmeren, zodat geen enkele software ooit het apparaat kan saboteren.

      Dat is op zich misschien niet zo’n slecht idee: apparaten zouden best wel eens wat minder programmeerbaar mogen zijn, al was het maar om ze tegen virussen te beschermen. Het is alleen wel zo dat, als updates en daarmee software bepaalde mogelijkheden niet meer hebben, dat die mogelijkheden ook niet meer beschikbaar zijn voor gebruikers, mogelijk met verlies aan functionaliteit als gevolg.

      Ik betwijfel of de officiële FTDI-chips aan jouw eis voldoen.

  10. Ik zie behoorlijke overeenkomsten met het verhaal van de Nintendo-EULA, namelijk een externe partij (al dan niet de leverancier van jouw apparaat) die op afstand, naar believen, jouw apparaat onbruikbaar maakt.

    Zou iemand het accepteren als na een bezoek aan de merkgarage, hun auto alleen nog maar benzine van een bepaald merk accepteerde? Of als hun auto niet meer wilde starten omdat er geen merkvelgen onder zitten, maar after-market?

    Het is hoog tijd dat er wetgeving komt dat als een software-update, per ongeluk of expres, jouw apparaat beschadigt of onbruikbaar maakt, de maker van die update daar voor verantwoordelijk is.

    1. Expres: mee eens. Maar voldoet bestaande wetgeving hier echt niet? Gaan nieuwe wetten iets oplossen? Per ongeluk: niet mee eens. Er moet ruimte zijn voor het leveren van software met “gebruik op eigen risico”. Anders denk ik dat je bijv. de open source software-ontwikkeling dood maakt: niemand wil dat soort aansprakelijkheids-risico’s dragen als er geen inkomsten tegenover staan.

      1. Ik zei “verantwoordelijk”, ik zei niet per se “financieel aansprakelijk”. Ik zie teveel licenties voorbij komen waarin min of meer staat “gebruik op eigen risico; het zal waarschijnlijk doen wat je denkt wat het doet, maar als het in plaats daarvan je huis geel verft en je kat aan Lucifer offert, is het niet onze schuld”.

        Dat gaat mij te ver. Natuurlijk wil ik open source software niet om zeep helpen, maar aan de andere kant mogen de makers, zeker de grotere consortia, zich daar professioneler in opstellen — waar ik gelijk aan toe wil voegen dat dit in de praktijk toch al vaak zo is, maar dat mag ook best in de voorwaarden vastgelegd worden.

        Maar om terug te komen op het ‘per ongeluk’, het gaat mij er om te kunnen voorkomen dat een bedrijf als FTDI zich in dit geval hierop zou kunnen beroepen, dat men niet wist dat hierdoor de klonen onbruikbaar zouden worden.

        1. Maar om terug te komen op het ‘per ongeluk’, het gaat mij er om te kunnen voorkomen dat een bedrijf als FTDI zich in dit geval hierop zou kunnen beroepen, dat men niet wist dat hierdoor de klonen onbruikbaar zouden worden.

          Volgens mij kunnen ze zich er in dit geval ook niet op beroepen, omdat het al aardig duidelijk begint te worden dat dit opzet is. En, IANAL, maar ik denk dat de wet al voldoende middelen bevat om dit aan te pakken. De vraag is vooral: wie begint er een rechtszaak? Ik in ieder geval niet, want ik heb geen schade (ik gebruik sowieso Linux ipv windows op mijn eigen computers, dus ik heb deze malware niet gekregen). Daarnaast: tooltje downloaden om je apparaat te herstellen is een stuk sneller en goedkoper dan een rechtszaak.

  11. In de Linux-patch is het in ieder geval opzettelijk:

    +   /* Verify EEPROM is valid /
    +   checksum = ftdichecksum(eepromdata, eepromsize);
    +   if (checksum != eepromdata[eepromsize - 1])
    +       goto endverify;
    +
    +   / Attempt to set Vendor ID to 0 /
    +   eeprom_data[1] = 0;
    +
    +   / Calculate new checksum to avoid bricking devices /
    +   checksum = ftdichecksum(eepromdata, eeprom_size);
    +
    +   / Verify EEPROM programming behavior/nonbehavior */
    +   write_eeprom(port, 1, 0);
    +   write_eeprom(port, eeprom_size - 1, checksum);
    +
    +end_verify:
    
    Deze code leest de EEPROM van de chip uit, controleert of de checksum van die data klopt, en zo niet, dan zet het (expres) de vendor ID op 0 in de EEPROM data, en schrijft de data terug naar de EEPROM van de chip.

    1. controleert of de checksum van die data klopt, en zo niet, dan zet het (expres) de vendor ID op 0 in de EEPROM data,

      Ik ben geen C expert maar volgen mij zet die linux patch juist de verdor ID op nul als de checksum WEL klopt.

      1. Ehh, je hebt volgens mij gelijk! 🙂 Dus of deze patch verwacht dat de checksum wel klopt in de fake apparaten maar niet in de echte FTDI, of andersom, en dan is deze patch is bedoeld om echte FTDI apparaten te bricken.

        Gezien de context denk ik het tweede, en lijkt dit dus vooral bedoeld als grap, en niet afkomstig van FTDI zelf.

        1. Echte chip accepteert geen schrijfacties naar oneven adressen. Op een echte chip zal de schrijfactie dus niets doen. Verder zit er in de eerste patch een bug, waardoor die sowieso niet doet wat de bedoeling is. Nep chips worden gebrickt, maar echte worden gereset, wat niet de bedoeling is.

      2. Daar kunnen we dan ook op gaan wachten: de volgende keer maken ze bij FTDI ook zo’n foutje en zit de halve wereld met defecte USB apparaten… In elk geval hebben ze bij FTDI bereikt dat mensen die er kijk op hebben het merk gaan mijden, omdat ze bang zijn voor nep. In dat opzicht dus zeker geen goede PR.

    2. Nee, hier wordt de checksum berekend en vergeleken, en als de checksum niet overeenkomt, wordt er niets gedaan.

      Als de checksum wel overeenkomt (dus bij echte FTDI chips?), wordt de vendor ID op 0 gezet en wordt er op basis daarvan een nieuwe checksum berekend. Vendor ID en nieuwe checksum worden vervolgens weggeschreven.

      1. Er wordt daar ook geschreven dat de echte FTDI-code het product ID op 0 zet, op een zodanige manier (schrijven naar een even EEPROM-adres) dat de echte FTDI-chip het schrijf-commando negeert.

        Dit lijkt me code die geen nut kan hebben op de echte FTDI-chip. Ik denk dat FTDI nu wel met een echt goed verhaal moet komen om te verdedigen dat er geen sprake is van opzet.

  12. Interessant is dat de FTDI chips populair bij liefhebbers van microcontrollers en dergelijke development bordjes zoals de Raspberry Pi en de Arduino. Omdat men bij deze controllers graag via USB met een PC will communiceren is deze chip ook populair en daarmee dus ook populair om gecloond te worden. Denk daarbij aan deze FTDI Friend waar de betreffende chip dus op zit. Hopelijk hebben ze hiervoor de echte chip gebruikt want anders zullen een hoop hobbyisten hierover zeer gefrustreerd raken. Dit geldt overigens ook voor allerlei andere randapparatuur die je via USB aan de PC koppelt. Hoeveel van die randapparaten zullen nu niet meer werken? Aan de andere kant, het is vooral een probleem voor Windows gebruikers. Het is een update voor Windows, niet specifiek voor de chips. De chip in de PC kan er door worden aangetast maar bij al die microcontrollers vast niet…

  13. Wat is het probleem met de EULA? Zwarte of grijze lijst? Of ter handstelling – maar in dat geval heeft het niets te maken met deze specifieke voorwaarde? Of is bricken nog steeds onrechtmatig, zelfs als je het in de algemene voorwaarden zet?

    1. Het probleem is dat de benodigde toestemming niet in die EULA kan worden bedongen. Toestemming om via een netwerk iets op een randapparaat op te slaan mag alleen indien apart gegeven en na adequate voorlichting over wát er gaat worden opgeslagen. Dat geldt voor cookies net zo goed als voor updates. “Deze update zal uw non-genuine chips bricken” had dus apart van de EULA moeten worden gemeld.

      1. Ik neem aan dat je art. 11.7a lid 1 sub b Telecommunicatiewet bedoelt? Die regel ziet toch, naar mijn mening, meer op persoonsgegevens dan op technische gegevens. De toestemming moet toestemming zijn volgens 11.1(g) Tw, dus volgens art. 1(i) Wbp, dus “elke vrije, specifieke en op informatie berustende wilsuiting waarmee de betrokkene aanvaardt dat hem betreffende persoonsgegevens worden verwerkt”. Dat zegt niets over niet-persoonsgegevens. Ik had niet begrepen, en ben er nog niet zeker van, dat je de cookiewet op die manier kan toepassen dat een “vrije, specifieke en op informatie berustende wilsuiting ” vereist is beveiligingsupdates of in dit geval andersoortige technische driverupdates. Tenzij er een andere wettelijke grondslag is?

  14. Ondertussen meldt TechDirt dat FTDI dit met opzet heeft gedaan volgens commentaar van FTDI zelf. Ze schijnen overigens de update weer verwijderd te hebben van de Windows update en ze zullen een nieuwe update uitbrengen die de boel hopelijk niet vernielt. (Bron.) Nu de allergrootste vraag: indien FTDI dit met opzet heeft gedaan, kunnen mensen dan nu een schadeclaim indienen voor hun beschadigde hardware?

  15. Waarom wordt het probleem bij FTDI gelegd? De klant kan toch gewoon terug naar de winkel en eisen dat hem een niet-inbreukmakend apparaat wordt gegeven? Op grond van Artikel 7:17(2) BW mag de consument immers verwachten dat hij een 100% legaal apparaat krijgt waar geen namaak chips en/of namaak firmware in verwerkt zijn.

    1. Een FTDI-kloon kan best 100% legaal zijn. Je mag alleen de merknaam FTDI niet gebruiken (wellicht is “FTDI-compatible” zelfs nog wel toegestaan), en aangezien je zonder toestemming een USB vendor/device ID van een ander gebruikt, mag je geen merken van de USB-standaardisatie-organisatie gebruiken (komt er zo’n beetje op neer dat je niet mag beweren dat het een USB-apparaat is).

      Dat laatste is misschien een beetje lastig, aangezien je bij een koper al snel de indruk wekt dat het een USB-apparaat is. Ik weet niet of je op die manier inbreuk maakt, of dat die indruk alleen maar betekent dat je aan de klant verantwoordelijk bent dat het in de praktijk gewoon goed werkt als USB-apparaat. Dat tweede kan natuurlijk best met kloon-chips (afhankelijk van de kwaliteit van die chips).

    1. Ja en nee. De manier waarop in deze code het Goto statement wordt gebruikt is de correcte wijze. Maar de voorkeur is om gewoon het if-statement om te keren en alles tot aan de label binnen het if-blok te plaatsen.

      Maar op zich wordt het Goto statement hier correct toegepast, ook al is het totaal overbodig.

      Vergelijkbare discussies zijn b.v. ook mogelijk met recursie, want recursieve methodes vind ik ook walgelijk, net zoals het Goto statement. Recursie zou ook verboden moeten worden, simpelweg omdat het je stack gaat vervuilen. Als je zonder recursie werkt heb je veel minder kans op een stack overflow.

      1. want recursieve methodes vind ik ook walgelijk, net zoals het Goto statement.
        Ik niet, ik vind recursie leuk en het is vaak duidelijk en efficiënt.
        Recursie zou ook verboden moeten worden, simpelweg omdat het je stack gaat vervuilen.
        Niet als je het met verstand doet en een adequate rem plus noodrem inbouwt. En dat geldt voor alles in C: het is niet voor nitwits en sloddervossen.

        1. Of recursie schadelijk is of niet is nu nog een behoorlijk academische discussie. Ik zit zelf in het kamp dat je heel kritisch moet zijn met het toepassen van recursie. Er zijn (net als indertijd met goto) een aantal patronen waarbij recursie nu gebruikt wordt, die je wat mij betreft beter expliciet kunt maken (de fold en de map over een datastructuur, zoals bv. gebruikt in het visitor-patroon); heb je daarvoor goede mechanismen (aka ‘syntactic sugar’) in je taal gedefinieerd, dan mag je wat mij betreft daarna alle vrije varianten van recursie in het verdomhoekje naast de goto zetten; alleen te gebruiken in zeer uitzonderlijke gevallen, voorzien van zwaailichten en waarschuwingssignalen.

        2. Niet als je het met verstand doet en een adequate rem plus noodrem inbouwt.
          Het argument dat jij nu geeft om recursie toe te passen werkt ook prima op het Goto statement! 🙂 Ik zie regelmatig code waar recursie wordt toegepast terwijl het totaal overbodig is. Ik zie ook recursieve methodes toegepast worden bij functies die veel locale variabelen hebben die ook allen op de stack komen. En dan gaat je stack wel enorm snel volraken. En dat terwijl de niet-recursieve methodes ook gewoon heel simpel te doen zijn. (Behalve in sommige programmeertalen waar recursie zowat de standaard is.) Ik vermijd zowel Goto als Recursie simpelweg omdat beiden voor onverwachte problemen kunnen zorgen. Zeker omdat de stack overflow exception zich enorm moeilijk laat afvangen omdat de gehele app erdoor instabiel wordt. Er is immers geen stack meer over.

  16. Update (gelezen op Slashdot): De FTDI driver heeft weer een nieuwe update gekregen die klonen saboteert.

    Deze keer stuurt de driver de tekst “NON GENUINE DEVICE FOUND!” de seriële lijn op; apparaten verwachten die tekst natuurlijk niet, en kunnen er door van slag raken.

    Dit is overduidelijk een opzettelijke sabotage-actie. Het is ook potentieel gevaarlijk: als er aan de andere kant van de lijn een industriële robot staat te wachten op commando’s, dan zou “NON GENUINE DEVICE FOUND!” mogelijk geïnterpreteerd kunnen worden als commando’s, mogelijk met levensgevaarlijke gevolgen (bijv. “N” = neer; “O” = op; “N” = neer; enz.).

    Waarom stuurt Microsoft nog driver-updates van FTDI mee met hun update-systeem? Ze zouden gewoon, net zoals Linux, een eigen FTDI-driver zonder ongein moeten maken, en die met windows meeleveren.

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.