Splice
Sep 18 2008, 19:15
На мой взгляд самый лучший способ защиты ПЛИС это использование их по назначению. Т.е. отработать проект на ПЛИС и потом заказать чип. Другие способы мало эфективны, благо существуют фирмы предлогающие считывание проекта даже с установленным битом секретности. Да и вообще всё что сделано руками человека можно сломать руками человека!
blackfin
Sep 19 2008, 02:34
Народ! А расскажите про защиту в MAX II пожалуйста поподробнее.
Я в англицком не силен и не уверен что правильно понимаю че там в даташитах пишут.
Quater
Jan 13 2009, 21:03
Если кто слышал про Actel то их ФПГА не возможно скопировать Это подтверждает армия какой европейской страны не помню но анализ ИС это фирмы я видел сам.
Цитата(Quater @ Jan 14 2009, 00:03)

Если кто слышал про Actel то их ФПГА не возможно скопировать Это подтверждает армия какой европейской страны не помню но анализ ИС это фирмы я видел сам.
Где нам, дуракам, чай пить! (с)
Вы бы сравнили быстродействие к примеру второго циклона от альтеры и актеловского проасика. И цену.
Цитата
Вы бы сравнили быстродействие к примеру второго циклона от альтеры и актеловского проасика. И цену.
Здесь, скорее всего, речь идет о радиационно толерантных/стойких микросхемах семействе (RT)AX /RH. Вопрос цены в данном случае неуместен(наши микросхемы тоже недешево стоят).
А кто нибудь обладает реальными знаниями по поводу LFXP и LFXP2 - в части того, в каких там металлизациях идут данные загрузки флеш-срам, т.е. на сколько сложно их снять после вскрытия?
Waldemarius
Jan 28 2009, 10:22
На счет защиты данных в 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
Aug 15 2009, 17:17
А слышал ли кто-нибудь о наличии уникального номера в Альтеровских ПЛИСах (Циклонах, к примеру), который был бы доступен заливке? Или это только слухи?
Понятно, что в новых циклонах III LS есть уже поддержка шифрования заливки, а вот как бы в обычном III найти какую-нибудь уникальность?
Есть ли в циклонах что-то наподобии как у ксайлинкса читать DNA. Т.е. можно ли прочитать номер плисины внутренними ресурсами?
Тогда можно было бы в прошивке указать диапазон номеров с которыми эта прошивка дружит.
Я конечно дико извиняюсь, но напоминаю о преимуществах совместного использования готовых кристаллов MCU, например на базе ARM, и собственно FPGA. Мало того, что это более эффективно как в денежном, так и во временном отношении, - такой подход позволяет защитить проект целиком с разумной степенью надежности. Hе надо лепить SoC. SoС- это плохо. Достаточно разделить проект на две параллельно работающие части,- одна в FPGA, другая в MCU. А MCU- закрыть битами секретности. И все! На 99,999% защита обеспечена. А больше по практике дел- и не нужно.
Китайцам глубоко пофигу любые биты секретности что в FPGA что в MCU. Гланое приклеить к себестоимости пару-тройку баксов и продавать тысчамыи или лымонами!
А если рассматривать простое и недорогое (примерно 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 бита.
А еще всю схему залить эпоксидкой.
Надолго ли такие методы защитят устройство от копирования и сделают ли стоимость копирования соизмеримым с новой разработкой?
Цитата(essev @ Sep 22 2010, 12:26)

А если рассматривать простое и недорогое
.
.
.
А еще всю схему залить эпоксидкой.
.
.
.
Надолго ли такие методы защитят устройство от копирования и сделают ли стоимость копирования соизмеримым с новой разработкой?
Я то точно не скопирую!
А вот китайцам пофиг все выкрутасы с ключами и прочей байдой. Они гады копируют на уровне кристалла и то что делает оригинал то же и также делает и копия!
А в алгоритмы и протоколы они не лезут (нафих нуна)!
Что касается Вашей цены на изделие: думаю им пофиг, у них своя цена. Гланое скоко мона прыклеить к сыбыстоимости и скока сразу продать шоб заработать.
А про эроксидку мне нравится! Тока гдеж стока эпоксидки взять?
Цитата(zombi @ Sep 24 2010, 21:03)

А вот китайцам пофиг все выкрутасы с ключами и прочей байдой. Они гады копируют на уровне кристалла и то что делает оригинал то же и также делает и копия!
Думаю, это разговор имеет смысл про тиражи многими тысячами. Очень редкий случай, большинству россиян далек донельзя. У россиянина другой мотив поведения- как бы его не бортанул свой же заказчик, который обещал отстегивать авторские от каждой продажи мелкой партии. Поэтому защита делается не от китайцев, а от своего же начальника.
Цитата(Vitus @ Feb 2 2005, 12:12)

Ко всему вышесказанному стоит добавить одну немалоавжную вещь (которую между прочим рекомендует Зайлинкс) - делать на печатной плате или непомредственно на ИМС содержащей битстрим надпись типа "все права на копирование битстрима принадлежат...". Не такой уж и глупый совет между прочим поскольку реинжениринг по битстриму вещь весьма затруднительная если вообще возможная а использовать чужой битстрим в чистом виде в коммерческих целях даже у нас не станут (тем более если он заCOPYRIGHTен)
Копирайты -- эт да, штука полезная. но только для особо крупных контор, где продажи конвейером идут и вложен уже не один милли[подставьте_сами] каких-нибудь денег. А по поводу деинженеринга -- абсолютно согласен. в 95%-тах случаев гораздо дешевле будет самому сделать, нежели ковыряться в битстримах

одно дело разобраться: что к чему?.. так ведь еще и дорабатывать нужно, а-ля "почувствуй себя Neo"

Такшта, подозреваю, особого смысла в ЭТОМ нет, а автор данного топика начал слишком уж преждевременно бояться за сохранность IP

Надеюсь, хотя бы обоснованно?
то есть скопировать в "свое" конф. ПЗУ чей-то битстрим не легко?
stalker123
Oct 12 2010, 16:40
А возможно ли вообще декомпилировать прошивку?
Суть вот в чем:
1. Ставим ROM с серийным номером на плату с плис
2. Пишем Tcl-скрипт для квартуса, который:
- читает этот серийный номер через jtag ПЛИС;
- генерит файлик *.v с этим серийным номером;
- пересобирает проект и шьет ПЛИС;
3. Логика прошитая в ПЛИС при включении сравнивает
считанный номер с прошитым, и если не они совпадают, блокирует работу
основной программы.
По идее, если нельзя в битовом потоке подменить этот номер, то копировать
устройство не получится.
VladimirB
Oct 12 2010, 20:53
Цитата(stalker123 @ Oct 12 2010, 20:40)

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

.
А самое главное, что считать код из РОМ и записать его в РОМ клона не проблема - тут даже китайцев нанимать не нужно.
Rocky89
Oct 19 2010, 07:18
Кто подскажет формат sof файла.
Меня также заинтересовала эта тема. Читал про DNA от Xilinx в Startan-3A и Spartan-6 (последний по большому счету интересуют). Как я понял там конфигурация жестко привязываться к некоему серийному номеру чипа, который можно прочитать (как снаружи так и изнутри), но нельзя изменить. Мое понимание верно? Нужно ли для каждого чипа пересобирать проект для соответствия конфигурации с уникальным номером чипа?
FAE_SKV
Nov 2 2010, 10:34
Цитата(essev @ Sep 22 2010, 13:26)

А если рассматривать простое и недорогое (примерно 3000-4000 рублей) устройство логика, которого не сильно сложна, но тем не менее нужно его защитить от тупого копирования.
...
Если нужно недорогое устройство с защитой от копирования, но не хочется заморачиваться со сложными алгоритмами и процедурами защиты, то возьмите FLASH ПЛИС Актел. В них встроена аппаратная защита от копирования.
skilful
Nov 4 2010, 12:44
а что делать если раньше только работал с альтерой?

. обидно что альтера "подкинула" проблем. хоть бы маленькую флеш встроили внутрь с защитой от чтения
Shtirlits
Nov 4 2010, 13:39
если раньше работал только с альтерой, то не стоит переживать - это как паровоз, если видел один, то считай, что видел все.
VladimirB
Nov 4 2010, 14:19
Цитата(_Макс @ Oct 29 2010, 15:28)

Меня также заинтересовала эта тема. Читал про DNA от Xilinx в Startan-3A и Spartan-6 (последний по большому счету интересуют). Как я понял там конфигурация жестко привязываться к некоему серийному номеру чипа, который можно прочитать (как снаружи так и изнутри), но нельзя изменить. Мое понимание верно? Нужно ли для каждого чипа пересобирать проект для соответствия конфигурации с уникальным номером чипа?
Можно, например, использовать Microblaze и обновлять только содержимое его памяти в bit файле утилитой data2mem.
Для пущей секретности DNA в коде лучше в явном виде не хранить, а хранить его зашифрованную версию, а алгоритм дешифрации и сравнения с DNA реализовать аппаратно или вообще весь код программы шифровать.
Shtirlits
Nov 4 2010, 14:25
Для меня удивительно, почему так пугает перспектива менять прошивку ради каждого экземпляра.
Даже переразводка делается без участия человека. Накупил (арендовал) компьютеров, зарядил скрипт, изготовил сколько нужно экземпляров прошивки и применяй для контроля производства.
Цитата(Shtirlits @ Nov 4 2010, 16:25)

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

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

Как защищаться? Что может отличаться от экземпляра к экземпляру на плате и в fpga, что трудно скопировать?
Только номерные микросхемы (DNA,
http://www.maxim-ic.com/products/1-wire/authentication.cfm ?
Вот бы найти что-то очень дешевое, но неповторимое!
Незачем экземпляры делать разными. В приведенных микросхемах вся суть не в уникальном идентификаторе, а ключе, который работает только на запись и движке SHA. Если не хочется покупать у них микросхемы, сделайте такую же на любом грошовом контроллере.
В этой теме пробегала ссылка на документ от Xilinx по организации защиты и ИМХО это наиболее дешевый и действенный метод.
Переведу на русский предыдущего оратора. Внутрь ПЛИС загоняется модуль генерирующий ключи. Снаружи ставится однократно программируемый микроконтроллер с аналогичным алгоритмом генерации. ПЛИС пишет числа в алгоритм генерации ключей как во внутренний модуль так и в микроконтроллер, периодически считывает ХЭШ из последнего и сравнивает с внутренним. Если ХЭШи не совпадают - баста. Для нормальной работы достаточно одного пина ПЛИС. Алгоритм генерации ключей должен иметь длину сходимости в несколько лет.
karatel2009
Mar 2 2011, 08:30
Все что создано человеком так или иначе будет взломано!!!! вопрос во времени!!!!
Reanimator++
Apr 22 2011, 13:50
Таким образом защита тиражирования переводится на МК, задача чтения прошивки которых решается в пределах нескольких тысяч зеленых..
FAE_SKV
May 23 2011, 16:33
Цитата(Quater @ Jan 14 2009, 01:03)

Если кто слышал про Actel то их ФПГА не возможно скопировать Это подтверждает армия какой европейской страны не помню но анализ ИС это фирмы я видел сам.
Да. На сегодня это самые защищенные ПЛИС. Их невозможно взломать.. ну разве, что за пару сотню лет.
Цитата(Gate @ Jan 14 2009, 14:25)

Где нам, дуракам, чай пить! (с)
Вы бы сравнили быстродействие к примеру второго циклона от альтеры и актеловского проасика. И цену.
По быстродействию они может и медленне, при условии, что ПЛИС заполнена на половину. А ты забей Альтеру на 90%, если сможешь, и посмотрим какое быстродействие будет у Циклона!
Да и нужно ли всегда большое быстродействие. Как показывает мой опыт, есть много задач, для которых 100 Мгц больше чем достаточно.
А по цене Актел не дороже, чем Альтера или Xilinx
Цитата(karatel2009 @ Mar 2 2011, 12:30)

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

А ты забей Альтеру на 90%, если сможешь, и посмотрим какое быстродействие будет у Циклона!
99,8 % сыклона 3 ки, маслает на 192МГц и ведь даже констрейны сходятся %)
Eastern
Jul 31 2011, 10:47
Как предпочтительно делать конфигурацию FPGA с точки зрения обсуждаемой здесь темы: через битстрим загружаемый через ПО, через конфигурационную Flash или прошивать саму FPGA ?
thinkerreed
Aug 31 2011, 13:13
Цитата(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 с третьего циклона.

И чего альтера такую фичу не сделает.
Цитата(FAE_SKV @ May 23 2011, 20:33)

А по цене Актел не дороже, чем Альтера или Xilinx
Ну это, мягко говоря, неправда...
Цитата(thinkerreed @ Aug 31 2011, 17:13)

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

И чего альтера такую фичу не сделает.

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

Не, в CycloneIII LS есть "Configuration security using advanced encryption standard (AES) with 256-bit
volatile key", это совсем не то, что "Device DNA" у ксайлинкса. А у Cyclone IV и того нет (или я в упор не вижу

).
Цитата(thinkerreed @ Aug 31 2011, 18:02)

Не, в CycloneIII LS есть "Configuration security using advanced encryption standard (AES) with 256-bit
volatile key", это совсем не то, что "Device DNA" у ксайлинкса. А у Cyclone IV и того нет (или я в упор не вижу

).
в Cyclone IV я тоже ничего не нашел. либо эта функция сильно скрывается альтеровцами.
Присматриваюсь ко вторым арриям поэтому с возможностями Volatile и Non-Volatile Key.
Подскажите как собсно пользоваться этой 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"
вроде оно.
Дополнение к предыдущему посту.
По инструкции альтеры можно зашифровать .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.
Цитата(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
Jan 27 2012, 17:06
Цитата(bark @ Jan 27 2012, 18:54)

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

Для создания шифрованного файла нужно иметь специальную фичу в лицензионном файле.
Это я понимаю. Она похоже есть тк генерировать поф с шифровкой я могу.
Проблема в том что в плату по инструкции могу зашить файл .flash а не pof.
А как получить .flash из .pof я не знаю.
Знаю только как получить .flash из .sof но в таком варианте не знаю как его зашифровать своими ключами.
Прошу совета .
Поставлена задача : защитить конфигурацию маленького Cyclone_2, 3, 4 от подмены ( anti-tampering).
При этом защита конфигурации от копирования для Cyclone-2,3,4 полагается невозможной и не рассматривается.
С3-LS-также не рассматривается.
Подскажите пожалуйста - насколько эффективно будет следующее решение :
1. В ПЛИС, помимо основной логики , встраивается генератор хеш-функции ( к примеру - SHA),
не имеющий с основной логикой никаких логических связей.
2.Оставшееся от основных функций свободное простанство ПЛИС по возможности максимально
заполняется ложной логикой , не имеющей отношения к основной функции.
3. Внешний по отношению к ПЛИС микроконтроллер периодически , со случайным интервалом ,
отправляет во встроеный в ПЛИС генератор хэш массив случайных чисел и получает результат.
4. На основании правильного результата микроконтроллер делает вывод не только о работоспособности генератора хэш,
но и о достоверности всей конфигурации ПЛИС, включая не относящуюся к генератору хэш основную логику.
Основа метода - перехваченую прошивку трудно отреверсить.
Господа, а не кто не пробовал делать на DS28E01 от Максима.
Как на счет Lattice, есть встроенная Flash в XP2 и помладше XO2 сериях, при этом она еще и может быть использоваться как юзерская, или дажа для исполнения кода их 8 или 32 процессоров. Получается SoС
у XP2 есть встроенный AES128, так что прошивка надежно закрыта.
Если говорить о SRAM FPGA, тот же блок есть у ECP3 семейства, что обеспечивает безопасную работу с внешней SPI кофигурационной памятью.
Еще XO2 и XP2 семейства можно сделать OTP - тоесть запретить вобще менять прошивку(иногда полезно от подмены программы для банковского оборудования)
Цитата(MishaN @ Jun 3 2012, 05:09)

Как на счет Lattice
начет Lattice все хорошо , за исключением :
- Diamond не Quartus;
- XO2 Z 4000 50% заполненый мах clock ~60MHz.
wolfman
Jun 7 2012, 08:22
У нас делали удаленную загрузку ПЛИС.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.