Atualização de drivers do Windows danificando hardware. Péssima idéia da FTDI.

Você é proprietário de Arduino (duemilanove ou mega 1280), conversores USB-serial ou qualquer coisa que se conecte ao PC via porta USB? Tome cuidado pois a comunicação com seu aparelho pode ficar inoperante após uma rodada do Windows Update. O fabricante de chips USB FTDI, com o intuito de combater a falsificação de seus chips, teve a incrivelmente estúpida idéia de colocar código em seu driver que ao detectar que o chip é falsificado reprograma o chip para que não funcione mais. Isso foi originalmente reportado no HackADay e a FTDI admitiu prontamente.

O sintoma é que a inserção do hardware é detectada, mas o dispositivo não é reconhecido. Em nenhum computador.

O problema para a FTDI é que é incrivelmente difícil distinguir o chip falso do original. Até mesmo empresas sérias podem ter sido enganadas com a falsificação. O chip pode ter marcação laser idêntica à original e se comporta igualzinho ao original, sendo capaz de passar em praticamente qualquer controle de qualidade que não envolva analisar o chip por dentro com um microscópio eletrônico.  Como você tem certeza que comprou original? Comprando na Farnell? Na Digikey? HA! Já perdi a conta das empresas com reputação no mercado que se envolveram em baitas “roubadas” (às vezes literalmente) por negligência ou má-fé de seus gerentes. Lembram do Carrefour vendendo celulares roubados? Recentemente uma grande cadeia de lojas de Pernambuco se envolveu com carga roubada também. Vender falso? Mais fácil ainda. O chip falso pode estar em qualquer lugar, em qualquer tipo de aparelho. E intencionalmente danificar propriedade alheia é algo muito difícil de defender.  O correto para a FTDI seria, ao detectar o chip falso, exibir uma mensagem de falsificação e desabilitar o driver.

Em fevereiro deste ano a zeptobars fez uma análise com microscópio eletrônico que mostra claramente a diferença entre um FTDI legítimo e um falso. Por dentro, é claro. Na ocasião eles puderam distinguir o falso visualmente pelo fato da marcação não ser a laser (mesmo olhando lado a lado na foto não é fácil notar diferença) mas não duvido nada que existam cópias com gravação a laser. Afinal, o que é uma gravação a laser para quem consegue fazer uma falsificação tão sofisticada? Isso lembra as falsificações de pilhas recarregáveis da Sony que são visualmente tão perfeitas que você só descobre que o produto é falso por causa dos erros de inglês na embalagem. Corrija os erros de inglês e…

A comunidade de segurança está p*ta com a FTDI porque isso é um golpe sério na credibilidade das atualizações automáticas. Eu não me importo porque nunca gostei delas mesmo. É esperado que a MS retire a atualização do ar e não me surpreenderia se isso pudesse resultar em uma pesada multa para a FTDI por violação de contrato com a MS. No mínimo a FTDI pode ser proibida de oferecer novas atualizações pelo Windows Update.

Para quem é técnico, o aparelho não está definitivamente perdido. O que a FTDI faz é reprogramar o USB PID para zero. Isso pode ser desfeito usando um utilitário da própria FTDI que já existia antes desse evento, porque a reprogramação do VID/PID é uma das funcionalidades do chip.  Mas incontáveis técnicos vão se deparar com o problema e achar que a interface simplesmente está morta por não estarem sabendo dessa presepada da FTDI. Imagine o consumidor normal.

Caramba… posso apostar que muito chip FTDI falso nem está marcado “FTDI” em cima. E como está morto você não tem como identificar imediatamente por software. O técnico preciso mesmo estar “ligado” nesse problema e testar toda interface serial defeituosa que passar pelas suas mãos com o utilitário da FTDI. Isso hoje, amanhã, daqui a seis meses…

Como a inserção do hardware é detectada ainda é possível identificar que trata-se de uma interface FTDI olhando o par VID/PID exibido. Se tiver algo assim:

VID_0403

É um chip FTDI. Que pode ser original ou falso, já que ambos podem ser maliciosamente reprogramados. É interessante notar que o VID também pode ser alterado. Isso faz parte do design do chip porque o fabricante do equipamento pode querer fornecer seu próprio driver e para isso tem que usar seu próprio par VID/PID. Supostamente a atualização da FTDI só verifica dispositivos comVID 0403 então supostamente fabricantes/montadores que estejam usando chip falso (sabendo ou não) e tenham alterado o VID devem estar imunes.

9 comentários
  • Claudio - 13 Comentários

    Ainda bem que o driver foi retirado do ar …

    A grande vantagem em deixar o VID/PID intacto para qualquer fabricande de dispositivos que não seja um “gigante” é que mudar o par tem custos … Alocar um PID tem custos, e além disso força o fabricante a distribuir um driver próprio, que precisa ser qualificado pela MS (mais custos).

    Logo, sempre que possível, é melhor ficar com o VID/PID original e aproveitar o driver pré-instalado – ao menos esse era o raciocínio até essa mancada fenomenal :-)

    • Jefferson - 6.564 Comentários

      Alocar um PID tem custos,

      Rigorosamente falando o custo de um PID é irrisório. O problema é que pra ter um VID (requerimento para se ter um PID) você precisa desembolsar um mínimo de 5000 dólares. Tendo desembolsado isso, cada PID sai por 5000/65535= 8 centavos de dólar.

      O danado é que todo o esquema de VID/PID foi mal pensado. O VID é um número de 16 bits e por isso só é possível existirem pouco mais de 65 mil fabricantes de dispositivos USB no mundo. Essa escassez de VIDs força a coisa a ser cara mesmo, senão já nem existiriam VIDs disponíveis. E cada um deles pode ter até 65535 dispositivos, o que é uma quantidade absurda para muitos. De cara se vê que a coisas foi muito mal balanceada. Se pelo menos a USB-IF tivesse seguido o antigo exemplo dos endereços MAC, o VID teria 24 bits e o número possível de VIDs estaria na casa dos milhões.

      E a USB-IF não permite que você forme uma comunidade, faça uma vaquinha e compre um VID para distribuir PIDs entre os membros. Parece draconiano ou ganancioso, mas acho que faz sentido considerando como a coisa funciona. Se o “fabricante” é reconhecido pelo VID e não pelo conjunto VID/PID, quem organiza a bagunça resultante? Faltou novamente sabedoria da USB-IF para seguir o exemplo do endereçamento IPv4 (novamente, algo estabelecido consagrado muitos anos antes do padrão USB) e ter alocado uma faixa de VIDs para uso particular.

      e além disso força o fabricante a distribuir um driver próprio, que precisa ser qualificado pela MS (mais custos).

      Eu vejo um cenário em que seria possível usar o mesmo driver, mas com o arquivo INF contendo o seu VID particular e a identificação do seu dispositivo. Isso seria perfeitamente possível se empresas como a FTDI licenciassem o driver dessa maneira. Eu não tenho certeza agora se alterar o INF quebra a assinatura digital do driver, mas imagino que não. Nesse caso a certificação não seria problema.

  • Jefferson - 6.564 Comentários

    A FTDI tentou empurrar essa presepada até mesmo no kernel do Linux.

    Mas como ela não tentou esconder o propósito do patch, este foi rejeitado.

  • Intruder_A6 - 194 Comentários

    Isto é uma puta sacanagem. Ainda bem que eu não atualizei o Windows estes dias. Nem sei quantos equipamentos com chip FTDI eu devo ter, mas um deles é um Arduino Mega chinês, então realmente não dá para botar a mão no fogo.

    Espero ter escapado dessa.

  • Jefferson - 6.564 Comentários

    Acho que cabe aqui um esclarecimento.

    A FTDI é uma empresa familiar escocesa e provavelmente uma completa desconhecida para o grande público, mas é famosa no meio técnico por criar chips USB-UART de grande estabilidade e funcionalidade. O mais conhecido é o FT232. Os concorrentes mais próximos da FTDI nesse campo são Prolific e Silabs que fabricam chips mais baratos.

    Aliás, preço é o grande problema do FT232 e em parte o motivo da massiva falsificação. Um único chip custa 5 dólares na Digikey, sem contar o frete. Eu me lembro de ter feito uma pesquisa no ebay a mais de um ano e cada chip custar 10 dólares. Daí não é surpresa nenhum que o Arduino Duemilanove vendido hoje na china por $8 venha com um FT232 falso. Afinal o FT232 nem sequer é a peça mais importante do projeto. E também não é supresa alguma que o projeto Arduino tenha substituído o caro FT232 por um Atmel 8u2 no UNO.

  • José Domingos - 1 Comentário

    Boa noite a todos!
    Acho que tive a infelicidade de cair neste conto do vigário. Tenho um microscópio digital que uso para análises e de um tempo para cá, o winsdows não reconhece o dispositivo conectado na porta USB. Aparece a mensagem “usb vídeo device não reconhecido”.
    Alguém pode me dar um help pois preciso que este equipamento funcione para realizar algumas análises que estão paradas me causando prejuízos.
    Obrigado.

Deixe um comentário para José Domingos Cancelar resposta

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »