Организация безопасности в сети на примере системы Cerberos, страница 3

Полная секретность

Сервер квитанций, удостоверившись в легальности запроса и личности пользователя, отсылает ему ответ, содержащий две вещи: многократно используемую квитанцию на получение доступа к запрашиваемому серверу и новый ключ сессии. Квитанция на получение доступа шифруется секретным ключом, разделяемым только сервером квитанций и тем сервером, к которому предоставляется доступ. Новый ключ сессии содержится не только в самом сообщении, посылаемом клиенту, но и внутри квитанции на получение доступа.

Все сообщение шифруется старым ключом сессии клиента, так что его может прочитать только этот клиент. Когда клиент расшифровывает поступившее сообщение, то он отсылает серверу, к которому он хочет получить доступ, квитанцию на получение доступа и аутентификатор, зашифрованный новым ключом сессии.

В этом месте клиент также может захотеть проверить идентичность сервера перед тем, как начать с ним работать. Взаимная процедура аутентификации предотвращает любую возможность попытки получения неавторизованным пользователем доступа к секретной информации от клиента за счет подмены сервера.

При успешном завершении описанного процесса клиент и сервер уверены в секретности своих транзакций. Кроме этого, они имеют ключ сессии, который могут использовать для шифрации будущих сообщений.Kerberos предоставляет также механизм для поддержки аутентификации между Кеrberos-областями. Два Kerberos-сервера регистрируют один другого, что означает, что Kerberos-сервер в одной области разделяет некоторый секретный ключ с Kerberos-сервером другой области. Схема подразумевает, что эти серверы доверяют друг другу в вопросе аутентификации пользователей. Кроме этого, серверы приложений в одной области должны доверять Kerberos-серверу другой области

Клиент, который хочет получить доступ к серверу в другой Kerberos-области, должен сначала запросить квитанцию от своего собственного сервера квитанций для доступа к серверу квитанций другой области.

С этой квитанцией клиент обращается к удаленному серверу квитанций для получения квитанции на доступ к некоторому удаленному серверу. Квитанция на доступ, которую клиент предоставляет удаленному серверу, содержит идентификатор области, в которой пользователь прошел аутентификацию. Затем удаленный сервер решает, должен ли он обслуживать запрос этого клиента.

Применение описанной схемы связана с одной проблемой, а именно, она плохо масштабируется. Если имеется п областей, то должно быть п х (п-1)/2 секретных ключей, которыми нужно обменяться для того, чтобы каждая Kerberos-область могла работать с каждой другой Kerberos-областью. Это создает большую дополнительную нагрузку на сеть и на сами Kerberos-серверы. По этой причине претендующая на успех инсталляция системы Kerberos должна основываться на небольшом количестве больших Kerberos-областей, а не на большом количестве маленьких областей.