1. Алиса запрашивает разрешение у сервера Kerberos для входа на сервер Боба.
2. Сервер Kerberos проверяет, допускается ли Алиса на сервер Боба. (Примечание: серверу Kerberos не нужно знать, что Алиса – та, кем она себя назвала. Если это не она, протокол прервется на шаге 6.)
3. Сервер Kerberos высылает Алисе «билет», который она обязана отдать серверу Боба, и ключ к сеансу, который она может использовать, чтобы доказать Бобу, что она Алиса.
4. Алиса использует ключ к сеансу с сервера Kerberos для создания «удостоверения», которое она будет использовать, чтобы убедить Боба, что она Алиса.
5. Алиса посылает Бобу и билет, и удостоверение.
6. Боб проверяет. Если все подтверждается, он дает Алисе доступ. (Боб также имеет используемый совместно с сервером Kerberos долгосрочный ключ. Билет – это сообщение с сервера, зашифрованное в долгосрочном ключе Боба.)
Этот протокол защищен тем же способом, что и протоколы физических билетов. Сервер Kerberos печатает билеты. Он дает билеты Алисе, а она в свою очередь может предоставить их Бобу. Боб может утвердить билет, так как он знает, что Алиса получила его с сервера Kerberos.
И у этого протокола есть несколько приятных свойств. Долгосрочные ключи Алисы и Боба, которые похожи на пароли, никогда не посылались по сети. Отрицательная сторона в том, что системе для работы нужен сервер Kerberos. Сервер Kerberos является доверенной третьей стороной. Это может стать «узким местом» в системе в 9:00 утра, когда каждый пытается войти в свой компьютер.
Kerberos был изобретен Массачуссетским технологическим институтом в 1988 году и с того времени используется в мире UNIX. Kerberos является частью Windows 2000, но исполнение Microsoft отличается от стандартного и несовместимо с остальным миром Kerberos. Я могу только предполагать, что это было сделано намеренно по соображениям, связанным с рынком, но сделано таким образом, что ослабило защиту. Нельзя всего лишь изменить протокол безопасности и предполагать, что измененный протокол так же надежен.
Другие подтверждающие подлинность протоколы входа в систему используют открытые шифровальные ключи. IPsec и SSL, например, пользуются протоколами аутентификации с открытыми ключами. Некоторые системы прибегают к более простым, но тайным протоколам. Протокол, в котором звонящий с сотового телефона доказывает, что он может сделать телефонный звонок в этой частной сети, является одним из них.
Однократная регистрация
Вещь, которая изрядно раздражает пользователей в системе со строгими требованиями к безопасности, – это большое число паролей. Пользователь должен набирать один пароль для входа в свой компьютер, другой для входа в сеть, третий для входа на отдельный сервер в сети и т. д. Люди задают вопрос: не было бы лучше, если бы пользователь зарегистрировался один раз, с одним паролем, и затем мог бы управлять компьютерами как ему угодно, без использования других паролей?