文件名称:中的某些安全特性方面-中华石杉-消息队列相关面试题
文件大小:49.36MB
文件格式:PDF
更新时间:2024-07-30 13:59:47
高清 文字版 带书签 完美版
第1版启用后不久,普林斯顿大学的一些安全专家们就发现了在JDK1.0中的某些安全特性方面 存在着一些非常隐蔽的bug。Sun Microsystems 大力支持对Java的安全性的研究,制定了供人们 使用的规范,实现了虚拟机和安全库,并迅速地处理了所有已知的安全bug。在任何情况下, 蒙骗Java的安全机制都是十分困难的。现在,发现bug 的技术越来越强,数目越来越少。 从一开始,Java就设计成能够防范各种袭击,其中包括: • 运行时堆栈溢出。如,蠕虫等病毒常用的袭击手段。 • 在自己的处理空间之外破坏内存。 • 未经授权读写文件。 许多安全特性相继不断地加入到Java中。自从Java1.1问世以来,Java就有了数字签名类 (digitally signed class)的概念(请参看卷II)。通过数字签名类,可以确定类的作者。如果信任 这个类的作者,这个类就可以在机器上拥有更多的权限。 注释:来自微软的基于ActiveX技术的竞争代码传输机制,其安全性完全依赖于数字签名。 这显然是不够的,因为微软自身产品的任何用户都可以证实,来自知名提供商的程序会 崩溃并对系统产生危害。Java的安全机制比ActiveX要强得多,因为它是在应用程序运行 时加以控制并制止恶意性破坏的。 1.2.6 体系结构中立 编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有 Java运行时系统,就可以在许多处理器上运行。Java编译器通过生成与特定的计算机 体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易地在 任何机器上解释执行,而且还可以迅速地翻译成本地机器的代码。 这并不是什么新的思路。30多年以前,Niklaus Wirth 实现的原始 Pascal以及UCSD Pascal 系统都使用了这种技术。 当然,解释字节码肯定会比全速地运行机器指令慢很多。所以说,这是不是一个好的思路 还很难讲!然而,虚拟机有一个选项,可以将使用最频繁的字节码序列翻译成机器码,这一过 程被称为即时编译。这一策略已经证明十分有效,致使微软的.NET平台也依赖于虚拟机。 虚拟机还有一些其他的优点。虚拟机可以检测指令序列的行为,以增强其安全性。有些程 序还可以快速地生成字节码,并动态地增强所运行程序的处理能力。 1.2.7 可移植性 与C和C++不同,Java规范中没有“依赖具体实现”的地方。基本数据类型的大小 以及有关算法都做了明确的说明。 4 第 1 章