[Java, Security] Updated Security Baseline (7u45) impacts Java 7u40 and before with High Security settings

原文はこちら。
https://blogs.oracle.com/java-platform-group/entry/updated_security_baseline_7u45_impacts

Java Security Baselineが7u25から7u45に更新されました。このため、Javaコントロールパネルで高セキュリティ設定にしている場合、7u45より前のJavaを使っていると、未署名のJava AppletやJavascript LiveConnect呼び出しに依存するJava Appletがブロックされることを意味します。
この問題はAppletやWeb Startアプリケーションにのみ影響します。その他のタイプのJavaアプリケーションには影響しません。

手短に言うと…

Java 7 Update 45にアップグレードしたユーザーは自動的にこの問題が修正されます。アップグレードを強く推奨します。

もっと詳しく言うと…

デプロイメントフローチャートに記載されているように、2項目が関係しています。
Rich Internet Application Deployment Process
Overview
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/deployment_flow.html#overview
  1. セキュリティ・ベースライン(Security Baseline)
    動的にアップデートされる属性で、この属性をチェックして、Javaバージョンに最新のセキュリティパッチが含まれているか確認します
  2. セキュリティ・スライダー(Security Slider)
    どのタイミングでアプレットを実行・停止・プロンプト表示するかをユーザーがコントロールできる設定

Security Baseline

Javaクライアントはどのバージョンに最新のセキュリティパッチが含まれているかを知るため、定期的にチェックインします。バージョンとは、バグ修正が含まれているリリース済みの中間物です。例えば、
  • 7u25(2013年7月)は以前のセキュリティベースラインでした。
  • 7u40にはバグ修正が含まれていましたが、セキュリティパッチは含まれていなかったので、ユーザーはアップグレードする必要はなく、7u25のままでも問題ありませんでした。
  • 7u45(2013年10月)がリリースされると、このCritical Patch Updateにはセキュリティパッチが含まれており、セキュリティベースラインが変わりました。ユーザーは以前のバージョンからアップグレードする必要があります。
定期的にインターネットに接続しないユーザーのために、組み込みの失効日(Expiration Date)があります。
JRE Expiration Date(stackoverflow.com)
http://stackoverflow.com/questions/16067829/jre-expiration-date
事前に確立された4半期のCritical Patch Updateのため、次バージョンのおおよその日付を確認することができます。 7月にリリースされたCritical Patchの後継Critical Patchは、遅くとも7月の3ヶ月後の10月にリリースされます。
The Oracle Software Security Assurance Blog
https://blogs.oracle.com/security/

The Security Slider

セキュリティ・スライダーはJavaコントロールパネル内にあり、これを使ってどのAppletやWeb Startアプリケーションを表示するか、実行するか、ブロックするかを決定します。
表示/実行/ブロックを判断する際に使われる質問の一つは、「セキュリティベースラインと同じ、もしくはそれ以上か("At or Above the Security Baseline")」というものです。

The Combination

LiveConnectからのJavaScript呼び出しが、署名済みJARファイル内に存在しないため、未署名のコードであるとみなされます。これはネットワーク化されたシステム内では正しい振る舞いです。その理由は、たとえドメインがHTTPSを使っていても、署名済みJARファイルとは、署名された「保存データ(data at rest)」を表しているのに対し、TLS(SSLとも呼ばれます)が文字通り 「トランスポートレベルセキュリティ」を意味し、チャネル内のコンテンツやコードではなく、通信チャネルを保護しているためです。
「後で更新」をクリックした場合、AppletやWeb Startを実行すると以下のようになります。
  • ブラウザプラグインが登録されており、実行が許可されているか?-->はい
  • このRIAに対応するルールが存在するか?-->いいえ、どのルールも適用されていない
  • RIAには有効な署名があるか?-->はい、署名は失効していない
  • どのセキュリティプロンプトが必要か?
    • JREはベースラインを下回っている(理由)現在7u45がベースラインであり、「後でアップグレードする」がクリックされているため。
    • デフォルトの「高」設定の下では、未署名コードは「実行禁止」に指定されている。
  • そのため、以下のプロンプトが現れる。

    補足情報

    念のため、Java 7u51(2014年1月)では、未署名および自己署名AppletとWeb Startアプリケーションがデフォルトでブロックされる予定です。
    New security requirements for RIAs in 7u51 (January 2014)
    https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias

    0 件のコメント:

    コメントを投稿