요약
2014년 Windows 드라이버 업데이트가 가짜 FT232 칩의 제품 ID를 0으로 바꿔 어댑터를 먹통으로 만든 사건을 다룹니다. USB와 시리얼을 잇는 브리지 칩의 원리, 위조 칩이 값싸게 퍼진 구조, 드라이버 배포가 낳은 반발과 이후 CH340으로의 전환을 차례로 정리합니다.
⏱ 00:001. 사건의 개요
⏱ 00:002014년 10월 Windows 업데이트로 배포된 FTDI 드라이버가 가짜 FT232 칩의 제품 ID를 0으로 바꾸면서, 해당 어댑터들이 어떤 컴퓨터에서도 인식되지 않게 된 사건을 소개합니다. 칩이 타거나 연기가 난 것이 아니어서 사용자들은 원인을 알기 어려웠습니다.

⏱ 01:062. 시리얼 통신과 USB 번역기
⏱ 01:06수십 년간 컴퓨터는 시리얼 포트로 장치와 1비트씩 통신했습니다. USB가 등장한 뒤에도 많은 장치가 시리얼 방식을 유지했기 때문에, USB와 시리얼을 중계하는 소형 칩이 필요해졌습니다.

USB 장치는 벤더 ID와 제품 ID라는 두 숫자로 자신을 알리고, 컴퓨터는 이 값을 보고 드라이버를 골라 통신을 시작합니다. 따라서 이 숫자가 바뀌면 컴퓨터는 장치를 식별할 수 없게 됩니다.
⏱ 03:153. FTDI의 설립과 FT232R
⏱ 03:151992년 Fred Dart가 Glasgow에 세운 FTDI는 이니셜에서 이름을 따왔고, 초기에는 PC 메인보드용 칩셋을 IBM 등에 공급했습니다. 설계만 하고 제조는 아시아의 위탁 업체에 맡기는 팹리스 구조였습니다.

2005년 발표된 FT232R은 주변 회로가 거의 필요 없어 USB를 일반 시리얼 포트처럼 보이게 했습니다. 기존 소프트웨어를 고치지 않아도 되어 아두이노를 포함한 수많은 보드에 쓰였습니다.
⏱ 06:244. 가짜 칩의 정체
⏱ 06:242014년 2월 러시아의 리버스 엔지니어링 그룹이 정품과 가품 FT232RL의 패키지를 녹여 내부 다이를 비교했습니다. 겉모습은 거의 같았지만 다이 크기와 공정 수치가 달랐고, 가품은 FTDI 회로를 복제한 것이 아니라 FT232인 척 프로그래밍된 범용 마이크로컨트롤러였습니다.

마스크 한 층만 바꾸면 다른 제품이 되므로 위조 비용은 매우 낮았습니다. ZeptoBars의 추정으로는 가짜 다이의 제조 원가가 10~15센트 수준이었고, 자체 칩을 설계해 인증받는 것보다 FTDI 제품 ID를 흉내 내는 편이 훨씬 저렴했습니다.
⏱ 09:195. 제품 ID를 덮어쓰는 드라이버
⏱ 09:19FTDI는 2014년 10월 14일 패치 화요일에 드라이버가 Windows 업데이트로 배포되게 했습니다. 드라이버는 가짜 FT232를 발견하면 칩의 제품 ID를 6001에서 0000으로 다시 쓰고, 이 변경은 칩 메모리에 저장되어 다른 PC나 Linux, Mac에서도 그대로 남았습니다.

사용자는 아무것도 클릭하지 않아도 되었고, 경고 문구는 라이선스 파일에만 있었습니다. 장치는 물리적으로 부서지지 않았지만 작동하지 않는 소프트 브릭 상태가 되었습니다.
⏱ 11:036. 반발과 드라이버 철회
⏱ 11:0310월 21일 한 사용자가 Linux에서도 장치가 멈춘다는 글을 올렸고, 원인이 제품 ID 0이라는 사실이 곧 밝혀졌습니다. Hackaday 등은 가짜 칩을 만든 쪽이 아니라 소비자에게 책임을 묻는 방식이라며 강하게 비판했고, SparkFun 같은 취미용품 회사도 재고를 점검해야 했습니다.

10월 24일 Fred Dart는 의도는 고결했지만 진품 고객에게 우려를 주었다고 인정하며 드라이버를 Windows 업데이트에서 제거했습니다. Microsoft도 두 버전을 제거했다고 확인했고, 리눅스 커널에는 제품 ID 0을 인식하는 긴급 패치가 추가되었습니다.
⏱ 15:037. 2016년 재시도와 CH340의 부상
⏱ 15:032016년 1월 배포된 드라이버 2.12.12는 제품 ID 대신 데이터를 바꾸는 방식을 택했습니다. 가짜 칩을 감지하면 장치가 보낸 데이터 대신 비정품 장치가 발견되었다는 문장을 반복해서 전달했고, 이 드라이버도 2월 초 업데이트에서 삭제되었습니다.

그 사이 저가형 시장에서는 Nanjing의 WCH가 만든 CH340이 빠르게 자리 잡았습니다. CH340은 FTDI인 척하지 않고 자체 ID와 드라이버를 가진 별도 설계라서, FTDI 드라이버가 필요 없는 칩이 저가 보드의 표준이 되었습니다.






