|
|
  |
Bootloader для LPC2364 |
|
|
|
Jul 16 2008, 08:02
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(navy2000 @ Jul 16 2008, 04:43)  Вот тут и начинаются мелкие нюансы. Ключевое слово в моем посте специально было выделено жирным шрифтом - ленивого производителя. Естественно, что с точки зрения ломания программ условия просто райские, ибо, производитель имеет некоторый нешифрованный код. Во многих моих случаях этого достаточно, ибо продукты близки к заказным и большинстве случаев требуют поддержки и сопровождения и модернизации в течении многих лет. Какие-либо навороченные защиты не использую, хотя в подавляющем большинстве случаев сложность программ и позволяет нафаршировать их по самое немогу. Цитата(Step_ARM @ Jul 16 2008, 08:40)  ..название документа и номер страницы? Уже привели, там еще рядом обширная картинка-табличка должна быть для пущей наглядности  . Цитата Тебе это зачем надо? Обычно стараюсь более широко смотреть на имеющиеся проблемы и не проходить мимо явной дезинфрмации. Цитата Назови свое изделие которое выпускается партией более 500 шт. в месяц. Сложность программ как-то коррелирует с серийностью их выпуска? Цитата(MrYuran @ Jul 16 2008, 08:53)  кто мешает поставить эмулятор датчика с зашитым в него "уникальным" серийником? Никто, но дополнительный "узор", например, в моем случае, когда девайсы в основном не закрытые коробки, а монтируемые в кассеты-стойки будет сильно босаться в глаза.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 16 2008, 08:06
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870

|
Цитата(meister @ Jul 16 2008, 11:12)  UM10211 (user.manual.lpc23xx.pdf) Chapter 29: LPC2300 Flash memory страница 591 of 600
Because of the boot block, the amount of flash available for user code and data is 504 K bytes in "512K" devices. Это я видел. Для меня было бы понятнее если бы написали конкретно -- в девайсах менее 512к флэш пользователя не занята 8к загрузчика. Спасибо.
|
|
|
|
|
Jul 16 2008, 12:44
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Цитата(MrYuran @ Jul 16 2008, 13:53)  Кстати-да! кто мешает поставить эмулятор датчика с зашитым в него "уникальным" серийником? Вот это как раз мало вероятно. Серийник - MAC адрес в Ethernet сети и вряд ли есть смысл его эмулировать. Несколько приборов в одной сетке работать перестанут, а это уже не продашь. А насколько открыт протокол програмирования встроенной флешь через JTAG интерфейс? Есть такая мысль, собрать аппаратную приблуду на стороннем проце (с закрытой прошивкой) которая при коннекте к разъему JTAG и последующем включении прошивает загрузчик в целевой LPC. А потом грузим его через бут лоадер шифрованным hex-ом. Эта аппаратная приблуда и считает сколько раз она прошила прибор. Покритикуйте идею. Насколько сложно подслушать и воспроизвести процесс програмирования через JTAG? И нужна ли в данном случае привязка к серийнику?
|
|
|
|
|
Jul 16 2008, 13:37
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Цитата(zltigo @ Jul 16 2008, 20:11)  Легко. Тем более, что воспоизводить-то и не надо. Только содрать прошивку. А как же тогда загрузчик шить, чтоб его передрать было не возможно? Что то ничего на ум не приходит. Или как то по другому защититься, есть идеи? Может так? Эта некая аппаратная приблуда читает серийник, зашивает в проц алгоритм расшифровки, проц запускается из ОЗУ, затем в него льется зашифрованный загрузчик (серийником) который расшифровывается процом и пишется во флешь, после этого флешь закрывается. То есть нужно будет перехватывать алгоритм расшифровки и отделять его от загрузчика. А весь файл будет всегда разным.
|
|
|
|
|
Jul 17 2008, 06:00
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Конечно, загрузчики можно шить у себя, но блин как не хочется этого гемора. И дело не только, и не столько в том, что это дополнительная работа работа, люди, оборудование и склад, время и транспортировка, но главное, если мы сами их прошиваем, значит и запуск (кривые руки монтажников, левые компоненты, дефекты плат и др.) это тоже наша ответственность. Поэтому, жду ваших подсказок нестандартных решений, вдруг кто что придумает. Наверное, не только мне это будет полезно.
|
|
|
|
|
Jul 17 2008, 06:14
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(navy2000 @ Jul 17 2008, 09:00)  Поэтому, жду ваших подсказок нестандартных решений, вдруг кто что придумает. Наверное, не только мне это будет полезно. Почитайте что-нето по криптографии. Например, как банкомат деньги выдаёт. Имеется свободно читаемая карточка, открытый канал связи и секретный PIN-код. Всё это смешивается в определённых пропорциях и вуаля - либо бабки, либо шиш
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Jul 17 2008, 13:08
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Еще одна идея. Исходим из того, что серийники в целевых платах менять не могут. Програмируется устройство аппаратной железякой. Железяка кроме интерфейса с програмируемым процом имеет еще и свой интерфейс с серийником. Железяка читает серийник платы. Сравнивае, не работала ли она ранее с этим серийником. Вставляет его (или функцию от него) в нешифрованный загрузчик. Грузит его в проц и закрывает флешь от чтения. Загрузчик в проце запускается, читает серийник с платы и если он совпадает готова к прошивке целевой программы. Железяка шифрует программу и загружает ее в проц. загрузчик расшифровывает ее серийником (или функцией от серийника) и прошивает его во флешь, сам стирается и закрывает флешь от чтения. Целевая прога стартует, сравнивает серийник на плате и если он тот, то стартует. Железяка инкрементирует счетчик. Когда счетчик вышел, отправляйте железяку разработчикам или покупайте новую. Понимаю, дыра есть, но покритикуйте сложность взлома.
|
|
|
|
|
Jul 17 2008, 13:52
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(navy2000 @ Jul 17 2008, 15:08)  Еще одна идея. Скоро надо будет запретить прием к рассмотрению проектов "вечных двигателей". Лично я престаю их рассматривать  Цитата Вставляет его (или функцию от него) в нешифрованный загрузчик. Вместо поиска привязки к серийнику в большой, многофункциональной и долго работающей программе резко облегчаем взлом ограничивая изучение маленьким и однофункциональным загрузчиком. Только большое спасибо можно сказать  ..
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 18 2008, 09:34
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870

|
Цитата(navy2000 @ Jul 17 2008, 17:08)  Еще одна идея. Исходим из того, что серийники в целевых платах менять не могут. Програмируется устройство аппаратной железякой. Железяка кроме интерфейса с програмируемым процом имеет еще и свой интерфейс с серийником. Железяка читает серийник платы. Сравнивае, не работала ли она ранее с этим серийником. Вставляет его (или функцию от него) в нешифрованный загрузчик. Грузит его в проц и закрывает флешь от чтения. Загрузчик в проце запускается, читает серийник с платы и если он совпадает готова к прошивке целевой программы. Железяка шифрует программу и загружает ее в проц. загрузчик расшифровывает ее серийником (или функцией от серийника) и прошивает его во флешь, сам стирается и закрывает флешь от чтения. Целевая прога стартует, сравнивает серийник на плате и если он тот, то стартует. Железяка инкрементирует счетчик. Когда счетчик вышел, отправляйте железяку разработчикам или покупайте новую. Понимаю, дыра есть, но покритикуйте сложность взлома. Я всегда делал проще. Программой кодером кодировал часть файла через XOR со сдвигом. В загрузчике на камне декодировал и записывал. Об это зубы обломать можно запросто. Хотя и ломается я думаю. Но времени уйму убъешь. В интернет выкладывал кодированную прошивку и все. Новая версия вышла или какой баг обнаружился пользователь перешивает. А у AVR вон код AES выложен -- посложнее будет сломать, только вот ни к чему так заморачиваться.
|
|
|
|
|
Jul 18 2008, 10:30
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Цитата(Step_ARM @ Jul 18 2008, 16:34)  Я всегда делал проще. Программой кодером кодировал часть файла через XOR со сдвигом. В загрузчике на камне декодировал и записывал. Об это зубы обломать можно запросто. Хотя и ломается я думаю. Но времени уйму убъешь. В интернет выкладывал кодированную прошивку и все. Новая версия вышла или какой баг обнаружился пользователь перешивает. А у AVR вон код AES выложен -- посложнее будет сломать, только вот ни к чему так заморачиваться. DES или AES в AVR реализовать ваще не проблема, так уже делали. Здесь проблема в том, что загрузчик тоже шьет заказчик. Читайте весь топик.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|