Kerberos 認証処理

Kerberos 認証中に発生するイベントの順序を理解すると、認証の問題が発生した時に原因を判断しやすくなります。

  1. プリンシパルが、Kerberos 認証を必要とするサービスを要求します。例えば、ユーザがセッション (Telnet クライアント) を起動して、telnserv.com というホストへの Telnet 接続を要求したとします。

  2. アプリケーションサーバ (この場合はホスト上の Telnet デーモン) が、セッションに認証を要求します。

  3. Kerberos クライアントは、Kerberos がこのプリンシパルに対する有効な発券許可チケット (TGT) を所有しているかどうか確認します。所有していない場合、 Kerberos クライアントは、Key Distribution Center (KDC: 鍵配布センター) に対して TGT を求める要求を送信します。

  4. KDC はプリンシパルとレルムが有効であることを確認し、 Kerberos クライアントに TGT とセッション鍵を送信します。

  5. Kerberos クライアントは、ユーザにパスワードを入力するように要求します。入力されたパスワードと、KDC が TGT とセッション鍵の暗号化に使用したパスワードが一致すると、 Kerberos クライアントはメッセージを解読してセッション鍵を取得します(パスワードが間違っていた場合は、エラーメッセージが表示されて認証に失敗します)。

  6. Kerberos クライアントは、始めにユーザが要求したサービス (telnserv.com への Telnet 接続) に対する要求を生成して KDC に送信します。この要求には、TGT、そのプリンシパル自体を確認する認証者、およびそのプリンシパルが使用したいサービスの情報が含まれており、これらはすべてセッション鍵に暗号化されています。

  7. KDC が TGT を解読して、ワークステーションとサービスの間 (この場合は Telnet クライアントと telnserv.com 上の Telnet デーモンの間) のセッションに必要な新しい鍵と、telnserv.com への Telnet 接続に必要なサービスチケットを生成します。このチケットは、サービスの秘密鍵で暗号化されます。このメッセージは元のセッション鍵で暗号化され、 Kerberos クライアントに返信されます。

  8. Kerberos クライアントが元のセッション鍵を使用してサービスチケットを取り出し、新しいセッション鍵を解読します。その後、セッションにコントロールが返されます。

  9. Kerberos クライアントを使用して、サービスチケットを Telnet デーモンに表示します。Telnet デーモンは資格情報を確認し、サービスチケットから取り出した情報を使用して、セッションに対してデーモン自体を認証します。サービスチケットはサービスの秘密鍵で暗号化されているので、チケットが生成されているサービスだけがチケットを解読できます。

  10. セッションがホスト (telnserv.com) にログインします。