Jump to content

    
Sign in to follow this  
zombi

MAX10 / Bitstream Encryption / Security Options

Recommended Posts

Подскажите, состояние OFF и др. что значит для каждого параметра?

Не уверен что правильно понимаю что оно и зачем.

И текст "OTP" напрягает.

Боюсь экспериментировать и залочить чего к чертям. Вдруг это что-то одноразовое... 

2.thumb.jpg.fe0b1d553578e7d1919fc60eae86b990.jpg

Share this post


Link to post
Share on other sites

С MAX10 не работал - но тут, судя по смыслу, если ставить off - это означает отказ от использования запретов (ограничений) - так что, ИМХО, страшного ничего не должно произойти.

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

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

 

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

Share this post


Link to post
Share on other sites
On 10/19/2020 at 9:50 AM, Yuri124 said:

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

Может кто посоветовать доку по особенностям применения шифрованного битстрима?

Для MAX10 или для другого похожего семейства Intel, а если б еще и на русском...

Share this post


Link to post
Share on other sites
6 minutes ago, zombi said:

доку по особенностям применения шифрованного битстрима?

не думаю, что там есть что-то особенное. 

В Квартусе даете задание создать зашифрованную на заданном ключе прошивку, ключ (стираемый (пропадает после отключения питания) или нестираемый) заливаете в микросхему  - тоже специально созданным файлом. 

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

Для серии микросхем CycloneV/ArriaV/StratixV есть доки по шифрованному битстриму, только нужно очень внимательно читать (я, например, проглядел пункт о понижении частоты заливки со 100МГц до 10МГц) - пока не поправил в настройках, не получалось работать с нестираемым ключом, при этом в интерфейсе никаких подсказок не выскакивало.

Share this post


Link to post
Share on other sites

С созданием и заливкой в мс шифрованного битстрима проблем нет.

Шифрую, заливаю всё как производитель рекомендует (.pof+.ekp > плис).

Но как проверить что все правильно, и в плис всё именно в зашифрованном виде находится?

Пока проверяю так :

Пытаюсь залить .sof (именно в CRAM залить) без предварительного полного стирания чипа.

Если программатор выдаёт ошибку, то считаю что все ОК.

Насколько правильный такой контроль?

Или подскажите как протестировать?

 

И меня по прежнему интересует подробное описание каждой опции 'Security Options' и каждого возможного её состояния.

Сейчас опции не меняю, все в состоянии "OFF (unless by the OTP fuse option)".

Достаточно ли этого для надёжной защиты прошивки от чтения?

 

Share this post


Link to post
Share on other sites
12 minutes ago, zombi said:

и в плис всё именно в зашифрованном виде находится?

А как оно может находиться в зашифрованном виде?! 

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

Оттуда как вычитать - нужно доки смотреть, Альтера в свое время писала, что из V серии наружу достать нет возможности никакой.

 

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

Share this post


Link to post
Share on other sites

Я думал, Вы хотите еще внешнюю какую-то память прикрутить. Руки так и не дошли до MAX10 в свое время - мало в ней ресурсов для нашего проекта оказалось.
По идее - если внутри во флеше шифрованный файл, то можно его вычитать и посмотреть - шифрованный ли он в действительности. При заливке из флеша в конфигурационный RAM он должен дешифрироваться и оттуда уже обратно не вычитываться.
Главное - чтобы не было возможности извлечь ключ.

45 minutes ago, zombi said:

Пытаюсь залить .sof (именно в CRAM залить) без предварительного полного стирания чипа.

У V серии есть возможности заливать нешифрованный sof в ПЛИС даже при установленном ключе. Т.е. при этом ПЛИС прошивается без ошибок. Но это можно отключить, насколько помню - необратимо.

Edited by Yuri124

Share this post


Link to post
Share on other sites
9 minutes ago, Yuri124 said:

Я думал, Вы хотите еще внешнюю какую-то память прикрутить.

Нет. Ничего дополнительного прикручивать мне не надо!

Я всего лишь хочу добиться невозможности считывания прошивки из MAX10.

А если и прочитают, то зашифрованную - на здоровье.

Дабы запретить, ну или максимально усложнить, копирование изделия.

Share this post


Link to post
Share on other sites
37 минут назад, zombi сказал:

У MAX10 всё внутри чипа.

Если хотите все закрыть совсем наглухо, то используйте Tamper Protection - при этом еще и возможность загрузки по JTAG будет заблокирована :)

Этот документ, я полагаю, Вы изучали: Intel MAX 10 FPGA Configuration User Guide

Share this post


Link to post
Share on other sites
29 minutes ago, StewartLittle said:

используйте Tamper Protection - при этом еще и возможность загрузки по JTAG будет заблокирована :)

Нее, это уже перебор. Вдруг апгрэйд потребуется.

Документик конечно изучал. Но наверно не внимательно.

Да и ни слова по русски там нет :biggrin: тяжело понять всю эту "кухню".

И не вижу в документе где про Tamper Protection пишут...

Share this post


Link to post
Share on other sites
30 минут назад, zombi сказал:

И не вижу в документе где про Tamper Protection пишут...

Смотрите ппраграф 2.2.2.1 :

Цитата

2.2.2.1. AES Encryption Protection
The Intel MAX 10 design security feature provides the following security protection for
your designs:
• Security against copying—the non-volatile key is securely stored in the Intel MAX
10 devices and cannot be read through any interface. Without this key, attacker
will not be able to decrypt the encrypted configuration image.
• Security against reverse engineering—reverse engineering from an encrypted
configuration file is very difficult and time consuming because the file requires
decryption.
Security against tampering—after you enable the JTAG Secure and Encrypted POF
(EPOF) only, the Intel MAX 10 device can only accept configuration files encrypted
with the same key. Additionally, configuration through the JTAG interface is
blocked
.

 

 

Вот нашел в закромах какой-то пример, посмотрите на досуге:

Цитата

MAX10 JTAG Unlock Reference Design for JTAG Secure Mode


This is a reference design which demonstrates the LOCK/UNLOCK JTAG instruction execution
via internal JTAG interface. The detail descriptions for each block can be found in the AN556.

Файлы прилагаю. Ссылка на AN556: https://www.intel.com/content/dam/altera-www/global/en_US/pdfs/literature/an/an556.pdf

MAX10_JTAG_Secure_Unlock_UG.pdf

top.qar

Share this post


Link to post
Share on other sites

:wacko:

Проще наверно придумать иную защиту изделия чем пытаться зашифровать прошивку, залить её в чип

и при этом не забыть выставить все эти галочки/пунктики/опцийки и пр. премудрости!

:biggrin:

 

Share this post


Link to post
Share on other sites
24 минуты назад, zombi сказал:

А где этот EPOF включается/разрешается?

Я так полагаю, что в окошке из Вашего первого поста :)

Share this post


Link to post
Share on other sites

Я так полагаю что всё специально максимально запутанно и неоднозначно дабы на корню отбить охоту

у юзеров использовать какую либо защиту прошивки и уж тем более ШЫФрование!

 

Ну его нафиг это отключение JTAGа.

Скажите достаточно ли для приемлемой защиты вот этого:

1. В проекте в квартусе в "Device options" поставил галку "Verify protect"

2. В конвертере создал EKP и шифрованный POF (Security Options - все OFF)

Может ли злоумышленник "вытащить" прошивку в таком случае?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this