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

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

Разрешенная длительность сессии пользователя, содержащаяся в квитанции на получение квитанций, конфигурируется администратором, и может изменяться в зависимости от требований к защищенности сети: она может составлять 30 минут или 8 часов. Предоставление квитанции на определенное время защищает ее от неавторизованного пользователя, который может ее перехватить и использовать в будущем.

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

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

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

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

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