Захист коду на AVR / Arduino та доставку оновлень


9
  1. Який найкращий спосіб захистити код, який спалахнув на будь-якому пристрої на базі AVR від зворотної інженерії?
  2. Який простий спосіб забезпечити оновлення для кінцевих користувачів, щоб миготіти самостійно, не розкриваючи код? (Це за допомогою завантажувача, який розшифровує зашифроване зображення?)

Не пишіть мене за просування DRM, я виступаю за відкриті платформи - мені просто цікаво, як це буде працювати.


Не варто. Існує NO WAY , щоб повністю запобігти можливості зловмисного людини зворотного інжинірингу вашого апаратного / програмного забезпечення. Все, що вживають заходи щодо боротьби з РЕ, - це змусити її тривати більше часу.
Коннор Вольф

Відповіді:


9

Спочатку:

На мікросхемі є запобіжники, за допомогою яких зовнішні інструменти не можуть читати код з мікросхеми. Шукайте запобіжники захисту у вашій таблиці та / або документації програміста.

Це не ідеально, але захищає вас від простих атак.

Друге:

Ви не можете надійно завантажити прошивку. AVR не може самопрограмувати захищені зони:

http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf

Найкраще, що ви можете зробити, - це використовувати зашифровану мову лексеми (наприклад, основну чи вперед) та захистити інтерпретатор на мікросхемі завантажувачем, який може запрограмувати зашифровані маркери на відкриту область. Під час запуску мікросхема розшифрує та виконує інструкції на льоту.


3
Якщо запобіжники трохи не ідеальні, який тип кріплення може обійти його?

1
@Anonymous - Хімічно травлення знімає кришку мікросхеми та використовує електронні мікроскопи, лазери та мікропробники для перегляду, взаємодії з та редагування кремнію. Коштує щонайменше 500 доларів, але може бути дешевшим, ніж будь-яка робоча стбра, яка вкладається в пристрій.
Кевін Вермер

@KevinVermeer Ви мали на увазі 500 доларів? Мені здається, це було б набагато дорожче за це.
NickHalden

Адам, сталася помилка, тому я видалив свій коментар
hulkingtickets

3

Якщо це важливо, і ви особливо переживаєте за те, що конкуренти вкрадуть ваш код, зніміть захист IP-адрес на ваших сегментах коду. Ви повинні розглянути це, якщо ви все одно будете намагатися заробляти гроші на проекті.

Певні елементи коду можуть бути або запатентовані (для конкретних методів обробки та нових алгоритмів), або зареєстровані як промислові зразки (зовнішній вигляд, макет та застосування коду до пристрою). З цього питання ви можете проконсультуватися з юристом із захисту прав інтелектуальної власності.


1

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


1
Я думаю, що те, що говорить @Adam Davis, це те, що якщо ви використовуєте завантажувач (навіть той, про який ви написали), ви не можете програмувати блокування захищених областей. Отже, якщо ви писали власний зашифрований завантажувач, ви не змогли завадити чипу прочитати (випуск 1). Це, здається, те, що я все-таки отримую із посилання та аркуша.
Лу

якщо завантажувач і код зашифровані, це вирішило б другу проблему, перша проблема майже вирішена, якщо він використовує достатньо безпечне шифрування. (швидкість uC може бути шийкою пляшки).
Rick_2047

Правда. @Адам Девіс запропонував мову зашифрованої лексеми вище.
Лу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.