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

|
Приветствую. Пришлось вспомнить старую тему - надо доразобраться с возможностью защиты прошивки для Cyclone 5. Есть Q13.0.1, генерю key programming file (файл ini в системе отсутствует), заливаю его Terasic-Blaster (USB-Blaster), всё работает - ключ (volitile) заливается (Рисунок1), на вторую попытку говорит, что ключ уже есть. Далее добавляю ini в bin64, генерю ekp и пробую залить. Выкидывает ошибку, что железо не поддерживает программирование данного ключа (Рисунок2). Как понимаю, во втором случае (после добавления в систему ini) получился non-volitile key и мой программер его не поддерживает. Т.е. для программирования non-volatile key надо минимум заменить программатор на USB-Blaster II. Что может понадобиться ещё, прокатит ли использование ломаной версии Квартуса? Ещё вопрос, в обоих случаях неактивна галка Security Bit, а это, как понимаю, и есть Tamper Protection Bit. Как тогда его активировать? Ведь есть режимы - Non-volatile Key - Non-volatile Key with Tamper Protection Bit Set Спасибо.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 18 2015, 10:30
|

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

|
Цитата(doom13 @ Feb 18 2015, 12:28)  Т.е. для программирования non-volatile key надо минимум заменить программатор на USB-Blaster II. Да. Ежели надо, то есть в наличии. Цитата Что может понадобиться ещё, прокатит ли использование ломаной версии Квартуса? Да вроде больше ничего не надо. Кстати, из ломаной версии можно сделать "неломаную", если хотите. Цитата Ещё вопрос, в обоих случаях неактивна галка Security Bit, а это, как понимаю, и есть Tamper Protection Bit. Вот тут не уверен. Надо тщательнеЕ вопрос поизучать.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
Feb 18 2015, 10:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Stewart Little @ Feb 18 2015, 13:30)  Кстати, из ломаной версии можно сделать "неломаную", если хотите. Это - заплатить много денег?  Цитата(Stewart Little @ Feb 18 2015, 13:30)  Вот тут не уверен. Надо тщательнеЕ вопрос поизучать. То, что получилось показал на скринах, попробовал на версии Q14.0 - аналогично. Был бы рад помощи по данному вопросу.
|
|
|
|
|
Feb 18 2015, 11:26
|

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

|
Цитата(doom13 @ Feb 18 2015, 13:40)  Это - заплатить много денег?  Это тривиальный подход. А мы не ищем легких путей  Напишите мне в личку. Цитата То, что получилось показал на скринах, попробовал на версии Q14.0 - аналогично. Был бы рад помощи по данному вопросу. Увы, быстро не обещаю - завал на работе до вторника.
--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
|
|
|
|
|
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:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Нашёл часть ответов на свои вопросы. Сначала нашёл это.Потом сгенерил ekp-файл с ini-файлом и без. Сообщения системы без ini-файла Цитата Info (210033): Memory Map File output_files/ddvi_5CEFA9.map contains memory usage information for file output_files/ddvi_5CEFA9.jic Info (210118): Created EKP file E:/work/Altera_Projects/cyc5_adc_4x4/c5e_test_q14/output_files/ddvi_5CEFA9.ekp Сообщения системы с ini-файлом Цитата Info (210033): Memory Map File output_files/ddvi_5CEFA9.map contains memory usage information for file output_files/ddvi_5CEFA9.jic Info (210118): Created EKP file E:/work/Altera_Projects/cyc5_adc_4x4/c5e_test_q14/output_files/ddvi_5CEFA9.ekp Info (210119): EKP file E:/work/Altera_Projects/cyc5_adc_4x4/c5e_test_q14/output_files/ddvi_5CEFA9.ekp sets the tamper protection bit Stewart Little, получается - Вы были правы, ini - возводит Tamper Protection Bit. Остаются вопросы: 1) Каким образом тогда выбирается volatile key или non-volatile key? Или если будет "нормальный" программатор, то должна появиться опция выбора типа ключа? 2) Что такое Security Bit в окне Quartus II Programmer?
|
|
|
|
|
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).
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|