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_REQ | 3.3 & 5.4.1 |
| 2. Kerberos からクライアントへ | KRB_TGS_REP または KRB_ERROR | 3.3 & 5.4.2 / 5.9.1 |
| 3. クライアントからアプリケーションサーバへ | KRB_AP_REQ | 3.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 に関連付けられたセッション鍵を用いるよう指示される。