Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Защита данных FPGA
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Страницы: 1, 2, 3, 4, 5
Splice
На мой взгляд самый лучший способ защиты ПЛИС это использование их по назначению. Т.е. отработать проект на ПЛИС и потом заказать чип. Другие способы мало эфективны, благо существуют фирмы предлогающие считывание проекта даже с установленным битом секретности. Да и вообще всё что сделано руками человека можно сломать руками человека!
blackfin
Статья по теме: Protect Your FPGA Against Piracy
zombi
Народ! А расскажите про защиту в MAX II пожалуйста поподробнее.
Я в англицком не силен и не уверен что правильно понимаю че там в даташитах пишут. crying.gif
Quater
Если кто слышал про Actel то их ФПГА не возможно скопировать Это подтверждает армия какой европейской страны не помню но анализ ИС это фирмы я видел сам.
Gate
Цитата(Quater @ Jan 14 2009, 00:03) *
Если кто слышал про Actel то их ФПГА не возможно скопировать Это подтверждает армия какой европейской страны не помню но анализ ИС это фирмы я видел сам.

Где нам, дуракам, чай пить! (с)
Вы бы сравнили быстродействие к примеру второго циклона от альтеры и актеловского проасика. И цену.
vetal
Цитата
Вы бы сравнили быстродействие к примеру второго циклона от альтеры и актеловского проасика. И цену.

Здесь, скорее всего, речь идет о радиационно толерантных/стойких микросхемах семействе (RT)AX /RH. Вопрос цены в данном случае неуместен(наши микросхемы тоже недешево стоят).
SM
А кто нибудь обладает реальными знаниями по поводу LFXP и LFXP2 - в части того, в каких там металлизациях идут данные загрузки флеш-срам, т.е. на сколько сложно их снять после вскрытия?
Waldemarius
На счет защиты данных в Xilinx, будут полезны следующие ссылки:

http://www.xilinx.com/support/documentatio...uides/ug191.pdf (Virtex-5 Configuration User Guide)
see the "Bitstream Encryption" section

http://www.xilinx.com/publications/xcellon...4security52.pdf (Lock Your Designs with the Virtex-4 Security Solution)
Useful for battery concerns (though the encryption algorithm is different):

http://www.xilinx.com/support/documentatio...tes/xapp766.pdf (Using High Security Features in Virtex-II Series FPGAs)

For a general overview (the approached are different per product family), you may find this useful:

http://www.xilinx.com/products/design_resources/security/ (Design Security Solutions)
S_Hawk
А слышал ли кто-нибудь о наличии уникального номера в Альтеровских ПЛИСах (Циклонах, к примеру), который был бы доступен заливке? Или это только слухи?
Понятно, что в новых циклонах III LS есть уже поддержка шифрования заливки, а вот как бы в обычном III найти какую-нибудь уникальность?
leva87
Есть ли в циклонах что-то наподобии как у ксайлинкса читать DNA. Т.е. можно ли прочитать номер плисины внутренними ресурсами?
Тогда можно было бы в прошивке указать диапазон номеров с которыми эта прошивка дружит.
Aprox
Я конечно дико извиняюсь, но напоминаю о преимуществах совместного использования готовых кристаллов MCU, например на базе ARM, и собственно FPGA. Мало того, что это более эффективно как в денежном, так и во временном отношении, - такой подход позволяет защитить проект целиком с разумной степенью надежности. Hе надо лепить SoC. SoС- это плохо. Достаточно разделить проект на две параллельно работающие части,- одна в FPGA, другая в MCU. А MCU- закрыть битами секретности. И все! На 99,999% защита обеспечена. А больше по практике дел- и не нужно.
zombi
Китайцам глубоко пофигу любые биты секретности что в FPGA что в MCU. Гланое приклеить к себестоимости пару-тройку баксов и продавать тысчамыи или лымонами!
essev
А если рассматривать простое и недорогое (примерно 3000-4000 рублей) устройство логика, которого не сильно сложна, но тем не менее нужно его защитить от тупого копирования.


Если взять Циклон + МК (АВР).

И реализовать следующий алгоритм:

1) FPGA генерит число (берет меняющиеся данные со входной шины и подмешивает туда данные от ген. псевдослуч. последовательности).
2) полученное число из п.1 пропускает через секретный ключ.
3) посылает число из п.2 в МК
4) МК пропускает полученное число через такой же секретный ключ как и в пункте 2.
5) МК возвращает число из п.4 в FPGA
6) FPGA сравнивает число из п.5 с числом из п.2 и производит сравнение.





Или еще усложнить алгоритм:


1) FPGA генерит число (берет меняющиеся данные со входной шины и подмешивает туда данные от ген. псевдослуч. последовательности).
2) полученное число из п.1 пропускает через секретный ключ_1.
3) посылает число из п.2 в МК
4) МК пропускает полученное число через ключ_1 как и в пункте 2.
5) МК пропускает число еще через один ключ_2
6) FPGA декодирует данные ключом_2 ,а потом уже ключом_1 и производит сравнение.



Данный алгоритмы запускать в разные моменты времени и при несовпадении п.6 устройство отключается.
Чтобы не усложнять логику - разрядность задать = 32/64 бита.


А еще всю схему залить эпоксидкой.



Надолго ли такие методы защитят устройство от копирования и сделают ли стоимость копирования соизмеримым с новой разработкой?









zombi
Цитата(essev @ Sep 22 2010, 12:26) *
А если рассматривать простое и недорогое
.
.
.
А еще всю схему залить эпоксидкой.
.
.
.
Надолго ли такие методы защитят устройство от копирования и сделают ли стоимость копирования соизмеримым с новой разработкой?


Я то точно не скопирую!

А вот китайцам пофиг все выкрутасы с ключами и прочей байдой. Они гады копируют на уровне кристалла и то что делает оригинал то же и также делает и копия!
А в алгоритмы и протоколы они не лезут (нафих нуна)!
Что касается Вашей цены на изделие: думаю им пофиг, у них своя цена. Гланое скоко мона прыклеить к сыбыстоимости и скока сразу продать шоб заработать.

А про эроксидку мне нравится! Тока гдеж стока эпоксидки взять?

Aprox
Цитата(zombi @ Sep 24 2010, 21:03) *
А вот китайцам пофиг все выкрутасы с ключами и прочей байдой. Они гады копируют на уровне кристалла и то что делает оригинал то же и также делает и копия!
Думаю, это разговор имеет смысл про тиражи многими тысячами. Очень редкий случай, большинству россиян далек донельзя. У россиянина другой мотив поведения- как бы его не бортанул свой же заказчик, который обещал отстегивать авторские от каждой продажи мелкой партии. Поэтому защита делается не от китайцев, а от своего же начальника.
MHC
Цитата(Vitus @ Feb 2 2005, 12:12) *
Ко всему вышесказанному стоит добавить одну немалоавжную вещь (которую между прочим рекомендует Зайлинкс) - делать на печатной плате или непомредственно на ИМС содержащей битстрим надпись типа "все права на копирование битстрима принадлежат...". Не такой уж и глупый совет между прочим поскольку реинжениринг по битстриму вещь весьма затруднительная если вообще возможная а использовать чужой битстрим в чистом виде в коммерческих целях даже у нас не станут (тем более если он заCOPYRIGHTен)


Копирайты -- эт да, штука полезная. но только для особо крупных контор, где продажи конвейером идут и вложен уже не один милли[подставьте_сами] каких-нибудь денег. А по поводу деинженеринга -- абсолютно согласен. в 95%-тах случаев гораздо дешевле будет самому сделать, нежели ковыряться в битстримах smile.gif одно дело разобраться: что к чему?.. так ведь еще и дорабатывать нужно, а-ля "почувствуй себя Neo" smile.gif Такшта, подозреваю, особого смысла в ЭТОМ нет, а автор данного топика начал слишком уж преждевременно бояться за сохранность IP smile.gif Надеюсь, хотя бы обоснованно? smile.gif
essev
то есть скопировать в "свое" конф. ПЗУ чей-то битстрим не легко?
stalker123
А возможно ли вообще декомпилировать прошивку?

Суть вот в чем:

1. Ставим ROM с серийным номером на плату с плис
2. Пишем Tcl-скрипт для квартуса, который:
- читает этот серийный номер через jtag ПЛИС;
- генерит файлик *.v с этим серийным номером;
- пересобирает проект и шьет ПЛИС;
3. Логика прошитая в ПЛИС при включении сравнивает
считанный номер с прошитым, и если не они совпадают, блокирует работу
основной программы.

По идее, если нельзя в битовом потоке подменить этот номер, то копировать
устройство не получится.
VladimirB
Цитата(stalker123 @ Oct 12 2010, 20:40) *
2. Пишем Tcl-скрипт для квартуса, который:
- читает этот серийный номер через jtag ПЛИС;
- генерит файлик *.v с этим серийным номером;
- пересобирает проект и шьет ПЛИС;


Ну да - пересобирать в кактусе проект для каждого экземпляра устройства. Такое пойдёт только если устройств 10 штук в месяц выпускается smile.gif.
А самое главное, что считать код из РОМ и записать его в РОМ клона не проблема - тут даже китайцев нанимать не нужно.

Rocky89
Кто подскажет формат sof файла.
_Макс
Меня также заинтересовала эта тема. Читал про DNA от Xilinx в Startan-3A и Spartan-6 (последний по большому счету интересуют). Как я понял там конфигурация жестко привязываться к некоему серийному номеру чипа, который можно прочитать (как снаружи так и изнутри), но нельзя изменить. Мое понимание верно? Нужно ли для каждого чипа пересобирать проект для соответствия конфигурации с уникальным номером чипа?
FAE_SKV
Цитата(essev @ Sep 22 2010, 13:26) *
А если рассматривать простое и недорогое (примерно 3000-4000 рублей) устройство логика, которого не сильно сложна, но тем не менее нужно его защитить от тупого копирования.
...


Если нужно недорогое устройство с защитой от копирования, но не хочется заморачиваться со сложными алгоритмами и процедурами защиты, то возьмите FLASH ПЛИС Актел. В них встроена аппаратная защита от копирования.
skilful
а что делать если раньше только работал с альтерой? smile.gif. обидно что альтера "подкинула" проблем. хоть бы маленькую флеш встроили внутрь с защитой от чтения
Shtirlits
если раньше работал только с альтерой, то не стоит переживать - это как паровоз, если видел один, то считай, что видел все.
VladimirB
Цитата(_Макс @ Oct 29 2010, 15:28) *
Меня также заинтересовала эта тема. Читал про DNA от Xilinx в Startan-3A и Spartan-6 (последний по большому счету интересуют). Как я понял там конфигурация жестко привязываться к некоему серийному номеру чипа, который можно прочитать (как снаружи так и изнутри), но нельзя изменить. Мое понимание верно? Нужно ли для каждого чипа пересобирать проект для соответствия конфигурации с уникальным номером чипа?

Можно, например, использовать Microblaze и обновлять только содержимое его памяти в bit файле утилитой data2mem.
Для пущей секретности DNA в коде лучше в явном виде не хранить, а хранить его зашифрованную версию, а алгоритм дешифрации и сравнения с DNA реализовать аппаратно или вообще весь код программы шифровать.



Shtirlits
Для меня удивительно, почему так пугает перспектива менять прошивку ради каждого экземпляра.
Даже переразводка делается без участия человека. Накупил (арендовал) компьютеров, зарядил скрипт, изготовил сколько нужно экземпляров прошивки и применяй для контроля производства.
DW0
Цитата(Shtirlits @ Nov 4 2010, 16:25) *
Для меня удивительно, почему так пугает перспектива менять прошивку ради каждого экземпляра.
Даже переразводка делается без участия человека. Накупил (арендовал) компьютеров, зарядил скрипт, изготовил сколько нужно экземпляров прошивки и применяй для контроля производства.


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

Про актель можете и не говорить, пытался с альтеры перелезть на актель, с ихним глючным и тупым сапром поразвлекался, плюс правило что все триггеры нужно сбрасывать внешним ресетом, а если забыл какой сбросить, то может быть как в 1 так и в 0, в общем не определен после подачи питания. В актеле хотите память чем-то проинициализировать, а не получится, так что актель безнадежно отстал. И главное их купило микросеми и будет сворачивать производство ПЛИСов которые болжны были конкурировать с альтерой и ксаилинксом.
Shtirlits
QUOTE (DW0 @ Nov 10 2010, 00:48) *
а если проект критичен к расстановке и трассировке???

То как он у вас работает? Чудом?
Такое видел на fpga Atmel, у них САПР глючный и о коммерческой разработке речь идти не может.
Вся прелесть технологии в том, чтобы функционально отлаженная схема разводилась в всегда работающую, либо выдавались нарушения констрейнов. Ну да, их придется сделать. Переразводить и тыкать осциллографом каждый раз - не годится.

Ладно, допустим, что разводка не является проблемой: констрейны 100%, компьютеры арендуются, можно сгенерить прошивок столько, сколько экземпляров и это будет дешевле утечки прошивки.
Как защищаться? Что может отличаться от экземпляра к экземпляру на плате и в fpga, что трудно скопировать?
Только номерные микросхемы (DNA, http://www.maxim-ic.com/products/1-wire/authentication.cfm) ?
Вот бы найти что-то очень дешевое, но неповторимое!
dvladim
Цитата(Shtirlits @ Nov 10 2010, 03:33) *
Как защищаться? Что может отличаться от экземпляра к экземпляру на плате и в fpga, что трудно скопировать?
Только номерные микросхемы (DNA, http://www.maxim-ic.com/products/1-wire/authentication.cfm ?
Вот бы найти что-то очень дешевое, но неповторимое!

Незачем экземпляры делать разными. В приведенных микросхемах вся суть не в уникальном идентификаторе, а ключе, который работает только на запись и движке SHA. Если не хочется покупать у них микросхемы, сделайте такую же на любом грошовом контроллере.
В этой теме пробегала ссылка на документ от Xilinx по организации защиты и ИМХО это наиболее дешевый и действенный метод.
PVL
Переведу на русский предыдущего оратора. Внутрь ПЛИС загоняется модуль генерирующий ключи. Снаружи ставится однократно программируемый микроконтроллер с аналогичным алгоритмом генерации. ПЛИС пишет числа в алгоритм генерации ключей как во внутренний модуль так и в микроконтроллер, периодически считывает ХЭШ из последнего и сравнивает с внутренним. Если ХЭШи не совпадают - баста. Для нормальной работы достаточно одного пина ПЛИС. Алгоритм генерации ключей должен иметь длину сходимости в несколько лет.
karatel2009
Все что создано человеком так или иначе будет взломано!!!! вопрос во времени!!!!
Reanimator++
Таким образом защита тиражирования переводится на МК, задача чтения прошивки которых решается в пределах нескольких тысяч зеленых..
FAE_SKV
Цитата(Quater @ Jan 14 2009, 01:03) *
Если кто слышал про Actel то их ФПГА не возможно скопировать Это подтверждает армия какой европейской страны не помню но анализ ИС это фирмы я видел сам.


Да. На сегодня это самые защищенные ПЛИС. Их невозможно взломать.. ну разве, что за пару сотню лет.

Цитата(Gate @ Jan 14 2009, 14:25) *
Где нам, дуракам, чай пить! (с)
Вы бы сравнили быстродействие к примеру второго циклона от альтеры и актеловского проасика. И цену.


По быстродействию они может и медленне, при условии, что ПЛИС заполнена на половину. А ты забей Альтеру на 90%, если сможешь, и посмотрим какое быстродействие будет у Циклона!
Да и нужно ли всегда большое быстродействие. Как показывает мой опыт, есть много задач, для которых 100 Мгц больше чем достаточно.

А по цене Актел не дороже, чем Альтера или Xilinx

Цитата(karatel2009 @ Mar 2 2011, 12:30) *
Все что создано человеком так или иначе будет взломано!!!! вопрос во времени!!!!


Скорее уж вопрос " Где и как найти нужного человека"!
А жить вечно люди пока не могут!
des00
Цитата(FAE_SKV @ May 23 2011, 11:33) *
А ты забей Альтеру на 90%, если сможешь, и посмотрим какое быстродействие будет у Циклона!

99,8 % сыклона 3 ки, маслает на 192МГц и ведь даже констрейны сходятся %)
Eastern
Как предпочтительно делать конфигурацию FPGA с точки зрения обсуждаемой здесь темы: через битстрим загружаемый через ПО, через конфигурационную Flash или прошивать саму FPGA ?
thinkerreed
Цитата(Shtirlits @ Nov 10 2010, 04:33) *
Что может отличаться от экземпляра к экземпляру на плате и в fpga, что трудно скопировать?
Только номерные микросхемы (DNA, http://www.maxim-ic.com/products/1-wire/authentication.cfm) ?
Вот бы найти что-то очень дешевое, но неповторимое!

В атмелевских DataFlash есть Unique 64-byte Device Identifier ( http://www.atmel.com/dyn/products/devices....bfamily_id=1805 ), одну такую можно поставить на плату, самую дешевую. И работать с ней на максимальной частоте, чтоб нельзя было её каким-нибудь дешёвым МК заменить... Но всё равно плохо, можно плиской заменить.

Похоже, единственно надёжный вариант - уникальный номер у самой FPGA. Придётся наверное переползать на Spartan 3A с третьего циклона. 05.gif И чего альтера такую фичу не сделает. crying.gif

Цитата(FAE_SKV @ May 23 2011, 20:33) *
А по цене Актел не дороже, чем Альтера или Xilinx

Ну это, мягко говоря, неправда... rolleyes.gif
=SSN=
Цитата(thinkerreed @ Aug 31 2011, 17:13) *
Похоже, единственно надёжный вариант - уникальный номер у самой FPGA. Придётся наверное переползать на Spartan 3A с третьего циклона. 05.gif И чего альтера такую фичу не сделает. crying.gif

Эта фича есть в CycloneIII LS и Cyclone IV...
thinkerreed
Цитата(=SSN= @ Aug 31 2011, 17:19) *

Не, в CycloneIII LS есть "Configuration security using advanced encryption standard (AES) with 256-bit volatile key", это совсем не то, что "Device DNA" у ксайлинкса. А у Cyclone IV и того нет (или я в упор не вижу blink.gif ).
Putnik
Цитата(thinkerreed @ Aug 31 2011, 18:02) *
Не, в CycloneIII LS есть "Configuration security using advanced encryption standard (AES) with 256-bit volatile key", это совсем не то, что "Device DNA" у ксайлинкса. А у Cyclone IV и того нет (или я в упор не вижу blink.gif ).

в Cyclone IV я тоже ничего не нашел. либо эта функция сильно скрывается альтеровцами.
Присматриваюсь ко вторым арриям поэтому с возможностями Volatile и Non-Volatile Key.
bark
Подскажите как собсно пользоваться этой Configuration security ? (Stratix IV)
сейчас пытаюсь сделать Volatile Key. батарейка присобачена.

что-то я совсем запутался с документацией.. в инструкции к стратиксу строчка:
Program the user-defined 256-bit AES keys to the Stratix IV device through the JTAG interface. и всё. а как и что и куда?

в документации к программеру тоже как-то не нашел толком нужной информации.

как я понимаю нужно сделать файл flash зашифрованный (незашифрованный уже делал через NiosII command Shell) и потом прошить этот же ключ в Стратикс.

но как понять не могу =(

___
update
нашел документ an556.pdf "Using the Design Security Feature in Stratix IV"
вроде оно.
bark
Дополнение к предыдущему посту.

По инструкции альтеры можно зашифровать .sof файл в какой-то другой формат, пример .pof
А по инструкции к моей плате в неё надо заливать файл .flash

как скрестить эту ситуацию?

Как сконвертировать .sof файл в .flash с шифрщвкой данных?
Квартусовский Convert Programming Files этого не умеет.

плата программируется через командную строку Nios II EDS command shell.
там сначала используется команда sof2flash для конвертации, но в ней я не нашел вариантов для шифровки.
потом командой nios2-flash-programmer заливается .flash файл в железяку.

как всё это соглассовать?

и ещё в документации альтеры есть такая штука KEY_VERIFY JTAG instruction для проверки есть ли в FPGA зашитый ключ и в каком варианте он туда зашит.
как собсно вычитать эту информацию? не работал никогда с JTAG instruction.
SM
Цитата(essev @ Sep 22 2010, 13:26) *
А если рассматривать простое и недорогое (примерно 3000-4000 рублей) устройство логика, которого не сильно сложна, но тем не менее нужно его защитить от тупого копирования.


Тогда уж точно не надо ставить лишних авров и делать геморройные аутентификации. А просто применить ПЛИС Lattice LatticeXP / LAtticeXP2, которые пока что даже от китайцев надежно защищены тем, что флеш и матрица на одном кристалле и недоступна для прямого считывания при помощи их чип-тестеров.

Цитата(Putnik @ Dec 8 2011, 17:27) *
в Cyclone IV я тоже ничего не нашел.


В пятом найдется, и non-volatile в том числе. Но конечно с точки зрения защищенности предпочтительнее Lattice и Actel.
Stewart Little
Цитата(bark @ Jan 27 2012, 18:54) *
По инструкции альтеры можно зашифровать .sof файл в какой-то другой формат, пример .pof

Для создания шифрованного файла нужно иметь специальную фичу в лицензионном файле.
bark
Цитата(Stewart Little @ Jan 27 2012, 19:06) *
Для создания шифрованного файла нужно иметь специальную фичу в лицензионном файле.

Это я понимаю. Она похоже есть тк генерировать поф с шифровкой я могу.

Проблема в том что в плату по инструкции могу зашить файл .flash а не pof.
А как получить .flash из .pof я не знаю.
Знаю только как получить .flash из .sof но в таком варианте не знаю как его зашифровать своими ключами.
nh4t
Прошу совета .
Поставлена задача : защитить конфигурацию маленького Cyclone_2, 3, 4 от подмены ( anti-tampering).
При этом защита конфигурации от копирования для Cyclone-2,3,4 полагается невозможной и не рассматривается.
С3-LS-также не рассматривается.

Подскажите пожалуйста - насколько эффективно будет следующее решение :

1. В ПЛИС, помимо основной логики , встраивается генератор хеш-функции ( к примеру - SHA),
не имеющий с основной логикой никаких логических связей.

2.Оставшееся от основных функций свободное простанство ПЛИС по возможности максимально
заполняется ложной логикой , не имеющей отношения к основной функции.

3. Внешний по отношению к ПЛИС микроконтроллер периодически , со случайным интервалом ,
отправляет во встроеный в ПЛИС генератор хэш массив случайных чисел и получает результат.

4. На основании правильного результата микроконтроллер делает вывод не только о работоспособности генератора хэш,
но и о достоверности всей конфигурации ПЛИС, включая не относящуюся к генератору хэш основную логику.

Основа метода - перехваченую прошивку трудно отреверсить.
DAV
Господа, а не кто не пробовал делать на DS28E01 от Максима.
MishaN
Как на счет Lattice, есть встроенная Flash в XP2 и помладше XO2 сериях, при этом она еще и может быть использоваться как юзерская, или дажа для исполнения кода их 8 или 32 процессоров. Получается SoС
у XP2 есть встроенный AES128, так что прошивка надежно закрыта.
Если говорить о SRAM FPGA, тот же блок есть у ECP3 семейства, что обеспечивает безопасную работу с внешней SPI кофигурационной памятью.

Еще XO2 и XP2 семейства можно сделать OTP - тоесть запретить вобще менять прошивку(иногда полезно от подмены программы для банковского оборудования)

nh4t
Цитата(MishaN @ Jun 3 2012, 05:09) *
Как на счет Lattice
начет Lattice все хорошо , за исключением :
- Diamond не Quartus;
- XO2 Z 4000 50% заполненый мах clock ~60MHz.
wolfman
У нас делали удаленную загрузку ПЛИС.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.