Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
функция char* crypt (char* passwd, char* salt) выдает 13-символьную строчку, которая и записывается в файл
/etc/ passwd.
При входе пользователя в систему вызывается та же функция crypt() с введенным паролем и привязкой,
полученной из /etc/passwd. Если результат
Оказывается равным значению, хранящемуся в файле, то аутентификация считается состоявшейся.
После анализа этой схемы первое, что приходит в голову потенциальному взломщику (если он верит в
Невозможность обратного преобразования хэша в пароль), - перебор. Берется некоторый набор символов
(например, прописные и строчные буквы, цифры и специальные символы типа знаков препинания - всего
Получается 94 символа), а затем из них по очереди составляются все комбинации вплоть до 8-символьной
Длины. К каждой из них применяется crypt(), и результат сравнивается с имеющимся. Естественно, что в эти
Комбинации рано или поздно попадет любой пароль пользователя.
Обрезание пароля до 8 значимых символов, конечно, резко ограничивает множество для перебора, но для
Тех времен это было вполне допустимо, так как функция crypt() была реализована заведомо неэффективно и
Время одного ее выполнения доходило до одной секунды на машине класса PDP. Таким образом, в среднем
Злоумышленник потратил бы на поиск пароля около 100 миллионов лет. Если же в качестве ножества
Дата публикования: 2014-11-04; Прочитано: 331 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!