|
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 и потом залить?
|
|
|
|
|
 |
Ответов
(45 - 53)
|
Feb 19 2015, 13:05
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084

|
Цитата(doom13 @ Feb 19 2015, 15:48)  Эта цитата, как я понимаю, относится к таблице сверху (см. даташит, Security Mode - Volatile Key). Т.е. если хотим оставить возможность перепрограммировать volatile key, не надо устанавливать Tamper Protection Bit. Если Tamper Protection Bit установили (Security Mode - Volatile Key with Tamper Protection Bit Set) и ключ как-то стёрся - девайс мёртвый. Т.е. для VOLATILE KEY существует два режима: 1. Volatile Key without Tamper Protection Security Mode 2. Volatile Key with Tamper Protection Security Mode Так более понятно, но этот (2) режим действительно извратный и не понятно для чего он нужен. А с нулевым VOLATILE ключом без TAMPER бита можно записать зашифрованную прошивку?
|
|
|
|
|
Feb 19 2015, 13:10
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(jks @ Feb 19 2015, 16:05)  Т.е. для VOLATILE KEY существует два режима: 1. Volatile Key without Tamper Protection Security Mode 2. Volatile Key with Tamper Protection Security Mode
Так более понятно, но этот (2) режим действительно извратный и не понятно для чего он нужен. Нет, извратный (правильно наверное сказать менее защищённый) - это первый режим, т.к. можем подключиться JTAG-ом к FPGA и заливать в чужое железо свою версию ПО (ключ конечно же стереть придётся). Т.е. при наличии отлаженного железа остаётся разобраться с его работой. Лучший из возможных, на мой взгляд, - non-volatile, чтоб избежать возможности "прострелить себе ногу"  Цитата(jks @ Feb 19 2015, 16:05)  А с нулевым VOLATILE ключом без TAMPER бита можно записать зашифрованную прошивку? Если ключ все нули - это тоже ключ, будет работать с зашифрованной прошивкой. Если без Tamper Protection бита то будет грузить зашифрованную и незашифрованную прошивку.
|
|
|
|
|
Feb 19 2015, 13:38
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084

|
Цитата(doom13 @ Feb 19 2015, 16:10)  Нет, извратный (правильно наверное сказать менее защищённый) - это первый режим, т.к. можем подключиться JTAG-ом к FPGA и заливать в чужое железо свою версию ПО. Т.е. при наличии отлаженного железа остаётся разобраться с его работой. Лучший из возможных, на мой взгляд, - non-volatile, чтоб избежать возможности "прострелить себе ногу" Ж) Ну я так понимаю что назначение режимов защиты это собственно предотвратить клонирование ПО, а не железа. Железо проще клонировать. В крайнем случае можно перепаять новый чип. Если есть мозги что-бы реализвать свое ПО, то перепаять чип не составит труда. Это если говорить про Циклоны. Те девайсы, что мне попадались были с батарейкой и ОЗУ для хранения конфигурации. То есть там не только ключ, но и прошивка VOLATILE. Но это на Stratix II/III все было. Ария и Стратиксы - это другая весовая категория. Там могут и чип распилить и прочитать ключик из чипа после распила. А если прошивки удаленно обновляются, то у них должен быть либо общий ключ либо уникальная прошивка для каждого конкретного устройства, что не всегда удобно. Т.е. либо база ключей, либо генератор по уникальному серийному номеру устройства. И доступ к ключам только у одного человека
|
|
|
|
|
Feb 19 2015, 13:52
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(jks @ Feb 19 2015, 16:38)  Ну я так понимаю что назначение режимов защиты это собственно предотвратить клонирование ПО, а не железа. Железо проще клонировать. В крайнем случае можно перепаять новый чип. Если есть мозги что-бы реализвать свое ПО, то перепаять чип не составит труда. Это если говорить про Циклоны. Да, согласен - для защиты ПО, но запретить полный доступ к чипу ещё более приятно. Про защиту железа нам уважаемый Golikov A. рассказал, там батарейка не поможет и даже Tamper Protection. Цитата(jks @ Feb 19 2015, 16:38)  Те девайсы, что мне попадались были с батарейкой и ОЗУ для хранения конфигурации. То есть там не только ключ, но и прошивка VOLATILE. Но это на Stratix II/III все было. Что, устройство вообще никогда не выключается? Наверное всё же батарейка только для ключа, а прошивка во внешнем конфигурационном устройстве.
|
|
|
|
|
Feb 19 2015, 14:28
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084

|
Цитата(doom13 @ Feb 19 2015, 16:52)  Да, согласен - для защиты ПО, но запретить полный доступ к чипу ещё более приятно. Про защиту железа нам уважаемый Golikov A. рассказал, там батарейка не поможет и даже Tamper Protection.
Что, устройство вообще никогда не выключается? Наверное всё же батарейка только для ключа, а прошивка во внешнем конфигурационном устройстве. Устройство выключается, но центральная часть его работает от батарейки, когда внешнего питания нет. Есть датчик напряжения и счетчик ресурса и когда заряд батарейки подходит к концу загорается предупреждающий индикатор. После этого можно поработать месяца 3. А после модуль отправляется производителю для замены батарейки и обновления прошивки. Никакого удаленного обновления. Как там детально устроено не вникал, модуль дорого стоил. Но этот модуль конфигурил все остальные ПЛИСы. Там было 4 или 5 Virtex-ов плюс еще Stratix-ы. Такая сборная солянка. Но это не наша разработка, а буржуйская.
|
|
|
|
|
Feb 19 2015, 15:17
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084

|
Цитата(Stewart Little @ Feb 19 2015, 17:39)  У Stratix II есть только non-volatile key. Причем для его прошивки требуется повышенное напряжение. А вот у Stratix III уже появились и volatile, и non-volatile. Что примечательно, но у Stratix III смотрю только три режима было, и TAMPER бит только для NON-VOLATILE ключа.
Сообщение отредактировал jks - Feb 19 2015, 15:17
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|