【IT168 评论】2013年3月12日,Tiobe公布了新一期编程语言排行榜。Java依旧是占据第一的位置,C语言紧随其后。值得注意的Objective-C持续发力,已经占到了第三的位置。咋一看榜单,前5条中C#下滑最快,从第3名下降到第五名。而其他语言都与之前没有变化。
最近一段时间,关于Java安全性的新闻层出不穷。被伤害的不光是普通计算机用户,甚至还包括苹果公司、美国政府。此次安全风波波及面之广,恐怕是Oracle始料未及的。
1.黑客利用网页漏洞进行攻击
据国外安全研究机构称,当前的Java版本中包含了一个严重的安全漏洞,可能导致电脑在访问带有恶意代码的特定网页时被感染。Window系统中的所有主流浏览器都可能被利用并感染,其中也包括Chrome。该漏洞也存在于苹果最新的Mountain Lion操作系统。
为此,苹果不得不单独发布Java相关更新,以保证Mac用户的安全性。素以跨平台性强著称的Java,也让所有运用他的人无处可藏。
2.Java安全机制
Java早期的安全框架强调的是通过验证代码的来源和作者,保护用户避免受到下载下来的代码的攻击。Java安全模型的前三个部分——类加载体系结构、class文件检验器、Java虚拟机(及语言)的安全特性一起达到一个共同的目的:保持Java虚拟 机的实例和它正在运行的应用程序的内部完整性,使得它们不被下载的恶意代码或有漏洞的代码侵犯。相反,这个安全模型的第四个组成部分是安全管理器,它主要用于保护虚拟机的外部资源不被虚拟机内运行的恶意或有漏洞的代码侵犯。这个安全管理器是一个单独的对象,在运行的Java虚拟机中,它在对于外部资源的访问控制起中枢作用。
Java签名/证书机制,可以保障使用者,安全地调用外部提供的jar,防止你信任的jar被篡改。首先,Java的签名,必须是基于jar包的。也就是说,你必须将你要提供的class,打包到jar里。然后,通过Java 提供的签名工具(jarsigner)对jar包进行签名,发布。
签名原理:使用非对称算法,生成一对公钥/私钥。
3.Oracle应对Java漏洞危机
甲骨文软件质量保证经理Eric Maurice透露,五个漏洞中有四个存在于桌面系统的Java Web Start应用和浏览器Java小程序中。其中三个被通用漏洞评分系统评为10级,这是很严重的事情:如果Java运行在Windows XP这种默认以管理员身份运行的系统,那么黑客能够利用这些漏洞完全损害系统的保密性,完整性和可用性;在Linux或者Salaris这类以非管理员权限运行的系统中情况会好一些。安全研究人员对剩下的一个漏洞也做出过说明,该漏洞影响服务器部署的Java安全套接字扩展(JSSE),基于Lucky Thirteen攻击SSL/TLS实现。
新的Java 6 _update41可以从甲骨文网站下载,而不是Java.com,目前必须手动下载。但Java 6 安装程序的更新功能会提示用户下载并安装Java 7 _update15。这一切都在甲骨文的计划中。甲骨文之前在网站上宣布,将启动自动更新帮助Windows32位系统用户完成升级。甲骨文将加快其对Java的修补速度。Maurice说,“甲骨文会继续加快Java更新发布速度,特别是帮助解决桌面系统浏览器的Java运行环境安全,以重树安全信誉。”
其实这次Java漏洞危机并不是第一次,之前2010年也有报道宣称Java漏洞会影响Windows运行安全。各位用户还是尽量及时更新自己的Java,作为开发语言中举足轻重的语言,Java的安全性还是值得信赖的。