Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | |
более точно 01.01.07 17:04 Число просмотров: 3667
Автор: zorky Статус: Незарегистрированный пользователь
|
d1=d mod (p-1) - короткая
d2=d mod (q-1) - короткая
|
<theory>
|
Зашифрованая строка 09.11.06 17:31
Автор: Andreas Статус: Незарегистрированный пользователь
|
Доброго времени суток.
Вопрос конечно чуток не в эту ветку, но больше не знал куда запостить.
Есть база данных FireBird, есть приложение которое с ней работает. Я сделал дамп памяти процесса, выловил строку подключения к базе, узнал пароль и т.п. Открыл базу, а там все строковые поля зашифрованы...
Вот пример строки
slXgERcNRiqUxfbz4puZzQ==
Я так понял она кодирована в Base64. Но после того как раскодирую получается балиберда.
Так же в памяти этого процесса увидел это
Microsoft Strong Cryptographic Provider
... В шифровании я не очень.
Эта программа стоит не только на нашей фирме, соответственно ключ или пароль должен быть один. Если бы я знал где копать я бы его через тот же снимок дампа памяти выловил. Трасером смотрел - он программа обращается кроме прочих к таким интересным библиотекам как mscoree.dll и rsaenh.dll. Если бы знать какими методами выполняется это декодирование и где и как передаются пароль/ключ при работе с этими библиотеками, то можно было бы выловить его опять же через снимок дампа=)
Может кто подскажет в каком направлении рыть?
|
|
RSA c такими "узкими" данными не работает. Есть подозрение,... 09.11.06 18:16
Автор: leo <Леонид Юрьев> Статус: Elderman
|
> Вот пример строки > > slXgERcNRiqUxfbz4puZzQ== > > прочих к таким интересным библиотекам как mscoree.dll и > rsaenh.dll. Если бы знать какими методами выполняется это
RSA c такими "узкими" данными не работает. Есть подозрение, что это просто Unicode-строки закодированные в Base64.
|
| |
Две короткие экспоненты в RSA? 01.01.07 09:20
Автор: zorky Статус: Незарегистрированный пользователь
|
Господа, нельзя ли модифицировать RSA так, чтобы опционально использовать две коротких экспоненты для повышения скорости исполнения алгоритма?
Как известно, одну экспоненту (открытого ключа) можно сделать равной 3, 257 или 65537, но закрытый ключ все-равно будет тормозить... Вот если бы можно было сделать ее хотя-бы 128 бит...
|
| | |
Нельзя 01.01.07 12:50
Автор: Heller <Heller> Статус: Elderman Отредактировано 01.01.07 12:50 Количество правок: 1
|
> Господа, нельзя ли модифицировать RSA так, чтобы > опционально использовать две коротких экспоненты для > повышения скорости исполнения алгоритма? > Как известно, одну экспоненту (открытого ключа) можно > сделать равной 3, 257 или 65537, но закрытый ключ все-равно > будет тормозить... Вот если бы можно было сделать ее > хотя-бы 128 бит... > Они выбираются из условия
ed=1+kФ(n)
Ф(n) сопоставима по величине с самой n (для определенности положим n 1024-битной). Из элементарной теории чисел следует, что длина произведения будет равна сумме длин множителей (плюс/минус единица вроде на каждый множитель, если мне не изменяет память). Пусть длину обознаим какx Тогда:
e=3 => |e|=2 => |d|=1022
e=65537 => |e|=16 => |d|=1008
Ну и так далее.
В общем, ответ на вопрос - увеличить скорость расшифрования не получится никак.
|
| | | |
думаю можно 01.01.07 13:52
Автор: zorky Статус: Незарегистрированный пользователь
|
> ed=1+kФ(n)
Допустим, у нас p и q по 512 бит, e - короткая экспонента, d - длинная экспонента,
пожалуй она не божет быть меньше чем 1024 бит.
Но может так оказаться, что
d1=d mod p - короткая
d2=d mod q - короткая
Зная d1,d2,p,q - можно с не меньшим, а с еще большим успехом работать вместо d и N.
Это будет ускорение алгоритма по китайской теореме об остатках.
Нормально конечно, на практике d1 и d2 будут около 512 бит.
Но я не о таком ускорении мечтаю, это вещщь известная.
Вот если бы d1 и d2 можно было сделать совсем крошечными, а e оставить 65537, это было бы интересно!!! Думаю, это не противоречит тому, что при умножении длина чисел увеличивается.
|
| | | | |
более точно 01.01.07 17:04
Автор: zorky Статус: Незарегистрированный пользователь
|
d1=d mod (p-1) - короткая
d2=d mod (q-1) - короткая
|
| | | | | |
Вряд ли 01.01.07 17:13
Автор: Heller <Heller> Статус: Elderman
|
> d1=d mod (p-1) - короткая > d2=d mod (q-1) - короткая Отсюда следует, что надо особым образом подбирать p и q. Как это сделать мне представляется слабо (1-е число все таки :)), но даже если такое и удастся, мы скорее всего получим снижение стойкости ключа.
Есть и еще один аргумент против: если d1 и d2 будут короткими, то их можно будет подобрать простым перебором минуя факторизацию. Если выбрать их "не совсем короткими", то мы вряд ли увидим значительный выигрыш в скорости.
|
| |
А вы думаете я этого не пробовал=) Всё что в моих силах... 09.11.06 18:23
Автор: Andreas Статус: Незарегистрированный пользователь
|
А вы думаете я этого не пробовал=) Всё что в моих силах перепробовал, Басе64 в первую очередь мне в глаза кинулось. Но юникодом там внутри не пахнет. Есть такая штука MD5(base64). но МД5 хэш это необратимое хеширование, так что не вижу смысла его использовать в БД=))
|
| | |
Какая длина у закодированных строк? 09.11.06 18:34
Автор: leo <Леонид Юрьев> Статус: Elderman
|
|
| | | |
Длина разная, вот примеры 09.11.06 18:49
Автор: Andreas Статус: Незарегистрированный пользователь
|
Длина разная, вот примеры
slXgERcNRiqUxfbz4puZzQ==
nRR8dqlCnYY=
bt5SzrE/MjIurp6khyHOnw==
bt5SzrE/MjKD+bEimvUlYA==
VS5bk0C56dY=
ZUwHNllC/k0=
3dYc2MbUZuU=
8tejElPBl9g=
E/w3MQpI5pJ4ulDG/cLm1w==
E/w3MQpI5pI1zUPB+BB5pw==
E/w3MQpI5pIF9qjwvAUtzXzldMmqESKk
Djg43YV8ME8=
0PBB/TyDqoaOxFZoDUW03SunWnLc5YAb
afvOCEEYhMo=
UTSQP9Fw+uoFoZ6tyjLgrA==
TMSQF0XopQTccmXSX367cA==
Кстати получается странная особенность, если я эти строки конвертю из басе64, то получается длина каждый раз 8 или 16 или 24, больше не пробовал.
|
| | | | |
Если длина после base64 всегда кратна 8, то это очень похоже... 09.11.06 19:05
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Если длина после base64 всегда кратна 8, то это очень похоже на блочный шифр. Скорее всего DES или 3DES (Tripple DES). Взломать можно, но проще найти ключ в коде программы.
Для начала нужно проанализировать 8-байтные блоки в каждой строки. Строки с одинаковым началом будут давать одинаковые начальные блоки. Поэтому если имеет место совпадение данных по границе блоков - то это точно блочный шифр, если же много совпадений с окончанием "внутри" блока - то это не может быть блочным шифром.
|
| | | | | |
Честно говоря я в этом ничего не поднимаю, блочный не... 09.11.06 19:13
Автор: Andreas Статус: Незарегистрированный пользователь
|
Честно говоря я в этом ничего не поднимаю, блочный не блочный, знать бы каким макаром эта вся фигня вызывается, можно было бы отладчиком ковырять, а так...
|
| | | | | | |
Вот твои строки, есть интересные места. Объясни подробнее,... 10.12.06 22:51
Автор: MadBinom Статус: Незарегистрированный пользователь
|
> Честно говоря я в этом ничего не поднимаю, блочный не > блочный, знать бы каким макаром эта вся фигня вызывается, > можно было бы отладчиком ковырять, а так... Вот твои строки, есть интересные места. Объясни подробнее, база получена после чего? После расшифрования? Пароль ты выудил, который используется в CryptoAPI?
B2 55 E0 11 17 0D 46 2A 94 C5 F6 F3 E2 9B 99 CD
9D 14 7C 76 A9 42 9D 86
6E DE 52 CE B1 3F 32 32 2E AE 9E A4 87 21 CE 9F
6E DE 52 CE B1 3F 32 32 83 F9 B1 22 9A F5 25 60
55 2E 5B 93 40 B9 E9 D6
65 4C 07 36 59 42 FE 4D
DD D6 1C D8 C6 D4 66 E5
F2 D7 A3 12 53 C1 97 D8
13 FC 37 31 0A 48 E6 92 78 BA 50 C6 FD C2 E6 D7
13 FC 37 31 0A 48 E6 92 35 CD 43 C1 F8 10 79 A7
13 FC 37 31 0A 48 E6 92 05 F6 A8 F0 BC 05 2D CD 7C E5 74 C9 AA 11 22 A4
0E 38 38 DD 85 7C 30 4F
D0 F0 41 FD 3C 83 AA 86 8E C4 56 68 0D 45 B4 DD 2B A7 5A 72 DC E5 80 1B
69 FB CE 08 41 18 84 CA
51 34 90 3F D1 70 FA EA 05 A1 9E AD CA 32 E0 AC
4C C4 90 17 45 E8 A5 04 DC 72 65 D2 5F 7E BB 70
|
| | | | | | | |
Нет... База FireBird, была запаролена, с ней есть прога... 11.12.06 10:03
Автор: Andreas Статус: Незарегистрированный пользователь
|
> Вот твои строки, есть интересные места. Объясни подробнее, > база получена после чего? После расшифрования? Пароль ты > выудил, который используется в CryptoAPI? Нет... База FireBird, была запаролена, с ней есть прога которая пользует эту базу, прогу запустил, снял дамп памяти процесса, и там нашёл строку соединения с БД, естественно там и пароль лежит (это кстати уязвимость всех БД, точнее не БД, а прог, которые с этими базами работают). Но создатели этот вариант предвидели естественно:) И ключевые строки в базе зашифрованы. Там же в дампе нашёл, что прога юзает КриптоАПИ. Надо будет ещё отладчиком глянуть...
|
| | | | | | | | |
Полюбому смотри в отладчике, затем смотри параметры... 15.12.06 00:28
Автор: MadBinom Статус: Незарегистрированный пользователь
|
Полюбому смотри в отладчике, затем смотри параметры интересных функций, затем лезь в заголовки на си++ для криптоапи и смотри что соответствует числам, затем лезь в мсдн, затем сам пиши конвертор в норм базу. Примерно такая последовательность
|
| | | | | | | | | |
А какие библиотеки этого криптоапи? Всмысле файлы... 15.12.06 10:25
Автор: Andreas Статус: Незарегистрированный пользователь
|
> Полюбому смотри в отладчике, затем смотри параметры > интересных функций, затем лезь в заголовки на си++ для > криптоапи и смотри что соответствует числам, затем лезь в > мсдн, затем сам пиши конвертор в норм базу. Примерно такая > последовательность
А какие библиотеки этого криптоапи? Всмысле файлы библиотеки? Я тут где-то читал, что она с ИЕ связана. Хотяб основные функции шифрования подскажите чтоб по ним ловить.
|
| | | | | | | | | | |
Тут http://msdn2.microsoft.com/en-us/library/aa380252.aspx 16.12.06 16:55
Автор: MadBinom Статус: Незарегистрированный пользователь
|
|
|
|