web-dev-qa-db-ja.com

SSL認証とKerberos認証の違いは何ですか?

SSL認証とKerberos認証の実際の違いは何か、なぜSSLトラフィックとKerberosの両方があるのか​​を理解しようとしています。または、Kerberosは何らかの方法でSSLを使用しますか?

誰でも手伝ってくれる?ありがとうございました!

43
Layla

Kerberos[〜#〜] ssl [〜#〜] はどちらもプロトコルですが、Kerberosは認証プロトコルですが、SSLは暗号化プロトコルです。 Kerberosは [〜#〜] udp [〜#〜] を使用し、SSLは(ほとんどの場合) [〜#〜] tcp [〜#〜] を使用します。 SSL認証は通常サーバーとクライアントの [〜#〜] rsa [〜#〜] または- [〜#〜] ecdsa [〜#〜] 呼ばれるものに埋め込まれたキー X.509証明書 。証明書と対応するキーによって認証されます。 Kerberosを使用すると、パスワードまたはその他の方法で認証を受けることができます。 WindowsはKerberosを使用 たとえば、ドメインで使用する場合。

関連メモ:SSLの最近のバージョンは、トランスポート層セキュリティのためにTLSと呼ばれています。

32
KovBal

SSLは公開鍵暗号方式を使用します。

  1. あなた(またはあなたのブラウザ)は公開/秘密鍵ペアを持っています
  2. サーバーは公開/秘密鍵も持っています
  3. 対称セッションキーを生成する
  4. サーバーの公開鍵で暗号化し、この暗号化されたセッション鍵をサーバーに送信します。
  5. サーバーは、暗号化されたセッションキーを秘密キーで復号化します。
  6. ユーザーとサーバーが対称セッションキーを使用して通信を開始します(基本的には対称キーの方が速いため)。

Kerberosは公開鍵暗号化を使用しません。信頼できるサードパーティを使用しています。ここにスケッチがあります:

  1. あなた(サーバーとクライアント)の両方が(secretを介して)信頼できるサードパーティに自分の身元を証明します。
  2. サーバーを使用する場合は、サーバーが信頼できるかどうかを確認します。その間、サーバーはあなたが信頼できるかどうかを確認します。今、お互いのアイデンティティを相互に保証します。サーバーと通信できます。 2
31
Chris

簡単に言うと、Kerberosは信頼できるサードパーティを介してクライアントとサーバーの相互IDの信頼または認証を確立するためのプロトコルですが、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はより強力でより完全な信頼関係を確立します。

さらに、SSLを介して[〜#〜] s [〜#〜]のIDを確立するには、[〜#〜] c [〜#〜]に関する事前知識が必要です。 [〜#〜] s [〜#〜]、またはこの信頼を確認する外部の方法。ほとんどの人が日常的に使用する場合、これはルート証明書の形式で提供され、将来の相互参照のために[〜#〜] s [〜#〜]の証明書をキャッシュします。

この事前の知識がないと、SSLは中間者攻撃の影響を受けやすく、サードパーティは[〜#〜] s [〜#〜]を装うことができます- [〜#〜] c [〜#〜] 2つの別々の安全なチャネルを使用してそれらの間の通信を[〜#〜] c [〜#〜]および[〜#〜] s [〜#〜]。 Kerberos認証を危険にさらすには、盗聴者は[〜#〜] t [〜#〜]を両方の[〜#〜] s [〜#〜]および[〜#〜] c [〜#〜]。ただし、終了条件は前提条件 "[〜#〜] c [〜#〜]に従って依然として正しいため、Kerberosの目標に従って信頼のセットはまだ壊れていないことに注意してください。および[〜#〜] s [〜#〜]信頼[〜#〜] t [〜#〜] "を信頼します。

最後に、コメントで指摘されているように、KerberosはSSLのようなメカニズムを使用するように拡張および拡張されており、[〜#〜] c [〜#〜]および[〜#〜] t [〜#〜]

24
Yang Zhao

要するに:

Kerberosは通常、転送データを暗号化しませんが、SSLおよびTLSは暗号化します。

「これらのメッセージにアクセスするための標準APIはありません。WindowsVistaの時点で、MicrosoftはユーザーアプリケーションがKRB_PRIVまたはKRB_SAFEメッセージを生成するメカニズムを提供していません。」 - http://www.kerberos.org/software/appskerberos.pdf から

反対に、SSLとTLSは通常、Yours Windowsドメインのログイン名をサーバーに転送および証明しませんが、Kerberosは転送します。

4
Nashev

短い答え:SSLとKerberosはどちらも暗号化を使用しますが、SSLはセッション中に変更されないキーを使用しますが、Kerberosはクライアントとクライアント間の通信を暗号化するためにいくつかのキーを使用します。

SSLでは、暗号化は通信の両端で直接処理されますが、Kerberosでは、暗号化キーは、クライアントとサーバー間のサードパーティ(ある種の中間体)によって提供されます。

2
Martin08

https://www.eldos.com/security/articles/7240.php?page=all から、

KerberosとTLSは比較対象ではありません。彼らは異なる目的と異なる方法を持っています。記事の冒頭で、「どちらが良い」や「何を選択するか」などのよくある質問について説明しました。前者はまったく問題ではありません。正しい方法で使用すれば、何も良いことはなく、すべてが良いことです。後者の質問は真剣に検討する価値があります。何を選択するかは、何を持っているか、何を望んでいるかによって異なります。

だれもそれを読んだり改ざんしたりできないような意味で通信を保護したい場合は、TLSまたはそれに基づく他のプロトコルを使用するのが正しい選択でしょう。 HTTPによって伝送されるWorld Wide Webトラフィックを保護するためのTLSの使用の良い例は、HTTPSを使用することです。安全なファイル転送のためにFTPSを使用することができ、SMTP(「安全」ではなく「単純な」メール転送プロトコルを意味します)もTLSで保護されることを考慮してください。

一方、サービスへのユーザーアクセスを管理する必要がある場合は、Kerberosを使用できます。たとえば、Webサーバー、FTP、SMTP、SQLサーバーなどの複数のサーバーがあり、必要に応じて1つのホストに他のすべてのサーバーがあるとします。 SMTPとHTTPの使用は許可されているがFTPの使用は許可されていないクライアントもあれば、FTPを使用しているがデータベースにアクセスできないクライアントもいます。これはまさにKerberosが使用されるようになる状況であり、認証サーバーでユーザー権利と管理ポリシーを記述する必要があるだけです。

1
Ahmed MANSOUR

http://web.mit.edu/kerberos/ から:Kerberosはこれらのネットワークセキュリティ問題の解決策としてMITによって作成されました。Kerberosプロトコルは強力な暗号化を使用していますこれにより、クライアントは安全でないネットワーク接続を介してサーバーに(およびその逆に)身元を証明できます。クライアントとサーバーがKerberosを使用して身元を証明したら、すべての通信を暗号化してプライバシーとデータの整合性を保証できます。彼らは彼らのビジネスについて行きます。

一方、SSLは、公開キー暗号化によるサーバー認証の確立に使用されます。

1
SErik