セキュリティのトラブルシューティング
セキュリティ・アクセスを監視するには、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
のオプションと各オプションの関連情報へのリンクを示します。
表1-8 java.security.debug
のオプション
オプション | 説明 | 関連情報 |
---|---|---|
all |
すべてのデバッグ・オプションを有効にします。 | なし |
access |
|
JDKでのアクセス権 |
certpath |
PKIX
|
PKIプログラマーズ・ガイドの概要 |
combiner |
のデバッグ
|
JDKでのアクセス権 |
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のデバッグ | なし |
policy |
ポリシー・ファイルによるアクセス権のロードと付与 |
Javaチュートリアルの「Set up the Policy File to Grant the Required Permissions」(Controlling Applications) |
properties |
java.security 構成ファイルのデバッグ
|
なし |
provider |
セキュリティ・プロバイダのデバッグ
次のオプションは、プロバイダ・オプションとともに使用できます。
<engines>に対してサポートされている値は次のとおりです。
|
Java暗号化アーキテクチャ(JCA)リファレンス・ガイド |
scl |
SecureClassLoader によって割り当てられるアクセス権
|
JDKでのアクセス権 |
securerandom |
SecureRandomのデバッグ | SecureRandomクラス |
sunpkcs11 |
SunPKCS11プロバイダのデバッグ | PKCS#11リファレンス・ガイド |
ts |
Timestampingのデバッグ | なし |
x509 |
X.509証明書のデバッグ | X.509証明書と証明書失効リスト(CRL) |
スレッドおよびタイムスタンプ情報の出力
java.security.debug
システム・プロパティで指定された値に次の文字列を追加して、追加情報を出力できます:
+thread
: スレッドおよび呼出し側情報を出力します+timestamp
: タイムスタンプ情報を出力します
たとえば、スレッド、呼出し側、およびタイムスタンプ情報をすべてのデバッグ出力に追加するには、コマンドラインで次のようにjava.security.debug
システム・プロパティを設定します:
java -Djava.security.debug=all+thread+timestamp MyApp
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-9 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ブリッジ |
値true
に+thread
および+timestamp
を追加して、追加情報を出力できます。
ノート:
これらの文字列は、SSPI_BRIDGE_TRACE
環境変数の値に追加できません。
たとえば、スレッド、呼出し側、およびタイムスタンプ情報をJGSSフレームワークのデバッグ出力に追加するには、コマンドラインで次のようにsun.security.jgss.debug
システム・プロパティを設定できます:
java -Dsun.security.jgss.debug=true+thread+timestamp MyApp
JAASログイン構成ファイルで、Krb5LoginModuleにdebug=true
を指定して、関連付けられたエントリでのデバッグを有効にできます。たとえば、次ではJassSample
のデバッグを有効にし、デバッグ出力にスレッド、呼出し側およびタイムスタンプ情報を追加します:
JaasSample {
com.sun.security.auth.module.Krb5LoginModule required;
debug=true+thread+timestamp;
};