セキュリティのトラブルシューティング
セキュリティ・アクセスを監視するには、java.security.debugシステム・プロパティを設定します。これにより、実行中にどのトレース・メッセージを出力するかを決定します。セキュリティ・プロパティ、セキュリティ・プロバイダおよびTLS関連の設定を表示するには、javaコマンドで-XshowSettings:securityオプションを指定します。様々なシステム・プロパティまたは環境変数を使用して、JGSSおよびその他の関連テクノロジでデバッグを有効にできます。
java.security.debugシステム・プロパティ
すべてのデバッグ・オプションのリストを表示するには、次のようにhelpオプションを使用します。MyAppは、任意のJavaアプリケーションです。javaコマンドはデバッグ・オプションを出力し、MyAppを実行する前に終了します。
java -Djava.security.debug=help MyAppノート:
- 複数のオプションを使用するには、オプションをカンマで区切ります。
- JSSEでは、SSL/TLS/DTLSのトラブルシューティングのために動的なデバッグ・トレースもサポートされています。デバッグ・ユーティリティを参照してください。
次の表に、java.security.debugのオプションと各オプションの関連情報へのリンクを示します。詳細は、JavaDoc APIドキュメントのjava.security.debugを参照してください。
表1-5 java.security.debugのオプション
| オプション | 説明 | 関連情報 |
|---|---|---|
all |
すべてのデバッグ・オプションを有効にします。 | なし |
certpath |
PKIX このオプションとともに、次のオプションを使用できます:
|
PKIプログラマーズ・ガイドの概要 |
configfile |
JAAS (Java Authentication and Authorization Service)構成ファイルのロード | |
configparser |
JAAS構成ファイルの解析 | |
gssloginconfig |
Java GSS (Generic Security Services)ログイン構成ファイルのデバッグ |
Java Generic Security Services: (Java GSS)およびKerberos
|
jar |
JARファイルの検証 |
Javaチュートリアルの「Verifying Signed JAR Files」 ノート: システム・プロパティjdk.jar.maxSignatureFileSizeを使用して、署名付きJAR内の署名ファイルの最大サイズをバイト単位で指定します。デフォルト値は16000000 (16 MB)です。
|
jca
|
JCAエンジン・クラスのデバッグ | |
KeyStore
|
Keystoreのデバッグ | |
logincontext |
の結果
|
|
pcsc |
Java Smart Card I/OおよびSunPCSCプロバイダのデバッグ | SunPCSCプロバイダおよびjavax.smartcardioパッケージ
|
pkcs11 |
PKCS11セッション・マネージャのデバッグ | |
pkcs11keystore |
PKCS11 KeyStoreのデバッグ | |
pkcs12 |
PKCS12 KeyStoreのデバッグ | なし |
properties |
java.security構成ファイルのデバッグ
|
なし |
provider |
セキュリティ・プロバイダのデバッグ
このオプションとともに、
|
Java暗号化アーキテクチャ(JCA)リファレンス・ガイド |
securerandom |
SecureRandomのデバッグ | SecureRandomクラス |
sunpkcs11 |
SunPKCS11プロバイダのデバッグ | PKCS#11リファレンス・ガイド |
ts |
Timestampingのデバッグ | なし |
x509 |
X.509証明書のデバッグ
このオプションでは、 |
X.509証明書と証明書失効リスト(CRL) |
デバッグ文の出力形式
java.security.debugオプションによって生成される各デバッグ出力文は次のようにフォーマットされます。
componentValue[threadId|threadName|sourceCodeLocation|timestamp]: <debug statement>
componentValueは、ログに記録されるセキュリティ・コンポーネント値です。threadIdは、スレッドIDの16進値です。threadNameは、ログ文を実行しているスレッドの名前です。sourceCodeLocationは、filename:lineNumberの形式でこのログを呼び出すソース・ファイルおよび行番号です。timestampは、yyyy-MM-dd kk:mm:ss.SSSの形式の日付と時刻です。<debug statement>は、セキュリティ・コンポーネントからのデバッグ出力に対応します。
java -XshowSettings:securityオプション
javaコマンドの-XshowSettings:securityオプションを指定して、セキュリティ・プロパティ、セキュリティ・プロバイダおよびTLS関連の設定を表示できます。このオプションは、サード・パーティのセキュリティ・プロバイダの詳細がアプリケーションのクラス・パスまたはモジュール・パスに含まれ、そのようなプロバイダがjava.securityファイルで構成されている場合、それらを表示します。
また、-XshowSettings:security:<subcategory>を指定できます。<subcategory>は次のいずれかです:
all: すべてのセキュリティ設定を表示しますproperties: セキュリティ・プロパティを表示しますproviders: 静的セキュリティ・プロバイダ設定を表示しますtls: TLS関連のセキュリティ設定を表示します
Java Generic Security Servicesでのデバッグの有効化
Java Generic Security Services (JGSS)フレームワーク、Kerberos、SPNEGO、ネイティブJGSSブリッジおよびWindows上のSSPIブリッジでデバッグを有効にするには、次のシステム・プロパティまたは環境変数をtrueに設定します:
注意:
デバッグ情報には機密情報が含まれる場合があります。表1-6 JGSSデバッグ・システム・プロパティ
| システム・プロパティまたは環境変数 | デバッグするJGSS機能 |
|---|---|
sun.security.jgss.debugシステム・プロパティ
|
JGSSフレームワーク |
sun.security.krb5.debugシステム・プロパティ
|
Java Kerberos 5メカニズム |
sun.security.spnego.debugシステム・プロパティ
|
Java SPNEGOメカニズム |
sun.security.nativegss.debugシステム・プロパティ
|
ネイティブJGSSブリッジ |
SSPI_BRIDGE_TRACE環境変数
|
Windows上のSSPIブリッジ |
たとえば、JGSSフレームワークでデバッグを有効にするには、次のようにコマンドラインでsun.security.jgss.debugシステム・プロパティをtrueに設定します:
java -Dsun.security.jgss.debug=true MyAppJAASログイン構成ファイルで、Krb5LoginModuleにdebug=trueを指定して、関連付けられたエントリでのデバッグを有効にできます。たとえば、次はJassSampleのデバッグを有効にします:
JaasSample {
com.sun.security.auth.module.Krb5LoginModule required;
debug=true;
};