Многие системы аутентификации используют для самой аутентификации или представления контекста доступа алгоритм шифрования с открытым ключом RSA. Способы аутентификации, основанные на RSA, сводятся к следующему алгоритму.
Аутентификация SSH
Для примера рассмотрим принцип RSA-аутентификации в пакете
ssh [www.cs.hut.fi
SSH] — Secure Shell. Пакет представляет собой функциональную замену программ
rlogin/rsh и соответствующего этим программам демона rshd. В пакет входят
Рис. 12.5. Аутентификация SSH
Аутентификация Lotus Notes
Система групповой работы Lotus Notes также использует для аутентификации
открытый ключ. При создании учетной записи пользователя генерируются 621-битный
приватный и соответствующий ему публичный ключи. Публичный ключ размещается
в доменной адресной книге (рис. 12.6). Приватный ключ подвергается шифрованию
закрытым ключом, который потом запрашивается у пользователя в качестве
пароля, и сохраняется в идентификационном файле.
Рис. 12.6. Аутентификация в Lotus Notes
Чтобы аутентифицироваться в системе, пользователь должен
указать идентификационный файл и набрать пароль, который позволит расшифровать
хранящийся в файле приватный ключ. После этого все пакеты, которыми пользователь
обменивается с сервером Notes, снабжаются цифровой подписью на основе
этого ключа. Сервер может проверить аутентичность подписи, используя хранящийся
в его адресной книге публичный ключ.
Более сложная ситуация возникает, когда пользователь должен аутентифицироваться
в другом домене, в адресных книгах которого он не числится. Чтобы сделать
такую авторизацию возможной, Notes вводит еще одно понятие: сертификат
домена. Этот сертификат также представляет собой пару ключей, пароль к
приватному ключу которой известен только администраторам домена. Каждый
идентификационный файл, создаваемый в домене, подписывается приватным
ключом этого сертификата (рис. 12.7).
Регистрируясь в чужом домене, пользователь предъявляет свои имя и публичный
ключ, подписанные сертификатом своего домена. Если принимающий домен не
знает такого сертификата, аутентификация отвергается. Чтобы домен мог
признать чужой сертификат, его администратор должен провести кросс-сертификацию,
а попросту говоря создать в доменной адресной книге документ, в котором
хранится публичный ключ сертификата домена [redbooks.ibm.com sg245341]
(рис. 12.8).
Рис. 12.7. Сертификат домена Lotus Notes
Рис. 12.8. Кросс-сертификация между доменами Lotus Notes
Методы, основанные на RSA и других алгоритмах шифрования,
не могут решить проблемы распространения прорыва безопасности между доверяемыми
системами: проникший в доверяемую систему взломщик получает доступ к приватным
ключам и может использовать их для немедленной регистрации в любой из
доверяющих систем или даже скопировать ключи для проникновения в эти системы
в более удобное время. Шифрование приватного ключа паролем несколько усложняет
осуществление такой операции, но в этом случае взломщик может осуществить
словарную атаку. Однако, как уже говорилось ранее, это является практически
неизбежной платой за разрешение автоматической регистрации в нескольких
системах.
В то же время криптографические методы практически устраняют опасность
имитации доверяемой системы путем подмены сетевого адреса и значительно
увеличивают надежность других методов аутентификации. Например, передача
пароля по сети в зашифрованном виде, особенно при использовании двухключевого
шифрования или динамических ключей, практически устраняет возможность
раскрытия пароля с помощью его подслушивания и т. д.
Есть основания утверждать, что использование криптографических методов
может решить многие проблемы безопасности компьютерных сетей и даже одиночных
компьютеров.