Обеспечивает ли Kerberos шифрование данных сеанса приложения?
Я понимаю, Kerberos обеспечивает аутентификацию с использованием шифрования. Я вижу, что он обменивается сессионными ключами. Эти сеансовые ключи, используемые для приложений, отправляют свои данные через это сетевое шифрование после выполнения аутентификации?
Для примера, чтобы уточнить:
Если я керберизую свой telnet-сервер и клиент, будет ли мой клиент и серверный сеанс также зашифрован (предположительно с использованием вышеупомянутых сеансовых ключей) (т.е. анализатор не может видеть команды, которые я ввожу в сеансе)?
Я вижу, что SPNEGO kerberos на основе HTTP не следует этому, и для защиты сеанса нужно будет использовать SSL.
1 ответ
Это полностью зависит от того, как сервис реализован. Я вполне уверен, что большинство версий Kerberized Telnet действительно используют ключи сеанса для шифрования трафика.
Это было бы "стандартным" использованием Kerberos API для более старых программ. Почти все, что поставляется со стандартным дистрибутивом Kerberos, использует Kerberos таким образом. Ключевой API для поиска
krb5_mk_priv
Другой стандартный API
gss_wrap
однако в этом случае вам необходимо изучить аргументы вызова, чтобы определить, включена ли конфиденциальность.
Увидеть
http://www.kerberos.org/software/appskerberos.pdf
для сравнительно недавнего обзора того, как использовать Kerberos в приложении.
SPNEGO - это особый случай в мире Kerberos, поскольку он используется только для аутентификации. Как общее практическое правило, любое правильно спроектированное использование kerberos в протоколе приложения будет включать шифрование данных сеанса, если вы по какой-либо причине не отключите его.
К сожалению, не все варианты использования Kerberos разработаны должным образом. Это то, что вы должны проверить при проверке любого приложения, которое утверждает, что поддерживает Kerberos.