Разница между аутентификацией SSL и Kerberos? - PullRequest
40 голосов
/ 21 сентября 2008

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

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

Ответы [ 7 ]

31 голосов
/ 22 сентября 2008

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

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

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

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

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

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

24 голосов
/ 27 октября 2008

Проще говоря, 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 trusts T ».

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

4 голосов
/ 26 июля 2017

Короче говоря:

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

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

С другой стороны, SSL и TLS обычно не передают и не проверяют имя входа в Ваш домен Windows на сервер, но Kerberos делает.

1 голос
/ 03 февраля 2015

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

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

1 голос
/ 21 сентября 2008

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

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

0 голосов
/ 14 апреля 2016

С 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 начинает использоваться, вам просто нужно описать права пользователя и вашу административную политику на сервере аутентификации.

...