Руководство FreeBSD

         

Одноразовые пароли


S/Key это схема с одноразовыми паролями, основанная на одностороннем хэше. FreeBSD использует хэш MD4 для совместимости, но другие системы используют MD5 и DES-MAC. S/Key была частью базовой системы FreeBSD начиная с версии 1.1.5 и используется также во все большем числе операционных систем. S/Key это зарегистрированная торговая марка Bell Communications Research, Inc.

Начиная с FreeBSD версии 5.0, S/Key была замещена на функциональный эквивалент -- OPIE (One-time Passwords In Everything). OPIE по умолчанию использует MD5.

Есть три различных вида паролей, о которых мы поговорим ниже. Первый вид это ваш обычный пароль UNIX® или пароль Kerberos; мы будем называть его ``пароль UNIX''. Второй вид это одноразовый пароль, сгенерированный программой S/Key key или программой OPIE и принимаемый командами keyinit или opiepasswd(1) и в приглашении login; мы будем называть их ``одноразовыми паролями''. Последний вид паролей это защищенные пароли, которые вы передаете программам key/opiekey (и иногда программам keyinit/opiepasswd), и которые эти программы используют для создания одноразовых паролей; мы будем называть его ``защищенными паролями'' или просто ``паролями''.

Защищенный пароль не имеет никакого отношения к вашему паролю UNIX; они могут быть одинаковыми, но это не рекомендуется. Защищенные пароли S/Key и OPIE не ограничены 8-ю символами, как старые UNIX пароли[1], они могут быть настолько длинными, насколько вы захотите. Очень часто используются пароли длиной в шесть или семь символов. По большей части система S/Key или OPIE работает полностью независимо от системы паролей UNIX.

Помимо паролей, есть два других вида данных, важных для S/Key и OPIE. Первый, известный как ``seed'' или ``ключ'', состоит из двух букв и пяти цифр. Другой, называемый ``счетчиком цикла'', это номер от 1 до 100. S/Key создает одноразовый пароль, соединяя ключ и защищенный пароль, а затем применяя MD4/MD5 столько раз, сколько указано счетчиком цикла и выдает результат в виде шести коротких слов на английском.
Эти шесть слов на английском и есть ваш одноразовый пароль. Система аутентификации (как правило PAM) хранит последний использованный одноразовый пароль, и пользователь аутентифицитуется если хэш вводимого пользователем пароля совпадает с предыдущим паролем. Поскольку используется односторонний хэш, невозможно сгенерировать следующий одноразовый пароль если получен предыдущий; счетчик цикла уменьшается после каждого успешного входа для поддержки синхронизации пользователя с программой login. Когда счетчик цикла уменьшается до 1, S/Key и OPIE должны быть переинициализированы.

В каждой из обсуждаемых ниже систем задействованы три программы. Программы key и opiekey получают счетчик цикла, ключ и защищенный пароль и создают одноразовый пароль или последовательный список одноразовых паролей. Программы keyinit и opiepasswd

используются для инициализации S/Key и OPIE соответственно, и для смены паролей, счетчиков цикла, или ключей; они принимают защищенный пароль или счетчик цикла, ключ и одноразовый пароль. Программы keyinfo и opieinfo проверяют соответствующие файлы (/etc/skeykeys или /etc/opiekeys) и печатают текущий счетчик цикла и ключ вызывающего пользователя.

Мы рассмотрим четыре вида операций. Первая это использование keyinit или opiepasswd через защищенное соединение для первоначальной настройки системы одноразовых паролей, или для изменения пароля или ключа. Вторая операция это использование в тех же целях keyinit или opiepasswd через незащищенное соединение, в сочетании с key или opiekey через защищенное соединение. Третья это использование key/opiekey для входа через незащищенное соединение. Четвертая это использование key или opiekey для генерации набора ключей, которые могут быть записаны или распечатаны для соединения из места, где защищенное соединение недоступно.


Содержание раздела