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

Вот и я говорю - страшилки! Причем детские. Потому что вместо ссылок по поводу "у них на всех процах и плисах закладки стоят - че хочешь сделают и прошивку сдерут и из строя выведут, только что танцевать плисину не заставят, а на серьезном софте компиляторы в прошивку доп информацию с зашифрованным исходным кодом включают, так что и проблем с декомпиляцией особо не будет" только общие фразы и "притянутые за уши" программы для анализа логов, кукисов и удаленных файлов. Что касается semiresearch.com и др., то если бы они использовали заведомо установленные производителями чипов закладки, то не требовали бы несколько копий чипа для взлома.

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


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

в обсуждении мелькал еще один способ:

3) конфигурация прогружается в ПЛИС, причем битстрим защищен от считывания, а при выключении питания конфигурация ПЛИС поддерживается с помощью аккумулятора

Достоинства:

- сильная защита данных

Недостатки:

- всякие геморрои с возможной потерей прошивки в процессе эксплуатации изделия

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


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

пока ответ писал, все сообщения в теме за последние дни слетели. udofin уже об этом глюке отписался. у кого-нибудь в кэше страничка последняя по теме на сохранилась?

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


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

Я просто не понял почму содержимое FPGA при этом нельзя через JTAG прочитать?

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


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

Я просто не понял почму содержимое FPGA при этом нельзя через JTAG прочитать?

 

А вы поставьте FPGA в BGA корпусе и TDO на разъем не выводите ;)

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


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

Итак, повтоюсь.

 

Эта тема возникает не в первый раз, поэтому предлагаю выделить, в качестве рекомендуемых, варианты. Добавить к этому опрос, кто как делал(делает) ну или кому какой вариант более симпатичен.

 

Способы защиты содержимого FPGA:

1) Использование семейств ПЛИС, в которых предусмотрена защита содержимого.

Достоинства:

Наивысшая степень защиты содержимого.

Недостатки:

(возможная) Смена производителя (среды разработки), большая стоимость.

2) Питание ядра всегда поддерживать (батарея, аккамулятор), ограничить доступ до JTAG пинов (использовать BGA или откусывать пины).

Достоинства:

Степень защиты близка к п.1.

Недостатки:

А вы сможете обеспечить такое питание?

3) Не закрывать прошивку FPGA, использовать внешнее "закрытое" устройство либо как часть проекта. либо как генератор ПСП, на основании работы которого принимать решение.

3.1) В качестве внешнего устройства использовать CPLD.

3.2) В качестве внешнего устройства использовать микроконтроллер.

У третьего метода возможна тьма вариантов, но в любом случае, они сводятся к тому, что в FPGA входит N линий, а выходит M линий. Если предположить что имеем ПСП которую "невозможно" вычислить, все равно, можно записать состояние этих линий. Нужно учитывать объем данных передаваемых через эти линии, следить за тем чтоб он не был слишком маленький.

Достоинства:

Можно применить к любой FPGA.

Недостатки:

Меньшая степень защиты, время на разработку "закрывашки".

 

Кто что добавит, исправит?

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


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

Итак, повтоюсь.

 

Эта тема возникает не в первый раз, поэтому предлагаю выделить, в качестве рекомендуемых, варианты. Добавить к этому опрос, кто как делал(делает) ну или кому какой вариант более симпатичен.

 

Способы защиты содержимого FPGA:

 

[skipped]

 

2) Питание ядра всегда поддерживать (батарея, аккамулятор), ограничить доступ до JTAG пинов (использовать BGA или откусывать пины).

  Достоинства:

    Степень защиты близка к п.1.

  Недостатки:

    А вы сможете обеспечить такое питание?

 

[skipped]

 

Кто что добавит, исправит?

 

Хочу добавить, что для этого способа возможно ограничение доступа к JTAG-принам при задании конфигурации некоторых видов ПЛИС. Так для Spartan 2 в опциях конфигурации пошивки есть возможность запретить Readback and Reconfiguration. (Хотя об этом в даташите ничего не написано).

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


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

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

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

Достоинства: вполне сносная защита + необычная

Недостатки: трудно реализовать

 

Возможно конечно идея не выдержит критики

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


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

2 Андрей Харитонов

А как Вы себе представляете подмену блока?

Нужный блок, может быть распылен по всему битстрейму.

Скорее всего все сведется к огромному количеству битстреймов, исходя из вариантов нужных/ненужных блоков.

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


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

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

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

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

3. Еще раз хочу указать, что предложенный способ состоит из двух частей

- в каждый момент времени прошивка кристалла не полнофункциональна

- алгоритм и моменты изменения прошивки тоже не лежат на поверхности

Исходя из этого хочется обсудить имеет ли данный способ право быть зачисленным в список несмотря на сложность или нет (например принципиальная невозможность его реализации, принципиальная несостоятельность ввиду необеспечния данным способом защиты или еще что нибудь)

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


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

2 Андрей Харитонов

 

1. Вариант относится к категории 2.1

2. Если хотите его утвердить как имеющим шансы на существование, то укажите алгоритм "выделения" блока.

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


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

Используйте ACTEL !!! Там этой проблемы вообще не возникает, т.к. ПЛИС не требуется загружать каждый раз при включении питания, и , таким образом, нельзя перехватить поток данных. (www.actel.com)

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


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

Используйте ACTEL !!! Там этой проблемы вообще не возникает, т.к. ПЛИС не требуется загружать каждый раз при включении питания, и , таким образом, нельзя перехватить поток данных.  (www.actel.com)

 

Это то можно, но архитектура этих плис не совсем подходит для некоторых задач :(((

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


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

Очень скоро Xilinx выпустит Spartan 3 с внутренним флашем. Будет на $.70 дороже обичного в серии. Да и lattice уже имеет fpga's с встроенным флашем

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


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

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

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

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

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

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

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

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

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

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