キーの分散

秘密キー認証手法では、クライアントとサーバーが相互のセッションで使用するシークレット セッション キー を取得する方法については説明しません。 彼らが人々であれば、秘密裏に会い、キーに同意することができます。 ただし、クライアントがワークステーション上で実行されているプログラムであり、サーバーがネットワーク サーバー上で実行されているサービスである場合、そのメソッドは機能しません。

クライアントは多くのサーバーと通信する必要があり、それぞれに異なるキーが必要になります。 サーバーは多くのクライアントと通信し、それぞれに異なるキーが必要です。 各クライアントがサーバーごとに異なるキーを必要とし、各サーバーがクライアントごとに異なるキーを必要とする場合、キーの分散が問題になります。 さらに、多くのコンピューターに多くのキーを格納して保護する必要があるため、大きなセキュリティ リスクが生じます。

Kerberos プロトコルの名前は、キー配布の問題に対する解決策を示唆しています。 Kerberos (または Cerberus) は、古典的なギリシャ神話の人物であり、熾烈な三頭の犬で、侵入者がアンダーワールドに入り続けました。 神話上のガードと同様に、Kerberos プロトコルには、クライアント、サーバー、信頼できるサード パーティの 3 つのヘッドがあります。 このプロトコルの信頼できる中継局は、キー配布センター (KDC) です。

KDC は、物理的にセキュリティで保護されたサーバーで実行されているサービスです。 領域内のすべての セキュリティ プリンシパル のアカウント情報を含むデータベースが保持されます。 領域は、Windows のドメインに相当する Kerberos です。

KDC は、各セキュリティ プリンシパルに関するその他の情報と共に、プリンシパルと KDC にのみ認識される暗号化キーを格納します。 これは、各セキュリティ プリンシパルと KDC 間の交換で使用される マスター キー です。 Kerberos プロトコルのほとんどの実装では、このマスター キーはセキュリティ プリンシパルのパスワードから ハッシュ 関数を使用して派生します。

クライアントがサーバーとのセキュリティで保護された接続を作成する場合、クライアントはまず、アクセスするサーバーではなく KDC に要求を送信します。 KDC は、クライアントとサーバーが相互に認証するために使用する一意の セッション キー を作成してクライアントに送信します。 KDC は、クライアントのマスター キーとサーバーのマスター キーの両方にアクセスできます。 KDC は、サーバーのマスター キーを使用してサーバーのセッション キーのコピーを暗号化し、クライアントのマスター キーを使用してクライアントのコピーを暗号化します。

KDC は、関連する各セキュリティ プリンシパルにセッション キーを直接送信することで、信頼できる仲介者としての役割を果たすことができますが、実際には、この手順は多くの理由で機能しません。 代わりに、KDC は暗号化された両方のセッション キーをクライアントに送信します。 サーバーのセッション キーは、 セッション チケットに含まれています。