重要: 本書で説明する API および機能は、変更される場合があります。
JDK v 5.0 における Java GSS/Kerberos 実装では、次の機能拡張が行われています。これらの新しい機能に関するフィードバックがございましたら、java-security@sun.com までお送りください。
トリプル DES 暗号化タイプは、libdefaults セクション下の Kerberos 構成ファイルで指定されます。ファイル中では des3-cbc-sha1 として指定され、default_tkt_enctypes、default_tgs_enctypes、 および permitted_enctypes というタグが付きます。dec3-cbc-sha1 には以下の別名があります。
たとえば、構成ファイルの libdefaults セクションには以下のような行があります。des3-hmac-sha1
des3-cbc-sha1-kd
des3-cbc-hmac-sha1-kd
default_tkt_enctypes は、Ticket-Granting-Ticket のセッション鍵で使用する暗号化タイプを指定するために使用されます。クライアントはこれを使用して、KDC との通信で使用されるセッション鍵の暗号化タイプを制限します。デフォルト値は des-cbc-md5 des-cbc-crc des3-cbc-sha1 です。default_tkt_enctypes = des3-cbc-sha1 des-cbc-md5 des-cbc-crc
default_tgs_enctypes = des3-cbc-sha1 des-cbc-md5 des-cbc-crc
permitted_enctypes = des3-cbc-sha1 des-cbc-md5 des-cbc-crc
default_tgs_enctypes は、サービスチケットのセッション鍵で使用する暗号化タイプを指定するために使用されます。クライアントはこれを使用して、クライアントとサーバによって 共有されるセッション鍵の暗号化タイプを制限します。デフォルト値は des-cbc-md5 des-cbc-crc des3-cbc-sha1 です。
permitted_enctypes は、サービスによる使用が許可された暗号化タイプを指定するために使用されます。サーバはこれを使用して、サーバが受け入れるセッション鍵の暗号化タイプ を制限します。デフォルト値は des-cbc-md5 des-cbc-crc des3-cbc-sha1 です。
KDC にメッセージを送信するときにメッセージのサイズが udp_preference_list よりも大きい場合、J2SE Kerberos ライブラリは TCP を使用します。メッセージのサイズが udp_preference_list より小さい場合は、UDP が 3 回まで試行されます。要求のサイズが大きすぎるという応答が KDC からあると、J2SE Kerberos ライブラリは TCP を使用します。
この機能により、Krb5LoginModule がチケットキャッシュから期限切れのチケットを取得した場合でも、TGT は自動的に更新され、チケットを要求した呼び出し側の被認証者に追加されます。何らかの理由でチケットを更新できない場合、Krb5LoginModule は構成済みのコールバックハンドラを使用してユーザ名とパスワードを検索し、新規 TGT を取得します。
この機能を使用するには、チケットキャッシュを使用するように Krb5LoginModule を構成し、新しく取り入れられた renewTGT オプションを true に設定します。TGT の更新を要求する JAAS ログイン構成ファイルの例を以下に示します。
renewTGT が true に設定されている場合は、useTicketCache も true に設定する必要があります。設定しない場合は構成エラーが発生します。server {
com.sun.security.auth.module.Krb5LoginModule required
principal=principal@your_realm useTicketCache=true renewTGT=true; };
JSSE アプリケーションが明示的な JAAS プログラムなしで Kerberos 暗号化方式を使用すると、SunJSSE プロバイダはこれらのインデックス名を使用して JAAS ログインモジュールを検出および構成し、必要な Kerberos 資格を取得します。 たとえば、そのようなアプリケーションには以下の JAAS 構成ファイルがあります。com.sun.net.ssl.server
com.sun.net.ssl.client
エントリが検出されない場合は、デフォルトの「他の」インデックス名が使用されます。TLS のサービス名は「host」です。たとえば、KRBNT-OPERATIONS.ABC.COM というレルム内の raven.abc.com という名前のマシンで TLS サービスを実行する場合、サービス主体名は次のようになります。com.sun.net.ssl.server {
com.sun.security.auth.module.Krb5LoginModule required
principal=service_principal@your_realm useKeyTab=true keyTab=keytab_name storeKey=true; };
TLS クライアントには何の制限もないので、有効な Kerberos 主体名であれば使用可能です。host/raven.abc.com@KRBNT-OPERATIONS.ABC.COM
JSSE アプリケーションが明示的な JAAS プログラムとともに Kerberos 暗号化方式を使用する場合は、上述のインデックス名を含め、任意のインデックス名を使用できます。