最新のJavaでセキュリティ設定によりJavaアプリケーションがブロックされるのはなぜですか。


このトピックは、次に当てはまります。:
  • Javaバージョン: 7.0, 8.0

症状

Java 7 Update 51以降、Javaアプリケーションを実行しようとすると、メッセージが表示されます
Javaアプリケーションがセキュリティ設定によりブロックされます。
Application-Nameマニフェスト属性がありません
メインJARに必須の権限マニフェスト属性がありません


原因

Javaではセキュリティ機能が強化され、外部のエクスプロイトに対するユーザー・システムの脆弱性が軽減されています。Java 7 Update 51以降、Javaは署名されていない(署名なし)、自己署名付き(信頼できる認証局により署名されていない)、または権限属性のないアプリケーションをユーザーが実行することを許可しません。

実行中のアプリケーションに内在するリスク

署名されていないアプリケーション

証明書のないアプリケーション(署名なしのアプリケーションなど)またはアプリケーションの名前と発行者情報が欠落しているアプリケーションはデフォルトでブロックされます。このようなアプリケーションを実行すると、安全ではなく高レベルのリスクが生じる可能性があります。

自己署名付きアプリケーション(信頼できる認証局から発行されていない証明書)

自己署名証明書を含むアプリケーションはデフォルトでブロックされます。このタイプのアプリケーションは、発行者が識別されず、アプリケーションにコンピュータの個人データのアクセスが付与されている可能性があるため、最高レベルのリスクを表します。

権限属性が欠落したJarファイル

権限属性は、開発者が指定した権限レベルをアプリケーションがリクエストしていることを確認します。この属性がないと、攻撃者がユーザーを利用して元の証明書で署名されたアプリケーションを再度デプロイして異なる権限レベルでアプリケーションを実行する可能性があります。


解決策

アプリケーションはJava 7 Update 51で実装されているセキュリティ・ガイドラインに準拠するため、実行中のアプリケーションがブロックされます。

このアプリケーションの開発者または発行者に連絡して、アプリケーションがブロックされることについて通知してください。アプリケーションのコードへのセキュアな措置の実装に関する情報を提供するこれらのリンクを彼らに提示できます。


回避策

これらのタイプのアプリケーションは実行しないことを強くお薦めします。ただし、これらのアプリケーションの実行を継続する場合は、そのリスクと影響を理解した上でのみ実行してください。

回避策として、例外サイト・リスト機能を使用して、セキュリティ設定によりブロックされるアプリケーションを実行できます。ブロックされるアプリケーションのURLを例外サイト・リストに追加することでアプリケーションを実行できますが、警告が表示されます。