メインコンテンツまでスキップ

3.7. User-to-User Authentication Exchanges (ユーザー間認証のやりとり)

3.7. User-to-User Authentication Exchanges (ユーザー間認証のやりとり)

ユーザー間認証 (User-to-user authentication) は, 検証者 (verifier) が長期のサービス鍵にアクセスできない場合に認証を行う方法を提供する。これは, ワークステーション上でユーザとしてサーバ (たとえばウィンドウサーバ) を実行しているときなどに起こり得る。そのような場合, サーバはユーザーがワークステーションにログインした際に取得した TGT にアクセスできるかもしれないが, サーバが非特権ユーザとして動作しているため, システム鍵にアクセスできないことがある。ピアツーピアアプリケーションを実行する場合にも, 同様の状況が生じ得る。

概要

メッセージ方向メッセージ種別
0. アプリケーションサーバから未指定
1. クライアントから Kerberos へKRB_TGS_REQ3.3 & 5.4.1
2. Kerberos からクライアントへKRB_TGS_REP または KRB_ERROR3.3 & 5.4.2 / 5.9.1
3. クライアントからアプリケーションサーバへKRB_AP_REQ3.2 & 5.5.1

この問題に対処するため, Kerberos プロトコルでは, クライアントが KDC に対し, 発行されるチケットを認証を検証する当事者に発行された TGT のセッション鍵で暗号化するよう要求できる。当該 TGT は, Kerberos プロトコル外のやりとり (通常はアプリケーションプロトコルの一部) を通じて検証者から取得されなければならない。上記概要のメッセージ 0 がこれに相当する。TGT は KDC の秘密鍵で暗号化されているため, 対応する秘密鍵を保持しなければ認証に用いることはできない。また, 検証者は対応する秘密鍵を相手に開示しないため, 検証者の TGT のコピーを与えただけでは検証者のなりすましはできない。

上表のメッセージ 0 は, クライアントとサーバの間でのアプリケーション固有の交渉を表し, その結果として双方がユーザー間認証を用いることを決め, クライアントがサーバの TGT を取得した状態になる。

次に, クライアントは KDC への KRB_TGS_REQ 要求 (上表のメッセージ 1) にサーバの TGT を追加チケットとして含め, 要求に ENC-TKT-IN-SKEY オプションを指定する。

セクション 3.3.3 の手順に従って検証された場合, クライアントに返されるアプリケーション・チケット (上表のメッセージ 2) は追加チケットのセッション鍵で暗号化され, クライアントはアプリケーション・チケットを使用または保存する際にこれを認識する。

ユーザー間認証用に取得したチケットを用いてサーバに接続する際 (上表のメッセージ 3), クライアントは ap-options フィールドに USE-SESSION-KEY フラグを指定しなければならない (MUST)。これにより, アプリケーションサーバはアプリケーション要求で提供されたサーバチケットの復号に, 自らの TGT に関連付けられたセッション鍵を用いるよう指示される。