Я знаю, что некоторые другие компании могут перехватывать пароли своих пользователей, когда они входят в сеть. Я также знаю, что эти компании создают огромную базу паролей, которые нельзя использовать повторно; Как они это делают?
Это встроенная функция Active Directory, нет необходимости каким-то образом «перехватывать» пароли. Количество «запоминающихся» паролей устанавливается системным администратором общесистемной политикой безопасности.
Обычно этот функционал реализован таким образом, что просто так называемый «хэш»Пароля сохраняется. Когда вы, как пользователь, выбираете новый пароль, система следит за тем, чтобы хеш нового пароля не встречался в наборе запомненных хэшей, соответствующих прошлым паролям. Таким образом можно избежать повторного использования одного и того же пароля.
Обратите внимание, что на самом деле хеш - это очень большое число, которое вычисляется с использованием криптографической функции (по сути, сложной математической формулы) из входных данных (то есть из вашего пароля). Одна важная вещь о хэшах заключается в том, что не существует достаточно простого и быстрого способа обратить процесс вспять, то есть угадать фактический пароль, зная только его хэш. Следовательно, система может быть довольно безопасной, предотвращая разглашение прошлых паролей.
Это политика учетной записи на уровне домена под названием «Принудительное использование истории паролей», которую может настроить администратор домена. У Microsoft есть документация по настройкам Вот.
Кроме того, для ясности, они не сохранение пароля в виде открытого текста. Они хранят хэш пароля. Хранение паролей в виде открытого текста - серьезная проблема безопасности.
Active Directory предоставляет приложениям интерфейсы для перехвата вызовов смены пароля по мере их выполнения. Для этого драйвер должен быть запущен на контроллерах домена (DC), где происходит изменение пароля (обычно все они). После того, как пароль зашифрован и сохранен в AD, нецелесообразно обращать хэш (а хеш - это то, что хранится и реплицируется между DC).
Примером может служить Novell Identity Manager (IDM). Чтобы синхронизировать пароли с Active Directory, вам необходимо установить приложение под названием Password Sync, которое выполняет то, что я описал выше, на всех контроллерах домена в домене. Затем IDM перехватывает пароли, когда они установлены, и может делать с паролем все, что угодно - выгружать его в текстовый файл, сохранять в базе данных SQL или синхронизировать с другим каталогом eDirectory.
Другие системы, такие как Microsoft Forefront IM, обладают аналогичными возможностями, и, вероятно, не составит труда написать простое приложение, которое сбрасывает пароли в базу данных (но оно может делать это только при их изменении).
В зависимости от типа безопасности и используемой системы входа или сервера этот ответ будет сильно различаться.
Как отмечали другие, если вы используете систему Active Directory для входа в домен и вы установили параметр, запрещающий использование предыдущих паролей, хэш пароля сохраняется для заданного количества изменений пароля и любых новых хэшей паролей, которые совпадают (которые означало бы, что сами пароли совпадают) отклоняются. Это позволяет системе отслеживать старые пароли без фактического «знания» самих паролей.
Если вы имеете дело с входами на веб-сайты, правильным методом хранения паролей является использование хэша, как в Windows и Active Directory (и в любой другой безопасной и правильно настроенной защищенной системе, это не просто Windows).
Однако не всегда используется правильный метод. Примеры взломанных веб-сайтов и доступных на черном рынке паролей пользователей обычно являются примерами сайтов или систем, хранящих пароли в том, что мы называем «обычным текстом». Это означает, что где-то в системе есть список паролей, которые вы действительно можете прочитать, а не запутанные хэши, которые необходимо сравнивать.
В системах управления паролями не происходит «захвата», кроме простого принятия введенного пароля пользователя и его сравнения с тем, что хранится. Это делают как безопасные, так и незащищенные системы.
Разница между системой, которая сравнивает хэши (безопасная система), и системой, которая сравнивает пароли в виде простого текста (небезопасная система), заключается в том, что безопасная система добавляет шаг создания хэша, прежде чем она выполнит сравнение с тем, что она хранит. .