Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Unique S/N для проекта FPGA
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
bark
Знатоки, подскажите как вписать уникальный идентификатор для экземпляра устройства?

что хотелось бы получить:
нужно сделать допустим 10 экземпляров устройства. хотелось бы иметь _один_ файл прошивки для всех экземпляров.
чтобы код внутри ПЛИС мог на базе доступных подручных ресурсов сгенерировать себе ID и быть уникальным.

Можно ли где-то вычитать серийный номер или любой уникальный идентификатор в ПЛИС Stratix IV / EEPROM / Flash / Marwell 1G phy ?
хоть где-то есть какой-нить регистр с уникальным значением который можно было бы использовать в проекте?

Необходимо для защиты проекта и избежания путаницы с экзеплярами.

например модуль памяти SDRAM имеет прошитый свой серийник. но в данном проекте не используется память, поэтому не хочется ни модуль включать в комплект ни добавлять контроллер в проект.
SAURIS GmbH
Если нет серийника ни в одном из девайсов, поставьте DS2411R+, это как раз серийник в корпусе sot-23, и всего один пин нужен для связи с ПЛИС
Boris_TS
Цитата(bark @ Jan 10 2012, 12:34) *
...Marwell 1G phy ?

Если у Вас есть Ethernet Phy, то, наверное (хотя и не обязательно), у Вас есть и MAC адрес для этого Ethernet Phy. Теоретически MAC адрес должн быть уникальными (в масштабах земного шара).
des00
Цитата(Boris_TS @ Jan 10 2012, 04:12) *
Теоретически MAC адрес должн быть уникальными (в масштабах земного шара).

а вот практически нет %)
bark
Цитата(Boris_TS @ Jan 10 2012, 12:12) *
Если у Вас есть Ethernet Phy, то, наверное (хотя и не обязательно), у Вас есть и MAC адрес для этого Ethernet Phy. Теоретически MAC адрес должн быть уникальными (в масштабах земного шара).


МАС контроллер находится в ПЛИС. что я там напишу - то и будет.
писать в прошивку уникальные адреса противоречит требованию о одной прошивке для всех устройств.
Задача была даже немного обратная. на основе какого-то доступного уникального номера генерировать МАС адрес для устройства. %)

Пользовать DS2411R+ наверно вариант, но вариант на будущее.
В рамках данной системы его, к сожалению, уже не втулить.
SAURIS GmbH
тогда как вариант предусмотреть в программе, которая прошивает флеш или еепром, зашивку уникального номера туда. При этом прошивка то будет у всех одна, а программа-зашивальщик будет шить сама еще и дополнительные данные.
bark
Цитата(SAURIS GmbH @ Jan 10 2012, 12:34) *
тогда как вариант предусмотреть в программе, которая прошивает флеш или еепром, зашивку уникального номера туда. При этом прошивка то будет у всех одна, а программа-зашивальщик будет шить сама еще и дополнительные данные.


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

в таком случае (если нет вариантов получить откуда-то серийник) я рассматриваю вариант использовать для пользовательских настроек ЕЕПРОМ которая будет прописываться после прошивки специальной командой.

тогда пусконаладка будет в два этапа: сначала всё зашили одной прошивкой, а потом специальной командой записали в еепром каждой плате её серийник и необходимые конфигурационные данные (MAC, IP ...) которые впоследствии тоже можно будет обновлять.
при этом железяка станет энергонезависимой.

тогда другой вопрос.

как достаточно просто и эффективно защитить проект от копирования?

ЕЕПРОМ можно без проблем вычитать. прошивка в стратиксе будет защищена Узеркеем (ведь это достаточно надёжная защита?).
но в случае если юзеркей все-таки будет утерян, то как можно было бы ещё защитить проект?

В принципе я клоню к шифрованию данных в еепром.
тут конечно всякого можно нагородить. просто не хочется изобретать велосипеды. может есть уже какие-то устаканившиеся эффективные методики?
SAURIS GmbH
Если конфигурация стратикса уже защищена, то этого более чем достаточно для защиты всего от копирования. Шифровать ЕЕПРОМ конечно можно, или, что проще, считать какой нибудь хэш типа MD5 данных в ней + какой-то секретной информации, хранящейся жестко в ПЛИС, и проверять ее на правильность, но для защиты от копирования это уже лишнее, это скорее защита от модификации еепромины юзером.
bark
Цитата(SAURIS GmbH @ Jan 10 2012, 15:37) *
Если конфигурация стратикса уже защищена, то этого более чем достаточно для защиты всего от копирования. Шифровать ЕЕПРОМ конечно можно, или, что проще, считать какой нибудь хэш типа MD5 данных в ней + какой-то секретной информации, хранящейся жестко в ПЛИС, и проверять ее на правильность, но для защиты от копирования это уже лишнее, это скорее защита от модификации еепромины юзером.


не хочется начисто исключать человеческий фактор.
вдруг бумажка с юзеркеем из кармана выпадет.. либо какой-нить дурак с первого раза его подберёт.. дуракам ведь везёт )
либо по каким-то причинам его надо будет сообщить заказчику. (не исключено.. допустим надо будет срочно на объекте перепрошить железяку и восстановить работу)

поэтому оставлять один единственный фронт обороны своего продукта не хочется.

сами данные частично в ЕЕПРОМ в ходе работы должны быть частично изменяемые. (например IP или порты приема передачи данных.. вдруг сеть админы переконфигурят)
а часть статичной (типа серийника, версии, даты прошивки, контрольное секретное слово)

вот на основе этого похоже и прийдётся сочинять алгоритм хеша/шифра, чтобы без фирменного НоуХау нельзя было клонировать и включать работу несанкционированные экземпляры.
Wic
Решал аналогичную задачу простым выделением во флэшке, от куда идет конфигурирование FPGA, области для хранения данных, и туда писал параметры корректировки АЦП, серийник и подобное. Но это уже после прошивки, при помощи NIOS'a.
Stewart Little
Цитата(bark @ Jan 10 2012, 18:06) *
либо какой-нить дурак с первого раза его подберёт.. дуракам ведь везёт )

128/256 бит?
Флаг криптоаналитику в руки... cranky.gif

Цитата(bark @ Jan 10 2012, 18:06) *
либо по каким-то причинам его надо будет сообщить заказчику. (не исключено.. допустим надо будет срочно на объекте перепрошить железяку и восстановить работу)

Так вот как раз для этого данная технология и придумана. Ключ шифрования Вы прошиваете в ПЛИС сами, до передачи разработки заказчику. А потом можете высылать ему битстримы, кодированные с этим ключом, хоть до опупения - все равно, они смогут сконфигурировать только Вашу ПЛИС'ину (строго говоря, только ПЛИС'ину с тем же прошитым ключом).

Имхо, проблема высосана из пальца...
bark
Цитата(Stewart Little @ Jan 10 2012, 16:33) *

Правильно ли я понимаю что юзеркей либо прошивается намертво в стратикс, либо висит там временно и питается батарейкой?

в случае прошивки ключа намертво стратикс ещё можно прошивать некодированными вариантами прошивки или уже надо исключительно кодированные?

Я документацию проглядывал, но практики с ними ещё не было. может что-то не так понял.
какие там ньюансы ещё не совсем понимаю.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.