|
Bootloader для LPC2364 |
|
|
|
 |
Ответов
|
Jul 17 2008, 13:08
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 17-07-06
Пользователь №: 18 874

|
Еще одна идея. Исходим из того, что серийники в целевых платах менять не могут. Програмируется устройство аппаратной железякой. Железяка кроме интерфейса с програмируемым процом имеет еще и свой интерфейс с серийником. Железяка читает серийник платы. Сравнивае, не работала ли она ранее с этим серийником. Вставляет его (или функцию от него) в нешифрованный загрузчик. Грузит его в проц и закрывает флешь от чтения. Загрузчик в проце запускается, читает серийник с платы и если он совпадает готова к прошивке целевой программы. Железяка шифрует программу и загружает ее в проц. загрузчик расшифровывает ее серийником (или функцией от серийника) и прошивает его во флешь, сам стирается и закрывает флешь от чтения. Целевая прога стартует, сравнивает серийник на плате и если он тот, то стартует. Железяка инкрементирует счетчик. Когда счетчик вышел, отправляйте железяку разработчикам или покупайте новую. Понимаю, дыра есть, но покритикуйте сложность взлома.
|
|
|
|
|
Jul 18 2008, 09:34
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870

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

Местный
  
Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484

|
Цитата(zltigo @ Jul 18 2008, 17:18)  Да со минимальным знанием конкретики (таблица векторов, их контрольная сумма в ней, известное содержимое 0x1FC) такое и просто в лоб (а если еще и hiew/qview подобную утилитку вместо клочка бумаги  .... )ломается и без всяких правильных методик на 1-2-3. Загрузчик-то нешифрованный  )) и, например, моя прога, которая шифрует обновление прошивки, загрузчик вообще откусывает, потому как он лишний в этом файле. Я шифрую с помощью tiny encryption algorithm, читал, что он довольно стойкий для одного абзаца кода.
|
|
|
|
|
Jul 19 2008, 05:52
|
Частый гость
 
Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870

|
Цитата(zltigo @ Jul 18 2008, 17:53)  Не принциапиально, приводился просто пример достаточно известных данных. Годятся и многие другие известные данные. Для того, что бы не заморачиваться чтением рассуждений на эту тему использую AES256  Возможно ты и прав, zltigo... Но ведь подобные алгоритмы занимают довольно много flash и медленновато работают на контроллерах(в нашем случае, вроде, некритично). Ты говоришь, что XOR со сдвигом быстро ломается? Разговоры , типа "ломается на 1-2-3"--лишь разговоры. Может попробуешь? Вариант 1 Исходные 4 байта 61A0DE88 Конечные 4 байта C0302FD8 Вариант 2 Исходные 4 байта FF5BA8C6 Конечные 4 байта 1AE5DE55 Если еще надо спроси... Даже если тебе дать алгоритм, то на вычисление маски и смещения уйдет уйма времени. Если использовать кодирование по 8 байт еще дольше провозишься. Если конечно ты не везунчик и при первом же случайном выборе не попадешь в точку:-))) Цитата(Сергей Борщ @ Jul 18 2008, 16:28)  Ломается элементарно. Поверхностное описание методики взлома было, кажется, у Скляра в "Цифровой связи". Все ломается. Только сколько времени и сил уйдет? См. ниже. Цитата(navy2000 @ Jul 18 2008, 14:30)  DES или AES в AVR реализовать ваще не проблема, так уже делали. Здесь проблема в том, что загрузчик тоже шьет заказчик. Читайте весь топик. Sorry... Это получается типа картриджа для сотовых телефонов? Цитата(zltigo @ Jul 16 2008, 12:02)  Сложность программ как-то коррелирует с серийностью их выпуска? Смотря какой коэффициент корреляции... Но ведь я пока не вижу ссылку ни на, хотя бы , одно? Цитата(navy2000 @ Jul 17 2008, 17:08)  Еще одна идея. Исходим из того, что серийники в целевых платах менять не могут. Програмируется устройство аппаратной железякой. Железяка кроме интерфейса с програмируемым процом имеет еще и свой интерфейс с серийником. Железяка читает серийник платы. Сравнивае, не работала ли она ранее с этим серийником. Вставляет его (или функцию от него) в нешифрованный загрузчик. Грузит его в проц и закрывает флешь от чтения. Загрузчик в проце запускается, читает серийник с платы и если он совпадает готова к прошивке целевой программы. Железяка шифрует программу и загружает ее в проц. загрузчик расшифровывает ее серийником (или функцией от серийника) и прошивает его во флешь, сам стирается и закрывает флешь от чтения. Целевая прога стартует, сравнивает серийник на плате и если он тот, то стартует. Железяка инкрементирует счетчик. Когда счетчик вышел, отправляйте железяку разработчикам или покупайте новую. Понимаю, дыра есть, но покритикуйте сложность взлома. Есть тут одна сложность. Кто держатель этой железяки? Например, это дилер по месту продажи. Так вот, дилеры, обычно, далекие от техники люди и ни за что не хотят свзываться с перешивкой изделий. Если обнаружился глюк , не выявленный в результате испытаний изделия, то его просто отправляют назад. В случае, если загрузчик уже зашит, любой пользователь может взять кодированный файл в инете и записать. Кстати не все фирмы закрывают свое ПО. Исходят из того, что массово повторить изделие довольно сложно. Цитата(navy2000 @ Jul 17 2008, 17:08)  Еще одна идея. Исходим из того, что серийники в целевых платах менять не могут. Програмируется устройство аппаратной железякой. Железяка кроме интерфейса с програмируемым процом имеет еще и свой интерфейс с серийником. Железяка читает серийник платы. Сравнивае, не работала ли она ранее с этим серийником. Вставляет его (или функцию от него) в нешифрованный загрузчик. Грузит его в проц и закрывает флешь от чтения. Загрузчик в проце запускается, читает серийник с платы и если он совпадает готова к прошивке целевой программы. Железяка шифрует программу и загружает ее в проц. загрузчик расшифровывает ее серийником (или функцией от серийника) и прошивает его во флешь, сам стирается и закрывает флешь от чтения. Целевая прога стартует, сравнивает серийник на плате и если он тот, то стартует. Железяка инкрементирует счетчик. Когда счетчик вышел, отправляйте железяку разработчикам или покупайте новую. Понимаю, дыра есть, но покритикуйте сложность взлома. Есть тут одна сложность. Кто держатель этой железяки? Например, это дилер по месту продажи. Так вот, дилеры, обычно, далекие от техники люди и ни за что не хотят свзываться с перешивкой изделий. Если обнаружился глюк , не выявленный в результате испытаний изделия, то его просто отправляют назад. В случае, если загрузчик уже зашит, любой пользователь может взять кодированный файл в инете и записать. Кстати не все фирмы закрывают свое ПО. Исходят из того, что массово повторить изделие довольно сложно.
|
|
|
|
|
Jul 19 2008, 08:04
|

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

|
Цитата(Step_ARM @ Jul 19 2008, 07:52)  Но ведь подобные алгоритмы занимают довольно много flash... "Много" это сколько в байтах? Куда,например девать оставшиеся байты в секторе боотлоадера? При этом поминаемый ранее TEA совершенно микроскопический, но имеет оцененный уровень криптостойкости. Да и тот-же AES256 занимает у меня в загрузчике порядка 900 байт (без особой опримизации под 32bit), при этом в bootsector-е еще почти 900 байт остаются для развития. Цитата Разговоры , типа "ломается на 1-2-3"--лишь разговоры. Отнюдь  всякое приходилось лично вытворять в 80x-90x годах - в то время, когда считающие, что просто XOR c легкими наворотами это круто, еще не вымерли. Цитата Смотря какой коэффициент корреляции... Но ведь я пока не вижу ссылку ни на, хотя бы , одно? Ссылок не будет и исходников не будет. А моя область применения LPC это в основном телекомуникационое оборудование. Например, поддержка протоколов: ♦ SS7 MTP3: ITU-T Q.704, Q.707, ETSI 300 008, 300 008-1, ANSI T1.111, Bellcore GR246, GR606, GR82 ♦ SS7 MTP2: ITU-T Q.703, ETSI 300 008, 300 008-1, ANSI T1.111, TTC JT-Q.703, ITU Q.703 Annex A 1996, China SS7 YD/T 1125 - 2001 ♦ SS7 MTP signaling performance ITU-T Q.706 ♦ M3UA: RFC 3332 ♦ M2PA: IETF ♦ SCTP: RFC 2960, RFC 3309 ♦ LAPB/D: Q.921, TR 41449, TR 62411 ♦ LAPF:Q.922 ♦ LAPV5 ♦ X.25: CCITT Гуглом найдете, что это такое
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Step_ARM Bootloader для LPC2364 Jul 11 2008, 09:25 meister Цитата(Step_ARM @ Jul 11 2008, 13:25) Доб... Jul 11 2008, 10:32 Step_ARM 1. NXP в свое время закрывала загрузчик и на RD2..... Jul 12 2008, 08:32 zltigo Цитата(Step_ARM @ Jul 12 2008, 10:32) 3. ... Jul 12 2008, 09:26 HARMHARM Цитата(Step_ARM @ Jul 11 2008, 12:25) ...... Jul 12 2008, 17:52 zltigo Цитата(HARMHARM @ Jul 12 2008, 19:52) Зам... Jul 12 2008, 17:57  KRS Цитата(zltigo @ Jul 12 2008, 21:57) Раньш... Jul 12 2008, 18:14   zltigo Цитата(KRS @ Jul 12 2008, 20:14) А что за... Jul 12 2008, 18:23 navy2000 В ту же тему. Есть ли возможность защитить изделие... Jul 13 2008, 10:43 zltigo Цитата(navy2000 @ Jul 13 2008, 12:43) Ест... Jul 13 2008, 11:03  navy2000 Цитата(zltigo @ Jul 13 2008, 18:03) В опи... Jul 14 2008, 13:31   zltigo Цитата(navy2000 @ Jul 14 2008, 15:31) Я з... Jul 14 2008, 15:24    navy2000 Цитата(zltigo @ Jul 14 2008, 22:24) Я каж... Jul 16 2008, 02:43     meister Цитата(navy2000 @ Jul 16 2008, 06:43) хот... Jul 16 2008, 05:29      MrYuran Цитата(meister @ Jul 16 2008, 08:29) Тогд... Jul 16 2008, 06:53       navy2000 Цитата(MrYuran @ Jul 16 2008, 13:53) Кста... Jul 16 2008, 12:44        zltigo Цитата(navy2000 @ Jul 16 2008, 14:44) Нас... Jul 16 2008, 13:11         navy2000 Цитата(zltigo @ Jul 16 2008, 20:11) Легко... Jul 16 2008, 13:37          zltigo Цитата(navy2000 @ Jul 16 2008, 15:37) Или... Jul 16 2008, 14:07     zltigo Цитата(navy2000 @ Jul 16 2008, 04:43) Вот... Jul 16 2008, 08:02 Step_ARM Цитата(zltigo @ Jul 12 2008, 13:26) Это В... Jul 14 2008, 04:45 meister Цитата(Step_ARM @ Jul 14 2008, 08:45) Упо... Jul 14 2008, 05:38  Step_ARM Цитата(meister @ Jul 14 2008, 09:38) Вы х... Jul 14 2008, 07:31   meister Цитата(Step_ARM @ Jul 14 2008, 11:31) 8kB... Jul 14 2008, 11:25 zltigo Цитата(Step_ARM @ Jul 14 2008, 06:45) Кто... Jul 14 2008, 07:55  Step_ARM Цитата(zltigo @ Jul 14 2008, 11:55) Кто В... Jul 14 2008, 18:11   zltigo Цитата(Step_ARM @ Jul 14 2008, 20:11) 1. ... Jul 14 2008, 18:28    Step_ARM Когда кто-то чем-то не владеет, то сразу начинает ... Jul 15 2008, 07:51     zltigo Цитата(Step_ARM @ Jul 15 2008, 09:51) Вам... Jul 15 2008, 10:11 shahr Цитата(Step_ARM @ Jul 14 2008, 07:45) Вы ... Jul 15 2008, 12:31  Step_ARM Цитата(shahr @ Jul 15 2008, 16:31) Арифме... Jul 15 2008, 19:09   zltigo Цитата(Step_ARM @ Jul 15 2008, 21:09) А н... Jul 15 2008, 20:19    Step_ARM Цитата(zltigo @ Jul 16 2008, 00:19) Угу..... Jul 16 2008, 06:40     meister Цитата(Step_ARM @ Jul 16 2008, 10:40) в д... Jul 16 2008, 07:12      Step_ARM Цитата(meister @ Jul 16 2008, 11:12) UM10... Jul 16 2008, 08:06       shahr Цитата(Step_ARM @ Jul 16 2008, 11:06) Это... Jul 21 2008, 08:43 АДИКМ я Вам больше скажу, lpc2364/66/68 - это один и тот... Jul 15 2008, 20:46 navy2000 Конечно, загрузчики можно шить у себя, но блин как... Jul 17 2008, 06:00 MrYuran Цитата(navy2000 @ Jul 17 2008, 09:00) Поэ... Jul 17 2008, 06:14  zltigo Цитата(MrYuran @ Jul 17 2008, 08:14) Имее... Jul 17 2008, 07:06 zltigo Цитата(navy2000 @ Jul 17 2008, 15:08) Еще... Jul 17 2008, 13:52  navy2000 Цитата(Step_ARM @ Jul 18 2008, 16:34) Я в... Jul 18 2008, 10:30        Step_ARM Цитата(zltigo @ Jul 19 2008, 12:04) Отнюд... Jul 19 2008, 19:20        HARMHARM Цитата(zltigo @ Jul 19 2008, 11:04) ...
П... Jul 25 2008, 07:50         zltigo Цитата(HARMHARM @ Jul 25 2008, 09:50) Зад... Jul 25 2008, 08:07 zltigo Moderator:
Часть ветки перенесена в оффтопик.
http... Jul 21 2008, 17:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|