реклама на сайте
подробности

 
 
> Design Security Features in Altera FPGA
doom13
сообщение Apr 9 2014, 07:33
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 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 и потом залить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jks
сообщение Feb 19 2015, 09:17
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



А в чем причина невозможности использования старого USB Blaster-а для программирования "Volatile" и "Non-volatile" ключей?
Его среда не поддерживает для этих функций или тут аппаратные завязки (невозможность изменения частоты JTAG)?
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 19 2015, 09:47
Сообщение #3


Лентяй
******

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



Цитата(jks @ Feb 19 2015, 12:17) *
... или тут аппаратные завязки (невозможность изменения частоты JTAG)?

Именно это.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
jks
сообщение Feb 19 2015, 10:31
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Цитата(Stewart Little @ Feb 19 2015, 12:47) *
Именно это.


Я краем глаза подсмотрел что вся процедура осуществляется на частоте 100кГц
и задержки везде по 100мкс. Т.е. если я проиграю нужный SFV на частоте 12МГц,
но с нужными задержками то ничего не выйдет?

ЗЫ: У меня пока в наличии нет CV/AV, проверить не могу к сожалению sad.gif.

Вот еще хотел узнать про LOCK и UNLOCK инструкции.

После установленного TAMPER бита, доступ к внешнему JTAG закрыт.
Но есть специальные JTAG инструкции LOCK и UNLOCK.
Если из ядра ПЛИС выдать UNLOCK и разрешить доступ к внешнему JTAG интерфейсу, то
можно ли будет работать по внешнему JTAG интерфейсу при установленном TAMPER бите?

Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 19 2015, 11:42
Сообщение #5


Лентяй
******

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



Цитата(jks @ Feb 19 2015, 13:31) *
Если из ядра ПЛИС выдать UNLOCK и разрешить доступ к внешнему JTAG интерфейсу, то
можно ли будет работать по внешнему JTAG интерфейсу при установленном TAMPER бите?

Что-то я не совсем понял.
Вы предполагаете, что разработчик сам закладывает в свой проект некий бэкдор??? blink.gif


Цитата(Golikov A. @ Feb 19 2015, 13:57) *
Внутренней модификации может быть подвержена не только прошивка...

Ну, это уже пошло обсуждение сферических коней в вакууме.
Тема про альтеровские средства защиты проекта от несанкционированного копирования и/или модификации.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post
jks
сообщение Feb 19 2015, 12:20
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



[quote name='Stewart Little' date='Feb 19 2015, 14:42' post='1316467']
Что-то я не совсем понял.
Вы предполагаете, что разработчик сам закладывает в свой проект некий бэкдор??? blink.gif

Мне просто не понятно как использовать режим VOLATILE KEY с установленным Tamper битом.
В документации пишут, что при установке TAMPER бита внешний JTAG интерфейс отключается.
VOLATILE KEY записывается, только по JTAG интерфейсу.
Но VOLATILE KEY хранится в ОЗУ пока есть внешнее питание.
Если питание пропадет, то ключ стирается и записать новый ключ уже невозможно, т.к.
JTAG интерфейс заблокирован и никакую прошивку уже записать не получиться.

Хотя может быть если создать прошивку с нулевым ключом, то можно ее скормить.
Но это надо пробовать.

Вот в чем вопрос.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 19 2015, 12:28
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(jks @ Feb 19 2015, 15:20) *

Батарейка ставится для поддержания volatile ключа. А выше обсуждалось, что не совсем надёжно, если отваливается батарейка и установлен Tamper Protection Bit, то единственный способ лечения устройства замена FPGA.
Считаю, что данная гибкость с возможностью выбора ключа лишняя, лучше всегда использовать non-volatile key.
Go to the top of the page
 
+Quote Post
jks
сообщение Feb 19 2015, 12:42
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Цитата(doom13 @ Feb 19 2015, 15:28) *
Батарейка ставится для поддержания volatile ключа. А выше обсуждалось, что не совсем надёжно, если отваливается батарейка и установлен Tamper Protection Bit, то единственный способ лечения устройства замена FPGA.


Вот эту цитату как понимать?

Цитата
For the volatile key with tamper protection bit set security mode, Cyclone V devices do not accept
the encrypted configuration file if the volatile key is erased. If the volatile key is erased and you
want to reprogram the key, you must use the volatile key security mode.


Цитата(doom13 @ Feb 19 2015, 15:28) *
Считаю, что данная гибкость с возможностью выбора ключа лишняя, лучше всегда использовать non-volatile key.


NON-VOLATILE KEY можно использовать только один раз и только для финального проекта.

Для отработки механизна защиты хорошо использвать VOLATILE KEY.
Но TAMPER бит + VOLATILE KEY, все портит если его можно только один раз использовать.
Или надо читать документацию между строк.
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 19 2015, 12:58
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(jks @ Feb 19 2015, 15:42) *
Вот эту цитату как понимать?

Эта цитата, как я понимаю, относится к таблице сверху (см. даташит, Security Mode - Volatile Key). Т.е. если хотим оставить возможность перепрограммировать volatile key, не надо устанавливать Tamper Protection Bit. Если Tamper Protection Bit установили (Security Mode - Volatile Key with Tamper Protection Bit Set) и ключ как-то стёрся - девайс мёртвый.

Цитата(jks @ Feb 19 2015, 15:42) *
NON-VOLATILE KEY можно использовать только один раз и только для финального проекта.

Можно и для нефинального. Выше писал, используем в проекте Remote Update, делаем стабильный factory и "финальную" версию application с возможностями перезаливки зашифрованной прошивки для application, шифруем, заливаем и имеем возможность перезаливать/обновлять application (отлаживаться можем на незалоченной плате).

Цитата(jks @ Feb 19 2015, 15:42) *
Для отработки механизна защиты хорошо использвать VOLATILE KEY.
Но TAMPER бит + VOLATILE KEY, все портит если его можно только один раз использовать.
Или надо читать документацию между строк.

Потестить работу ключа можно без Tamper Protection (уже попробовал - работает). Отличие между ключами только в том, что non-volatile + Tamper Bit более надёжный вариант, т.к. ключ не сотрётся в случае форс-мажора.
Go to the top of the page
 
+Quote Post
jks
сообщение Feb 19 2015, 13:05
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 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 бита можно записать зашифрованную прошивку?
Go to the top of the page
 
+Quote Post
doom13
сообщение Feb 19 2015, 13:10
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 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, чтоб избежать возможности "прострелить себе ногу" sm.gif

Цитата(jks @ Feb 19 2015, 16:05) *
А с нулевым VOLATILE ключом без TAMPER бита можно записать зашифрованную прошивку?

Если ключ все нули - это тоже ключ, будет работать с зашифрованной прошивкой. Если без Tamper Protection бита то будет грузить зашифрованную и незашифрованную прошивку.
Go to the top of the page
 
+Quote Post
jks
сообщение Feb 19 2015, 13:38
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Цитата(doom13 @ Feb 19 2015, 16:10) *
Нет, извратный (правильно наверное сказать менее защищённый) - это первый режим, т.к. можем подключиться JTAG-ом к FPGA и заливать в чужое железо свою версию ПО. Т.е. при наличии отлаженного железа остаётся разобраться с его работой.
Лучший из возможных, на мой взгляд, - non-volatile, чтоб избежать возможности "прострелить себе ногу" Ж)


Ну я так понимаю что назначение режимов защиты это собственно предотвратить клонирование ПО, а не железа.
Железо проще клонировать. В крайнем случае можно перепаять новый чип.
Если есть мозги что-бы реализвать свое ПО, то перепаять чип не составит труда. Это если говорить про Циклоны.

Те девайсы, что мне попадались были с батарейкой и ОЗУ для хранения конфигурации.
То есть там не только ключ, но и прошивка VOLATILE. Но это на Stratix II/III все было.

Ария и Стратиксы - это другая весовая категория. Там могут и чип распилить и прочитать ключик из чипа после распила.
А если прошивки удаленно обновляются, то у них должен быть либо общий ключ либо уникальная прошивка для каждого
конкретного устройства, что не всегда удобно. Т.е. либо база ключей, либо генератор по уникальному серийному номеру
устройства. И доступ к ключам только у одного человека sm.gif
Go to the top of the page
 
+Quote Post
Stewart Little
сообщение Feb 19 2015, 14:39
Сообщение #13


Лентяй
******

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



Цитата(jks @ Feb 19 2015, 16:38) *
То есть там не только ключ, но и прошивка VOLATILE. Но это на Stratix II/III все было.

У Stratix II есть только non-volatile key. Причем для его прошивки требуется повышенное напряжение.
А вот у Stratix III уже появились и volatile, и non-volatile.


--------------------
Чтобы слова не расходились с делом, нужно молчать и ничего не делать...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- doom13   Design Security Features in Altera FPGA   Apr 9 2014, 07:33
- - doom13   Ещё вопрос, если заливается файл jam или ekp, а в ...   Apr 9 2014, 08:57
- - doom13   Похоже опция "Configure volatile design secur...   Apr 15 2014, 14:41
|- - Stewart Little   Цитата(doom13 @ Apr 15 2014, 17:41) Остал...   Apr 15 2014, 15:26
|- - 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
|- - doom13   Цитата(Stewart Little @ Apr 15 2014, 18:2...   Feb 18 2015, 11:34
|- - Stewart Little   Цитата(doom13 @ Feb 18 2015, 14:34) Тут е...   Feb 18 2015, 12:56
|- - doom13   Цитата(Stewart Little @ Feb 18 2015, 15:5...   Feb 18 2015, 13:32
- - 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
||- - doom13   Цитата(jks @ Feb 19 2015, 16:38) Ну я так...   Feb 19 2015, 13:52
|||- - jks   Цитата(doom13 @ Feb 19 2015, 16:52) Да, с...   Feb 19 2015, 14:28
||- - 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


Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 17:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.01569 секунд с 7
ELECTRONIX ©2004-2016