logo
Протокол Kerberos

Основные концепции

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

Рассмотрим это на простом примере. Допустим, Алиса часто посылает сообщения Бобу, который использует содержащуюся в них информацию только тогда, когда полностью уверен, что она поступила именно от Алисы. Чтобы никто другой не смог подделать письма, они договорились о пароле, который пообещали никому больше не говорить. Если из сообщения можно будет заключить, что отправитель знает этот пароль, Боб может точно сказать: оно пришло от Алисы.

Теперь Бобу и Алисе остается только решить, каким образом показать свое знание пароля. Можно, скажем, просто включить его в текст сообщения, например, после подписи: "Alice, Our$ecret". Это было бы очень просто, удобно и надежно, если бы Алиса и Боб были уверены, что никто другой не читает их сообщений. Однако почта передается по сети, где работают и другие пользователи, а среди них есть Кэрол, которая очень любит подключать к сети свой анализатор пакетов в надежде выведать чьи-нибудь секреты. И становится совершенно ясно, что Алиса не может просто назвать пароль в тексте письма. Чтобы секрет оставался секретом, о нем нельзя говорить открыто, нужно найти способ только дать знать собеседнику, что он тебе известен.

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