Monday Sep 09, 2013

Mudanças no Java SE 7u51 para Applets e Web Start

Science DukeA atualização do Java 7 update 51 (prevista para Janeiro, 2014) pretende incluir duas alterações de segurança desenhadas para melhorar a autenticação e autorização de aplicações Applets e Web Start. O controle de segurança slider do painel do Java está sendo atualizado para bloquear aplicações RIAs (Applets e Web Start) que não atenderem a estes novos requisitos. Importante: estas mudanças só se aplicam para RIAs, e não para Java no servidor ou em aplicações desktop fora do browser.

Sumário:

  • Você deve assinar todas as RIAs (Applets e aplicações Web Start)
  • Você deve definir o atributo "Permissions" dentro do Manifest
  • Sua aplicação será afetada se é inicializada a partir de um web browser. Sua aplicação não será afetada se ela é executada fora de um navegador web.

Informação completa poderá ser encontrada no release notes do Java 7 update 51, assim que for lançado em 2014.

Desenvolvedores:

A partir do Java 7u51 (Janeiro, 2014), RIAs devem ser atualizadas. As mudanças necessárias são no processo de empacotamento e distribuição; nenhuma mudança em código Java ou API é necessária. O estímulo para essas mudanças se refere à potencial abordagem de re-purposing de aplicações sandboxed, em que colocando permissões em um JAR assinado previne a modificação do seu nível de permissão definido. RIAs devem conter duas coisas:

  1. Assinatura de códigos de uma entidade verificadora confiável Trusted Authority. Todo o código para Applets e aplicações Web Start deve ser assinado, independente dos atributos de permissões.
  2. Atributos no Manifest
    1. Permissions - introduzido no Java 7u25, e obrigatório a partir do Java 7u51. Indica que uma aplicação RIA deve ser executada em modo sandboxed ou requerer todas as permissões.
    2. Codebase - introduzido no Java 7u25 e extremamente recomendável a partir do Java 7u51. Aponta para o local conhecido que hospeda o código (por exemplo: intranet.example.com)

Exemplo de META-INF/MANIFEST.MF

Manifest-Version: 1.0
Created-By: 1.7.0_51
Permissions: sandbox 
Codebase: www.java.com java.com 

Este arquivo manifest é criado quando o JAR  é empacotado, seja através do comando JAR, sua ferramenta de build, ou a sua IDE. 

Exemplo JNLP para apps Web Start

<?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>

Veja o documento Development and Deployment of RIAs para maiores detalhes no formato do arquivo JNLP e o deployment toolkit. Para instruções sobre como assinar seu código, veja o tutorial Lesson: Signing Code and Granting It Permissions.

Administradores de Desktops

Se você é um administrador de desktops que gerencia instalações de softwares como o Java, em diversos computadores, considere o uso dos Rule Sets para cadastrar aplicações Java na whitelist. Deployment Rule Sets permite que você certifique que uma aplicação é conhecida como segura e confiável, mesmo que você não possa atualizar esta aplicação para atender a estes novos requerimentos.

Nota: este artigo foi publicado originalmente no blog do Java SE Product Management Team.

About


Bruno has been having fun working with Java since 2000 and now helps Oracle on sharing the technology accross all Latin America. Also plays videogames, does trekking and loves beer.

Follow me on Twitter! @brunoborges

Search

Archives
« September 2013 »
SunMonTueWedThuFriSat
1
2
3
4
6
7
8
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
       
Today