本月起Oracle将不再提供Java 6的安全更新

Java 6公开发行的最后一个版本将于2013年2月19日发布。之后Java SE 6运行时和SDK的所有新的安全更新、补丁和修复将只能通过My Oracle Support获取,因而只有使用Oracle商业许可的用户才能获取。

考虑到这一点,Oracle在去年年底就开始通过自动更新用Java SE 7来自动替换Java SE 6了。Oracle在公告中宣称,他们

……将于2012年12月开始把Windows 32位Java运行时环境(JRE)的用户从JRE 6升级到JRE 7。

Java自动更新机制是为让Java用户保持更新到最新的安全修复而设计的。为实现该目标,依赖Java自动更新机制的Windows用户的JRE 6将被替换为JRE 7。 Oracle将于2012年12月开始挑选部分用户进行从JRE 6到JRE 7的自动更新,以评估自动更新机制、用户体验和无缝迁移。之后,随着Java的更新版本Java SE 7 Update 11(Java SE 7u11)在2013年2月发布,Oracle会开始将所有Windows 32位用户的JRE 6升级到JRE 7。

这种迁移是存在争议的。JNBridge(主要业务是Java/NET的互操作)的CTO Wayne Citrin在一篇博客文章中写道:

这太让人吃惊了。Oracle已经做出决定,为修复广泛报道的安全问题,他们不只会更新Java 7(他们最新的Java版本),还将彻底删除一个完全独立的产品。没错,Java 6就是独立于Java 7的产品。它们可以同时安装,而且很多用户的机器上就是同时安装了Java 6和Java 7。有些应用依赖Java 6,而其他应用可能依赖Java 7,这些依赖通常是硬编码的,或者通过配置指向了正确却又不同的文件位置。你能想象微软在发布.NET 4.0的更新的同时把.NET 2.0移除掉吗?问题就是这么严重。

更糟糕的是,看来他们是要站在自己的立场上将安装的Java 6替换为Java 7,哪怕用户的机器上只安装了Java 6。

因此他这样说,“你应该坚定地考虑关闭Java的自动更新”。

InfoQ请Citrin谈了一下他的态度。“实际上我认为用户最好的选择是把浏览器插件升级到最新的Java 7,”他对我们说,“或者简单地在浏览器中禁止Java。”关于Oracle应该如何处理目前这种状况,他也提了很多建议:

a. 从支持同时安装转变为替换式安装,也就是用Java 7替换Java 6,这需要严格向后兼容较老的版本,如此用户才不会注意到。此时这或许并非很好的选择,但从长期来看可能是最好的解决方案。

b. Java 6的更新至少再继续提供一段时间。当然这只是拖延时间,无法最终解决问题。

c. 作为Java 7更新的一部分,检查用户的Java浏览器插件是不是Java 7。如果不是的话,就切换到Java 7。这可能是全面解决问题的最好方案。大多数攻击都是通过浏览器进来的,不过大部分人并没有注意到这一点。这种方式有可能什么都不破坏。

事实上Oracle已经对更新进程采取了一些防范措施。对企业级用户而言,Java自动更新进程只更新用户Windows机器上最新安装的Java版本,这是最重要的。也就是说,如果安装了多个Java版本,只有最近安装的那个会被替换掉。此外,在由企业代表用户对Java的版本进行管理的地方,通常关闭自动更新,因此他们不会受到影响。即便如此,尽管企业客户应该不会受自动更新的影响,Citrin也提到,“我们与客户交流时得知,作为独立软件开发商,他们也有些客户报告问题”。

前几天的安全电话会议也讨论了Java默默进行自动更新的问题。当然,并非真是默默更新,但正如Ask工具栏(译者注:这是Java安装程序中提供的默认搜索功能工具栏)的安装一样,用户往往没有仔细阅读就在安装程序中点击通过了,Citrin在与我们交流时也表达了这种观点。考虑到这一点,回顾一下Donald Smith关于自动更新的评论是很有意思的事情:

当然,你会遇到挑战:如果新出现的特性与历史悠久的生态系统中的这一特性工作方式不同,突然就会有很多人问这个问题,“我应该如何避免这种情况发生呢?”

随着Java日益成为恶意软件和病毒作者的目标,对Oracle来说,鼓励用户更新到最新状态一定是个挑战。

InfoQ联系了Oracle希望得到解答,但他们拒绝发表评论。

查看英文原文:Oracle Will Stop Providing Security Updates for Java 6 Next Month

你可能感兴趣的:(本月起Oracle将不再提供Java 6的安全更新)