Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на билеты по ЦК.docx
Скачиваний:
64
Добавлен:
23.12.2017
Размер:
391.84 Кб
Скачать

Понятие хэш-функции пароля

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

Казалось бы, что может быть проще? Ведь нужно только знать, где именно хранится учетная база пользователей с их паролями, и подсмотреть нужную информацию. Но это слишком просто, чтобы оказаться правдой. Конечно же, все пароли сохраняются в зашифрованном виде. Зашифрованный пароль именуется хэшем (hash) или хэш-функцией пароля. Причем в данном случае речь идет о довольно хитром методе шифрования, особенность которого заключается в том, что зашифрованный таким образом пароль… принципиально невозможно расшифровать! Дело в том, что алгоритм шифрования (хэширования) является односторонним. Фактически любой алгоритм хэширования представляет собой подсчет контрольной суммы от исходного текста, при котором используются необратимые логические операции над исходным сообщением, такие как AND, OR и др.

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

Для справки: существует огромное количество различных алгоритмов вычисления хэш-функций, и соответственно хэш-функции могут быть разных типов. В дальнейшем мы будем говорить только о хэш-функциях паролей, создаваемых операционной системой Windows при локальной или сетевой аутентификации пользователей (LM- или NT-хэш).

Естественно, возникает вопрос: если знание хэш-функции не позволяет выяснить пароль пользователя, то как же в таком случае происходит процесс аутентификации? Дело в том, что при аутентификации сравниваются не сами пароли, а их хэш-функции. В процессе аутентификации пользователь вводит пароль в привычном для него виде, а операционная система рассчитывает его хэш-функцию и сравнивает с хэшем, хранящимся в компьютере. В случае их совпадения аутентификация считается успешной.

Взлом пароля

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

Казалось бы, такой перебор никогда не закончится — вариантов паролей существует бесконечное множество. Однако не стоит торопиться с выводами. Во-первых, количество возможных паролей все-таки конечно, а во-вторых, современные компьютеры позволяют перебирать миллионы паролей в секунду. Кроме того, имеются различные методы атак на пароли (об этом речь пойдет далее), которые в большинстве случаев приводят к положительному результату в считаные минуты. Прежде чем от теории перейти к практике, рассмотрим смысл понятия «хэш» и выясним, сколько вариантов паролей реально существует.