Java 语言拥有三大特征:平台无关性、网络移动性和安全性,而 Java 体系结构对这三大
特征提供了强大的支持和保证,本文着重介绍 Java 体系结构对支持信息安全的原理和使用
方法。
Java 体系结构
首先 Java 的源代码 Java 文件由编译器编译成 Java 的二进制字节码 class 文件,
然后 class 文件由 Java 虚拟机中的类装载器进行加载,同时类装载器还会加载 Java 的原始
API Class 文件,类加载器主要负责加载、连接和初始化这些 class 文件以后,就交给虚拟
机中的执行引擎运行,执行引擎将 class 文件中的 Java 指令解释成具体的本地操作系统方
法来执行,而安全管理器将在执行过程中根据设置的安全策略控制指令对外部资源的访问。
Java 的执行方式不是编译执行而是解释执行这里的说法是错误的,不同平台上面
相同的源代码编译成符合 Java 规范的相同的二进制字节码,然后再交给支持各自平台的虚
拟机去解释执行,"先编译,后解释,再执行"三步走的方式使得 Java 实现了"一次编写,到
处运行",如果 Java 应用使用的是 100%标准 Java API 并且没有直接调用本地方法,那就可
以不加修改地运用在多种平台上,这样的平台无关性使得在异构的网络环境或者嵌入式方面
的应用更方便和现实。 Java 的网络移动性带来了一种全新的软件模式,在分布式处理模式
的基础之上,可以将软件和数据通过网络传送到客户端去,这样确保了客户端有必备的软件
来浏览和操纵通过网络传输的数据,Java 体系结构支持把单一的执行文件切割成小的二进
制字节码文件 Class 文件,而这些文件可以按照应用的需要动态连接、动态扩展。Java 体
系结构对安全性的支持主要是通过 Java 语言本身安全性、虚拟机的类加载器和安全管理器
以及 Java 提供的安全 API 几个方面来实现:防止恶意程序的攻击,程序不能破坏用户计算
机环境;防止入侵,程序不能获取主机或所在内网的保密信息;鉴别,验证程序提供者和使
用者的身份;加密,对传输交换的数据进行加密,或者给持久化的数据进行加密;验证,对
操作设置规则并且进行验证。
Java 信息安全的必要性
随着互联网应用越来越广泛,并且互联网其本身独特的资源共享性,因此能够按照
用户需求及时准确获得信息和处理信息的应用对用户而言就相当重要,这也是 Java 得以迅
速发展和被广泛接受的原因。但同时网络也提供了一条攻击接入计算机的潜在途径,特别是
当用户下载网络软件在本地运行,这就要求 Java 能够对病毒/木马的问题加以防范,对信息
以及本地环境进行保护。比如我们浏览一个网页的时候,网页上的 Applet 可能会自动下载
并且运行,而这个 Applet 完全有可能来自不可靠的地方,又或者我们使用通过 JINI 服务查
找到的网络上不可靠的服务对象来获得服务,如果没有 Java 体系结构提供的安全机制,这
就很有可能引入了一个怀有敌意的程序造成信息丢失、资料泄密、相信伪造数据和修改本地
计算机安全设置等等后果,带来未知的严重后果。
Java 语言本身安全性