详细解析Java体系结构对信息安全的支持.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
详细解析Java体系结构对信息安全的支持.doc

详细解析Java体系结构对信息安全的支持 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语言本身安全性 Java语言的设计者们是在C++的基础上设计出来Java的,因此与C++相比它 的语法更加简单清晰,结构、单元、运算符重载、虚拟基础类等在Java中都没有采用,并且取消了多重继承而采用实现多个接口的方式。这样能降低开发人员犯 错误的几率,帮助他们写出更安全的代码。 Java中去除了C++语言中的令人费解、容易出错的指针,用列表、堆、哈 希表等结构来代替,避免了任何不安全的结构。Java也没有索引核查的数组访问,因为这往往会导致不定的、不可预测的程序操作,它所有的数组访问都必须先 检查是否越界。Java要求所有的变量在初始化以前不能使用,对于基本数据类型变量都会自动地赋给某个初始值,避免了未初始化变量获取内存信息。所有这些 都使得程序不能访问任意的内存地址,对于内存中的实体信息只能通过有权限的对象进行访问,而不会出现象C++那样把类型指针强制转换成内存的指针,然后通 过内存查找的方法找到私有的变量。 Java分配内存对于开发人员来说是透明的,开发人员使用new方法新建对象, 这时候虚拟机就会从堆内存中找到合适的内存空间,开发人员不需要也不能够进行干预。而对于内存的回收,Java避免了开发人员明确干预对象的回收,比如C 的free或C++的delete命令,避免了开发人员无意间对内存的破坏。Java采用虚拟机的垃圾回收机制来实现的内存自动管理,释放不再被使用 的内存资源,内存回收器就像一台垃圾收集车,但是和我们在大街上看到的收集车,仅仅收集大家放在垃圾桶里面的垃圾不同的是,它还要到你家里去帮你找出那些 东西是不要用的垃圾,然后把这些东西拿走,最后还要整理家里的空间,腾出最大的空间让你放新东西。Java的内存回收器目的就是找到不再引用的对象,释

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档