Инструментальные средства обеспечения безопасности

L0phtCrack


Сначала система Windows казалась более привлекательной с точки зрения безопасности паролей, чем Unix. Большинство Unix-систем никогда не создают пароли более восьми символов.

Windows NT допускает длину пароля до 14 символов, это почти удвоение длины! Mudge и Weld Pond от L0pht Heavy Industries занимаются усовершенствованием схемы шифрования LanMan. Компания последовательно выпускала средства, которые пользовались преимуществом неадекватности схемы шифрования паролей.

Мы уже кратко упоминали в этой лекции о системе шифрования LanMan. Мы знаем, что это система хранения шифрованных паролей, схожая с форматами Unix-файлов /etc/passwd или /etc/shadow. Что можно понять, внимательно изучая, как генерируется и хранится в LanMan шифрованная строка? Система Windows хранит две версии пользовательского пароля. Первая версия называется LanMan, или LM, хэш. Вторая версия - NT-хэш, который шифруется с использованием алгоритма MD5. Это односторонняя функция. Пароль шифруется, но никогда не расшифровывается. Строка LanMan также шифруется с помощью однопроходной функции, но в этом случае пароль разбивается на две части перед тем, как шифроваться с использованием алгоритма DES.

Посмотрим на содержимое трех строк паролей в LanMan. Они представлены в шестнадцатеричной записи и содержат 16 байт данных.

898f30164a203ca0 14cc8d7feb12c1db 898f30164a203ca0 aad3b435b51404ee 14cc8d7feb12c1db aad3b435b51404ee

Не надо быть семи пядей во лбу, чтобы заметить некоторые совпадения в этих трех примерах. Последние 8 байт второго и третьего примера одинаковые: aad3b435b51404ee. Эти значения одинаковы для всех паролей длиной более восьми символов. Эта криптографическая ошибка возникает по двум причинам: вследствие того, что содержимое пароля составляет более восьми символов и показывает, что при генерации второй половины шифрованной строки не используется никакой информации о первой половине. Обратите внимание, что вторая половина первого примера (14cc8d7feb12c1db) содержит первую часть третьего примера. Это, скорее, говорит о том, что пароль шифровался на основе двух независимых наборов символов (по семь каждый), чем о том, что вторая половина зависит от содержания первой части пароля.

В результате это превращает большой пароль из 14 символов в два коротких пароля по 7 символов. И в довершение всего, LanMan при шифровании игнорирует регистр символов, что резко сокращает время, затрачиваемое на взлом пароля перебором.



Содержание раздела