[Java, Security] New security requirements for RIAs in 7u51 (January 2014)

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

Java 7 update 51 (2014年1月)では、Rich Internet Application(AppletとWeb Start)の認証・認可を強化するように設計された、2個のセキュリティ変更を含める予定です。デフォルトのセキュリティスライダーをアップデートし、こうした要求事項を満たさないRIAをブロックします。

(注意)この機能はRIAにのみ適用されます。サーバーサイドのJavaやブラウザ外で動作するデスクトップアプリケーションには適用されません。

Summary:

  • すべてのRIA(AppletならびにWeb Startアプリケーション)に対し署名する必要があります。
  • Manifest内に"Permissions"属性を設定する必要があります。
  • Webブラウザから起動したJavaを使うアプリケーションが影響を受けます。Webブラウザ外で動作する場合、そのアプリケーションに影響はありません。
  • 完全な情報はJava 7 Update 51のリリースノートに記載されます (7u51が2014年1月にリリースされると、以下のページに掲載されます)
    Update Release Notes
    http://www.oracle.com/technetwork/java/javase/7u-relnotes-515228.html

Developers:

7u51時点(US時間の2014年1月14日です)で、RIAをアップデートする必要があります。必要なアップデートは、パッケージングと配布に関するもので、APIコードの変更は不要です。これらの変更の理由は、サンドボックス化されたアプリケーションの目的変更の可能性に関連しています。これにより、署名付きJAR内に権限を配置して、指定した権限レベルの変更を防止します。
Preventing RIAs from Being Repurposed
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/no_redeploy.html

RIAには以下の2個が含まれる必要があります。
  1. 信頼された認証局からのコード署名。AppletやWeb Startアプリケーション用の全てのコードに署名がなされている必要がある。これはPermission属性の有無を問わない。
  2. Manifest属性
    1. Permissions – 7u25で導入された。7u51の時点で、RIAがサンドボックス内で動作する場合、もしくは全権限が必要な場合には設定が必要。
    2. Codebase – 7u25で導入され、7u51の時点で オプション・推奨される属性。ホストされているコードの既知のロケーション(例えば intranet.example.com)を指す。

Sample META-INF/MANIFEST.MF file:

Manifest-Version: 1.0
Created-By: 1.7.0_51
Permissions: sandbox
Codebase: www.java.com java.com
デフォルトのjarコマンド、ビルドツール、IDEでJARをパッケージするときにこのmanifestファイルを作成します。
jar-The Java Archive Tool
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jar.html

Sample JNLP for launching a web start application:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp href="JavaDetection_applet.jnlp">
    <information>
        <title>Java Detection</title>
        <vendor>Oracle Inc.</vendor>
    </information>
    <resources>
        <jar href="JavaDetection.jar" />
    </resources>
    <applet-desc
          name="Java Detection Applet"
         main-class="JavaDetection"
         width="1"
         height="1">
     </applet-desc>
     <update check="background"/>
</jnlp>
上記JNLPから<security />要素が抜け落ちていることに気付く開発者の方がいらっしゃるかもしれません。暗号で署名されたJARファイル内で<security />要素を提供するため、Java 7 Update 51(2014年1月)からは、もはやJNLP内にsecurity要素は不要になります。

JNLPとデプロイメントツールキットの完全な詳細情報は、Development and Deployment Of Rich Internet Applicationsをご覧下さい。
Java™ Rich Internet Applications Development and Deployment
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/index.html
コードの署名手順は、以下のチュートリアルをご覧下さい。
Lesson: Signing Code and Granting It Permissions (The Java Tutorials)
http://docs.oracle.com/javase/tutorial/security/toolsign/index.html

Desktop Administrators

デスクトップの管理者で、一連のコンピュータに対するJavaインストールを管理しているならば、Deployment Rule Setを使って内部アプリケーションをホワイトリストに加えることを検討して下さい。
Introducing Deployment Rule Sets
https://blogs.oracle.com/java-platform-group/entry/introducing_deployment_rule_sets
Rule Setを展開すると、アプリケーションを更新してこれらの要件に準拠させることができない場合でも、アプリケーションは信頼され、安全であることが知られていることを証明することができます。

0 件のコメント:

コメントを投稿