Часто задаваемые вопросы (FAQ) по паролям Windows

Автор Ruterk, 31 мая 2012, 21:19:20

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ruterk

В: Что такое парольная защита?
О: Пожалуй, никто не станет спорить о том, что на сегодняшний день операционные системы на базе Windows NT являются самыми популярными в мире. Это делает их весьма уязвимыми мишенями для различного рода хакеров, взломщиков и недобросовестных пользователей. Широкое распространение глобальной сети только усугубляет ситуацию. Чтобы обеспечить персонализацию хранимых данных пользователя или системы и уберечь их от доступа третьих лиц, была придумана технология парольной защиты. В настоящее время, в операционных системах Windows, парольная защита является основной базовой системой защиты. Доступ к приватным данным в этом случае возможен только при знании оригинального пароля, обычно слова или фразы. На практике это выглядит так: программа или система при попытке доступа к защищенным данным запрашивает текстовый пароль. Этот пароль проверяется с оригинальным значением и, если эти значения совпадают, система разрешает доступ к защищенным ресурсам, иначе отклоняет его. Основной недостаток парольной защиты состоит в том, что программе или системе необходимо где-то хранить оригинальный пароль, чтобы в последствие была возможность сравнивать его с вводимыми значениями.

В: Как хранятся пароли в операционной системе?
О: Но не все так плохо, система Windows NT была разработана таким образом, чтобы не хранить оригинальные, текстовые значения паролей. "Как так?" - спросите вы. А очень просто. Существуют специальные криптографические алгоритмы свертки паролей, которые работают только в одну сторону. Поэтому их еще называют OWF - функции одностороннего преобразования. Грубо говоря, можно получить хэш от пароля, но пароль из хэша не получится. Как это работает в Windows? При создании учетной записи, пользователь вводит начальный пароль, который, однако, не хранится в открытом виде, а хэшируется с помощью OWF функции. Получаемый хэш пароля сохраняется в системе. В дальнейшем, при попытке входа, система запрашивает пользователя пароль, также хэширует его и полученный хэш сравнивает с оригинальным хэшем, сохраненным ранее. Если эти значения совпадают, то пароль, естественно, тоже. Таким образом, оригинальный текстовый пароль не хранится в системе. Более того, существуют и получают распространения новые алгоритмы, которые не хранят даже хэш. Такой алгоритм, к примеру, используется при шифровании паролей Internet Explorer 7-8. Подробнее с ним можно ознакомиться в нашей статье.

В: Как шифруются пароли?
О: Windows NT для хэширования паролей пользователей использует 2 алгоритма: LM, доставшийся нам в наследство от сетей Lan Manager, в основе которого лежит простейшее преобразование DES, и NT, на основе функции хэширования MD4.
LM, как более слабый и уязвимый, по умолчанию не поддерживается новейшими системами Windows Vista и Windows 7, однако его можно включить. Более того, прослеживается тенденция его полного исключения или замещения. Важно знать, что при установленной опции хэширования LM (а она по умолчанию включена в Windows XP), все пароли пользователей считаются достаточно уязвимыми. Как правило, для взлома большинства таких паролей требуется несколько минут.

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

В: Где хранятся хэши паролей?
О: Итак, мы установили, что пароли пользователей в системе Windows преобразуются в специальные значения - хэши. LM и NT хэши имеют фиксированный размер - 16 байт и могут хранится в двух хранилищах: SAM - для обычных учетных записей и Active Directory - учетные записи домена.

Обычные учетные записи, содержащие имя пользователя, его пароль и другую служебную информацию, хранятся в реестре Windows NT, а именно файле SAM (от англ. Security Account Manager). Этот файл находится на жестком диске в каталоге %windows%/system32/config. Где %windows% - путь в вашему каталогу Windows. Например, С:/Windows/System32/Config/SAM. Система имеет привилегированный доступ к файлу SAM, поэтому пока она загружена, доступ к файлу запрещен даже администраторам, однако Windows Password Recovery легко обходит это ограничение. Кроме того, несомненный интерес для потенциального взломщика представляют резервная копия файла SAM.SAV и сжатая архивная копия SAM в каталоге %windows%/Repair. Другой способ доступа к файлу SAM - запуск специальной программы с загрузочного диска с последующим копированием файла. Пароли, а точнее хэши, пользователей дополнительно шифруются при помощи утилиты SYSKEY, служебные данные которой находятся в файле реестра SYSTEM. Поэтому для извлечения хэшей из SAM, потребуется также файл SYSTEM, находящийся в той же папке, что и SAM.

Учетные записи домена хранятся в базе данных Active Directory. Обычно база данных AD располагается в файле %Windows%/ntds/NTDS.DIT и является сердцем Active Directory. Хэши пользователей шифруются несколько иначе, чем в SAM, но для расшифровки также требуется файл SYSTEM. Доступ к базе также полностью контролируется системой, однако в отличие от SAM, база ntds.dit устойчива к модификации извне.

В: Если все так просто, то почему не запретить доступ всех пользователей к SAM или Active Directory?
О: Так и сделано. По умолчанию, только система имеет доступ к этим файлам. Однако эти ограничения довольно легко обходятся. Например, Windows Password Recovery может импортировать хэши из текущих (заблокированных системой) файлов SAM и Active Directory. Кроме того, система хранит хэши в памяти компьютера для быстрого доступа к ним, поэтому возможен также дамп памяти компьютера.

В: Я не понял, что нужно скопировать с другого компьютера, чтобы расшифровать пароли на своем?
О: Если это обычный компьютер, то следующие файлы: SAM, SYSTEM (а также желательно SECURITY и SOFTWARE). В случае с сервером, нужны эти же файлы и еще ntds.dit.

В: Сколько времени надо чтобы подобрать пароль если известен LM хэш?
О: Самым большим недостатком алгоритма получения LM-хэша является разделение пароля на две части, каждая из которых состоит из 7 символов. Если вводимый пользователем пароль менее 14 символов, то к нему добавляются нули, чтобы получить строку, состоящую из 14 символов. Если пароль пользователя превышает 14 символов, то LM-хэш соответствует пустому паролю. Каждая из 7-символьных половин пароля шифруется отдельно , что значительно упрощает и ускоряет процесс подбора пароля. Другой серьезный недостаток LM-хэша связан с тем, что в процессе шифрования все буквенные символы пароля переводятся в верхний регистр. Т.е. хэши паролей PASSWORD, password, Password или pAsswOrd будут совершенно одинаковыми. Применив brute force атаку отдельно к каждой половине, современные персональные компьютеры могут подобрать численно-цифровой LM-хеш за несколько минут (или даже секунд, при использовании Rainbow атаки). Давайте подсчитаем. Чтобы подобрать пароль методом перебора для любых буквенно-цифровых комбинаций, надо разбить пароль на две части по 7 символов и перебрать 36+36^2+..36^7=80 603 140 212 комбинации. Причем поиск всех хэшей осуществляется одновременно. Скорость перебора в программе Windows Password Recovery на компьютере Intel Core i7 составляет более 100 млн. паролей в секунду. Округлим в сторону уменьшения до 100. 80 603 140 212 / 100 000 000 = 806 секунд. Т.е. мы гарантированно подберем пароль за чуть более 10 минут методом грубого перебора.

В: Сколько времени надо чтобы подобрать пароль если известен NT хэш?
О: С NT хэшами все немного сложнее. NT хэш не имеет недостатков, присущих LM. Поэтому вероятность подбора пароля полностью зависит от его длины и сложности, падая лавинообразно. Даже несмотря на то, что сам по себе алгоритм преобразования NT более быстрый. Рассмотрим следующую таблицу зависимости время перебора пароля от его длины и сложности (для скорости перебора 100 млн. п/c на обычном четырехядерном ПК)

[attachimg=1]

В: Чем отличается обычная атака перебором от GPU brute-force атаки?
О: Для конечного пользователя, исползующего программу, ничем, за исключением того, что GPU атака перебирает пароли быстрее в несколько раз. Или даже в несколько десятков раз, в зависимости от используемого оборудования. Например, имея достаточные средства, легко можно собрать компьютер, перебирающий NTLM пароли со скоростью 10 миллиардов паролей в секунду или даже больше. Представьте теперь, что вы собрали такой ПК. Тогда таблица времени перебора будет выглядеть следующим образом:

[attachimg=2]

В: Сколько времени надо чтобы узнать NT пароль, если LM пароль известен?
О: Практически, мгновенно.

В: Почему нельзя просто удалить/стереть хэш, т.е. сделать пустой пароль?
О: Почему нельзя? Можно. Например, используя вот эту утилиту. Такой вариант вполне устраивает тех, кому надо любой ценой получить доступ к своей (или чужой, например, соответствующим органам власти) учетной записи. Более того, с помощью вышеупомянутой утилиты можно сделать так: сохранить хэш, сбросить хэш, войти в учетную запись с пустым паролем, произвести необходимые манипуляции, а затем восстановить обратно сохраненный хэш. Но не все так просто. Сбросив пароль и получив доступ к учетной записи, вы не сможете узнать большинство других паролей. Почему? Потому что пароль пользователя участвуется в создании мастер ключа пользователя, применяемый в шифровании DPAPI, EFS и других подсистемах Windows. Т.е., сбросив пароль, вы в дальнейшем не сможете расшифровать следующие данные: файлы, зашифрованные при помощи EFS, пароли учетных записей Outlook, пароли Internet Explorer 7-9, пароли сетевых подключений (RAS, DSL, VPN etc.), сетевые пароли к другим компьютерам, пароли беспроводной сети, MSN Messenger credentials, Google Talk & Google Chrome passwords, Skype и т.д.

В: Другими словами, чтобы расшифровать пароль, например, Internet Explorer, от другой учетной записи, мне сначала нужно узнать пароль этой учетной записи?
О: Совершенно верно. Либо уже иметь доступ к загруженной и работающей учетной записи.

В: А есть какие-нибудь бэкдоры или секретные входы?
О: Как и везде. Например, пароль учетной записи иногда может храниться в текстовом виде в секретах. Пароли ко многим системным учетным записям также легко расшифровываются. Более того, если вы уже вошли в систему, то текстовый пароль хранится в памяти на протяжении жизни вашего профиля!

В: Для этого при импорте хэшей с локального компьютера запрашивается файл реестра SECURITY?
О: Да, основное назначение Security - хранилище т.н. LSA Secrets. В этих секретах (но не только к них) могут храниться plaintext пароли. В Интеллектуальной атаке реализована проверка возможных уязвимостей системы и, как следствие, быстрая расшифровка некоторых паролей.

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

В: Что делать, если файл SAM безнадежно испорчен? Можно ли в этом случае восстановить оригинальный пароль?
О: Можно, хотя у вас уже не будет доступа в систему. Можно, например, подобрать пароль по мастер ключу пользователя. В Passcape Software имеются такие наработки. Существуют также кэшированные пароли домена. Если компьютер входит в домен, то по умолчанию имена и хэшированные пароли последних десяти пользователей, регистрировавшихся на этом компьютере, кэшируются в его локальном системном реестре в разделе SECURITY/Policy/Secrets. Можно воспользоваться программой Reset Windows Password для дампа хэшей (их еще называют MSCACHE) с последующей возможной расшифровкой их в Network Password Recovery Wizard или другой аналогичной программе.

В: Мне надо получить доступ к учетной записи. Объясните на пальцах чайнику, что и как лучше сделать.
О: Если кратко, есть два способа восстановления доступа к учетной записи:
Сбросить пароль, например, сделав его пустым. Для этого есть специальные утилиты, самая мощная и корректная из которых - Reset Windows Password. Принцип ее действия прост: запускаете программу создания загрузочного диска. Создаете с помощью нее загрузочный CD/DVD или USB диск Reset Windows Password. Далее включаете компьютер с учетной записью, доступ к которой надо получить, и меняете настройки БИОС таким образом, чтобы разрешить загрузку с CD/DVD /USB. На некоторых компьютерах, эта опция уже включена. Загружаетесь с загрузочного диска RWP и, следуя указаниям мастера программы, сбрасываете пароль учетной записи. Все. Теперь можно выполнить вход в систему под этой учетной записью. Однако сброс пароля гарантирует только доступ к учетной записи. Если вам в дальнейшем надо получить доступ к файлам, зашифрованным EFS или восстановить другие пароли (например сетевые), то этот способ не годится.

В: Как сделать пароль "безопаснее"?
О: Обезопасить себя от угадывания пароля потенциальными злоумышленниками можно несколькими способами:

Не использовать словарные слова (на любом языке), имена, номера, повторяющиеся последовательности букв и цифр, абревиатуры, клавиатурные комбинации, персональную информацию и т.д. Такие пароли подбираются особенно легко.

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

Расширить используемый в пароле набор символов. Например, заменить в пароле символ а на @. Использование национальных символов также радикально увеличивает стойкость пароля. Использовать редко встречающиеся символы, например ~. Не стоит использовать сложнозапоминающиеся пароли, состоящие из случайного набора символов, если вы не гений, конечно.

Не используйте один единственный пароль для входа в Windows, Веб сайтов, сервисов и т.д.

Если вы боитесь забыть все свои пароли, запишите их в отдельный файл и установите пароль к нему. Хорошая парольная защита, например, использована в архиваторе Rar. Не храните этот файл на локальном компьютере.

Никогда не вводите свой пароль на чужом компьютере. Не стоит записывать пароли на стикерах и приклеивать их к монитору.

Подумать о дополнительной защите. Например, если установить опцию SYSKEY startup password, то с вероятностью, близкой к 100%, ваши пароли не сможет подобрать ни один парольный взломщик, не угадав начальный пароль SYSKEY.

Источник: http://www.passcape.com/