JDK中Applet的安全性策略探究

众所周知,通过浏览器访问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版本

详情链接

英文:
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)。

下面列出了可通过将应用程序 URL 添加到“例外站点”列表以允许应用程序运行的情况:

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

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


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值