Comments 7
рекомендации xilinx на этот счёт https://support.xilinx.com/s/article/73541?language=en_US
Читал и статью с USENIX, и ответ Xilinx. По мне, первые два пункта ответа («для 7- и 6-series атака сравнима с DPA, так что хуже не стало») - не очень удачная попытка сохранить лицо, DPA - аппаратная атака, требует точных измерений потребления итд, тогда как атака с USENIX осуществима полностью софтово через стандартный программатор, т.е. куда доступнее и опаснее.
Обратите внимание, что в случае использования eFuse и запрета загрузки незашифрованных битстримов теряется возможность программирования flash-памяти из вивады.
насколько реально взломать описанную выше защиту?
Есть несколько успешных атак, упомянутая с Usenix выглядит самой простой по оборудованию и квалификации. Пожалуй, такое сможет студент на диплом.
Существенным ограничением этой атаки выглядит необходимость доступа к загрузочным интерфейсам FPGA и к зашифрованному битстриму. Во многих случаях это означает физический доступ к портам плисины и внутренностям системы, что ограничивает размах устройствами, до которых сможет дотянуться и разобрать атакующий. Скорее всего поэтому в упомянутом выше ответе Xilinx считает эту атаку одного уровня с DPA.
Учитывая, что в большинстве устройств конфигурационные интерфейсы используются самими производителями для прошивки устройства и выведены на некие пятачки/разъём, а так же полностью цифровую натуру атаки с USENIX (=надёжную повторяемость, в отличие от аналоговой DPA, где то фильтрующие конденсаторы мешают, то у конкретного экземпляра кристалла параметры чуть уплывшие и нужно подстраиваться), достаточно одному такому «студенту на диплом» накодить и опубликовать реализацию, и 6-/7- серии начнут дампить буквально все, кому не лень (открыл корпус, подключил типовой программатор, запустил готовый скрипт, подождал).
Расскажу историю. И смешно, и грустно. Стал настраивать VIVADO на новом ноутбуке для работы на чужом поле. Дошёл до шага программирования eFUSE регистров и завис...
После того как правой кнопкой мыши по ПЛИС вызывается меню и выбирается Program eFUSE Registers должно появиться вот такое окно:

Здесь очень важным пунктом является чекбокс Enable AES key programming. С помощью этого чекбокса появляется возможность указать собственные ключи шифрования, а не те, что Vivado сгенерирует сама.
Из-за особенностей разрешения экрана ноутбука я видел такое окно:

Младшие 8 пользовательских бит в регистре недоступны. Необходимого чекбокса нет. Причём можно запрограммировать старшие 24 пользовательских бита и нажать кнопку "next". В следующих диалоговых окнах всё как надо. Только эти eFUSE программируются только один раз...
Я грешил на неправильную лицензию, неверную установку Vivado, даже на сам ноутбук. И когда уже ничего не помогало, я решил растянуть окно...

И, о, чудо! Важный чекбокс теперь доступен. Не попадайтесь на такое:)
Использование шифрования для защиты битового потока Xilinx 7-й серии