セキュリティには次の内容が含まれます。
Java Web Start あるいは Java Plug-in を使用して配備された Java アプリケーションおよびアプレットは、デフォルトでは、セキュリティ保護されたサンドボックス内で実行されます。サンドボックスは信頼されていないアプリケーションのコードに付与する一連のアクセス権を定義します。
標準の Java ポリシーファイルは、信頼されていないアプリケーションに付与するアクセス権を拡張するために使用されます。$JRE_HOME/lib/security/java.policy
および $USER_HOME/.java.policy
(すべての java プログラムにより使用される) に加えて、Java Web Start および Java Plug-in によりロードされるアプリケーションとアプレットは、2 つのポリシーファイルを追加的にロードします。それらの格納場所は配備構成プロパティ、deployment.user.security.policy
および deployment.system.security.policy
により設定されます。
デフォルトのサンドボックスは、これらのポリシーファイルにより付与されたアクセス権が存在すれば、それらを組み合わせて、信頼されていないコードに付与するアクセス権を決定します。
もう 1 つのポリシーファイルの格納場所は配備構成プロパティ deployment.security.trusted.policy
により決定され、信頼されたコードに付与するアクセス権を制限するために使用されます。デフォルトでは、このプロパティは設定されません。その場合、信頼されたコードには AllPermission
アクセス権が付与されます。このプロパティが設定された場合、信頼されたコードには、信頼されていないコードに付与されたアクセス権と、このプロパティで指定するポリシーファイルにより付与された他のアクセス権だけが付与されます。
配備構成には、コードを信頼するかどうか、またどのように信頼するかを決定するために、いくつかのプロパティが備えられています。通常、Java Plug-in の任意の署名されているファイル、および AllPermission
アクセス権を要求し、jnlp ファイルにより指定される Java Web Start 内の署名された JAR ファイルの任意のセットには、証明チェーンが検証され、結果がセキュリティダイアログに表示されてから、信頼が与えられます。
配備構成プロパティ deployment.user.security.trusted.certs
は、ユーザによりすでに許可された証明書を含む証明書ストアを指定します。
配備構成プロパティ deployment.system.security.trusted.certs
は、システム管理者によりあらかじめ許可されている証明書の証明書ストアを指定するように設定できます。
Java Plug-in における JAR ファイル、または Java Web Start における AllPermission
アクセス権を要求する jnlp ファイルの JAR ファイル群は、これらのストアの 1 つにある証明書で署名されると、信頼を付与されます。
配備構成プロパティ deployment.security.askgrantdialog.show
は、新しい証明書を使用して署名された新しいコードに信頼を付与する許可をユーザに与えるかどうかを制御します。配備構成プロパティ deployment.security.askgrantdialog.notinca
は、さらにルート証明書が認証局のルート証明書ストア (以下を参照) にない証明書により署名されたコードに対して、信頼を付与する許可をユーザに与えるかどうかを制御するために使用されます。
上記の 2 つのプロパティが許可し、コードが適切に検証された証明書チェーンを使用して署名されている場合、コードに信頼を与えるかどうかを尋ねるセキュリティダイアログボックスが表示されます。
配備構成プロパティ deployment.security.notinca.warning
は、セキュリティダイアログボックスに表示される情報をカスタマイズするために使用されます。これがデフォルトの true
に設定されている場合、自己署名証明書に対するセキュリティダイアログボックスは次のように表示されます。
deployment.security.notinca.warning
が、false
に設定されている場合は、セキュリティダイアログボックスは次のように表示されます。
配備構成プロパティ deployment.security.expired.warning
は、セキュリティダイアログボックスに表示される情報をカスタマイズするためにも使用されます。これがデフォルトの true
に設定されている場合、期限切れの証明書に対するセキュリティダイアログボックスは次のように表示されます。
deployment.security.expired.warning
が、false
に設定されている場合は、セキュリティダイアログボックスは次のように表示されます。
ユーザは、「Yes」、「No」、「Always」、のどれかを選択します。
ユーザが、「No」と選択した場合、証明書が無効な場合、またはユーザに対するダイアログ ボックスが表示されない場合には、deployment.security.askgrantdialog.show
または deployment.security.askgrantdialog.notinca
が false
になります。これにより、Java Web Start におけるアプリケーションは実行されず、Java Plug-in における JAR はサンドボックスアクセス権を使用して実行されます。
ユーザが「Always」と選択した場合、証明書は deployment.user.security.trusted.certs
プロパティにより指定された証明書ストア内に格納されます。
上記の認証局のルート証明書ストアは、deployment.user.security.cacerts
および deployment.system.security.cacerts
プロパティにより指定されたファイル内に格納される証明書の集合です。デフォルトでは deployment.system.security.cacerts
は、jre/lib/security
ディレクトリの cacerts
ファイルを指定します。deployment.user.security.cacerts
は、Java コントロールパネルの「セキュリティ」タブにある「証明書」ダイアログ ボックスを使用してインポートされる、任意の追加された cacerts
を含むファイルを指定します。
ユーザが使用する Java Web Start のカスタマイズには最終の設定が使用されます。デフォルトでは、サンドボックスに、AWTPermission
showWindowWithoutWarningBanner
は含まれません。このアクセス権がないと、すべてのトップレベルのウィンドウに、awt バナー「Java Application Window」または「Java Applet Window」が表示されます。配備構成プロパティ deployment.security.sandbox.awtwarningwindow
は、信頼されていないコードにこのアクセス権を追加するために使用されます。