реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Bootloader для LPC2364
zltigo
сообщение Jul 16 2008, 08:02
Сообщение #31


Гуру
******

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



Цитата(navy2000 @ Jul 16 2008, 04:43) *
Вот тут и начинаются мелкие нюансы.

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


Цитата(Step_ARM @ Jul 16 2008, 08:40) *
..название документа и номер страницы?

Уже привели, там еще рядом обширная картинка-табличка должна быть для пущей наглядности smile.gif.
Цитата
Тебе это зачем надо?

Обычно стараюсь более широко смотреть на имеющиеся проблемы и не проходить мимо явной дезинфрмации.
Цитата
Назови свое изделие которое выпускается партией более 500 шт. в месяц.

Сложность программ как-то коррелирует с серийностью их выпуска?

Цитата(MrYuran @ Jul 16 2008, 08:53) *
кто мешает поставить эмулятор датчика с зашитым в него "уникальным" серийником?

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Jul 16 2008, 08:06
Сообщение #32


Частый гость
**

Группа: Участник
Сообщений: 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к загрузчика. Спасибо.
Go to the top of the page
 
+Quote Post
navy2000
сообщение Jul 16 2008, 12:44
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874



Цитата(MrYuran @ Jul 16 2008, 13:53) *
Кстати-да! кто мешает поставить эмулятор датчика с зашитым в него "уникальным" серийником?

Вот это как раз мало вероятно. Серийник - MAC адрес в Ethernet сети и вряд ли есть смысл его эмулировать. Несколько приборов в одной сетке работать перестанут, а это уже не продашь.

А насколько открыт протокол програмирования встроенной флешь через JTAG интерфейс?
Есть такая мысль, собрать аппаратную приблуду на стороннем проце (с закрытой прошивкой) которая при коннекте к разъему JTAG и последующем включении прошивает загрузчик в целевой LPC. А потом грузим его через бут лоадер шифрованным hex-ом.
Эта аппаратная приблуда и считает сколько раз она прошила прибор.
Покритикуйте идею. Насколько сложно подслушать и воспроизвести процесс програмирования через JTAG? И нужна ли в данном случае привязка к серийнику?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2008, 13:11
Сообщение #34


Гуру
******

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



Цитата(navy2000 @ Jul 16 2008, 14:44) *
Насколько сложно подслушать и воспроизвести процесс програмирования через JTAG?

Легко. Тем более, что воспоизводить-то и не надо. Только содрать прошивку.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
navy2000
сообщение Jul 16 2008, 13:37
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874



Цитата(zltigo @ Jul 16 2008, 20:11) *
Легко. Тем более, что воспоизводить-то и не надо. Только содрать прошивку.

А как же тогда загрузчик шить, чтоб его передрать было не возможно?
Что то ничего на ум не приходит.
Или как то по другому защититься, есть идеи?

Может так?
Эта некая аппаратная приблуда читает серийник, зашивает в проц алгоритм расшифровки, проц запускается из ОЗУ, затем в него льется зашифрованный загрузчик (серийником) который расшифровывается процом и пишется во флешь, после этого флешь закрывается.
То есть нужно будет перехватывать алгоритм расшифровки и отделять его от загрузчика. А весь файл будет всегда разным.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2008, 14:07
Сообщение #36


Гуру
******

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



Цитата(navy2000 @ Jul 16 2008, 15:37) *
Или как то по другому...

Ответ простой - надежно - никак.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
navy2000
сообщение Jul 17 2008, 06:00
Сообщение #37


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874



Конечно, загрузчики можно шить у себя, но блин как не хочется этого гемора. И дело не только, и не столько в том, что это дополнительная работа работа, люди, оборудование и склад, время и транспортировка, но главное, если мы сами их прошиваем, значит и запуск (кривые руки монтажников, левые компоненты, дефекты плат и др.) это тоже наша ответственность.
Поэтому, жду ваших подсказок нестандартных решений, вдруг кто что придумает.
Наверное, не только мне это будет полезно.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 17 2008, 06:14
Сообщение #38


Беспросветный оптимист
******

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



Цитата(navy2000 @ Jul 17 2008, 09:00) *
Поэтому, жду ваших подсказок нестандартных решений, вдруг кто что придумает.
Наверное, не только мне это будет полезно.

Почитайте что-нето по криптографии.
Например, как банкомат деньги выдаёт.
Имеется свободно читаемая карточка, открытый канал связи и секретный PIN-код. Всё это смешивается в определённых пропорциях и вуаля - либо бабки, либо шиш


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 17 2008, 07:06
Сообщение #39


Гуру
******

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



Цитата(MrYuran @ Jul 17 2008, 08:14) *
Имеется свободно читаемая карточка, открытый канал связи и секретный PIN-код.

Ага, в отличие от банкомата, имеются и все прочие коды, посему выдать "шиш" не получится - придется давать "бабки".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
navy2000
сообщение Jul 17 2008, 13:08
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874



Еще одна идея.
Исходим из того, что серийники в целевых платах менять не могут.
Програмируется устройство аппаратной железякой. Железяка кроме интерфейса с програмируемым процом имеет еще и свой интерфейс с серийником.
Железяка читает серийник платы. Сравнивае, не работала ли она ранее с этим серийником.
Вставляет его (или функцию от него) в нешифрованный загрузчик.
Грузит его в проц и закрывает флешь от чтения.
Загрузчик в проце запускается, читает серийник с платы и если он совпадает готова к прошивке целевой программы.
Железяка шифрует программу и загружает ее в проц. загрузчик расшифровывает ее серийником (или функцией от серийника) и прошивает его во флешь, сам стирается и закрывает флешь от чтения.
Целевая прога стартует, сравнивает серийник на плате и если он тот, то стартует.
Железяка инкрементирует счетчик.
Когда счетчик вышел, отправляйте железяку разработчикам или покупайте новую.
Понимаю, дыра есть, но покритикуйте сложность взлома.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 17 2008, 13:52
Сообщение #41


Гуру
******

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



Цитата(navy2000 @ Jul 17 2008, 15:08) *
Еще одна идея.

Скоро надо будет запретить прием к рассмотрению проектов "вечных двигателей". Лично я престаю их рассматривать smile.gif
Цитата
Вставляет его (или функцию от него) в нешифрованный загрузчик.

Вместо поиска привязки к серийнику в большой, многофункциональной и долго работающей программе резко облегчаем взлом ограничивая изучение маленьким и однофункциональным загрузчиком. Только большое спасибо можно сказать smile.gif..


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Jul 18 2008, 09:34
Сообщение #42


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



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

Я всегда делал проще. Программой кодером кодировал часть файла через XOR со сдвигом. В загрузчике на камне декодировал и записывал. Об это зубы обломать можно запросто. Хотя и ломается я думаю. Но времени уйму убъешь. В интернет выкладывал кодированную прошивку и все. Новая версия вышла или какой баг обнаружился пользователь перешивает. А у AVR вон код AES выложен -- посложнее будет сломать, только вот ни к чему так заморачиваться.
Go to the top of the page
 
+Quote Post
navy2000
сообщение Jul 18 2008, 10:30
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874



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

DES или AES в AVR реализовать ваще не проблема, так уже делали.
Здесь проблема в том, что загрузчик тоже шьет заказчик. Читайте весь топик.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 18 2008, 12:28
Сообщение #44


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Step_ARM @ Jul 18 2008, 12:34) *
кодировал часть файла через XOR со сдвигом. В загрузчике на камне декодировал и записывал. Об это зубы обломать можно запросто. Хотя и ломается я думаю. Но времени уйму убъешь.
Ломается элементарно. Поверхностное описание методики взлома было, кажется, у Скляра в "Цифровой связи".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 18 2008, 13:18
Сообщение #45


Гуру
******

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



Цитата(Сергей Борщ @ Jul 18 2008, 14:28) *
...описание методики взлома было..

Да со минимальным знанием конкретики (таблица векторов, их контрольная сумма в ней, известное содержимое 0x1FC) такое и просто в лоб (а если еще и hiew/qview подобную утилитку вместо клочка бумаги smile.gif.... )ломается и без всяких правильных методик на 1-2-3.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 20:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016