|
Design Security Features in Altera FPGA |
|
|
|
Apr 9 2014, 07:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Здравствуйте! Возник вопрос защиты проекта для FPGA (Cyclone 5, режим конфигурации - AS). Почитал an556 “Using the Design Security Features in Altera FPGAs” и “Configuration, Design Security, and Remote System Upgrades in Cyclone V Devices” от Altera, как-то не совсем понятен весь процесс защиты проекта. Согласно даташиту, необходимо сформировать зашифрованный, с использованием ключа, файл прошивки для flash-a, залить ключ в FPGA, далее при включении питания будет грузиться зашифрованная прошивка. Вопрос: 1. Каким образом формируется файл зашифрованной прошивки? Например, предполагается первый раз залить прошивку при помощи SFL, т.е. необходимо сформировать зашифрованный jic-файл. Используем “Convert Programming File”, в опциях для sof-файла выбираем : Generate encrypted bitstream; Generate key gramming file x.ekp; вводим key жмём ОК. Полученный jic-файл и есть зашифрованный при помощи ключа? Полученный ekp-файл – encryption key programming file (необходим для прошивки ключа в FPGA)? 2. Каким образом прошивается сам ключ? Необходимо залить ekp-файл? Или сконвертить его в jam, svf, jbc и потом залить?
|
|
|
|
|
 |
Ответов
|
Apr 15 2014, 15:26
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(doom13 @ Apr 15 2014, 17:41)  Остался вопрос по поводу установки tamper-protection bit, что бы могла грузиться только зашифрованная прошивка, или это только у Альтеры можно узнать? Для взведения Tamper protection bit нужно иметь специальный ini-файл, который должен быть помещен в папку ..\bin или ..\bin64 квартуса. При наличии такого файла будет формироваться ekp со взведенным тампер протекшеном. Бросьте мне сообщения в личку, их есть у меня  Кстати, взвести Tamper protection bit можно только таким способом. C помощью jam-скриптов, например, его взвести не получится. А вот проверить, взведен он или нет - можно
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Feb 18 2015, 11:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Stewart Little @ Apr 15 2014, 18:26)  Для взведения Tamper protection bit нужно иметь специальный ini-файл, который должен быть помещен в папку ..\bin или ..\bin64 квартуса. При наличии такого файла будет формироваться ekp со взведенным тампер протекшеном. Тут ещё вопрос. Сгенерированный с ini файлом ключ - это тот же volatile с возведённым Tamper Protection (мой программер не умеет этот бит возводить,а в свойствах не отображается опция ON) или это non_volatile (что мой программер так же не умеет прошивать), но как они тогда между собой отличаются. Т.е., как тогда понять по файлу ключа - это volatile или non-volatile? Больше склоняюсь к тому, что с ini генерится non-volatile с Tamper Protection = OFF, но как оно на самом деле? И как тогда поднять Tamper Protection (повторюсь с вопросом)? Цитата(Stewart Little @ Feb 18 2015, 14:26)  Увы, быстро не обещаю - завал на работе до вторника. Пока это и не горит, просто может понадобиться в обозримом будущем и хотелось бы поставить точку в данном вопросе.
|
|
|
|
|
Feb 18 2015, 12:56
|

Лентяй
     
Группа: Свой
Сообщений: 2 203
Регистрация: 11-10-04
Из: Санкт-Петербург
Пользователь №: 843

|
Цитата(doom13 @ Feb 18 2015, 14:34)  Тут ещё вопрос. Сгенерированный с ini файлом ключ - это тот же volatile с возведённым Tamper Protection (мой программер не умеет этот бит возводить,а в свойствах не отображается опция ON) или это non_volatile (что мой программер так же не умеет прошивать), но как они тогда между собой отличаются. Т.е., как тогда понять по файлу ключа - это volatile или non-volatile? Не претендую на абсолютную истину, но склероз мне подсказывает следующее: в ekp-файле прописаны обе опции - и volatile, и non-volatile. Какой из этих вариантов загружать - определяется в программере, галкой "Configure volatile design security key when available". Цитата Больше склоняюсь к тому, что с ini генерится non-volatile с Tamper Protection = OFF, но как оно на самом деле? И как тогда поднять Tamper Protection (повторюсь с вопросом)? Нет, на так!!! С ini-файлом всегда генерится ekp-файл c взведенным Tamper Protection. Но про галку в опциях программере при этом не забывайте. Здесь по поводу Non-volatile key with Tamper Protection вопросов нет. А вот по поводу Volatile key with Tamper Protection - все зависит от используемого семейства ПЛИС : "The volatile key tamper-protection is only available for Arria II, Arria V, Cyclone V, and Stratix V devices". Цитата(doom13 @ Feb 18 2015, 15:43)  Остаются вопросы: 1) Каким образом тогда выбирается volatile key или non-volatile key? Или если будет "нормальный" программатор, то должна появиться опция выбора типа ключа? Выше рассказал. Цитата 2) Что такое Security Bit в окне Quartus II Programmer? Это из другой оперы. Это опции файла. Если девайс имеет Security Bit (например MAX3000A или MAX II), то программирующий файл может быть создан со взведенным битом защиты (необходимость этого указывается в "Device and Pin options", емнип.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Feb 18 2015, 13:32
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Stewart Little @ Feb 18 2015, 15:56)  Не претендую на абсолютную истину, но склероз мне подсказывает следующее: в ekp-файле прописаны обе опции - и volatile, и non-volatile. Какой из этих вариантов загружать - определяется в программере, галкой "Configure volatile design security key when available". Похоже это так. Когда сгенерил ключ без Tamper Protection он заливается USB-Blaster-ом. При прошивке пишет: Цитата Info (209060): Started Programmer operation at Wed Feb 18 16:21:20 2015 Info (209017): Device 1 contains JTAG ID code 0x02B140DD Info (209024): Programming device 1 Info (209011): Successfully performed operation(s) Info (209061): Ended Programmer operation at Wed Feb 18 16:21:20 2015 Если второй раз попробуем залить ключ: Цитата Info (209060): Started Programmer operation at Wed Feb 18 16:21:41 2015 Info (209005): Programming status: Device 1 has already had a volatile design security key successfully programmed for optional-secure bitstream configuration. It can accept both secured and unsecured configuration bitstreams Info (209017): Device 1 contains JTAG ID code 0x02B140DD Info (209024): Programming device 1 Info (209011): Successfully performed operation(s) Info (209061): Ended Programmer operation at Wed Feb 18 16:21:42 2015 Если снять галку "Configure volatile design security key when available", то начинает ругаться: Цитата Info (209060): Started Programmer operation at Wed Feb 18 16:26:36 2015 Info (209005): Programming status: Current hardware doesn't support security key programming Error (209012): Operation failed Info (209061): Ended Programmer operation at Wed Feb 18 16:26:36 2015 Долго не мог вспомнить, где находится эта галка (Tools->Options->Programmer).
|
|
|
|
Сообщений в этой теме
doom13 Design Security Features in Altera FPGA Apr 9 2014, 07:33 doom13 Ещё вопрос, если заливается файл jam или ekp, а в ... Apr 9 2014, 08:57  doom13 Цитата(Stewart Little @ Apr 15 2014, 18:2... Apr 16 2014, 07:18   Stewart Little Цитата(doom13 @ Apr 16 2014, 10:18) Если ... Apr 16 2014, 12:19    doom13 Цитата(Stewart Little @ Apr 16 2014, 15:1... Apr 16 2014, 12:26     Stewart Little Цитата(doom13 @ Apr 16 2014, 15:26) Спаси... Apr 21 2014, 11:05      doom13 Цитата(Stewart Little @ Apr 21 2014, 14:0... Apr 21 2014, 11:59       Stewart Little Цитата(doom13 @ Apr 21 2014, 14:59) ... q... Apr 21 2014, 12:26        doom13 Цитата(Stewart Little @ Apr 21 2014, 15:2... Apr 21 2014, 12:39         Stewart Little Цитата(doom13 @ Apr 21 2014, 15:39) Я так... Apr 21 2014, 12:51          doom13 Цитата(Stewart Little @ Apr 21 2014, 15:5... Apr 21 2014, 12:55 yes 2Stewart Little поясните, пожалуйста, не высылая i... Apr 17 2014, 16:16 Stewart Little Цитата(yes @ Apr 17 2014, 19:16) планирую... Apr 17 2014, 17:12  doom13 Цитата(Stewart Little @ Apr 17 2014, 20:1... Apr 18 2014, 07:13   Stewart Little Цитата(doom13 @ Apr 18 2014, 10:13) В дат... Apr 18 2014, 14:38    Stewart Little Цитата(Stewart Little @ Apr 18 2014, 17:3... May 15 2014, 13:15     EugeneS QUOTE (Stewart Little @ May 15 2014, 16:1... May 18 2014, 07:42  yes Цитата(Stewart Little @ Apr 17 2014, 21:1... Apr 18 2014, 12:53 doom13 Приветствую. Пришлось вспомнить старую тему - надо... Feb 18 2015, 09:28 Stewart Little Цитата(doom13 @ Feb 18 2015, 12:28) Т.е. ... Feb 18 2015, 10:30  doom13 Цитата(Stewart Little @ Feb 18 2015, 13:3... Feb 18 2015, 10:40   Stewart Little Цитата(doom13 @ Feb 18 2015, 13:40) Это -... Feb 18 2015, 11:26 doom13 Нашёл часть ответов на свои вопросы.
Сначала нашёл... Feb 18 2015, 12:43 doom13 Затестил работу для volatile ключа. Батарейки на п... Feb 18 2015, 14:50 doom13 Использование volatile key кажется менее надёжным,... Feb 18 2015, 18:20 Golikov A. Представьте на схеме батарейка, может аккумулятор ... Feb 19 2015, 07:23 Stewart Little Цитата(Golikov A. @ Feb 19 2015, 10:23) П... Feb 19 2015, 08:55 doom13 Цитата(Golikov A. @ Feb 19 2015, 10:23) П... Feb 19 2015, 09:44  Stewart Little Цитата(doom13 @ Feb 19 2015, 12:44) Для ч... Feb 19 2015, 09:52 jks А в чем причина невозможности использования старог... Feb 19 2015, 09:17 Stewart Little Цитата(jks @ Feb 19 2015, 12:17) ... или ... Feb 19 2015, 09:47  jks Цитата(Stewart Little @ Feb 19 2015, 12:4... Feb 19 2015, 10:31   Stewart Little Цитата(jks @ Feb 19 2015, 13:31) Если из ... Feb 19 2015, 11:42    jks [quote name='Stewart Little' date='Feb... Feb 19 2015, 12:20     doom13 Цитата(jks @ Feb 19 2015, 15:20)
Батарей... Feb 19 2015, 12:28      jks Цитата(doom13 @ Feb 19 2015, 15:28) Батар... Feb 19 2015, 12:42       doom13 Цитата(jks @ Feb 19 2015, 15:42) Вот эту ... Feb 19 2015, 12:58        jks Цитата(doom13 @ Feb 19 2015, 15:48) Эта ц... Feb 19 2015, 13:05         doom13 Цитата(jks @ Feb 19 2015, 16:05) Т.е. для... Feb 19 2015, 13:10          jks Цитата(doom13 @ Feb 19 2015, 16:10) Нет, ... Feb 19 2015, 13:38           doom13 Цитата(jks @ Feb 19 2015, 16:38) Ну я так... Feb 19 2015, 13:52            jks Цитата(doom13 @ Feb 19 2015, 16:52) Да, с... Feb 19 2015, 14:28           Stewart Little Цитата(jks @ Feb 19 2015, 16:38) То есть ... Feb 19 2015, 14:39            jks Цитата(Stewart Little @ Feb 19 2015, 17:3... Feb 19 2015, 15:17 doom13 Цитата(jks @ Feb 19 2015, 12:17) А в чем ... Feb 19 2015, 09:47 Golikov A. ЦитатаЭто всего лишь хороший способ прострелить се... Feb 19 2015, 10:57 Golikov A. Ок. не буду мешать.
Просто отметил что такой спос... Feb 19 2015, 11:56 Golikov A. В каких то старых апнотах ксалинкс предлагал защит... Feb 19 2015, 14:49 doom13 Цитата(Golikov A. @ Feb 19 2015, 17:49) В... Feb 19 2015, 14:58
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|