Поделиться через


Технический обзор паролей

В этом разделе ит-специалистов объясняется, как Windows реализует пароли в версиях Windows, начиная с Windows Server 2012 и Windows 8.1. В нем также рассматриваются надежные пароли, парольные фразы и политики паролей.

Как хранятся пароли в Windows

В этой статье содержатся сведения о хранении паролей "неактивных".

Windows представляет пароли в строках ЮНИКОД 256 символов, но диалоговое окно входа ограничено 127 символами. Поэтому самый длинный возможный пароль имеет 127 символов. Такие программы, как службы, могут использовать более длинные пароли, но их необходимо установить программным способом.

Операционная система Windows сохраняет пароли различными способами для различных целей.

Пароли, хранящиеся как OWF

Для использования в сети Windows, включая домены Active Directory, пароль хранится двумя разными способами: как односторонняя функция LAN Manager (LM OWF) и как NT OWF. "Односторонняя функция" — это термин, который обозначает односторонняя математическая трансформация данных. Преобразуемые данные можно преобразовать только с помощью шифрования одним способом и не могут быть отменены. Наиболее распространенным типом односторонней функции является криптографический хэш. Хэш — это небольшой набор данных, который математически привязан к некоторому большему набору данных, из которого вычисляется хэш. Если изменяется более крупный набор данных, хэш также изменяется. Хэши полезны, например, в качестве контрольной суммы, чтобы убедиться, что данные не были изменены в передаче. Криптографический хэш — это хэш, который выполняет определенные свойства. Криптографический хэш должен, например, создаваться таким образом, чтобы он был математически неубедим в разумном количестве времени для вывода большего набора данных только из хэша. Аналогичным образом, математически невозможно найти два набора больших данных, которые создают один и тот же хэш.

Существует множество различных типов односторонняя функция. Все хэш-функции — это односторонняя функция. Однако обычные криптографические функции, которые обычно являются обратимыми, также можно использовать для создания односторонняя функция. Это можно сделать, переключив данные и ключ в криптографической функции и зашифровав фиксированное значение (ключ) с помощью данных в качестве ключа. Вот как вычисляется хэш LM. Хэш LM вычисляется следующим образом:

  1. Пароль заполняется байтами NULL до 14 символов. Если пароль длиннее 14 символов, он заменяется 14 байтами NULL для оставшихся операций.
  2. Пароль преобразуется во все верхние регистры.
  3. Пароль разделен на два 7-байтовых (56-разрядных) ключа.
  4. Каждый ключ используется для шифрования фиксированной строки.
  5. Два результата из шага 4 объединяются и хранятся как хэш LM.

Алгоритм OWF LM включен в Windows для обратной совместимости с программным обеспечением и оборудованием, который не может использовать более новые алгоритмы.

Хэш NT — это просто хэш. Пароль хэшируется с помощью алгоритма MD4 и сохраняется. NT OWF используется для проверки подлинности членами домена как в Windows NT 4.0, так и в более ранних доменах и в доменах Active Directory.

Ни хэш NT, ни хэш LM не соленые. Соль — это процесс, который объединяет пароль со случайным числовым значением (солью) перед вычислением односторонняя функция.

Пароли, хранящиеся в Active Directory

Неактивных паролей хранятся в нескольких атрибутах базы данных Active Directory (NTDS). DIT-файл). Эти атрибуты перечислены в следующей таблице:

Атрибут Active Directory Содержимое
unicodePwd Зашифрованный хэш NT
dbcsPwd Зашифрованный хэш LM
ntPwdHistory Зашифрованные хэши NT — журнал паролей
lmPwdHistory Зашифрованные хэши LM — журнал паролей
supplementalCredentials Ключи Kerberos, WDigest и т. д.

Примечание.

Хранилище хэшей LM по умолчанию отключено с Windows Vista и Windows Server 2008.

При хранении в DIT-файле хэш NT защищен двумя уровнями шифрования. В Windows Server 2016/Windows 10 и более поздних версиях сначала шифруется с помощью DES для обратной совместимости, а затем с помощью CNG BCrypt AES-256 (см. BCRYPT_AES_ALGORITHM CNG). Предыдущие версии Windows шифруют хэши NT с помощью двух уровней шифрования DES + RC4.

Дополнительные сведения о дополнительных учетных данных см. в разделе MS-SAMR: дополнительные функцииCredentials и дополнительные структуры учетных данных.

Пароли, хранящиеся в локальном SAM

На членах домена и рабочих станциях хэши паролей учетной записи локального пользователя хранятся в локальной базе данных диспетчера учетных записей безопасности (SAM), расположенной в реестре. Они шифруются с помощью одинаковых алгоритмов шифрования и хэширования, что и Active Directory. Пароли в атрибуте дополнительныхCredentials для учетных записей локальных пользователей также хранятся в локальной базе данных SAM с Windows Server 2016.

Кэшированные учетные данные

Windows также сохраняет средство проверки паролей в членах домена, когда пользователь домена входит в этот член домена. Этот проверяющий средство можно использовать для проверки подлинности пользователя домена, если компьютер не может получить доступ к контроллеру домена. Средство проверки паролей также часто называется кэшируемыми учетными данными. Он вычисляется путем приема хэша NT, объединения имени пользователя к нему, а затем хэширования результата с помощью хэш-функции MD4.

Как работают пароли в Windows

В Windows и многих других операционных системах одним из способов проверки подлинности удостоверения пользователя является использование секретной фразы или пароля.

Мы рекомендуем использовать безопасную многофакторную проверку подлинности, например смарт-карту, FIDO и Windows Hello для бизнеса. Однако проверка подлинности паролей по-прежнему требуется в некоторых сценариях.

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

Параметры политики паролей управляют сложностью и временем существования паролей. Политики паролей влияют на пароли Windows, а не обязательно функции паролей.

Возможность изменения паролей пользователей регулируется политиками паролей и доступными интерфейсами. Например, через Secure Desktop пользователи могут изменять пароль в любое время на основе политик паролей, администрируемых системным администратором или администратором домена. Такие функции, как Windows Vault, BitLocker и шифрование файловой системы, позволяют пользователям изменять пароли, относящиеся к этой функции.

Использование паролей в Windows

При входе пользователя пароль, который типы пользователей преобразуются в оба типа односторонних функций и хранятся в памяти процессом службы подсистемы локального центра безопасности (LSASS). Если пользователь, использующий локальную учетную запись для проверки подлинности, NT OWF сравнивается с локально хешированием NT и если они совпадают, пользователь вошел в систему. Если пользователь выполняет проверку подлинности в домене Active Directory с помощью имени узла для доступа к ресурсу, хэш NT используется в входе Kerberos в центр распространения ключей (KDC), который обычно является контроллером домена.

Kerberos нельзя использовать в следующих ситуациях:

  • Проверка подлинности в домене под управлением Только Windows NT 4.0 или более ранней версии
  • Доступ к ресурсу в члене домена Active Directory с помощью IP-адреса, а не имени узла
  • Доступ к ресурсу на компьютере, который не является членом домена Active Directory
  • Доступ к ресурсу на компьютере, который является членом домена Active Directory, но не является доверенным по вашему домену
  • Доступ к любому ресурсу на компьютере под управлением, который не поддерживает Kerberos

В этих ситуациях процесс проверки подлинности использует два разных протокола, называемых LAN Manager и NTLM. Процесс начинается с клиента, запрашивающего вызов с сервера проверки подлинности. После получения задачи клиент вычисляет ответ на эту проблему. Это делается путем первого заполнения двух хэшей пароля со значениями NULL до 168 бит. Затем 168 бит каждого хэша разделяются на три 56-разрядных клавиши DES. Затем шесть ключей DES используются для шифрования задачи. Три текста шифра, созданные с помощью хэша LM, объединяются и становятся ответом LAN Manager. Три текста шифра, созданные с помощью хэша NT, объединяются и становятся ответом NTLM.

Функции, используемые для вычисления ответа, могут быть изменены параметром уровня совместимости LM в параметре сетевой безопасности: параметр групповой политики уровня проверки подлинности LAN Manager. Если это значение равно 1 или ниже, клиент отправит исходные ответы LAN Manager и NTLM. Если задано значение 2, отправляется только ответ NTLM. Если для него задано значение 3 или выше, используется новая версия обоих протоколов. Версия NTLM называется NTLMv2. Версия lan Manager часто называется LMv2. Оба протокола используют хэш NT для вычисления ответа и используют вызов на стороне клиента, а не или в дополнение к вызову сервера. Кроме того, если для параметра уровня совместимости LM задано значение 1 или выше, то ответ NTLM отметается по времени, чтобы предотвратить атаки на воспроизведение. Сведения о параметре уровня совместимости LM см. в разделе "Безопасность сети: уровень проверки подлинности LAN Manager".

Надежные пароли

Пароли предоставляют первую строку защиты от несанкционированного доступа к вашей организации. Начиная с Windows Server 2003, Windows проверяет сложность пароля учетной записи администратора во время установки операционной системы. Если пароль пуст или не соответствует требованиям сложности, диалоговое окно установки Windows предложит создать надежный пароль для учетной записи администратора. Если вы оставьте этот пароль пустым, вы не сможете получить доступ к этой учетной записи через сеть.

Слабые пароли предоставляют злоумышленникам легкий доступ к компьютерам и сети, а надежные пароли значительно сложнее взломать. В следующей таблице сравниваются слабые и надежные пароли.

Слабый пароль Надежный пароль
Пробел Длиной по крайней мере семь символов
Содержит легко обнаруживаемые или известные сведения, например имя пользователя или доменное имя Содержит "секрет" или случайные сведения
Аналогично предыдущим паролям Значительно отличается от предыдущих паролей
Содержит полное слово словаря Содержит сочетание следующих символов:

— прописные буквы

- Строчные буквы

-Цифры

— Символы, включая пробелы

Примером надежного пароля является J*p2leO4>F.

Пароль может соответствовать большинству критериев надежного пароля, но по-прежнему довольно слабым. Например, Hello2U! является относительно слабым паролем, хотя он соответствует большинству критериев для надежного пароля, а также соответствует требованиям к сложности политики паролей. H!elZl2o — это надежный пароль, так как слово словаря пересекается с символами, цифрами и другими буквами. Важно обучить пользователей преимуществам использования надежных паролей и научить их создавать пароли, которые на самом деле сильны.

Вы можете создать пароли, содержащие символы из расширенного набора символов ANSI. Использование расширенных символов ANSI увеличивает количество символов, которые можно выбрать при создании пароля. В результате может потребоваться больше времени для программного обеспечения взлома паролей, чтобы взломать пароли, содержащие эти расширенные символы ANSI, чем это делает для взлома других паролей. Прежде чем использовать расширенные символы ANSI в пароле, тщательно протестируйте их, чтобы убедиться, что пароли, содержащие расширенные символы ANSI, совместимы с приложениями, которые использует ваша организация. Обратите особое внимание на использование расширенных символов ANSI в паролях, если в вашей организации используется несколько различных операционных систем. Например, эти системы могут стандартизироваться в ISO-8859-15. Фактическая реализация протокола в Windows часто использует ЮНИКОД или UTF8, а не фактическую кодировку ANSI.

Примеры паролей, содержащих символы из расширенного набора символов ANSI, — kUμ!\0o и Wf©$0k#»gªrd.

Парольные фразы в Windows

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

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

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

Существует несколько способов убедиться, что хэш LM не хранится; одним из них является использование паролей или парольной фразы дольше 14 символов. Вы также можете использовать сетевую безопасность: не сохраняйте хэш-значение LAN Manager в следующем параметре групповой политики изменения пароля. Использование этого параметра политики глобально отключает хэши хранилища LM для всех учетных записей. Изменение вступают в силу при следующем изменении пароля. Так как эффект политики не является непосредственным, вы не сразу заметите какие-либо потенциальные проблемы взаимодействия, вызванные отсутствием хэшей LM.

Локальные политики паролей, доступные в Windows

Вы можете реализовать параметр политики паролей, который применяет требования к сложности паролей. Дополнительные сведения об этом параметре политики см. в разделе "Пароль" в соответствии с требованиями к сложности. Сведения о применении политики паролей см. в разделе "Применение или изменение политики паролей". Сведения обо всех доступных параметрах политики паролей см. в разделе "Политика паролей".

Более детальной политики паролей, доступной через службы домен Active Directory (AD DS)

Начиная с Windows Server 2008, вы можете использовать многоуровневые политики паролей для указания нескольких политик паролей и применения различных ограничений паролей и политик блокировки учетных записей к разным наборам пользователей в одном домене. Например, чтобы повысить безопасность привилегированных учетных записей, можно применить более строгие параметры к привилегированным учетным записям, а затем применить менее строгие параметры к учетным записям других пользователей. В некоторых случаях может потребоваться применить специальную политику паролей для учетных записей, пароли которых синхронизируются с другими источниками данных.

Для хранения детально настроенных политик паролей в схеме AD DS существуют два новых класса объектов:

  • Контейнер параметров пароля
  • Параметры пароля

Дополнительные сведения об этих политиках см. в ad DS: подробные сведения о политиках паролей.