PDA

Просмотр полной версии : Нужна информация о защите прошивок ВВ5


sniper
12.02.2007, 20:55
Требуется подменить несколько байт в CMT части MCU файла 6630. Меняю, прошиваю и телефон умирает наглухо. Он умирает, даже если поменять 1 байт в области данных, которые явно не нужны для включения. Похоже, где-то есть контрольная сумма, которую надо пересчитать.... Кто что знает об этом?

tevel
12.02.2007, 21:00
забудь. мцу подписано ключом. ничего не изменишь. а для интереса, что именно меняете?

sniper
12.02.2007, 21:46
А так ли страшен этот ключ? Защищен огромный объем данных, значит алгоритм должен быть очень быстрым. А такие алгоритмы обычно простые и легко ломаются. Только знать бы, где искать этот ключ...
Для чего все делается, пока сказать не могу, ржать будут.

PANUA
12.02.2007, 21:50
Только знать бы, где искать этот ключ...
В БутРоме покопайся, там он.

Vitja2002
12.02.2007, 21:59
В БутРоме покопайся, там он.

Кстати тама не только ключики есть, но и много полезной фигни))))
ЗЫ.Да и для разлока неплохо б покопатся в ПМ (308) :shy2:

tevel
13.02.2007, 11:51
так, небольшие выкладки...
во первых, чисто как инфа, 308 блок пма в 6680 щас смотрю является виртуальным, типа 208 в дкт4.
насчёт ключа, да, просчёт идёт не очень быстро, почти секунду:) ключ aes если верить деджану.

Lider
13.02.2007, 16:31
tevel, AES ли? Это же симметричный алгоритм.
Мне кажется там что-то из несимметрии... RSA или ECC...

sniper
13.02.2007, 17:30
Что-то я не очень верю Деджану... Ключ должен храниться где-то в прошивке, что в сочетании с симметричным алгоритмом есть криптографический идиотизм. Может AES и используется для чего-то в 308-м блоке, но только не для проверки подлинности прошивки. И если там только AES, объясните мне, что такое Nokia Private Key?
Я скорее поверю, что для защиты прошивки используется какой-нибудь хеш.
По поводу 308-го блока... Весь его я не ковырял, но ковырял ту часть, которая отвечает за симлок. Похоже, что там 2 разных алгоритма. Первый для шифрования данных. Странный блочный алгоритм, непохожий ни на один из известных мне. Второй для шифрования контрольной суммы. Точно асимметричный, но не RSA, т.к. RSA с такой длиной ключа сломает любой пионер минут за 10.

Tevel, насчет виртуальности 308-го блока не совсем понял

Lider
13.02.2007, 18:57
Hash - это слишком сложно, а вот ECC - в самый раз.
Он более быстр и стоек, нежели RSA. Но то что там несиммеричный криптоалгоритм, мне кажется, сомнений нет.....
За то, что применен ECC говорит еще и тот факт, что именно этот алгоритм сертифицирован для электронной цифровой подписи. Врядли есть смысл реализовывать много разной математики, если можно убить одним выстрелом двух зайцев.... ИМХО.

А рисунок - это так, для красоты....

Здесь был вложен файл: arch.JPG (37.7 Кб), но к сожалению был утерян. Если он у Вас есть, свяжитесь с администрацией для его восстановления. Спасибо.

tevel
14.02.2007, 09:06
видно, плохо обьясняю:) ессно прошивка подписана хашем, теоретически это sha1, сам хаш дополнен непонятными данными и криптован аес. это не мои слова, но я склонен им верить. далее, все криптопроцедуры производятся не в прошивке, а в sequre boot rom, куда мы доступа без r&d сертификата с включенным битом secure rom access не имеем

tevel
14.02.2007, 09:08
зы. кстати в дкт4 и т.д. защита прошивки реализвона также, хаш который потом криптуется. паранойя у нокии:)

Oblom76
14.02.2007, 21:20
Не параноия а стандартная система цифровой подписи.

shurass
14.02.2007, 23:16
Tevel, насчет виртуальности 308-го блока не совсем понялЭто значит что 308 блок на самом деле копируется в ПМ в момент включения телефона а лежит во флеши по другомму адресу... как и в дст4.

sniper
14.02.2007, 23:56
Это значит что 308 блок на самом деле копируется в ПМ в момент включения телефона а лежит во флеши по другомму адресу... как и в дст4.
Я позволю себе не согласиться. В момент включения телефона проверяется наличие 308-го блока и его корректность.
Если его нет, он восстанавливается на основе дефолтных данных, хранящихся в другом месте, я даже знаю в каком. При втором включении получаем полностью рабочий телефон, если не считать Closed FFFFF:jok:
Если в нем есть ошибки, он убивается до состояния вечного контакт сервиса.

Вообще сравнивать 308-й блок ВВ5 и 208-й DCT4 не совсем корректно, 120-й больше подходит.

neoalex
05.03.2007, 00:51
Я позволю себе не согласиться. В момент включения телефона проверяется наличие 308-го блока и его корректность.
Если его нет, он восстанавливается на основе дефолтных данных, хранящихся в другом месте, я даже знаю в каком. При втором включении получаем полностью рабочий телефон, если не считать Closed FFFFF:jok:
Если в нем есть ошибки, он убивается до состояния вечного контакт сервиса.

Вообще сравнивать 308-й блок ВВ5 и 208-й DCT4 не совсем корректно, 120-й больше подходит.

Если в первом субблоке есть ошибки, то он как раз и восстанавливается рапом...
И криптуется он все же 16 байтным AES...
48 kB secure ROM, 16 kB of secure RAM ...это в DSP
плюс бутлоадер..
Hardware acceleration for security standards and random number generator
Основной проц рапа MCU и DSP и выполняют проверку 308 поля..
Собственно даун на этом и построен...
Каждый ТА имеет уникальный сертификат NPC
NPC содержит в себе IMEI, Public id, и сигнатюру в 308 - о которой и говорил Дежан.
Контрольная сумма сигнатюры кодируется Private key...
Это у Nokia называется - усиленная аппаратная безопасность и безопасная среда хранения =)))
Secure RAM для проверки выполняемых операций и хранения данных
Secure ROM для авторизации приложений
На счет секунды правильно :jok: даун не прошел бы, если бы за это время рап успел бы проверить соответствие сигнатюры....

А по поводу недоверия Дежану... хмм По дауну инфу он слил на халяву... в неделю и Раскаль и GT залепили по кнопочке в свою софтину..
Sniper, почему ключ хранится в прошивке??? это хардварная защита - Public key infrastructure with secure on-chip keys (e-fuse)
По аналогии с Siemens =)))) Влить то в тело можно что угодно. Только при включении и активизации MCU и ROM ( т.е CMT ) контрольная сумма проверится Nokia private key.

sniper
10.03.2007, 20:50
Ну и загрузили вы меня, господа...:kos: Чуть не поверил. Все это очень интересно, но не имеет отношения к защите прошивки от редактирования. Защита найдена и в настоящее время ломается. Кое-что в небольших пределах я уже могу изменить. Никакой страшной криптографии там нет.
А по поводу недоверия Дежану... хмм По дауну инфу он слил на халяву... в неделю и Раскаль и GT залепили по кнопочке в свою софтину..
Я тоже могу сливать инфу, которой цена 5 копеек. С научно-исследовательской точки зрения инфа интересная, но я не понимаю, зачем на практике понижать версию. Разве что кому-то свежие версии лень качать...

neoalex
11.03.2007, 01:27
Ну и загрузили вы меня, господа...:kos: Чуть не поверил. Все это очень интересно, но не имеет отношения к защите прошивки от редактирования. Защита найдена и в настоящее время ломается. Кое-что в небольших пределах я уже могу изменить. Никакой страшной криптографии там нет.

Я тоже могу сливать инфу, которой цена 5 копеек. С научно-исследовательской точки зрения инфа интересная, но я не понимаю, зачем на практике понижать версию. Разве что кому-то свежие версии лень качать...

По поводу 5 копеек - погорячился конечно...
И интересна она практически, а не теоретически...
Почитай топики повнимательнее и на разных форумах...
Хотя бы, как момент, возврат Imei на некоторых ТА...
Для руссификации аппаратов APAC к примеру...
И что то сомнения меня берут - что все так легко и просто :wink:

особенно после вашей фразы
И если там только AES, объясните мне, что такое Nokia Private Key?

sniper
11.03.2007, 01:48
Насчет русификации АРАС согласен. Только не видел я пока таких телефонов. Стоит ли из-за единичных случаев так напрягаться?
А IMEI куда проще не сносить, чем потом думать, как его вернуть.

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

ZArchi
11.03.2007, 01:53
Такие вещи ломать тяжело, но в принципе задача решается. ну хотя бы 1 пример даже на самой примитвной дкт4....и поляна с меня.....

neoalex
11.03.2007, 01:59
Насчет русификации АРАС согласен. Только не видел я пока таких телефонов. Стоит ли из-за единичных случаев так напрягаться?
А IMEI куда проще не сносить, чем потом думать, как его вернуть.

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

Ну это вы не видели =)))
А вот к примеру Приморский край их лицезреет... да и не в этом суть...
А на счет самопального алгоритма - это сильно :appl:
Нокия вечно какую нибудь х***ю выдумывает :jok:

NFader
11.03.2007, 10:47
Ну это вы не видели =)))
А вот к примеру Приморский край их лицезреет... да и не в этом суть...
А на счет самопального алгоритма - это сильно :appl:
Нокия вечно какую нибудь х***ю выдумывает :jok:

Не, не очень-то они выдумывают, гораздо чаще готовое чуть-чуть переделывают, но в последнее время совсем обленились, только готовое берут :)

sniper
12.03.2007, 00:22
Все, защита сломана, могу поменять что угодно в CMT части. В APE вероятно тоже, пока не проверял. Насчет самопального алгоритма погорячился, просто алгоритм настолько редко применяется, что я его сразу не узнал.
ну хотя бы 1 пример даже на самой примитвной дкт4....и поляна с меня.....
Поляна это хорошо, только с дкт4 я не разбирался. Мне кажется, там должно быть что-то другое...

tevel
12.03.2007, 01:28
то есть можем ожидать анлок бб5?:)

neoalex
12.03.2007, 11:39
то есть можем ожидать анлок бб5?:)

Ну раз меняет полностью CMT то все готово =)
А можно измененный MCU выложить?
Так сказать для полного впечатления.....

VIZER
12.03.2007, 12:01
если действительно удалось сломать защиту, то Фу мягко говоря не обосновано...

tevel
12.03.2007, 12:09
фу потому что есть обоснованные подозрения:)
нельзя глядя на результат работы алгоритма говорить что он какой то непонятный:)

VIZER
12.03.2007, 12:32
Саня, насчет подозрений не знаю, тебе виднее
просто человек производит только хорошее впечатление, давно знаю его по форумам

tevel
12.03.2007, 12:42
Да нет, ни в чём снайпера я не подозреваю. Завидую наверное, тут паришься с грёбаным фсигом уже куча времени и нифига:)

sniper
12.03.2007, 13:08
Господа, имейте терпение. Алгоритм был непонятным, пока не был сломан, теперь все понятно ежу. Выложить измененный MCU это значит выложить защиту на всеобщее обозрение. Пока у меня такого желания нет. Скоро будет закончен патч. Если все получится, выложу результат его работы.

tevel
12.03.2007, 13:44
ну почему же "Выложить измененный MCU это значит выложить защиту на всеобщее обозрение"? никто ж не умеет больше патчить. так что это будет просто доказательство того что вам действительно удалось обойти подписанность мцу. еслиб я выложил мцу от дкт4 с патчем и пересчитанным фсиг, ничего бы это никому не дало:)

barabaka
12.03.2007, 16:45
Что-то у меня складывается мнение, что все говорят, каждый о своём...
А на счет самопального алгоритма - это сильно :appl:
Нокия вечно какую нибудь х***ю выдумывает :jok:
Это не только сильно, но и дорого. Кроме нокии (я имею ввиду рынок мобильников) вроде никто больше не позволял себе лицензирование крипто-алгосов. (не путать со всякого рода перемешиванием)

tevel
12.03.2007, 18:54
сорри, а что значит "Зная, в общих чертах, принципы SEC-архитектуры у техаса, с большой уверенностью могу сказать что в бут-роме его нету"?
дкт4 тоже техас, ключи в бутром

dev_ICE
12.03.2007, 19:36
Комрады, а можно положить (если у кого есть и кто так сделал) IMEI и код разблокировки (который дает оператор и код самого оператора). Чтоб не сглазить, не буду звонить в холостую но есть мысли....

PANUA
12.03.2007, 19:40
Комрады, а можно положить (если у кого есть и кто так сделал) IMEI и код разблокировки (который дает оператор и код самого оператора). Чтоб не сглазить, не буду звонить в холостую но есть мысли....

10 000 хватит ?

http://forum.gsmhosting.com/vbb/showthread.php?p=1679143

vodafone uk portugal

Код оператора думаю уже сам найдеш :)

barabaka
12.03.2007, 20:08
сорри, а что значит "Зная, в общих чертах, принципы SEC-архитектуры у техаса, с большой уверенностью могу сказать что в бут-роме его нету"?
дкт4 тоже техас, ключи в бутром

Каюсь. Ситуация из разряда "смотрю в книгу вижу фигу."
Разумеется ключи на подпись прошивки и подгружаемых модулей должны быть рядом с бутом (являясь его частью) , который в бутроме. ->Ключи в бутроме.
А вот со структурой опознаваемой по AB0FBD96AF2AC271D26264AF xxxx xxxx похитрее будет. И мысли большей частью были адресованы на этот счет, за что прошу прощения. Есть ещё в теле места проверяемые именно на подпись и именно через крипто порт. Вот в голове каша и образовалась. Сигнатуры и там и тут, а методы разные. Сори

shurass
12.03.2007, 23:09
Комрады, а можно положить (если у кого есть и кто так сделал) IMEI и код разблокировки (который дает оператор и код самого оператора). Чтоб не сглазить, не буду звонить в холостую но есть мысли....

http://www.mobile-files.ru/forum/showpost.php?p=858569&postcount=22
http://www.mobile-files.ru/forum/showpost.php?p=861076&postcount=39

Gatin
29.03.2007, 11:23
вот они 10к кодов к водафону
http://www.mcrf.ru/files/index.php?dlid=840

sniper
07.04.2007, 09:11
К сожалению патч не получается. Телефон включается, но поскольку все сделано через ж@пу, получается неизлечимый контакт-сервис и IMEI 12345.... Поэтому давайте продолжим.
ессно прошивка подписана хашем, теоретически это sha1, сам хаш дополнен непонятными данными и криптован аес. это не мои слова, но я склонен им верить.
На самом деле это sha1, дополненный частично понятными данными и криптованный RSA-1024.


1st BOOT : C0,0C [Rm-1]
OMAP ID : 17100701
OMAP MODE : 00
OMAP PBID : 2DCF7EEC8E66B04B7F13B8EB32034717CFCE8C3C
OMAP HASH : 2C05369F57CC3C4CF9E783E83D9B512B
OMAP ROID : AB5E4ADB27A06946
RAPx ID : 000000010000022600010006000C192101002100
EM 1 ID : 00000232
EM 2 ID : 00000341
RAPx PBID : 05B0000CDC8E4F572672A500DC078DC0716236E6
RAPx MODE : 00
RAPx HASH : E9EFF4BFAA5393217CA6B17755FC3E14
RAPx ROID : F28A211FAC901AEE
CMT 1st Boot OK
CMT 2nd Bt: RAP3Gv2_2nd.fg, Ver: 1.16.2
CMT FLID0 : 00EC22FA-00000011, Sam K8S6415ETA
CMT FLCNT : 000000000000000000000000000000000000
CMT 2nd Boot OK
CMT ALGO : RAP3Gv3_algo_fps8.fg, Ver: 1.12.5
CMT Alg Boot OK
Using Internal VPP
Erase Area: CMT 0x00000000-005FFFFF
Erase Area: CMT 0x00600000-006FFFFF
Erase Area: CMT 0x00700000-007FFFFF
CMT FLASH ERASE OK, Time: 0:49
CMT FLASH WRITE OK, Time: 0:32
1st BOOT : C0,0C [Rm-1]
OMAP ID : 17100701
OMAP MODE : 00
OMAP PBID : 2DCF7EEC8E66B04B7F13B8EB32034717CFCE8C3C
OMAP HASH : 2C05369F57CC3C4CF9E783E83D9B512B
OMAP ROID : AB5E4ADB27A06946
RAPx ID : 000000010000022600010006000C192101002100
EM 1 ID : 00000232
EM 2 ID : 00000341
RAPx PBID : 05B0000CDC8E4F572672A500DC078DC0716236E6
RAPx MODE : 00
RAPx HASH : E9EFF4BFAA5393217CA6B17755FC3E14
RAPx ROID : F28A211FAC901AEE
CMT 1st Boot OK
CMT 2nd Bt: RAP3Gv2_2nd.fg, Ver: 1.16.2
CMT FLID0 : 00EC22FA-00000011, Sam K8S6415ETA
CMT FLCNT : 000000000000000000000000000000000000
CMT 2nd Boot OK
CMT ALGO : RAP3Gv3_algo_fps8.fg, Ver: 1.12.5
CMT Alg Boot OK
Using Internal VPP
CMT FLASH ERASE OK, Time: 0:00
CMT FLASH WRITE OK, Time: 0:02
Flashing Completed, Rebooting Mobile

Мне очень интересно, что такое
RAPx HASH : E9EFF4BFAA5393217CA6B17755FC3E14

Это хеш чего? И как он вычисляется? Судя по длине, это должен быть MD5, но насколько мне известно, MD5 не используется в ВВ5. Какие будут мнения?

Brock_Phoenix
08.04.2007, 11:16
я одного не могу понять , что вы пытаетесь сломать ? MCU или хотите отбить у рапа желание прописывать дефолты ?

tevel
08.04.2007, 11:34
мд5 не 128 бит:)

sniper
08.04.2007, 12:43
я одного не могу понять , что вы пытаетесь сломать ? MCU или хотите отбить у рапа желание прописывать дефолты ?
Хочу изменить дефолты, которые прописывает рап и посмотреть, что из этого выйдет. Если я все правильно понял, он должен сам себя разлочить.:hah:



мд5 не 128 бит:)
А мне всегда казалось, что именно 128....

sniper
10.04.2007, 12:14
Отвечу сам себе.
RAPx HASH : E9EFF4BFAA5393217CA6B17755FC3E14
Это первые 16 байт хеша SHA1 одного из RSA ключей. МТ-бокс обзывает этот ключ ROOT_KEY. Вот только нафиг понадобилось его хешировать, не пойму. Если это защита от подмены ключа, то как-то она слабовата... А больше никакого разумного объяснения придумать не могу.

barabaka
11.04.2007, 14:48
Это просто как-бы определитель, а какую подпись должен иметь лоадер или любое другое подписанное образование. Т.е. если он "жигули", то мы используем мотор от жигулей, а не от тойоты. Что такое мотор, какие функции он выполняет и какой он имеет шаблон крепления в названии ничего не сказано. Вообще эта штука называется Manufacturer Public Key Identifier.

FractalizeR
12.04.2007, 01:18
Хочу изменить дефолты, которые прописывает рап и посмотреть, что из этого выйдет. Если я все правильно понял, он должен сам себя разлочить.:hah:
А мне всегда казалось, что именно 128....

MD5 именно 128 бит.

Это первые 16 байт хеша SHA1 одного из RSA ключей
Подобная технология применяется при формировании строгих имен сборок в Microsoft .NET и называется "маркер открытого ключа" ("Public key token"). Предназначена фактически для упрощения идентификации и сравнения RSA ключей. То есть, скажем, есть у нас большой список RSA ключей и нужно как можно быстрее определить, входит ли наш ключ в этот список. В этом случае можно хранить не сами ключи, а их маркеры и их же сравнивать.

sniper
13.04.2007, 23:32
Осталась одна проблема, которую я пока решить не могу. Есть RSA-подпись, которой подписано MCU. Есть 3 ключа, одним из которых подписано MCU. Каким конкретно, определить не могу, да и хрен с ним, не трудно и перебрать. И есть какая-то функция, которой подписанные данные сворачиваются в 128 байт. Вот эту функцию я пока разгадать не могу. А без нее там делать нечего.
Я вижу 2 варианта:
1. Разработчики обкурились какой-то дряни и давай выдумывать какие-то самопальные хеш-алгоритмы.
2. Вся безопасность этой системы основана на том, что никто не знает вышеупомянутой функции. Ибо пока я не вижу, что могло бы мне помешать подменить ключи.
Вся работа встала, пока не будет найдена эта хеш-функция, если ее вообще когда-нибудь удастся найти...

NFader
14.04.2007, 08:34
Осталась одна проблема, которую я пока решить не могу. Есть RSA-подпись, которой подписано MCU. Есть 3 ключа, одним из которых подписано MCU. Каким конкретно, определить не могу, да и хрен с ним, не трудно и перебрать. И есть какая-то функция, которой подписанные данные сворачиваются в 128 байт. Вот эту функцию я пока разгадать не могу. А без нее там делать нечего.
Я вижу 2 варианта:
1. Разработчики обкурились какой-то дряни и давай выдумывать какие-то самопальные хеш-алгоритмы.
2. Вся безопасность этой системы основана на том, что никто не знает вышеупомянутой функции. Ибо пока я не вижу, что могло бы мне помешать подменить ключи.
Вся работа встала, пока не будет найдена эта хеш-функция, если ее вообще когда-нибудь удастся найти...
Вы в курсе, что RSA несимметричный алгоритм??? Какие ключи Вы собрались перебирать???

balu_dark
14.04.2007, 11:13
Вы в курсе, что RSA несимметричный алгоритм??? Какие ключи Вы собрались перебирать???

а он наверно собрался приват експоненту подбирать брутфорсом :)
http://theory.stanford.edu/~dabo/papers/RSA-survey.pdf
http://www.rsa.com/rsalabs/node.asp?id=2092
http://www.rsa.com/rsalabs/node.asp?id=2093
голые факты в деньгах!

barabaka
14.04.2007, 11:15
1. Разработчики обкурились какой-то дряни и давай выдумывать какие-то самопальные хеш-алгоритмы.

Тут есть одна принципиальная вещь. Хеш-алгоритмы (рассматриваем как подкласс крипто-алгоритмов), или другие крипто-алгоритмы они могут и не изобретать. А вот перемешивание данных относительно самих себя- это им никто не запрещает делать. Этого даже лицензировать не надо. Сколько я наблюдал защит от телефонов, - все они основаны на использовании "чистого" алгоритма + перемешивание и перетосовка входных и/или выходных данных. Зачастую даже обходятся без "чистого".
И есть какая-то функция, которой подписанные данные сворачиваются в 128 байт.
"ох и не легкая эта работа - из болота тащить бегемота..."
Вообще, если не "зацикливаться" на nokia и внимательно посмотреть на примере других "производителей", то цифра 80h приобретёт чуть ли не эпическое значение для подписей. Посмотри подпись SE-шных баб - сертификаты по 0x80 байт. ОДМ алкатели и моторолы - 0x80 байт. и т.д. Кроме того есть примеры среди этого техасовского выводка, где boot расположен не в core, а "эмулирован" в прошивке. Вот где можно "подсмотреть" и приоткрыть тайну 0х80-ти байт. :-)

Но проблема не в идентификации алгосов. Рано или позно упрёшься в изюм (знаете, как говорят - "изюминки ей не хватает"). И вот какие-то 40 или 56 бит изюма так переsрут тебе весь твой труд, что станет грустно и обидно за бесцельно прожитые солнечные дни :-)

sniper
14.04.2007, 12:40
Вы в курсе, что RSA несимметричный алгоритм??? Какие ключи Вы собрались перебирать???
Всего в прошивке найдено 9 открытых RSA-ключей. 6 из них не имеют отношения к подписи MCU. Стало быть, остается 3. Вот их я и собрался перебирать.

а он наверно собрался приват експоненту подбирать брутфорсом :)
Шутниг:jok: А кто мешает сгенерить другую пару ключей и подменить открытый ключ вместе с подписью? Должна быть какая-то защита от подмены ключа, но я ее там в упор не вижу.

Но проблема не в идентификации алгосов. Рано или позно упрёшься в изюм
Может и так. Но мне непонятен один факт. Просто так никто ничего делать не будет. Если защита сделана правильно, нет никакой нужды перемешивать данные или другими способами затруднять идентификацию алгоритмов. Почему бы просто не взять SHA1(тем более что он там уже использовался) и зашифровать RSA? По правилам криптографии секретными должны быть только ключи, но не алгоритмы. Если безопасность хоть немного зависит от того, знает взломщик алгоритм или нет - плохая защита.
Там точно есть какая-то уязвимость, будем искать...

Alex999
14.04.2007, 14:03
Осталась одна проблема, которую я пока решить не могу. Есть RSA-подпись, которой подписано MCU.
Наверное подпись MCU зашифрована RSA алгоритмом, так как RSA не хеш-функция, а алгоритм шифрования - блок на вход-такой же блок на выход.
То есть RAP для определения целостности данных, поступает следующим образом: вычисляет подпись MCU(кстати какого она размера ?), дешифрирует подпись(та что идет с MCU) открытым ключом(для дешифровки подписи), и сравнивает, если сравнение прошло успешно, то проверяет хеш подписи(для завершения авторизации MCU).
Можно сразу сделать вывод что закрытый ключ(каким шифруется подпись MCU) не хранится даже в RAP.
И есть пара вопросов Sniper-ру:
1.Одинаковы ли ключи в разных моделях ББ5( ну или в разных версиях RAP).
2. Отличаются ли ключи в разных прошивках одной модели ?
3. Если я прав,и подпись MCU зашифрована RSA алгоритмом, каков алгоритм вычисления подписи(или контрольной суммы) MCU ?
4. Если верен п.3 и известен алгоритм вычисления подписи, не пробовал ли ты самопально написать программу по RSA дешифровке подписи что бы точно определить нужный ключ ?
И просьба: Если можешь выложи в нех отдельно части с подписью, хеш, и тремя ключами.

sniper
14.04.2007, 15:22
И есть пара вопросов Sniper-ру:
1.Одинаковы ли ключи в разных моделях ББ5( ну или в разных версиях RAP).
2. Отличаются ли ключи в разных прошивках одной модели ?
3. Если я прав,и подпись MCU зашифрована RSA алгоритмом, каков алгоритм вычисления подписи(или контрольной суммы) MCU ?
1. В 6630, 6680, 6681, N70 одинаковые. В N91(тот же RAP) другие. Они разные даже в N91 4Gb и N91 8Gb. То есть от версии RAP ключи не зависят.
2. Пока отличий не нашел. Но это не значит, что их не может быть.
3. Если бы я это знал, задача уже была бы решена.

Попробую объяснить все поточнее.
X - подписанная часть прошивки. Теоретически может быть любой длины.
F(X) - неизвестная пока хеш-функция или нечто подобное. Сворачивает Х в нечто длиной не больше 128 байт.
Y - подпись длиной 128 байт.
E, N - открытый ключ RSA-1024. Есть 3 возможных варианта E и N.
Если выполняется равенство F(X)=Y**E mod N, подпись верна.

При расшифровке Y любым из 3-х ключей получается 128 байт. Поэтому имеем 3 варианта.
1. F(X) имеет длину 128 байт. (наиболее вероятно)
2. F(X) имеет меньшую длину, но перед проверкой дополняется еще какими-то данными до 128 байт.
3. В проверке участвует не весь результат расшифровки Y, а какая-то его часть.

tevel
14.04.2007, 16:33
предположим что F(x) банальный sha1 6 раз. 8 оставшихся байт просто типа битового образа предыдущих 120 байт. и что это даёт? знание хэшфункции не даёт ничего. я могу тебе сказать все алго что юзаются в дкт4(ну почти все) и ничего не изменится

Alex999
14.04.2007, 19:16
предположим что F(x) банальный sha1 6 раз. 8 оставшихся байт просто типа битового образа предыдущих 120 байт. и что это даёт? знание хэш функции не даёт ничего. я могу тебе сказать все алго что юзаются в дкт4(ну почти все) и ничего не изменится

Хочу ответить tevel-у: Если F(х) известная функция, то проходит атака sniper-а - меняем дефолтные значения в мцу, вычисляем простую функцию F(x) от мцу (банальный sha1 6 раз), подменяем Е и N своими значениями(вычисляем свои пары P,Q и E,N), вычисляем Y=F(x)**P mod Q (P и Q - известны) который тоже подменяем - и все МЦУ подписано, и наверное RAP сам себя разлочит ;-).

Предлагаю sniper-у, вычислить свои пары P,Q и E,N такой же длины. Поочередно менять в 3-х неизвестных ключах Е,N и соответственно перевычислять Y и посмотреть какой ключ отвечает за подпись МЦУ.
Это если ключи не входят в зону защищеную подписью.

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

tevel
15.04.2007, 12:37
мля... может я чего то не понимаю. коллизия полная у ша1 это 2 в 80 степени. да, для криптографии это маленькое значение:) но никак не для мцу небольшого относительно размера.

Alex999
15.04.2007, 15:08
tevel-у: Попрубую почетче объяснить - там где пишут софт вычисляется подпись мцу F(x) (неизветная хеш функция), которая затем с помошью RSA алгоритма и секретного ключа(P и Q) зашифровуется Y=F(x)**P mod Q и затем помещается в файл мцу, как и открытый ключ E и N. после вычисления RAP F(x), он по Y вычисляет F(x) и этим проверяет целостность данных в мцу. Функция sha1 имеет известный алгоритм вычисления и можно вычислить ее от модифицированого мцу. Если F(x) представим что известна, то изменив мцу, вычислив от него F(x)(свою), и создав совершенно другую пару ключей секретный(P и Q) для шифровки F(x) и открытый(E и N) для дешифровки F(x), можно зашифровав хеш F(x)(от измененного мцу) своим ключом (P и Q) Y=F(x)**P mod Q, и подменив Y-зашифрованную подпись и открытый ключ E,N - получаем проход процедуры проверки целосности данных мцу RAP-ом. Далее меняем в старой версии прошивки дефолтные значения сим-локов на разлоченный вариант + подменяем зашифрованную подпись Y и открытый ключ для ее дешифровки E и N на свои значения. Вносим изменения в 308 блок по Деджану и прошиваем измененным мцу. Вот дальше интересна реакция RAP который будет востанавливать 308 по дефолту. Как видно никакого брутфорса и поиска коллизий не нужно в этом варианте. Интересно мнение инженеров по этому вопросу, вроде все логично и можно проверить, конечно если не жалко потерять аппарат.

sniper-у: Если не трудно, посмотри изпользуется ли перестановка данных после дешифровки(возведения в степень по модулю) зашифрованной подписи. Это интересно тем что если перестановка не используется и открытый ключ не входит в подписанную зону, то все можно проверить уже сейчас. F(х) вычислить по Y, перешифровать это же F(x) уже в свой Y1 и подменить каждый из 3-й пар ключей на свой и посмотреть на каком ключе тел. будет нормально работать. А если ты посмотрел алгоритм то наверное можешь посмотреть и перестановки данных после шифрования для повышения стойкости к брутфорсу.
Хотелось бы получить ответ на 2-а вопроса, раз ты зашел так далеко:
1. Входят ли открытые ключи которые ты собрался менять в зону мцу защищенную подписью ?
2. Если ть ли перестановки данных(байтов) после возведения в степень по модулю ?
3. выложи тут ключи в нех-е хочется посмотреть на их вид.

tevel
15.04.2007, 15:36
хорошо, напишу то как я это вижу.
первое мцу подписано хашем. на выходе получаем данные которые подписываем рса-1024. не имея приватного ключа посчитать любой ключ рса мы не можем. изменить данные так, чтобы после хаша подпись совпадала с оригинальной невозможно. так что я просто не пойму, как ктото собирается это обойти

tevel
15.04.2007, 16:05
аааа.... понял.. 2 Alex999/ Дык открытые ключи не лежат в мцу, они в бутроме. и изменить их никак нельзя

Alex999
15.04.2007, 17:25
аааа.... понял.. 2 Alex999/ Дык открытые ключи не лежат в мцу, они в бутроме. и изменить их никак нельзя

Всего в прошивке найдено 9 открытых RSA-ключей. 6 из них не имеют отношения к подписи MCU. Стало быть, остается 3. Вот их я и собрался перебирать.
Вот sniper писал что в прошивке они лежат, ну тогда даже не знаю ;-(.
Может и в прошивке и в бутроме ? или скорей всего в бут роме их хеш sha ?(первые его 16 байт) то что МТ называет ROOT_key. Тогда надо искать коллизии среди сгенереных ключей. Ждем ответа snipera.

sniper
15.04.2007, 17:35
Дык открытые ключи не лежат в мцу, они в бутроме. и изменить их никак нельзя
Это не есть факт. tevel, ты сам видел ключи в бутроме или это тебе кто-то сказал?
Почему-то не вижу здесь, как выложить файл, поэтому выкладываю на вебфайле. http://webfile.ru/1375884
Если ключи в бутроме, то что это?



1. Входят ли открытые ключи которые ты собрался менять в зону мцу защищенную подписью ?
2. Если ть ли перестановки данных(байтов) после возведения в степень по модулю ?
3. выложи тут ключи в нех-е хочется посмотреть на их вид.
1. Входят, но в другую зону. Всего в прошивке несколько защищенных зон. Данные, которые надо поменять, в одной зоне, ключи в другой.
2. Х\З.
3. Жми ссылку. Там 4 ключа, первый не используется для подписи интересующей нас зоны. Это тот самый ROOT_KEY, о котором я писал выше. Хотя возможно используется для подписи чего-то еще, например той же зоны с ключами.

P.S. Да, хеш ключа ROOT_KEY(вернее часть хеша) хранится в бутроме и мне это не очень нравится. Но с этим потом будем разбираться, не все сразу.

tevel
15.04.2007, 17:42
потому что если ключи не в бутроме то получается бред-раз.
2- я знаю как организована защита в дкт4, и не думаю что в бб5 будет менее параноидально.
3- в 2020 проце именно в бутроме

tevel
15.04.2007, 18:09
Это не есть факт. tevel, ты сам видел ключи в бутроме или это тебе кто-то сказал?
Почему-то не вижу здесь, как выложить файл, поэтому выкладываю на вебфайле. http://webfile.ru/1375884
Если ключи в бутроме, то что это?
.

это? набор данных, не более того. откуда такая уверенность что это ключи?

sniper
15.04.2007, 18:34
откуда такая уверенность что это ключи?
Например написанное английским по белому слово KEYS.
Читать ключи конечно надо наоборот. Например первый ключ:

0300000000004000BB52EE836D440F4BAFB6221A9CAABB1E41 85BC67BDCDC738E13CED75E38E39EC118A695A1280F0241EDE 40D348F18B52772CC81C653C23BAC437464DFD5923D1797A9B A2F28E6A948ECEB367411DB1F7ED62C4FD04086C8DA5BE19A3 C09098631579E05DFA5DC598BF4C81B37C49F8E398983710A5 70781610D4AF63034766C9

читается так E=0040000000000003
N=C966470363AFD410167870A510379898E3F8497CB3814CBF 98C55DFA5DE07915639890C0A319BEA58D6C0804FDC462EDF7 B11D4167B3CE8E946A8EF2A29B7A79D12359FD4D4637C4BA23 3C651CC82C77528BF148D340DE1E24F080125A698A11EC398E E375ED3CE138C7CDBD67BC85411EBBAA9C1A22B6AF4B0F446D 83EE52BB

Можно попробовать факторизовать N. Если после часа разложение не будет найдено, а винда начнет орать, что память кончается, есть большая вероятность, что это RSA-ключ.

И наконец SHA1(0300000000004000BB52EE836D440F4BAFB6221A9CAAB B1E4185BC67BDCDC738E13CED75E38E39EC118A695A1280F02 41EDE40D348F18B52772CC81C653C23BAC437464DFD5923D17 97A9BA2F28E6A948ECEB367411DB1F7ED62C4FD04086C8DA5B E19A3C09098631579E05DFA5DC598BF4C81B37C49F8E398983 710A570781610D4AF63034766C9)=E9EFF4BFAA5393217CA6B 17755FC3E1415658E9A, а это неопровержимо доказывает, что перед нами ROOT_KEY.

NFader
15.04.2007, 21:55
Например написанное английским по белому слово KEYS.
Читать ключи конечно надо наоборот. Например первый ключ:

0300000000004000BB52EE836D440F4BAFB6221A9CAABB1E41 85BC67BDCDC738E13CED75E38E39EC118A695A1280F0241EDE 40D348F18B52772CC81C653C23BAC437464DFD5923D1797A9B A2F28E6A948ECEB367411DB1F7ED62C4FD04086C8DA5BE19A3 C09098631579E05DFA5DC598BF4C81B37C49F8E398983710A5 70781610D4AF63034766C9

читается так E=0040000000000003
N=C966470363AFD410167870A510379898E3F8497CB3814CBF 98C55DFA5DE07915639890C0A319BEA58D6C0804FDC462EDF7 B11D4167B3CE8E946A8EF2A29B7A79D12359FD4D4637C4BA23 3C651CC82C77528BF148D340DE1E24F080125A698A11EC398E E375ED3CE138C7CDBD67BC85411EBBAA9C1A22B6AF4B0F446D 83EE52BB

Можно попробовать факторизовать N. Если после часа разложение не будет найдено, а винда начнет орать, что память кончается, есть большая вероятность, что это RSA-ключ.

И наконец SHA1(0300000000004000BB52EE836D440F4BAFB6221A9CAAB B1E4185BC67BDCDC738E13CED75E38E39EC118A695A1280F02 41EDE40D348F18B52772CC81C653C23BAC437464DFD5923D17 97A9BA2F28E6A948ECEB367411DB1F7ED62C4FD04086C8DA5B E19A3C09098631579E05DFA5DC598BF4C81B37C49F8E398983 710A570781610D4AF63034766C9)=E9EFF4BFAA5393217CA6B 17755FC3E1415658E9A, а это неопровержимо доказывает, что перед нами ROOT_KEY.

http://forum.gsmhosting.com/vbb/showpost.php?p=2230839&postcount=40
Стоит иногда оглядываться вокруг...


.....
And about certificates...
Nokia using RSA algorithm with 1024 bit modulo and decrypt public exponent = 3
message is signature filled with some fixed data from secure ROM to
create 1024 bit message.
Also signature from first key from "KEYS" block is tested in secure ROM and can
be read (rap3 hash)
Once you get secret exponent you can calculate appropriate certificates.
.....

FractalizeR
16.04.2007, 15:55
Наверное подпись MCU зашифрована RSA алгоритмом, так как RSA не хеш-функция, а алгоритм шифрования - блок на вход-такой же блок на выход.
Строго говоря, размер выходного блока у RSA не равен размеру входного.

мля... может я чего то не понимаю. коллизия полная у ша1 это 2 в 80 степени. да, для криптографии это маленькое значение но никак не для мцу небольшого относительно размера.
Достаточно 2 в 63.
http://en.wikipedia.org/wiki/SHA#Cryptanalysis_of_SHA-1
http://www.rsa.com/rsalabs/node.asp?id=2927

tevel-у: Попрубую почетче объяснить - там где пишут софт вычисляется подпись мцу F(x) (неизветная хеш функция), которая затем с помошью RSA алгоритма и секретного ключа(P и Q) зашифровуется Y=F(x)**P mod Q и затем помещается в файл мцу, как и открытый ключ E и N. после вычисления RAP F(x), он по Y вычисляет F(x) и этим проверяет целостность данных в мцу. Функция sha1 имеет известный алгоритм вычисления и можно вычислить ее от модифицированого мцу. Если F(x) представим что известна, то изменив мцу, вычислив от него F(x)(свою), и создав совершенно другую пару ключей секретный(P и Q) для шифровки F(x) и открытый(E и N) для дешифровки F(x), можно зашифровав хеш F(x)(от измененного мцу) своим ключом (P и Q) Y=F(x)**P mod Q, и подменив Y-зашифрованную подпись и открытый ключ E,N - получаем проход процедуры проверки целосности данных мцу RAP-ом. [...]. Как видно никакого брутфорса и поиска коллизий не нужно в этом варианте. Интересно мнение инженеров по этому вопросу, вроде все логично и можно проверить, конечно если не жалко потерять аппарат.
Если специалисты Nokia оставили хакеру возможность подменить открытый ключ, я бы назвал их просто неграмотными дилетантами. Думаю, не все так просто. Вполне возможно, что открытые ключи хранятся в MCU, но скорее всего заменить их будет невозможно, например, потому, что перед их использованием будет вычислен их хэш и сравнен с хэшэм, хранящимся в недоступном для хакера месте. Целиком ключ хранить в RAP или еще где, возможно, не стали из экономии памяти, если уж Nokia открытые ключи в прошивку засунула.

Можно попробовать факторизовать N. Если после часа разложение не будет найдено, а винда начнет орать, что память кончается, есть большая вероятность, что это RSA-ключ.
Можно тут Maple напрячь. Лучше ее, полагаю, никто не справится.

http://forum.gsmhosting.com/vbb/show...9&postcount=40
Стоит иногда оглядываться вокруг...
Не могу сказать, чтобы Дежан сообщил нечно секретное и суперполезное.

NFader
16.04.2007, 16:06
...
Не могу сказать, чтобы Дежан сообщил нечно секретное и суперполезное.

Ну так, а я о чем ;) Ну откопал sniper эти ключи, и что дальше?? Про них уже было известно давно....

sniper
16.04.2007, 16:52
Поправка. Публичная экспонента действительно 3. Видимо байты 40 00 засунули туда, чтобы напарить меня.
Функция F(X) найдена и все ключи разложены по полочкам, какой куда.

Простая подмена ключей на первый взгляд выглядит невозможной. Но некоторые вещи еще стоит проверить на прочность.

Ну откопал sniper эти ключи, и что дальше?? Про них уже было известно давно....
Во-первых, не так уж давно.
Во-вторых, не всем. Многие до сих пор доказывают мне, что там AES с ключом в бутроме.
В-третьих, написанное Дежаном это не более чем общие слова. У меня же вся защита расписана от и до с конкретными адресами и т.д.

tevel
16.04.2007, 18:55
Если специалисты Nokia оставили хакеру возможность подменить открытый ключ, я бы назвал их просто неграмотными дилетантами. Думаю, не все так просто. Вполне возможно, что открытые ключи хранятся в MCU, но скорее всего заменить их будет невозможно, например, потому, что перед их использованием будет вычислен их хэш и сравнен с хэшэм, .

я понимаю, что я не сильный криптограф, я всего лишь программер гдето там, любящий нокию. но даже меня это возмутило, хэш есть хэш, и его значение практически всегда будет разным, так что реализовать защиту, основываясь на хранении в рапе хэшей(кстати непонятно чего) невозможно. второе, рап=это тот же техуровень у ти что и 2020 проц. а как у них устроены, ну очень хорошо известно-открытые ключи хранятся в защищённой от изменения части.
2 FractalizeR: ну очень прошу, добавьте в скрипт сетуловского саппорта поддержку двойных номеров карт, напряг однако:)

FractalizeR
16.04.2007, 20:08
хэш есть хэш, и его значение практически всегда будет разным, так что реализовать защиту, основываясь на хранении в рапе хэшей(кстати непонятно чего) невозможно
Я, честно говоря, не знаю, как устроена защита Nokia. Но мысль у меня была такова. Допустим, я Nokia разработчик. Я не могу целиком в RAP или куда-то там еще засунуть все мои открытые ключи, что я использую (не знаю, правда, по какой причине. Что за процы такие модные новые, если у них памяти не хватает ключи разместить). Положить их в прошивку просто так я тоже не могу. Запатчат ведь. Тогда я делаю так. Кладу открытые ключи в прошивку, а их хэши - в защищенную область памяти.
Нужно проверить подпись. Я беру открытый ключ из прошивки, вычисляю его хэш, сверяю этот хэш с тем, что у меня в защищенной области записано. Если хэши совпадают - значит, мой ключ не запатчили и я могу им проверять что хочу. Если не совпадают, я просто не включаю телефон.

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

2 FractalizeR: ну очень прошу, добавьте в скрипт сетуловского саппорта поддержку двойных номеров карт, напряг однако
Т-с-с.... Это страшная тайна! :)

sniper
16.04.2007, 22:16
FractalizeR абсолютно прав. Точнее хешем защищен только один ключ, которым в свою очередь защищены все остальные ключи.
Всем остальным, кто не понял.... Открытый ключ потому и называется открытым, что нет никакой нужды его прятать. Но все асимметричные алгоритмы сами по себе абсолютно беззащитны от подмены открытого ключа в паре с закрытым. Поэтому открытые ключи необходимо защищать от подмены чем-то еще. В данном случае используется двухуровневая RSA-защита с защитой последнего ключа хешем.
На данный момент я вижу 3 возможности решения проблемы:
1. Перезапись хеша в RAPe. Я думаю, Дежан знает, как это сделать. Возможно даже его бокс основан на этом. Мне эта задача пока не по зубам.
2. Атака на SHA1. Я знаю, что китайцы его поломали. Точнее они не доломали его до конца, но сильно понизили разрядность задачи. Анализ SHA1 для меня слишком сложен, к тому же программист из меня ниже среднего.
3. Атака на RSA-1024. Представляется мне наиболее реальным решением в силу некоторых особенностей его реализации в ВВ5.

Снова встал вопрос коммерческой целесообразности проекта. До сих пор все делалось из спортивного интереса в свободное время. Теперь придется потратить время, силы и деньги. Работа остановлена на неопределенный срок до выяснения финансовых перспектив.

tevel
16.04.2007, 22:25
а что ломать то в ша1? технически подобрать набор данных с требуемой коллизией возможно, вот только смысл этого? набор мусора получится и всё. второе, r&d сертификат у народа есть на руках соответственно все функции юзаемые рапом известны. я всё равно считаю что в роме находится корневой открытый ключ, иной защиты просто не надо

tevel
16.04.2007, 22:27
зы. то как лазер патчит 2020 по его же словам так же делается деджаном патч мцу.

PANUA
16.04.2007, 22:34
зы. то как лазер патчит 2020 по его же словам так же делается деджаном патч мцу.

Паченые Деджаном тела шил лично, Лазарь же шить - не рекомендует :( Видать технология отличается.

tevel
16.04.2007, 22:39
:) после того как деджан попатчит тело, сделать полностью отлоченным нет проблем:)))))
только щас догнал, 2 sniper ты ведь сам говорил что ключи в мцу отличаются от версий и моделей? какой же тогда хэш???????

Bruce Willis
16.04.2007, 22:44
sniper уж поверь, если тебе этот камень по зубам + ты сможешь его защитить, то сможешь зработать огромную кучу бабла... Даже если сам будешь делать, не делясь секретом - сев в Москве или в др. городе Европы...

sniper
16.04.2007, 23:11
а что ломать то в ша1? технически подобрать набор данных с требуемой коллизией возможно, вот только смысл этого? набор мусора получится и всё.
В защищенных областях находятся обширные зоны, заполненные байтами 00 или FF, которые наверняка игнорируются RAPом. Теоретически возможно засунуть в эти зоны некий мусор, который в совокупности с измененной прошивкой даст тот же хеш.

я всё равно считаю что в роме находится корневой открытый ключ, иной защиты просто не надо
Я тоже считаю, что это обеспечило бы намного лучшую защиту. Но факты говорят об обратном. Зачем тогда хеш ключа?

только щас догнал, 2 sniper ты ведь сам говорил что ключи в мцу отличаются от версий и моделей? какой же тогда хэш???????
Невнимательно читаешь. Ключей там много. Могут отличатся все, кроме ROOT_KEY. Соответственно хеш будет тем же. Зависимости ключей от модели вообще не вижу. В разных версиях одной модели ключи одинаковые(может и есть разные, но я такого пока не видел). Кроме того на большинство моделей некоторые части прошивки существуют в 2-х вариантах, то есть для 2-х разных ROOT_KEY. Смысла этого пока не понял.

4 Bruce Willis: защитить это принципиально невозможно. А возможности делать самому ограничены количеством рук, которых у меня две. И временем, которое требуется на 2 прошивки(первая для разлока, вторая для уничтожения патча, дабы кто-нибудь хитрожопый не слил его программатором) + редактирование 308-го блока.

tevel
16.04.2007, 23:45
от это да:) народ, хэш ша1 имеет коллизионную стойкость 2 в 80 степени.
так что не надейтесть сделать какойто код, потом дополнить мусором и получить требуемый хэш:))))
2 sniper, ага, когда много буков, ниасиливаю, есть такой дефект:)

FractalizeR
17.04.2007, 00:04
1. Перезапись хеша в RAPe. Я думаю, Дежан знает, как это сделать. Возможно даже его бокс основан на этом. Мне эта задача пока не по зубам.
Честно говоря, я не уверен, что бокс такой вообще существует...
2. Атака на SHA1. Я знаю, что китайцы его поломали. Точнее они не доломали его до конца, но сильно понизили разрядность задачи. Анализ SHA1 для меня слишком сложен, к тому же программист из меня ниже среднего.
Не то, чтобы SHA1 вообще сломали... Дело вот в чем. Допустим есть некий массив данных. Для него вычислен SHA1. Так вот доказано, что можно вычислить/найти другой массив данных, которой можно прибавить к первому, либо изменить байты в первом массиве так, чтобы значение хэш-функции осталось тем же за количество операций, равное не 2^80, как предполагали разработчики SHA1, а за 2^63. Т.е. сложность подбора снизилась значительно. Но не то, чтобы такой подбор был под силу любому из современных компьютеров. Скорее всего, только АНБ располагает необходимым оборудованием для произведения таких вычислений. И потом, вероятность коллизий была доказана только теоретически. На сегодняшний день неизвестно ни одного случая реального применения этой теории. Но не исключено, что работы в этом направлении будут продолжены и количество необходимых вычислений еще понизится. Если понизится до 2^55, 2^56, не исключено, что такого рода вычисления станут подвластны домашним компьютерам :)
3. Атака на RSA-1024. Представляется мне наиболее реальным решением в силу некоторых особенностей его реализации в ВВ5.
По данным RSA Inc, в прошлом году компьютер, стоимостью в $10 млн. мог взломать 1024bit RSA примерно за год :)
Скинемся? :)
http://www.rsa.com/rsalabs/node.asp?id=2004

FractalizeR
17.04.2007, 00:06
2sniper:
Кстати, те безобразия, что Nokia делает с ключами напомнили мне RSA-PSS: http://www.rsa.com/rsalabs/node.asp?id=2005

PANUA
17.04.2007, 00:18
По данным RSA Inc, в прошлом году компьютер, стоимостью в $10 млн. мог взломать 1024bit RSA примерно за год
Скинемся?
А не проше скинутся компьютерами ? :) Израильтяне вроде в прошлом году доказали, что RCA с длиной ключа в 128 бит ломается оч. даже быстро.

sniper
17.04.2007, 00:22
Честно говоря, я не уверен, что бокс такой вообще существует...
На mobile-files.ru и на черном форуме пару дней назад фотки его лежали. Сейчас найти не могу, наверно поубивали темы. Если фотки существуют, наверно и бокс существует, Дежан вроде не был пока замечен в таких провокациях...
По данным RSA Inc, в прошлом году компьютер, стоимостью в $10 млн. мог взломать 1024bit RSA примерно за год :)
Скинемся? :)
Поэтому я и писал "в силу некоторых особенностей реализации". Там имелся в виду прямой взлом методом грубой силы, то есть факторизация модуля с последующим вычисление приватной экспоненты. Но в некоторых частных случаях возможны атаки другого рода.
И вообще криптостойкость RSA не доказана, и есть мнение, что никогда не будет доказана. Она основана на том, что ПОКА нет эффективных методов факторизации больших чисел. Но ПОКА имеет свойство кончаться в самый неожиданный момент.

tevel
17.04.2007, 00:36
а меня вот что интересует. в какой момент рап осуществляет "отказ в обслуживании" мцу. то бишь вызывается ли main в мцу.
2 sniper= сама функция main то была найдена? и второе, дебаг порт юзается в бб5? я всё упираю на то, что от дкт4 основные принципы врядли уж очень далеко ушли.
ззы. если вызывается main, то анлок без включения аппарата очень даже возможен

FractalizeR
17.04.2007, 00:40
На mobile-files.ru и на черном форуме пару дней назад фотки его лежали. Сейчас найти не могу, наверно поубивали темы. Если фотки существуют, наверно и бокс существует, Дежан вроде не был пока замечен в таких провокациях...
За небольшую плату возьмусь наделать достоверных фоток SETool155, UFS256, MSSBox351 и так далее :)

sniper
17.04.2007, 01:13
а меня вот что интересует. в какой момент рап осуществляет "отказ в обслуживании" мцу. то бишь вызывается ли main в мцу.
2 sniper= сама функция main то была найдена? и второе, дебаг порт юзается в бб5? я всё упираю на то, что от дкт4 основные принципы врядли уж очень далеко ушли.
ззы. если вызывается main, то анлок без включения аппарата очень даже возможен
Может и возможен, я не знаю. Может существовать много методов анлока. Моя идея была в том, что в случае отсутствия 308-го блока рап прописывает в него дефолтный симлок CLOSED FFFFF. И если я заставлю его прописать туда даже бредовый OPEN FFFFF, он будет разлочен.
Функцию main я не искал. И в какой момент рап начинает брыкаться, точно не знаю. На мой взгляд, там довольно немного общего с дкт4.
Могу только сказать, что перезаписи 308-го блока не происходит, если рап находит в прошивке какой-то косяк.

За небольшую плату возьмусь наделать достоверных фоток SETool155, UFS256, MSSBox351 и так далее :)
Но ты же не будешь размещать эти фотки в объявах от имени Лазера, Сараса и т.д.:)

andrew_tm
17.04.2007, 01:22
ну так sniper можно сделать проще,.. арендируеш сервер какойто на месяц припустим,.. пишеш серверную часть и раздаеш клиенские части пользователям форума.. типа ю пользования например в течение 100 часов 1 унлок.... и гов пускай прога подбирает на компе пользователля и даные на сервер посылает. думаю пользователей тысяч 5 наберется,...

barabaka
17.04.2007, 01:36
а меня вот что интересует. в какой момент рап осуществляет "отказ в обслуживании" мцу. то бишь вызывается ли main в мцу.


Это про какой "мсу"? Я уже теряю нить разговора... Заодно main это что таким словом обозвано? Простите, дураку глупые вопросы.
Но взлом SHA1,- это конечно улыбнуло...

tevel
17.04.2007, 01:45
main-entry в прошивке. почему мэйн? потому что он так обозван в дебаг инфе в дкт4. мцу = прошивка. как в дкт4 сделана защита от патчей мцу, тело запускается и в одной из начальных функций вызывает проверку в бутроме, которая уже при положительном результате включает дсп. а здесь мне интересна, как организовано взаимодействие мцу с sequre rom

Botya666
17.04.2007, 07:36
А что им мешает сразу в бутроме проверить подпись и вообще не запускать мцу при отказе?

Андромедыч
17.04.2007, 09:34
Смотрю я тут вы RSA "ломаете" :) За это можно денежек официально поднять... Ежели смогете.. :) http://mathworld.wolfram.com/news/2005-11-08/rsa-640/

FractalizeR
17.04.2007, 13:02
RSA мы не ломаем. Но следует учитывать, что как SHA1, так и RSA с ключом длиной 1024 бита больше не являются надежными алгоритмами для защиты секретной информации. SHA1 из-за коллизий, а RSA-1024 из-за возрастающей мощности компьютеров по закону Мура

NFader
17.04.2007, 13:23
RSA мы не ломаем. Но следует учитывать, что как SHA1, так и RSA с ключом длиной 1024 бита больше не являются надежными алгоритмами для защиты секретной информации. SHA1 из-за коллизий, а RSA-1024 из-за возрастающей мощности компьютеров по закону Мура
С какого это не являются, уже кто-то их взломал??? :) И что-же по Вашему мнению является надежной защитой? Судя по тому, что Вы тут написали - ничего....

FractalizeR
17.04.2007, 16:39
Господин NFader, вы следите за ходом нашего разговора? Вы читаете ссылки, которые тут приводились? Хотя бы по ссылке на Википедию проследовали бы: "In academic cryptography, any attack that has less computational complexity than a brute force search is considered a break [15]. This does not, however, necessarily mean that the attack can be practically exploited. It has been speculated that finding a collision for SHA-1 is within reach of massive distributed Internet search."
В случае с SHA1, расчетная стойкость алгоритма после обнаружения "дырочки" снизилась на 17 порядков. Могу вас заверить, это очень существенно.
Прочитайте вот это: http://www.rsa.com/rsalabs/node.asp?id=2927 и вот это: http://www.rsa.com/rsalabs/node.asp?id=2834
Конечно, для самой Nokia это вряд ли слишком опасно, но если еще кто-нибудь произведет исследования и еще понизит стойкость SHA1, то...

Что касается ключей RSA-1024, прочитайте раздел Do I need to revoke my 1024-bit RSA key по этой ссылке: http://www.rsa.com/rsalabs/node.asp?id=2007

NFader
17.04.2007, 18:29
@FractalizeR
Вот Вы сами и подумайте, что это дает в данной задаче. Ровным счетом - ничего... И RSA1024 так до сих пор никто и не сломал.... Цитаты с Вашей-же ссылки:

...Moreover, Bernstein himself is quoted [5] as saying "This is a theoretical advance. I have no idea and …nobody else has any idea how practical it might be."...

...Do I need to revoke my 1024-bit RSA key?

The recent paper by Bernstein and the ensuing discussions don't reveal any new threats to 1024-bit RSA keys. You may, of course, decide that the security provided by a 1024-bit RSA key is less than you want for your (presumably long-term) application, and upgrade to a longer key. But you needn't do so just because of the recent discussion...

tevel
17.04.2007, 18:53
FractalizeR, наверное Вы не совсем понимаете что означает взломать хэш. это означает всего лишь возможность найти иной набор данных, что даст такой же хэш. но это будет всего лишь набор мусора. для тех кто думает что можно взять участок кода и дополнив мусором получить правильный результат, немного ликбеза:
выбирая первый байт мы уже определяем дальнейшее построение данных, то бишь с таким байтом на протяжение в идеале 2 в 80 степени байт мы получим всего одну коллизию. 2 байта= это уже 2 в 80 *2 в степени n-1/
ps/ NIST платит очень хорошую премию любому "сломавшему" один из госстандартов криптографии США, как то AES, RSA,SHA1/
и как недавно сказал Брюс Шнейер, как минимум 50 лет мы ещё не увидим сколь угодно малого прорыва в наших знаниях

Alex999
17.04.2007, 22:13
Немного стормозил в предыдущих постах - по поводу модуля N при шифровка расшифровке - он один и тот же. Нужно найти секретную экспоненту назовем ее D. То есть шифрование Y=F**D mod N, дешифровка F=Y**E mod N. Известны или можно вычислить N, E, Y, F - нужно найти экспоненту D, только для ключа которым подписывается блок с остальными ключами, иначе ни как - потому-что хеш или часть хеша этого ключа хранится в RAP. Остальные можно подменить зная этот главный ключ. Предлагаю как зная N, E, Y, F - существенно облегчить поиск секретной экспоненты D. Функция RSA - имеет свойство мультипликативности(о нем далее). Sniper писал что ключи одинаковы в некоторых моделях(я надеюсь это было о главном ключе ?) - что имеем - а имеем блоки разных хешей (F1 и F2) зашифрованные одним ключом D.
Y1=F1**D mod N, Y2=F2**D mod N, и используя свойство мультипликативности имеем Y1*Y2=(F1*F2)**D mod N - видно что для нахождения секретной экспоненты D нужно вычислить Y1*Y2 и F1*F2 и возводить поочередно в разные степени по модулю N и выполнять сравнение - что гораздо быстрее чем прямой бутфорс. Верхний предел секретной экспоненты не более 2**N. ;-), и очевидно(мне например ;-)), что секретная экспонента нечетное число.
Sniper-y : И вопрос дешифрованная функция F какой имеет размер в битах?
И есть еще парочка интересных идей например если D<N**0.25, можно еще существенно ускорить поиск.

sniper
17.04.2007, 23:00
Sniper-y : И вопрос дешифрованная функция F какой имеет размер в битах?
Если быть точным 1021 бит.


Верхний предел секретной экспоненты не более 2**N. ;-), и очевидно(мне например ;-)), что секретная экспонента нечетное число.
Да, теперь мы знаем последние биты обоих множителей. Могу еще добавить, что если ключ "грамотный", то и первые их биты будут единицами. И сильно ли мы понизили разрядность задачи?
Поверь мне, все это давно учтено в существующих алгоритмах брутфорса. Тем не менее, мощности существующих на сегодня майнфреймов не хватает.


У меня есть мысль намного лучше и ее сейчас думаю...

barabaka
18.04.2007, 00:04
main-entry в прошивке. почему мэйн? потому что он так обозван в дебаг инфе в дкт4. мцу = прошивка. как в дкт4 сделана защита от патчей мцу, тело запускается и в одной из начальных функций вызывает проверку в бутроме, которая уже при положительном результате включает дсп. а здесь мне интересна, как организовано взаимодействие мцу с sequre rom

Понятно, что main это main, просто хотелось определиться, что вы вкладываете в это понятие. На самом деле "мэйнов" там должно быть несколько. Самый крупный - это вход в ось (или любую другую управляющую программу) До неё должно стартовать ещё несколько мини-"мэйнов" (простите за коламбур, но на сишнике, они так скорее всего и обзываются, только модули разные). Они обслуживают тело до запуска оси. Не буду углубляться.
Но насчет бутрома, могу вас уверить, что это не прошивка обращается в буткор, а скорее буткор обращается в прошивку, после проверки её на валидность. У ARM четко задан стартовый адресс = 0x00000000. Вектора можно перемапить, но это "кто-то" должен сделать.
Кстати насчет ключей. Они действительно не в boot-rom-е Они туда переписываются во время сброса.
Вот ещё одно доказательство. Это выдержка из техасовских "секретов":
Basically, the Secure Boot-ROM code authenticates and verifies the integrity of the external Firmware or the downloaded FLASH Programmer before their execution on the device.
и ещё:
The secure-ROM code takes the control of the system activity upon System Reset It cannot be interrupted or bypassed until the completion of its execution. It is not dependant on the OS. It includes software-library (Macro-functions & H-W Drivers) allowing for encryption Algorithm & H-W cryptoprocessor control. These software libraries are available for User Secure-Application through reserved secure-ROM entry-points.

И ещё, как они утверждают, the Secure ROM content cannot be read/dumped neither from MCU nor from DMA; any access to the Secure-ROM subroutine area from outside the Secure-ROM is denied, returning a data to “0” and generating a security violation to the EMPU for abort generation (DMA violation is not flagged). Access to the subroutine part is also denied in emulation mode

Это к вопросу о "том месте", где же происходит проверка. Не про нокию, но от того же производителя.

tevel
18.04.2007, 00:28
применительно к нокии вы меня не поняли. ессно запуск происходит в бутроме. далее передаётся вызов в мцу функции InitHardware. там "не буду углубляться":) что делается, потом вызывается main(UINT nMode)/ все названия из дебагинфы дкт4

tevel
18.04.2007, 00:32
These software libraries are available for User Secure-Application through reserved secure-ROM entry-points.
а вот это я имел ввиду насчёт обращения из мцу к бутрому

barabaka
18.04.2007, 01:13
These software libraries are available for User Secure-Application through reserved secure-ROM entry-points.
а вот это я имел ввиду насчёт обращения из мцу к бутрому

Это больше не к бутрому имеется ввиду. Это больше к крЫпропрцессору. Наример BL 0xFFFF0808

tevel
18.04.2007, 01:23
ээээ, не только. ну как ещё обьяснить? в бутроме есть специфичные функции поддержки мцу, являющиеся неотьемлемой частью для прошивки. как пример-дкт4, спецслово в прошивке которое определяет режим работы, считывается напрямую бутромом. и есть дополнительные данные, которые скармливаются бутрому уже из мцу

PANUA
18.04.2007, 01:30
ээээ, не только. ну как ещё обьяснить? в бутроме есть специфичные функции поддержки мцу, являющиеся неотьемлемой частью для прошивки. как пример-дкт4, спецслово в прошивке которое определяет режим работы, считывается напрямую бутромом. и есть дополнительные данные, которые скармливаются бутрому уже из мцу

Да приведи несколько примеров, народу станет понятно о чем речь, хотя куски кода выкладывались не единожды. Al на черном приводил типичный пример вызова процедуры в бут-ром.

barabaka
18.04.2007, 01:35
ээээ, не только. ну как ещё обьяснить? в бутроме есть специфичные функции поддержки мцу, являющиеся неотьемлемой частью для прошивки. как пример-дкт4, спецслово в прошивке которое определяет режим работы, считывается напрямую бутромом. и есть дополнительные данные, которые скармливаются бутрому уже из мцу

Я просто не совсем удачный пример привёл. Это чисто в криптопорт. Я понимаю о чём речь, просто эти точки входа к именно "бутанию" могут и не иметь отношения. Там много процедур, и условно их можно как-бы на 2 части разделить. Выполняемые во время включения и выполняемые во время работы уже прошивки (есссно такое разделение очень условное и надуманное). Но нам четко нужно уяснить, что проверка целосности FW, ровно, как и излавливание "тыканья" флэшера происходит из бутрома сразу после сброса. Бутром также передает управление на FW. (но ещё не на __main). А уже проверка целосности епрома, FS и прочего SEC, уже выполняет FW используя готовые процедуры бутрома.
Это уже и так понятно, но я решил повторить, чтоб все пришли к "конценцусу", как говаривал один генсек...

tevel
18.04.2007, 01:40
ai здесь это nfader кстати:)
ADD R1, R4, #4
ROM:01343D0A C9 03 LDMIA R1!, {R0,R1}
ROM:01343D0C 4A 2B LDR R2, =0x840013 ; r0 r1 is ffffffff
ROM:01343D0E F7 AE FF 59 BL callr2
ну например вот, проверка подписи мцу в дкт4.

tevel
18.04.2007, 01:41
отклонились далёко от темы, если есть желание продолжить разговор, то лучше в асе

FractalizeR
18.04.2007, 01:59
FractalizeR, наверное Вы не совсем понимаете что означает взломать хэш. это означает всего лишь возможность найти иной набор данных, что даст такой же хэш
Мне кажется, мы друг друга не поняли :)
Я как раз об этом и говорил несколькими постами выше. Только не найти иной набор данных, а изменить существующий так, чтобы хэш остался тем же. В этом и смысл взлома SHA1 если так можно выразится.
Если удалось бы произвести необъходимые операции с прошивкой, а затем вставить в ее неиспользуемые области данные так, чтобы хэш неизменился, это решило бы проблему.

Между тем, я согласен, что тема превратилась в теоретическое обсуждение основ криптографии. Глупо полагать, что защита Nokia настолько проста, что любой не-программист и не-спец в криптографии сможет ее быстро поламать не зная о ней ничего кроме того, что видно в коде.

Vladimirovich
19.04.2007, 12:01
тут упоминали всемогущий бокс деджана - вот типа фото.... http://www.mcrf.ru/files/index.php?ACT=dl&id=825&symid=858

glider
19.04.2007, 12:17
Vladimirovich, а ты ветку смотрел, которая к этому посту относится (имеется ввиду оригинал, где были приаттачены эти картинки)?:wink:

Vladimirovich
19.04.2007, 12:27
не смотрел, и тут писали что её вроде как прибили уже? - исправляюсь - не прибили.... http://www.gsmhosting.com/vbb/showthread.php?t=392662 кому любопытен оригинал...
настоятельно попрошу воздержаться от комментариев по этому поводу так как никакой полезной информации там нет, только 21 страница фулда