解析Java体系构造对信息安全的支持[Java编程]
本文“解析Java体系构造对信息安全的支持[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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的内存回收器目的就是找到不再引用的对象,释放内存空间,并且需求整理内存的碎片空间,尽大概避免呈现"内存不足"的情形.
关于在网络中交换的序列化对象很简单在重建对象的时刻拜候到对象的私有信息,这时刻Java供应了两种办法来保护信息,一种就是采取给变量加上transient关键字的办法,这样对象序列化的时刻就不会读写该变量,另一种就是在实现Externalizable接口而不是Serizlizable接口,这样对象就只能通过writeExternal和readExternal办法来保存和重建,其他办法无法举行了.
以上这些都是Java语言本身对信息安全供应的底子.
以上是“解析Java体系构造对信息安全的支持[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |