информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСетевые кракеры и правда о деле ЛевинаЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
более точно 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 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach