Как взломать или обойти парольную защиту Oracle - Алгоритм вычисления свертки пароля

ОГЛАВЛЕНИЕ

Алгоритм вычисления свертки пароля

 Алгоритм вычисления свертки пароля перед помещением его в словарь-справочник БД и при проверки подлинности (аутентичности) официально фирмой-изготовителем не опубликован. Тем не менее вызывающие доверие источники: 

-         http://groups.google.com/group/comp.security.misc/msg/83ae557a977fb6ed?output=gplain

-         http://isc.sans.org/diary.html?storyid=793 (далее обозначаемый как [1]) 

сообщают о следующей последовательности действий: 

1)      К имени пользователя приклеивается справа текст пароля.

2)      В получившейся строке буквам повышается регистр.

3)      Символы строки переводятся в двухбайтовый формат дополнением слева нулевым значением 0x00 (для символов ASCII), и справа строка дописывается нулевыми байтами до общей длины 80.

4)      Получившаяся строка шифруется алгоритмом DES в режиме сцепления блоков шифротекста (CBC) ключом 0x0123456789ABCDEF.

5)      Из последнего блока результата удаляются разряды четности и полученная строка (56 разрядов) используется для нового шифрования исходной строки тем же способом.

6)      Последний блок результата переводится в знаки шестнадцатиричной арифметики и объявляется конечным результатом - сверткой. 

Особенности такого алгоритма: 

-         Свертка не зависит от регистра букв. Например, пары SCOTT/TIGER, Scott/Tiger, scoTT/TigeR дадут одну и ту же свертку F894844C34402B67.

-         Одинаковые склеенные пары имя_пользователя / пароль дают одинаковую свертку. Например, пары SCOTT/TIGER, SCOT/TTIGER, SCOTTTIG/ER дадут одну и ту же свертку F894844C34402B67.

-         Свертка не зависит от БД. Например, где бы мы ни создавали БД Oracle, свертка для пользователя SCOTT и пароля TIGER всегда будет F894844C34402B67.

-         Используется шифрование DES.