Назад | Перейти на главную страницу

Обеспечивает ли Kerberos шифрование данных сеанса приложения?

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

В качестве примера для пояснения:

Если я керберизирую свой telnet-сервер и клиент, мой сеанс клиента и сервера также будет зашифрован (предположительно, с использованием вышеупомянутых ключей сеанса) (то есть сниффер не может видеть команды, которые я набираю в сеансе)?

Я вижу, что протокол SPNEGO kerberos на основе HTTP этого не делает, и для защиты сеанса необходимо использовать SSL.

Это полностью зависит от того, как реализована услуга. Я достаточно уверен, что большинство версий Kerberized Telnet действительно используют ключи сеанса для шифрования трафика.

Это было бы «стандартным» использованием API-интерфейса kerberos для старых программ. Практически все, что поставляется со стандартным дистрибутивом Kerberos, использует Kerberos таким образом. Ключевой API для поиска:

krb5_mk_priv

Другой стандартный API:

gss_wrap

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

Видеть

http://www.kerberos.org/software/appskerberos.pdf

для относительно недавнего обзора того, как использовать Kerberos в приложении.

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

К сожалению, не все способы использования kerberos спроектированы должным образом. Это то, что вы должны проверить при изучении любого приложения, которое утверждает, что поддерживает Kerberos.