Аутентификация на основе многоразовых паролей
В современных операционных системах предусматривается централизованная служба аутентификации, которая выполняется одним из серверов сети и использует для своей работы базу данных. В этой базе данных хранятся учетные данные о пользователях сети. В эти учетные данные наряду с другой информацией включены идентификатор (login) и пароль (password) пользователя.
Процедуру простой аутентификации пользователя в сети можно представить следующим образом. При попытке логического входа в сеть пользователь набирает на клавиатуре своего компьютера свои идентификатор и пароль. Эти данные поступают для обработки на сервер аутентификации. В базе данных учетных записей пользователей, хранящейся на сервере аутентификации, по идентификатору пользователя находится соответствующая запись, из нее извлекается эталонное значение пароля и сравнивается с тем паролем, который ввел пользователь. Если введенная пользователем пара login/password совпала с эталонной, то аутентификация прошла успешно, пользователь получает легальный статус и те права и ресурсы сети, которые определены для его статуса системой авторизации.
В схеме простой аутентификации передача пароля и идентификатора пользователя может производиться следующими способами:
· в незашифрованном виде: пароли передаются по линии связи в открытой, незащищенной форме;
· в защищенном виде: все передаваемые данные (идентификатор и пароль пользователя, случайное число и метки времени) защищены посредством шифрования или однонаправленной функции.
Схема простой аутентификации с использованием пароля показана на рис. 5.1.
Рис. 5.1. Простая аутентификация с использованием пароля
Вариант аутентификации с передачей пароля пользователя в незашифрованном виде не гарантирует даже минимального уровня безопасности, так как пароль подвержен многочисленным атакам и легко компрометируется. Чтобы защитить пароль, его нужно зашифровать перед пересылкой по незащищенному каналу. Для этого в схему включены средства шифрования Еk и расшифрования Dk, управляемые разделяемым секретным ключом К. Проверка подлинности пользователя основана на сравнении присланного пользователем пароля РА и исходного значения , хранящегося на сервере аутентификации. Если значения РА и совпадают, то пароль РА считается подлинным, а пользователь А – законным.
Схемы организации простой аутентификации отличаются не только методами передачи паролей, но и видами их хранения и проверки. Наиболее распространенным способом является хранение паролей пользователей в открытом виде в системных файлах, причем на эти файлы устанавливаются атрибуты защиты от чтения и записи (например, при помощи описания соответствующих привилегий в списках контроля доступа операционной системы). Система сопоставляет введенный пользователем пароль с хранящейся в файле паролей записью. При этом способе не используются криптографические механизмы, такие как шифрование или однонаправленные функции. Очевидным недостатком данного способа является возможность получения злоумышленником в системе привилегий администратора, включая права доступа к системным файлам и, в частности, к файлу паролей.
Для обеспечения надежной защиты операционной системы пароль каждого пользователя должен быть известен только этому пользователю и никому другому, в том числе и администраторам системы. На первый взгляд то, что администратор знает пароль некоторого пользователя, не отражается негативно на безопасности системы, поскольку администратор, войдя в систему от имени обычного пользователя, получает права, меньшие, чем те, которые он получит, зайдя в систему от своего имени. Однако, входя в систему от имени другого пользователя, администратор получает возможность обходить систему аудита, а также совершать действия, компрометирующие этого пользователя, что недопустимо в защищенной системе. Таким образом, пароли пользователей не должны храниться в операционной системе в открытом виде.
С точки зрения безопасности предпочтительным является метод передачи и хранения паролей с использованием односторонних функций. Обычно для шифрования паролей в списке пользователей используют одну из известных криптографически стойких хэш-функций. В списке пользователей хранится не сам пароль, а образ пароля, являющийся результатом применения к паролю хэш-функции.
Однонаправленность хэш-функции не позволяет восстановить пароль по его образу, но позволяет, вычислив хэш-функцию, получить образ введенного пользователем пароля и таким образом проверить правильность введенного пароля. В простейшем случае в качестве хэш-функции используется результат шифрования некоторой константы на пароле.
Например, односторонняя функция может быть определена следующим образом:
,
где Р – пароль пользователя;
ID – идентификатор пользователя;
– процедура шифрования, выполняемая с использованием пароля Р в качестве ключа.
Такие функции удобны, если длины пароля и ключа одинаковы. В этом случае проверка подлинности пользователя А с помощью пароля РA состоит из пересылки серверу аутентификации отображения h(PA) и сравнения его с предварительно вычисленным и хранимым в базе данных сервера аутентификации эквивалентом h'(PA) – рис. 5.2. Если отображения h(PA) и h'(PA) равны, то считается, что пользователь успешно прошел аутентификацию.
Рис. 5.2. Использование односторонней функции для проверки пароля
Системы простой аутентификации на основе многоразовых паролей имеют пониженную стойкость, поскольку в них выбор аутентифицирующей информации происходит из относительно небольшого множества слов. Срок действия многоразового пароля должен быть определен в политике безопасности организации, и такие пароли должны регулярно изменяться. Выбирать пароли нужно так, чтобы они были трудны для угадывания и не присутствовали в словаре.
Схемы аутентификации, основанные на многоразовых паролях, не обладают достаточной безопасностью. Такие пароли можно перехватить, разгадать, подсмотреть или просто украсть.