Схемы фиксированных паролей

Наиболее распространенный подход к организации хранения паролей пользователей - это их хранение в открытом виде в системных файлах; на них при этом устанавливаются атрибуты защиты от чтения и записи (например, при помощи описания соответствующих привилегий в списках контроля доступа операционной системы). Система сопоставляет введенный пользователем пароль с хранящейся в файле паролей записью. При этом не используются криптографические механизмы, такие как однонаправленные функции или шифрование. Недостатком данного метода является то, что злоумышленник может получить в системе привилегии администратора (в соответствии с которыми обладающий данным типом привилегий имеет все права доступа к системным файлам и ресурсам). Для усиления защиты этого способа хранения паролей может служить запись парольных файлов на внешние носители информации, такие как touch memory, смарт-карты и гибкие магнитные диски.
Более предпочтительным с точки зрения безопасности является метод хранения паролей с использованием односторонних функций (рис. 2.3) или шифрования. При проверке введенного пользователем пароля система вычисляет одностороннюю функцию и сравнивает результат с хранящимся значением в таблице паролей для данного идентификатора пользователя. В подобном случае файл, в котором хранится таблица, должен быть защищен только от записи. Применение односторонних функций или шифрование позволяет также защищать пароли в случае передачи их по общедоступным каналам. При использовании односторонней функции или шифрования следует помнить, что:
• не требуется ключевой информации, и эти методы не подпадают под действие экспортных ограничений;
• шифрование с точки зрения безопасности более предпочтительно.
Отдельно хотелось бы сказать о правилах формирования паролей. Некоторые системы, чтобы предотвратить выбор пользователем «слабых» паролей и не допустить или затруднить проведение атак по словарю на использующиеся пароли, предлагают собственные наборы знаков. Обычно правила формирования паролей ограничивают его длину снизу (например, 8 или 12 символами) и требуют для каждой такой записи наличия хотя бы одного знака из каждого набора символов (например, алфавит верхнего регистра, цифры и т.д.) или проверки, что предлагаемая запись не представляет собой слово, содержащееся в словаре, или имени пользователя (идентификатора пользователя), или специфической для данного пользователя информации. Нарушитель, владея информацией об используемых в системе правилах формирования паролей, может применить модифицированную словарную атаку. Целью подобных правил является уменьшение энтропии пароля пользователя, что позволяет сделать его недосягаемым для словарной атаки или для полного перебора.
Чтобы ослабить эффект от словарной атаки, каждый пароль перед применением односторонней функции может быть расширен с помощью случайной строки. Оба пароля - хэшироваиный и дополненный - в произвольной последовательности записываются в файл паролей. Когда пользователь вводит пароль, система генерирует случайную последовательность и применяет к введенному паролю и случайной последовательности одностороннюю функцию. Проведение атаки методом полного перебора затруднится вследствие увеличения объема вычислений (например, если случайная последовательность состоит из t символов, то сложность перебора увеличится в 21), а также вследствие необходимости привлечения дополнительных ресурсов для проведения атак данного типа. Заметим, что при помощи случайной последовательности два пользователя, выбрав одинаковые пароли, будут иметь различные записи в файлах паролей. В таких системах в качестве случайной последовательности может использоваться идентификатор пользователя.
Другим вариантом организации парольных схем является использование целых фраз. Хотя обладающая смыслом фраза по своей сути не может иметь случайный характер, тем не менее энтропия такого пароля остается на достаточно высоком уровне вследствие того, что фразу легче запомнить, чем пароль, имеющий случайный набор символов, вот почему в подобной записи можно использовать гораздо большее количество символов.
Пример
В качестве примера простой аутентификации рассмотрим организацию парольной защиты в операционной системе (ОС) Windows NT. Прежде чем пользователь получит доступ к некоторым ресурсам системы, он должен пройти через процедуру входа в систему, при этом подсистема безопасности должна распознать его по имени и проверить подлинность запроса по паролю. Пароль пользователя хранится в базе данных в двух вариантах -в виде, необходимом для проведения аутентификации между компьютерами, работающими под управлением ОС Windows NT (NT hash), и в виде, необходимом для аутентификации между компьютерами, работающими под управлением ОС Windows 95 или Windows for WorkGroups (Lan manager hash). Для формирования NT hash используется алгоритм MD 4. Для формирования Lan manager hash все алфавитные символы исходной строки пароля приводятся к верхнему регистру. Каждая из двух половин 14-байтного символьного пароля обрабатывается независимо от другой. Если длина пароля меньше 14 символов, то вторая половина заполняется нулями. На основании этих двух 7-байтных половин формируется ключ для шифрования по DES некоторого 64-битного числа. В результате получаются две половины 16-байтного хэшированного пароля.

Тэги: ,

Рекомендуем почитать