среда, 30 мая 2012 г.

Про китайский backdoor, JTAG и военные секреты

Исходная новость, наделавшая немало шума: “Latest news on my Hardware Security Research.”

Её перевод на xakep.ru: “В военной микросхеме США китайского производства обнаружен бэкдор.”

Заметки эксперта в области безопасности об этой новости: “Bogus story: no Chinese backdoor in military chip.”

Перевод заметок эксперта на xakep.ru: “Подробности о китайском бэкдоре в чипе FPGA.”

Если перевод исходной новости сделан корректно, то перевод заметок изрядно запутан. Не буду пересказывать тут все “перлы” перевода, а просто перескажу своими словами, что имел ввиду эксперт. А вы уже сами сравните мои пояснения с “хакерским” переводом. Думаю, это заставит вас улыбнуться. Улыбка

Лет 7 назад я активно программировал однокристальные ЭВМ. Общий стаж в области схемотехники у меня примерно 10 лет. Последние годы я переключился исключительно на программирование, и стал уже забывать про все эти JTAG’и. Интересная исходная новость вызвала интерес у меня к теме. Я решил “тряхнуть стариной”. Итак.

  1. Микросхемы (м/с) могут делаться на заводе с тестировочными блоками. Однако, никого это волнует. После тестирования м/с эти контактные площадки никуда наружу не выводятся- 99,99% разработчиков, использующих эти м/с в своих разработках, об этом ничего и не знают. Чтобы добраться до них надо разрушить м/с.
  2. После тестирования, заключения м/с в корпус, ее продают разработчикам всяких телевизоров, плейеров, телефонов.
  3. Разработчик программирует м/с. Знаете, страшно неудобно, когда приходится постоянно доставать м/с с печатной платы, перепрошивать, потом снова вставлять, включать, убеждаться, что не работает, искать ошибку в программе, и по-новой перепрошивать. Так жили до JTAG’a. Интерфейс JTAG- это выводы на м/с, через которые можно подключиться напрямую к м/с и, не вытаскивая ее из печатной платы, перепрошивать. Более того, отлаживать код в м/с по шагам, смотреть значение ячеек памяти, регистров. Обалденная штука.
  4. После того, как программа для м/с написана, устройство (плейер, телевизор) доработано, его запускают в производство.
  5. Если код в м/с не представляет особой ценности, то контактные площадки, выведенные под интерфейс JTAG, можно так и оставить разведенным на печатной плате. Достаточно самого разъема для подключения не припаивать на плате к этим контактным площадкам.
  6. Т.е. хакерам достаточно припаять разъем и подключиться к м/с через JTAG- и вот перед нами все коды м/с! Можем отлаживать, перепрошивать- делать что хотим. Про этот способ взлома устройств и писал эксперт, когда говорил: “About 20% of home routers have a backdoor in them, and 50% of industrial control computers have a backdoor.”
  7. Но от этого можно защититься. После прошивки м/с по JTAG’у можно выставить биты защиты (залочить м/с). Биты защиты задают разные уровни доступа к м/с: полный доступ, только чтение, запрет на чтение, запрет на перепрошивку и т.д. Разработчики устройств часто пренебрегают установкой этих битов, что и дает шансы хакерам.
  8. Приведенная в качестве примера м/с ProASIC3- это флэш-память с функцией шифрования данных. Через JTAG вы можете в нее прошить AES-ключ, и она вам будет выдавать данные, зашифрованные этим ключём. Это используется для защиты данных при передаче их по каналам связи.
  9. Эксперт говорит, что проникая через “незакрытую дверцу” JTAG’a (когда не выставлены биты защиты), хакеры могут прочитать AES-ключ. Ну, и далее использовать сворованный AES-ключ для шифрования своих данных, и выдачи их, как за подлинные.
  10. А теперь улыбнитесь переводу с “хакера”: “С точки зрения производителя один из способов защититься от такого, не меняя дизайн микросхемы — это добавить криптографический ключ (обычно AES 128 бит), который отключает самые опасные из команд JTAG.”
    Никакой AES-ключ JTAG-команды не отключает!
  11. Далее, эксперт говорит про недокументированные функции JTAG, с помощью которых можно получить доступ к содержимому м/с, в том числе и при выставленных битах защиты. Признаюсь, что эта область для меня малознакома. Я могу только несколько замечаний сделать по этой теме.
    • Чтобы такие функции были, надо, чтобы производитель м/с умышленно разработал м/с с таким функционалом. Это время, деньги- просто так никакому производителю и даром не надо этой возни. JTAG- для программистов м/с, не для производителя. Какой смысл делать функционал, чтобы потом не сказать о нем программистам, а самим, втихаря, что-то делать через JTAG?
    • Занимаясь схемотехникой, я на форумах много раз читал обсуждения попыток взлома м/с с выставленными битами защиты. Обсуждений, ложных заявлений о взломе я начитался столь много, что теперь мало верю подобным слухам.
    • Даже если у JTAG есть недокументированный доступ, то, чтобы его получить, надо подключиться непосредственно к м/с. Т.е. удаленно ничего не взломать, не вывести устройство из строя, что и пишет эксперт: "The Chinese might subvert FPGAs so that they could later steal intellectual-property written to the chips, but the idea they went through all this to attack the US military is pretty fanciful.”

И главное, вот что сам Скоробогатов сказал о своей работе:  “There was a lot of rumour on the Internet and in various blogs claiming that we found that 'Chinese manufacturers putting backdoors in American chips'. This is not true as anyone can see drafts of our papers which we had to release yesterday to clear the issue with being accused of making false claims. It is the US manufacturer Actel who inserted the backdoor at the gates level of JTAG controller in ProASIC3, Igloo, Fusion and SmartFusion devices. Moreover, the traces of the backdoor can be found in the development software Libero through simple Windows XP Search for particular bits in standard STAPL file. With the backdoor key you can extract the IP (FROM, ARRAY/bitstream, NVM/NFMB) or even reprogram the factory backdoor key and make your own key.
We never said the Chinese have put a backdoor inside Actel's chips and it does not say so in our papers. It is as though people have put 2+2 together and made 4 or 5 or 6 depending on what their agenda is. We believe that other chips will have backdoors and since a US chip has them and you can do lots of things that give you a vast amount of control over the devices then is there any reason to suggest other manufacturers have not done the same. The US military have been looking at the issues of hardware assurance and part authenticity for a good number of years.
Also that fact that since it is possible now to scan for backdoors in a way that was not possible before, people will start to take a look at this area whether to use it to remove IP or to use it for other purposes.”

В общем:

  1. Целью ученого была разработка метода- никого он ни в чём не обвинял.
  2. Эксперт сказал, что и без хитроумных закладок и “бэкдоров” большая часть техники взламывается “на раз”, т.к. программисты микроконтроллеров не выставляют, как минимум, биты защиты.
  3. А “хакер” в своем переводе все здорово перемешал, и я бы не сказал, что наврал- скорее всего в теме не разобрался или пал жертвой “желтой” прессы.