Защита данных EEPROM от модификации - PullRequest
4 голосов
/ 26 февраля 2009

Обычно я хотел бы сделать это, поместив что-то уникальное и случайное в образ ПЗУ, и использовать это в качестве начального числа для шифрования содержимого ЭСППЗУ, чтобы остановить извлечение и перепрограммировать после модификации изображения.

Очевидным недостатком является то, что это не останавливает попытки подмены в виде замены внешнего чипа EEPROM на пустой ... о, вернемся к первому использованному состоянию, давайте запросим ключи для сохранения!


Выбор компонентов для меня не вариант, аппаратная платформа уже определена. ЭСППЗУ программируется в течение срока службы устройства как изменение конфигурации и состояния, поэтому отключение линии стирания также не требуется.

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

Я уверен, что блочного шифра (режим ECB) достаточно для защиты конфиденциальных данных, возможно, чрезмерно! Этот подход, наряду с множеством копий, засорением одного, а не другого, делает финансово невыгодным размещение денег и времени для противодействия этим мерам.

Ответы [ 3 ]

5 голосов
/ 27 февраля 2009

Некоторые мысли: если под «защитой от модификации» вы имеете в виду, что вы можете обнаружить такое вмешательство, то вы можете

  1. сгенерируйте контрольную сумму по всему eeprom, только запустите ваше приложение, если контрольная сумма в порядке
  2. используйте дополнительный чип, который предоставляет уникальный номер, используйте этот номер для шифрования содержимого EEPROM
  3. хранить всю вашу информацию в нескольких местах в eeprom (два раза, если вы хотите только обнаружить изменение, три раза, если вы хотите обнаружить и отклонить измененное значение и использовать «все еще правильные» значения)

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

3 голосов
/ 26 февраля 2009

Плавающий контакт стирания и эпоксидная смола весь чип к плате? Использовать PROM?

Если вы не хотите изменять изображение, сделайте невозможным его изменение.

2 голосов
/ 27 февраля 2009

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

Для этого требуется то, что использует содержимое EEPROM для проверки его соответствующим открытым ключом (очевидно, не помещайте это в тот же eeprom). Алгоритмы с открытым ключом в вычислительном отношении довольно дороги, поэтому оправдать такой подход для микроконтроллеров довольно сложно.


Если вы не можете остановить людей от вмешательства в оборудование, но вы можете выбрать, какое оборудование вы используете, вы также можете использовать защищенную EEPROM, такую ​​как Maxim DS28CN01 (хотя я должен признать, Я ненавижу Максима, потому что его запчасти дорогие и имеют длительные сроки поставки и часто работают на заказах, пока достаточное количество людей не сделает заказы на их изготовление) или Серия AT88SC Atmel .

...