Kerberos 認証処理
Kerberos 認証中に発生するイベントの順序を理解すると、認証の問題が発生した時に原因を判断しやすくなります。
- プリンシパルが、Kerberos 認証を必要とするサービスを要求します。例えば、ユーザが Reflection (Telnet クライアント) を起動して、telnserv.com というホストへの Telnet 接続を要求したとします。
- アプリケーションサーバ (この場合はホスト上の Telnet デーモン) が、Reflection に認証を要求します。
- Reflection は、Kerberos がこのプリンシパルに対する有効な発券許可チケット (TGT) を所有しているかどうか確認します。所有していない場合、Reflection Kerberos クライアントは、Key Distribution Center (KDC: 鍵配布センター) に対して TGT を求める要求を送信します。
- KDC はプリンシパルとレルムが有効であることを確認し、Reflection Kerberos クライアントに TGT とセッション鍵を送信します。
- Reflection Kerberos クライアントは、ユーザにパスワードを入力するように要求します。入力されたパスワードと、KDC が TGT とセッション鍵の暗号化に使用したパスワードが一致すると、Reflection Kerberos クライアントはメッセージを解読してセッション鍵を取得します (パスワードが間違っていた場合は、エラーメッセージが表示されて認証に失敗します)。
- Reflection Kerberos クライアントは、始めにユーザが要求したサービス (telnserv.com への Telnet 接続) に対する要求を生成して KDC に送信します。この要求には、TGT、そのプリンシパル自体を確認する認証者、およびそのプリンシパルが使用したいサービスの情報が含まれており、これらはすべてセッション鍵に暗号化されています。
- KDC が TGT を解読して、ワークステーションとサービスの間 (この場合は Telnet クライアントと telnserv.com 上の Telnet デーモンの間) のセッションに必要な新しい鍵と、telnserv.com への Telnet 接続に必要なサービスチケットを生成します。このチケットは、サービスの秘密鍵で暗号化されます。このメッセージは元のセッション鍵で暗号化され、Reflection Kerberos クライアントに返信されます。
- Reflection Kerberos クライアントが元のセッション鍵を使用してサービスチケットを取り出し、新しいセッション鍵を解読します。その後、Reflection にコントロールが返されます。
- Reflection が Telnet デーモンにサービスチケットを提示します。Telnet デーモンは資格情報を確認し、サービスチケットから取り出した情報を使用して、Reflection に対してデーモン自体を認証します。サービスチケットはサービスの秘密鍵で暗号化されているので、チケットが生成されているサービスだけがチケットを解読できます。
- Reflection がホスト (telnserv.com) にログインします。
|