пятница, 4 февраля 2011 г.

Что делать с паролями?

Часто ли вы используете сложные пароли? Используете ли вы у себя в организациях парольные политики? Используете ли для каждого ресурса уникальные пароли? Клеят ли ваши пользователи цветные стикеры с написанными паролями на свои мониторы? Думаю, можно не отвечать на эти вопросы.
 В настоящее время для раскрытия паролей существуют следующие технологии.
Атака по словарю (Dictionary attack). Из слов, содержащихся в словаре, используя необходимый алгоритм (LM, NTLM, MD5, SHA-1), вычисляется хеш-функция. Вычисленное значение сравнивается с оригиналом. Это очень быстрый метод, но он позволяет подобрать пароль, только если он присутствует в словарях. Этим методом можно выявить, например, пароль – Wizard.
Полный перебор (Brute Force attack). Выбирается максимальная длина предполагаемого пароля, определяются символы, регистр символов, цифры, специальные символы из которых может состоять пароль и производится полный перебор всех возможных значений. Это метод наиболее долгий (речь может идти о тысячах лет), зато он позволяет гарантированно подобрать любой пароль. Этим методом можно выявить, например, пароль – 1WiuRhn@.
Смешанная атака (Hybrid attack). Для подбора используются слова из словарей, но к ним добавляются по совершенно «немыслимым» алгоритмам дополнительные символы или же в словах производится замена некоторых букв, например «A» на «@», «O» на «0» и т.д. Этот метод относится к быстрым, длительность же перебора определяется фантазиями, заложенными в алгоритм изменений и дополнений словарных слов. Этим методом можно выявить, например, пароль – Wiz@rd555.
Радужные таблицы (Rainbow Tables attack). Процесс хеширования занимает 99.9% машинного времени, тогда как операция сравнения занимает всего 0.1%. В настоящее время уже существуют вычисленные значения всех вариантов комбинаций вплоть до 14 символов для любых хеш-функций. Занимать такие таблицы могут десятки и сотни гигабайт, но зато они позволяют крайне быстро подобрать любой пароль вида – wH7Ui@$kjH40%b.
Что новенького? Соль в студию! Для того, чтобы защититься от полного перебора, который уже не представляет никакой сложности, при условии что длина пароля не велика, используется соль.  Соль представляет из себя дополнительный набор символов, который добавляется к основному паролю для того, чтобы увеличить длину и тем самым усложнить его. Для каждой системы алгоритм вычисления соли уникальный, но в пределах одной системы он одинаковый для всех учетных записей. Это позволяет не хранить соль для каждого пароля, а хранить только сам алгоритм. После того как соль добавлена к паролю производится вычисление хеша. Хочу заметить, что хеш можно рассчитывать дважды, вначале для пароля, а потом для хеша с солью. Получается следующая функция: Хеш=Function(Function(пароль)+соль).

Меры
Длина пароля. Пароль должен быть как можно длиннее. Оптимально использовать пароль более 15 символов. Для того, чтобы запомнить такой пароль можно использовать целые фразы или предложения из книг. Предположу, что скоро со всей мировой литературы будут сделаны радужные таблицы, но это уже ближе к юмору, чем к правде.
Сложные пароли. Используем большие, маленькие буквы, цифры, а также специальные символы. Если использовать большее число различных символов, то количество возможных комбинаций существенно возрастает. Есть метод создания и запоминания сложного пароля по первым нескольким символам слов входящих в фразу. Например, фраза «Зимний лес вырастил нам Ёлочку» может быть превращена в пароль «ЗимлесвырнамЁло», что с учетом транслитерации даст нам пароль «Pbvktcdshyfv~kj». Как раз 15 символов. В неё же можно добавить цифр и специальных символов по вкусу.
Время действия паролей. Пароли необходимо периодически менять. Для этого используется максимальный срок действия пароля. Однако пользователь может тут же вернуться к своему прежнему паролю, поэтому для исключения такой возможности устанавливается минимальный срок действия пароля.
           История паролей. Для того, чтобы новый пароль не повторял ранее использовавшийся существует архив хешей, с которыми сравнивается хеш нового пароля.
Отличие пароля. Чтобы последующий пароль не был очень похож на предыдущий определяется количество символов, на которые должен отличаться новый пароль от старого. Если бы его не было, можно было бы менять пароли примерно так: Password1, Password2, Password3 и т.д. Также не следует использовать одинаковые пароли для разных ресурсов.
Замечание. Данный метод совершенно не безопасен, так как для того, чтобы контролировать такие отличия, пароли нужно хранить в открытом виде, что сводит на нет всю безопасность! Похоже, что этим грешит, например, компания Конфидент в своем продукте DallasLock!
Блокировки учетных записей. Чтобы исключить возможность атак методом перебора при работающей ОС используется блокировка учетных записей, после определяемого числа неверных попыток.  Учетная запись может разблокироваться автоматически или же разблокировать ее может только администратор.
Журнал. Все попытки входа, особенно неудачного должны протоколироваться. В журнал можно записывать предлагаемое имя и предлагаемый пароль.

Дополнительные меры к ОС от Microsoft
Как отключить LM? Отключение LM-хеширования необходимо всегда, если только в сети не используются старые версии Windows 9x. Эта политика доступна в разделе «Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Параметры безопасности». Нужно установить для политики «Сетевая безопасность: не хранить хэш-значения LAN Manager при следующей смене пароля» значение «Включено». Эта настройка присутствует  как в локальной политики безопасности, так и в доменной.
Шифрование базы данных паролей. База данных паролей SAM (Security Account Manager), начиная с Windows 2000, шифруется 128-битным ключом при помощи утилиты Syskey. По умолчанию пароль для генерации ключа создается автоматически, ключ хранится в файле System в той же папке, что и база данных SAM. При необходимости можно изменять пароль и указывать на дискету при выборе местоположения.
Права доступа. В ОС Windows база данных, в которой содержатся хеши паролей учетных записей называется SAM. По умолчанию путь к этой базе находится в «C:\WINDOWS\system32\config». Доступ к данной папке должен быть обязательно ограничен на уровне NTFS.
Блокировка загрузки другой ОС. Для того, чтобы усложнить копирование файлов SAM и System из ОС, необходимо запретить загрузку с других диском и/или носителей в BIOS, а также не использовать мультизагрузку. На BIOS лучше поставить пароль, а корпус системного блока опечатать.

Российский compliance
Особенно хотелось бы кинуть камень в огород ФСТЭК России по поводу того, что в каждом третьем их документе повторяется требование о длине пароля не менее 6 буквенно-цифровых символов. Стойкость такого пароля, даже при всей возможной сложности оставляет желать лучшего.
В среде виртуализации, при использовании среднего по мощности компьютера, атака методом Brute Force пароля в 6 символов, при максимальном наборе символов была оценена в 1.3 суток. Стоит ли говорить о мощной и распределенной вычислительной сети с использованием графических сопроцессоров? Ответ очевиден.

Где хранить пароли?
Все рано или поздно задаются этим вопросом. Я предложу лишь несколько вариантов:
·         в голове
·         в программах для хранения паролей
·         в зашифрованном архиве
·         в почтовом ящике типа gmail.com

Комментариев нет:

Отправить комментарий