Перейти к содержанию
    

Design Security Features in Altera FPGA

Здравствуйте!

Возник вопрос защиты проекта для 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 и потом залить?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё вопрос, если заливается файл jam или ekp, а в опциях программатора стоит галка "Configure volatile design security key when available", то это и равносильно прошивке "volatile key"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже опция "Configure volatile design security key when available" и отвечает за генерацию volatile ключа. Попробовал его прошивать, похоже, работает. Первый раз ключ прошивается, при попытке повторной прошивки ругается на наличие ключа. Полностью работоспособность проверить не могу, батарея не была предусмотрена. Для non-volatile key необходим либо ethernet-blaster, либо какой-то программер от JTAG Technologies.

 

Остался вопрос по поводу установки tamper-protection bit, что бы могла грузиться только зашифрованная прошивка, или это только у Альтеры можно узнать?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остался вопрос по поводу установки tamper-protection bit, что бы могла грузиться только зашифрованная прошивка, или это только у Альтеры можно узнать?

Для взведения Tamper protection bit нужно иметь специальный ini-файл, который должен быть помещен в папку ..\bin или ..\bin64 квартуса.

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

Бросьте мне сообщения в личку, их есть у меня :)

 

Кстати, взвести Tamper protection bit можно только таким способом. C помощью jam-скриптов, например, его взвести не получится. А вот проверить, взведен он или нет - можно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Бросьте мне сообщения в личку, их есть у меня :)

 

Похоже, личные сообщения мне не доступны. Если можно, отправьте на ящик [email protected]

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если можно, отправьте на ящик [email protected]
Хорошо, но смогу только в понедельник. А то я сейчас в командировке :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошо, но смогу только в понедельник. А то я сейчас в командировке :(

 

Спасибо, подождём.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2Stewart Little поясните, пожалуйста, не высылая ini :)

 

планирую использовать SoC Cyclone 5 (с АРМом которые), хотелось бы использовать криптование прошивки ПЛИС с ключем в eFuse

 

каких неожиданностей следует ожидать в плане софта/лицензий, может ераты какой-то...

 

спасибо

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

планирую использовать SoC Cyclone 5 (с АРМом которые), хотелось бы использовать криптование прошивки ПЛИС с ключем в eFuse

каких неожиданностей следует ожидать в плане софта/лицензий, может ераты какой-то...

Сергей, а что такое eFuse? Это, поди, что-то из актеля/зайлинкса? :)

В крайних альтеровских семействах (в т.ч. Cyclone V) ключ можно хранить как в однократном ПЗУ, так и в ОЗУ (в этом случае понадобится резервная батарея).

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

Для использования non-volatile ключа понадобится специальная фича в квартусовский лицензионный файл.

Если нужен Tamper protection, то необходим еще и обсуждаемый ini-файл.

Насчет необходимости именно EthernetBlaster для прошивки non-volatile ключа в Cуclone V я не уверен - по-хорошему, нужно этот вопрос исследовать отдельно :)

Вроде на этом и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчет необходимости именно EthernetBlaster для прошивки non-volatile ключа в Cуclone V я не уверен - по-хорошему, нужно этот вопрос исследовать отдельно :)

 

В даташите (an556) написано так:

ByteBlaster II and USB-Blaster support only volatile key programming. Ethernet Blaster and JTAG Technologies support both volatile and non-volatile key programming. For non-volatile key programming, you must regulate the JTAG TCK pulse width (period) for proper polyfuse programming.

 

Для использования non-volatile ключа понадобится специальная фича в квартусовский лицензионный файл.

 

Если можно, тут по-подробней. Что именно необходимо добавить в файл лиценнзии? Строки, на подобие тех, что необходимы для добавления лицензии на IP-ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сергей, а что такое eFuse? Это, поди, что-то из актеля/зайлинкса? :)

Роман, спасибо, но не понял

an556 тоже посмотрел

 

eFuse - однократное ПЗУ, меня конкретно это интересует, батарейку применять не можем

 

то есть интересно два режима

Non-Volatile key

Non-Volatile key+Tamper protect

 

непонятно для меня описана возможность генерации jam файлов для прошивки ключа и файла

 

непонятно - позволяет ли internal jtag прошивать ключи (Non-Volatile особенно)

 

------------------------

 

only volatile key programming - волнует. у ксайлинса тоже не всякий "бластер" умеет прошивать (и там и там, видимо, нужна четкая времянка)

To enable the design security feature, you can obtain a license file from Altera Technical Support.

ну и если это можно в конфе - официальная стоимость или условия ini и лицензии тоже важно - ксайлинс с этим не заморачивается, а вот у латтиса чтоб получить криптофичи пришлось некий геморой испытать - все-таки этож к экспорту так просто не разрешено...

 

------------------------

 

я сейчас с цинком вожусь - вникать в доку на циклон не хочеться, чтоб не запутаться, но "представление о возможностях" мне бы не помешало :)

старшие Cyclone V SE мне кажутся привлекательными на будущее - ненужных мне трансиверов нет и цена подешевле чем у цинков

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В даташите (an556) написано так:

ByteBlaster II and USB-Blaster support only volatile key programming. Ethernet Blaster and JTAG Technologies support both volatile and non-volatile key programming. For non-volatile key programming, you must regulate the JTAG TCK pulse width (period) for proper polyfuse programming.

Да, все это так. Но у альтеры есть новое железо для прошивки - USB-Blaster II, который доже допускает управление параметрами JTAG'овских сигналов. Пока этот новый бластер только встраивают в отладочные платы для новый семейств, но обещают свделавть и как отдельный девайс. Вот я и имел в виду, а нельзя ли будет использовать USB-Blaster II для прошивки OPT-ключа??? Хотя, возможно вопрос несколько преждевременный :)

 

Если можно, тут по-подробней. Что именно необходимо добавить в файл лиценнзии? Строки, на подобие тех, что необходимы для добавления лицензии на IP-ядра.
Да, именно так. В понедельник отмылю уточнения.

 

 

непонятно для меня описана возможность генерации jam файлов для прошивки ключа и файла
А что _именно_ непонятно? Там, имхо, все расписано подробно...

 

непонятно - позволяет ли internal jtag прошивать ключи (Non-Volatile особенно)
Что здесь понимается под "internal jtag"??? :blink:

 

ну и если это можно в конфе - официальная стоимость или условия ini и лицензии тоже важно
Ответил в личку.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, подождём.
Отмылил, проверяйте почту.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отмылил, проверяйте почту.

 

Получил, спасибо.

 

 

Фичи quartus_nonvolatile_encryption и quartus_volatile_encryption в лицензионном файле присутствуют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... quartus_volatile_encryption в лицензионном файле присутствуют.

Эта фича, по большому счету, не нужна. Достаточно nonvolatile.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...