Разница между SSL и Kerberos аутентификацией?

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

Кто-нибудь может помочь? Спасибо!

9 ответов

SSL использует криптографию с открытым ключом:

  1. У вас (или вашего браузера) есть открытая / закрытая пара ключей
  2. Сервер также имеет открытый / закрытый ключ
  3. Вы генерируете симметричный ключ сеанса
  4. Вы шифруете с помощью открытого ключа сервера и отправляете этот зашифрованный сеансовый ключ на сервер.
  5. Сервер расшифровывает зашифрованный сеансовый ключ своим закрытым ключом.
  6. Вы и сервер начинаете общаться с использованием симметричного сеансового ключа (в основном потому, что симметричные ключи быстрее).

Kerberos не использует криптографию с открытым ключом. Используется доверенная третья сторона. Вот эскиз:

  1. Вы оба (сервер и клиент) подтверждаете свою личность доверенной третьей стороне (посредством секрета).
  2. Когда вы хотите использовать сервер, вы проверяете и видите, что сервер заслуживает доверия. Тем временем сервер проверяет, что вы заслуживаете доверия. Теперь взаимно уверены в идентичности друг друга. Вы можете общаться с сервером. 2

Хотя Kerberos и SSL являются обоими протоколами, Kerberos является протоколом аутентификации, но SSL является протоколом шифрования. Kerberos использует UDP, SSL использует (большую часть времени) TCP. Аутентификация SSL обычно выполняется путем проверки ключей RSA или ECDSA сервера и клиента, встроенных в нечто, называемое сертификатами X.509. Вы заверены своим сертификатом и соответствующим ключом. С Kerberos вы можете пройти аутентификацию по вашему паролю или другим способом. Windows использует Kerberos, например, при использовании в домене.

Примечание по теме: Последние версии SSL называются TLS для безопасности транспортного уровня.

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

Более формально (но не вдаваясь в математические доказательства), учитывая клиента C, сервер S и стороннего T, которому доверяют и C, и S:

После проверки подлинности Kerbeos установлено, что:

  • C считает, что S это тот, с кем он намеревался связаться
  • S считает, что C - это то, кем он себя считает
  • C считает, что он имеет безопасное соединение с S
  • C считает, что S считает, что имеет безопасное соединение с C
  • S считает, что имеет безопасное соединение с C
  • S считает, что C считает, что имеет безопасное соединение с S

SSL, с другой стороны, только устанавливает, что:

  • C считает, что S это тот, с кем он намеревался связаться
  • C считает, что имеет безопасное соединение с S
  • S считает, что имеет безопасное соединение с C

Очевидно, что Kerberos устанавливает более прочные и более полные доверительные отношения.

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

Без этих предварительных знаний SSL подвержен атаке "человек посередине", когда сторонняя сторона может притворяться S на C, передавая связь между ними, используя 2 отдельных защищенных канала, на C и S. Чтобы скомпрометировать аутентификацию Kerberos, подслушиватель должен маскироваться как T для S и C. Отметим, однако, что набор доверительных отношений все еще не нарушен в соответствии с целью Kerberos, поскольку конечное состояние все еще корректно в соответствии с предварительным условием "C и S доверяет T".

Наконец, как было отмечено в комментарии, Kerberos может быть и был расширен для использования механизма, подобного SSL, для установления начального безопасного соединения между C и T.

Короче:

Kerberos обычно не шифрует передаваемые данные, а SSL и TLS.

"нет стандартных API для доступа к этим сообщениям. Начиная с Windows Vista, Microsoft не предоставляет механизм для пользовательских приложений для создания сообщений KRB_PRIV или KRB_SAFE". - с http://www.kerberos.org/software/appskerberos.pdf

И наоборот, SSL и TLS обычно не передают и не подтверждают имя входа в Ваш домен Windows, но Kerberos делает.

Короткий ответ: SSL и Kerberos оба используют шифрование, но SSL использует ключ, который не изменяется во время сеанса, в то время как Kerberos использует несколько ключей для шифрования связи между клиентом и клиентом.

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

С https://www.eldos.com/security/articles/7240.php?page=all,

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

Если вы хотите защитить свои сообщения в том смысле, что никто не может их прочитать или подделать, возможно, правильным выбором будет использование TLS или некоторых других протоколов, основанных на нем. Хорошим примером использования TLS для защиты трафика World Wide Web, передаваемого по HTTP, является использование HTTPS. Для безопасной передачи файлов вы можете использовать FTPS и учитывать, что SMTP (хотя он означает "простой" протокол передачи почты, а не "безопасный") также может быть защищен с помощью TLS.

С другой стороны, если вам нужно управлять доступом пользователей к сервисам, вы можете использовать Kerberos. Представьте, например, что у вас есть несколько серверов, таких как веб-сервер, FTP, SMTP и SQL-серверы, и, возможно, что-то еще, все на одном хосте. Некоторые клиенты могут использовать SMTP и HTTP, но не могут использовать FTP, другие могут использовать FTP, но не имеют доступа к вашим базам данных. Это как раз та ситуация, когда Kerberos собирается использовать, вам просто нужно описать права пользователя и вашу административную политику на сервере аутентификации.

С http://web.mit.edu/kerberos/: Kerberos был создан MIT для решения этих проблем безопасности сети. Протокол Kerberos использует надежную криптографию, чтобы клиент мог подтвердить свою личность на сервере (и наоборот) через незащищенное сетевое соединение. После того, как клиент и сервер использовали Kerberos для подтверждения своей личности, они также могут зашифровать все свои коммуникации, чтобы обеспечить конфиденциальность и целостность данных в ходе своей деятельности.

Между тем: SSL используется для установления аутентификации сервера<->с помощью шифрования с открытым ключом.

Проще говоря,

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

Kerberos — это протокол сетевой аутентификации, который помогает аутентифицировать клиента для связи с сервером без передачи какого-либо пароля/токена во время запроса.

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

Другие вопросы по тегам