您的位置:首页 > 移动开发

JDK中Applet的安全性策略探究

2015-05-03 17:31 316 查看
众所周知,通过浏览器访问Applet存在安全漏洞,jdk1.6及更早的一些版本一直存在这些问题,为了解决Applet的安全漏洞问题,在jdk1.7陆续发布了几个用于修补安全漏洞的jdk版本。相关版本更新简图如下:



一、 jdk1.7 update21版本

详情链接:

英文:https://blogs.oracle.com/java/entry/java_se_7_update_21

中文:http://www.java.com/zh_CN/download/help/appsecuritydialogs.xml 

Java 7 Update 21引入了对 Java 浏览器插件行为的更改,使您可以在浏览器中运行 Java 小应用程序之前做出更知情的决策。将出现安全提示,要求先确认,然后才允许在浏览器中运行 Java 内容。

此版本修补的安全漏洞内容包括:

(1)JAR黑名单和证书:甲骨文公司现在管理着一个jar黑名单和证书库,该数据会在客户端上首次执行Java applet或启动web应用时进行更新。

(2)更改了Java控制面板中的安全设置,确保本地applet运行在一个安全的JRE上。自签名或未签名的jar不在被允许

(3)安全对话框:在该版本中,在特权applet内部调用代码的JavaScript代码将被为混合代码,并会在JAR文件没有被标上Trusted-Library(受信任库)属性时弹出警告对话框。该版本中,RMI属性java.rmi.server.useCodebaseOnly默认为true,之前版本为false。

4)新增了一个Server JRE包,包含了用于服务器部署的常用工具,专门针对在服务器环境中部署Java运行时。

(5)支持Linux on ARM,处理器包括ARMv6和ARMv7。但目前不支持Java WebStart、Java Plug-In、Garbage First (G1) Collector、JavaFX SDK或JavaFX运行时等特性。

(6)更改了Runtime.exec

在jdk7u21及更高版本情况下,当运行仅仅自签名的jar时候会弹出一下对话框。此时对【不再对来自以上发行者和位置的应用程序显示此消息】打钩后,之后再浏览将不再弹出该提示框。



另外当客户端java control panel未导入【签名者 CA】证书或当使用证书颁发机构 (CA) 无法验证的证书运行应用程序时,会显示此对话框。

二、jdk1.7 update45版本

详情链接:
英文:
http://www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html

https://blogs.oracle.com/java-platform-group/entry/7u45_caller_allowable_codebase_and

https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

中文:

http://www.java.com/zh_CN/download/help/trusted_signed_variations.xml

自 Java 版本 7 Update 45 起,增加了针对 Java 应用程序执行的安全增强功能。当web页面发起LiveConnect对RIA的调用时,如果没有正确签名或配置,会出现一个新的安全警告。安全警告框可能如下:



从7u45开始,应用程序开发者可以指定新的JAR manifest文件属性包括:

Application-Name:该属性为RIA提供了一个安全标题
Caller-Allowable-Codebase:该属性指定了允许JavaScript调用Applet类的代码库/位置

只要满足如下条件,即可进行JavaScriptto Java调用:

JAR由一个【可信任的证书】签署,有Caller-Allowable-Codebase manifest入口,且JavaScript运行在相匹配的域中
JAR未签名,JavaScript调用发生在与JAR相同的域中

可通过以下方式消除或避免该弹出框:

1.在入口jar中设置manifest 属性:Caller-Allowable-Codebase和Permissions 。



官网摘抄:



2.在Java Control Panel中导入【可信任的证书】。



3.在Java Co ntrol Panel中设置【混合代码(沙箱代码与可信代码)安全验证】为【启用-隐藏警告并在保护下运行】。



三、dk1.7 update51版本

详情链接:

英文:
http://www.oracle.com/technetwork/java/javase/7u51-relnotes-2085002.html

中文:

http://www.java.com/zh_CN/download/faq/exception_sitelist.xml

http://www.java.com/zh_CN/download/faq/signed_code.xml

自 Java 版本 7 Update 45 起,增加了针对 Java 应用程序执行的安全增强功能。对富 Internet 应用程序(RIA,也称为小应用程序和 Web Start 应用程序)的增强功能主要包括以下:

(1)来自可信颁发机构的代码签名。小应用程序和 Web Start 应用程序的所有代码必须进行签名,不论其权限属性如何。

(2)清单属性

权限 - 在 7u25 中引入,从 7u51 开始是必需的。指示 RIA 应在沙盒中运行还是需要完整权限。
·代码库 - 在 7u25 中引入,从 7u51 开始是可选/推荐的。指向托管代码的已知位置。

自 Java 版本 7 Update 51 起,未对RIA签名时候,客户端将弹出对话框阻止jar的运行,如下图(不容版本的阻止框可能有所不同):



另外,在 Java 7 Update 51 发行版中引入了“例外站点”列表功能。通过将应用程序 URL 添加到例外列表中,用户可以运行通常被安全检查阻止的 Rich Internet Application (RIA)。

<
cb15
span style="white-space:pre;">下面列出了可通过将应用程序 URL 添加到“例外站点”列表以允许应用程序运行的情况:

·未使用可信证书颁发机构发布的证书对应用程序进行签名。
·应用程序在本地托管。
·Jar 文件不具有“权限”清单属性。
·使用过期证书对应用程序进行了签名。
·无法检查用于对应用程序进行签名的证书是否已撤销。

因此,在Java 7 Update 51以后的版本中可以通过添加例外站点的方式来运行缺少相关权限的jar运行,也是一种权宜之计。

原创整理,转载请注明原地址!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  applet 安全 jdk1.7 jdk1.8