|
|
  |
Защита данных FPGA, Кто подскажет где почитать? |
|
|
|
Jun 7 2006, 18:52
|

Частый гость
 
Группа: Свой
Сообщений: 164
Регистрация: 27-06-04
Пользователь №: 194

|
2 'Pruga' частота 50 мгц, но это не важно - главное что на входе полинома постоянно меняющиеся данные. Длину съёма обычно берут 2N (N-степень полинома), т.е. чтолько тактов крутят в пустую полином, а потом делают съём данных. Количество данных берут - кому сколько надо Полином можно тоже любой брать - и с большим основанием
--------------------
qwerty
|
|
|
|
|
Jun 9 2006, 11:28
|

Знающий
   
Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402

|
Почему-то ни разу не задавался этим вопросом, хотя работаю с ПЛИСками постоянно. Если бы делать, выбрал бы такой путь: 1. FPGA+CPLD (flash внутри). Допустим, Cyclone и MAXII 240-ая. (цена этой CPLDшки около 6-7 у.е.) 2. FPGA грузится свободно, т.е. открыто и сразу начинает работать. (это важно для быстро стартующих систем). 3. Через некоторое время FPGA начинает читать последовательность из внутренней flash CPLD, одновременно передавая в CPLD некие данные, 99% которых - функция обычного ГенСлЧисл (шум, проще говоря), а 1% - управляющие команды (для чего они нужны - позже). 4. В FPGA и в CPLD реализованы несколько рекурсивных функций. В процессе чтения последовательности одинаковые алгоритмы определяют - по какому из заложенных законов были сгенерированы интервалы последовательности. 5. Важно, чтобы интервалы, полученный рекурсивными функциями были намного короче периода распозоваемости самих функций. 6. После обработки последовательности, в FPGA и в CPLD формируются наборы из номеров распознанных функций. 6. В CPLD полученный набор пропускается через функцию, которая была распознана первой(например) и пересылается в FPGA. 7. FPGA внутри делает тоже самое и сравнивает. Если совпало - первый этап пройден. 8. В п.3 было сказано про передачу из FPGA в CPLD управляющих команд. Это номера функций, которыми надо обработать исходную последовательность и перезаписать её, что делается одновременно с последующим чтением. 9. Затем читается перезаписанная последовательность, проверяется и если всё совпало - второй этап пройден. 10. Прохождение двух этапов означает, что идентификация прошла успешно. При непрохождении в 2 раза в CPLD передаётся команда - запрета дальнейшего обмена, которая записивается во внутреннюю flash и в дальнейшем FPGA, загрузившись и проработав несколько секунд, повисает. --- -) требуется внешняя CPLD +) последовательность всегда разная +) при сбоях в последовательности (внезапное отключение питания) - система самовосстанавливается, причём используя испорченную последовательность. +) никаких ключей не передается, передаются только указатели на них +) нет возможности подсунуть внешний тест, т.к. CPLD проверяет исходящие данные, а FPGA запоминает - какие указания давала CPLD и сверяет на втором этапе. +) в процессе идентификации идёт постоянный по скорости двухсторонний обмен, что осложняет отделение управляющих директив от данных. +) дешево
--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
|
|
|
|
Guest_Pruga_*
|
Jun 12 2006, 13:05
|
Guests

|
Вообщем метод с EEPROM имеет право на жизнь и дальнейшую аппробацию. Собираюсь использовать его в проекте со Spartan3-400. Кстати, можно добавить его в классификацию, предложенную ранее 3,14 под пунктом 3.3.
2 Евгений Николаев. Насколько я понял, преимущество этого метода по сравнению с предложенным выше от Xilinx'a в возможности самому реализовать алгоритм шифровки и проверки шифрованных данных, что возможно усложнит работу взломщику??
|
|
|
|
|
Aug 11 2006, 13:35
|
Знающий
   
Группа: Свой
Сообщений: 995
Регистрация: 3-06-05
Пользователь №: 5 713

|
Цитата(Андрей Харитонов @ Mar 31 2005, 05:44)  я думаю так если ценность вашей FPGA прошивки сравнима со стоимостью нового истребителя то не поможет ничего, т.к. все ваши дополнительные навешанные компоненты легко прочтуться даже с битами защиты специализирующимися на этом фирмами (чтение закрытого проца 1-5 тысяч $, закрытой CPLD 1-10 тысяч $). В этом случае можно говорить только о степени затруднения копирования проекта - поставить пару редко используемых в разработках процессоров разных производителей втом числе например наш КР1878ВЕ1, парочку CPLD опять таки разных производителей, наплевать на мучения покупателя товара по истечении гарантийного срока и поставить батарейку, на проци водрузить шифрованный обмен, в CPLD можно вынести жизненно важные куски схемы - и все равно стоимость истребителя перевесит (не поможет и батарейка). А уж если в копировании заинтересована американская сторона, да еще и вся элементная база у вас американская - вообще труба (у них на всех процах и плисах закладки стоят - че хочешь сделают и прошивку сдерут и из строя выведут, только что танцевать плисину не заставят, а на серьезном софте компиляторы в прошивку доп информацию с зашифрованным исходным кодом включают, так что и проблем с декомпиляцией особо не будет).
если же ценность в копировании вашей разработки << стоимости истребителя, то практически любое начинание в желании защитить битстрим на 99.9% даст желаемый результат, даже если сделать это не очень профессионально. Это будет зависеть от произведения (число ваших конкурентов и готовых ими стать) * (из них имеющих опыт в реверс инжиниринге) * (планируемая выгода) Sorry, даже не смешно, скорее грустно... Уже упомянутый выше LatticeXP позиционируется фирмой производителем как схема, способная обеспечить адекватную защиту заказных IP-ядер. Если учесть, что цены на sabj порядка 70k$, делайте выводы. Цифирь подсмотрел на www.xilinx.com в разделе партнеров. Аппаратно защита строится на трех физических уровнях и методом снятия крышки с последующим подсоединением к внутренним шинам задача не решается. Деблокировать защиту или снимать информацию надо по объему, а не по площади поверхности. Это раз... Во-вторых, сами буржуи заинтересованы в корректном функционировании sabj и без всяких закладок. У них с этим просто - зарплата адвокатов много раз превышает зарплату инженеров.
|
|
|
|
|
Aug 11 2006, 14:15
|
Знающий
   
Группа: Свой
Сообщений: 995
Регистрация: 3-06-05
Пользователь №: 5 713

|
Цитата(acex2 @ Apr 4 2005, 23:49)  Цитата(3.14 @ Apr 4 2005, 16:33) Я просто не понял почму содержимое FPGA при этом нельзя через JTAG прочитать? А вы поставьте FPGA в BGA корпусе и TDO на разъем не выводите  Пара пустяков: выпаиваем FPGA, восстанавливаем шарики, запаиваем на свою плату, где подано питание и есть JTAG... Всех дел - минут сорок. Примочка для восстановления шариков - 150...200$. Ссылку дать?
|
|
|
|
|
Aug 11 2006, 16:03
|

Адепт
   
Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656

|
Цитата(HardJoker @ Aug 11 2006, 18:15)  Цитата(acex2 @ Apr 4 2005, 23:49)  Цитата(3.14 @ Apr 4 2005, 16:33) Я просто не понял почму содержимое FPGA при этом нельзя через JTAG прочитать? А вы поставьте FPGA в BGA корпусе и TDO на разъем не выводите Пара пустяков: выпаиваем FPGA, восстанавливаем шарики, запаиваем на свою плату, где подано питание и есть JTAG... Всех дел - минут сорок. Примочка для восстановления шариков - 150...200$. Ссылку дать? Вы лучше тему внимательнее прочитайте, особенно на два поста выше моего, который вы процитировали, прежде чем вырывать фразы из контекста. Заодно обратите внимание что значок  подразумевает наличие у собеседника чувства юмора.
|
|
|
|
|
Oct 21 2006, 16:12
|

Любитель Кошек
    
Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873

|
Интересуют книги/статьи и т.п. по обеспечению защиты прошивки ПЛИС. Буду очень признателен за дополнительные комментарии. Насколько слышал краем уха для защиты используется дополнительный CPLD. Я в этих вопросах новичок, позтому прошу ногами не пинать blush.gif.
На самом деле, на мой взляд, защиты нет вообще не от чего, имею ввиду что у Вас есть подходящее считывающее устройчтво, которое может зафиксировать поток информации на интересующее Вас время на определенном устройстве, например, на время инициализации FPGA от CPLD. При любом алгоритме кодирования, как я понимаю, Вас интересует возможность как минимум повторения кода поступающим на FPGA. Если Вы его считали правильно, то на конкретном объекте повторить его не проблема, поскольку .... код загрузки Вы уже считали. Прочитать многослойную плату нет проблем, если это надо, ... INTEL8080, в общем-то размывали. P.S. Если вопрос в модификации кода, то ИХМО вряд-ли этим кто-то будет заниматься, конечно при условии что у Вас нет "Пионерских" решений тянущих на Nobel.., и то их наверное "другие" решат по своемую. Все мы люди, а значит Мыслящие.
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Oct 23 2006, 05:47
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(tyro @ Oct 21 2006, 23:12)  На самом деле, на мой взляд, защиты нет вообще не от чего, имею ввиду что у Вас есть подходящее считывающее устройчтво, которое может зафиксировать поток информации на интересующее Вас время на определенном устройстве, например, на время инициализации FPGA от CPLD. При любом алгоритме кодирования, как я понимаю, Вас интересует возможность как минимум повторения кода поступающим на FPGA. Если Вы его считали правильно, то на конкретном объекте повторить его не проблема, поскольку .... код загрузки Вы уже считали. Прочитать многослойную плату нет проблем, если это надо, ... INTEL8080, в общем-то размывали. Stratix II. На борту есть мелкая энергонезависимая память, где хранится длинный ключ, зашитый туда разработчиком. Загрузочный поток закодирован и раскодируется внутри. Вы считали этот поток. Что будете с ним делать. Ключа не знаете. Сможете повторить устройство?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Oct 23 2006, 07:20
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(tyro @ Oct 23 2006, 13:47)  В этом случае я однозначно нет. Из области предположений: мне кажется, что разработчики оставили для себя недокументированную лазейку, чтобы добраться до содержимого этой памяти. На всякий случай перекрестился, но все равно кажется. Ну, тогда в любом МК с защитой прошивки можно предполагать такую лазейку. Только это врядли - все тайное рано или поздно становится явным - а это скандал, который фирме-производителю никак не нужен. Т.ч. вряд ли она будет это делать - большой риск при сомнительных мотивах. На всякий случай уточню: тот упомянутый ключ зашивает не фирма-производитель микросхемы, а разработчик, который использует микросхему. Т.е. при генерации загрузочного потока, оный генерится в закодированном виде и генерится тут же ключ для этого потока. Сам поток разработчик (или на производтсве) помещает в микросхему-загрузчик (или в хост, если загрузка производится с хоста), а ключ зашивает в упомянутую FPGA. Ключ можно стереть, перезаписать новый. Но не прочитать. Таким образом, не зная ключа, устройство повторить крайне сложно (если не сказать невозможно). Недостаток этого подхода в том, что такая фишка есть только у очень ограниченного на сегодняшний день, ряда ПЛИС, я кроме того Стратикса больше не знаю (варианты с внутренней ПЗУ или с внешней батарейкой не в счет  ).
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Oct 23 2006, 10:06
|

Любитель Кошек
    
Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873

|
To dxp Мысли в догонку: после окончания ЛИКБЕЗА работал в одном институте, тогда, если память не изменяет, ломали коды с 24 битами защиты, причем эти биты были не константами, а сами модифицировались в процессе шифрования. С тех пор прошло лет 30, думаю криптография за это время продвинулась. (Сам я занимюсь железом, а не математикой, поэтому за развитием криптографии не слежу). Есть и второй путь: подойти как к черному ящику, задать свой поток данных, посмотреть на отклик, новый поток ... в конце концов есть большая вероятность получить искомый результат. У нас этот курс назывался "Управление Большими Системами".
--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
|
|
|
|
|
Nov 2 2006, 13:28
|

Частый гость
 
Группа: Свой
Сообщений: 153
Регистрация: 8-11-05
Из: Москва
Пользователь №: 10 605

|
Паранойа кругом... Сразу оговорюсь, что я сторонник технологии и идеологии GNU/Linux.
1) Если Вы разработчик крутой, уникальной, дорогой IP, и работает она на крутых, штучных, дорогих FPGA - в этом случае используйте Stratix, это реальная потребность рынка, и она удовлетворяется Altara-ой, и Xilinx тоже что-нибудь предложит.
2) Если Вы разработчик достаточно типовой IP, что-то вроде PCI контроллеров (на крякнутых корках, кстати), и цена чипов на которые вы ориентируетесь на уровне $10-20, то данная проблема будет интересовать только параноидальных инженеров, которые видят себя Биллами Гейтсами в молодости, но забывают о том, что папа у него был начальником юридического отдела корпорации IBM. То есть Вам это не грозит (создать IP и немеренно обагатиться на ней).
Потому что:
В реальной жизни, IP для FPGA это очень маленькая часть общей картины. Даже если Вы произиодитель решений платного уровня (board level solutions), то есть еще код для MCU, есть гербера плат, есть драйвера системного уровня для целевой ОС. И это только по железу как таковому. Далее идет маркетинг, раскрутка брэнда, организация дистрибуторской сети и техническая поддержка заказчиков. По хорошему, продукт должен быть и электронным образом интегрирован в Вашу сеть поддержки, то есть обновления драйверов, той же прошивки FPGA и MCU должны регулярно доставляться платящим заказчикам и автоматически обноляться на их системах.
В этом случае возникновение клонов Вашего продукта будет говорить только о том, что Вы достигли немеренного успеха, и как говорят бывалые инвесторы - "это проблемы, которые мы хотим иметь". А Вы, при условии постоянного вложения сил и средств в дальнейшее развитие продукта все равно будете иметь элитный сектор рынка, по Вашему продукту, а производители клонов будут обслуживать те сектора, которые Вам по большому счету и не нужны.
Вот так.
|
|
|
|
|
Nov 2 2006, 13:43
|
Местный
  
Группа: Свой
Сообщений: 433
Регистрация: 28-02-06
Пользователь №: 14 788

|
Цитата(vleo @ Nov 2 2006, 16:28)  Паранойа кругом... Сразу оговорюсь, что я сторонник технологии и идеологии GNU/Linux.
1) Если Вы разработчик крутой, уникальной, дорогой IP, и работает она на крутых, штучных, дорогих FPGA - в этом случае используйте Stratix, это реальная потребность рынка, и она удовлетворяется Altara-ой, и Xilinx тоже что-нибудь предложит.
2) Если Вы разработчик достаточно типовой IP, что-то вроде PCI контроллеров (на крякнутых корках, кстати), и цена чипов на которые вы ориентируетесь на уровне $10-20, то данная проблема будет интересовать только параноидальных инженеров, которые видят себя Биллами Гейтсами в молодости, но забывают о том, что папа у него был начальником юридического отдела корпорации IBM. То есть Вам это не грозит (создать IP и немеренно обагатиться на ней). Золотые слова. Полностью присоединяюсь и поддерживаю И кстати если проеект так безумно крут то почему бы не сделать ASIC. И 3/4 воплей сразу исчезают.
|
|
|
|
|
Nov 22 2006, 15:20
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 9-03-05
Пользователь №: 3 170

|
У Lattice есть очень симпатичная серия LFXP - FPGA со встроенной защищаемой флэш. Стоит подешевле Actel. http://www.latticesemi.com/products/fpga/xp/index.cfm
--------------------
Женщины носят кофточки прям на голо тело. Как не выпить водочки за такое дело?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|