JAVA安全

JAVA现在是目前各种编程语言中排行最高的一个,之所以会这样原因有很多,第一因为JAVA是面向对象的语言(现在面向对象的语言也越来越多了),第二就是与平台无关性,JAVA从一开始推出了就大喊“只要编写一次,就可以到处运行了”,的确,做到了,这个也是JAVA火的原因之一,第三就是JAVA对网络技术很好的支持(JAVA发展刚刚那个时候网络刚刚兴起,网络的兴起也让JAVA很火了),第四就是JAVA的安全性。总结:JAVA之所以会这么的红火那是必然的原因也很多,这次的重点在于讨论JAVA安全。
JAVA的执行就是将*.java编译成为*.class文件,然后class文件由JAVA虚拟机进行加载,之后就是交给虚拟机中的执行引擎运行,执行引擎根据class中的java指令解释成本地操作系统方法进行相应的执行,这个时候安全管理器将会在执行过程中根据设置安全的策略进行对资源的访问。
JAVA的安全性的支持主要是通过JAVA语言本身安全性还有虚拟机加载器和安全管理器已经JAVA提供的安全API进行实现的,首先第一做到不被恶意程序攻击,之后就是java编写的程序不能破坏用户的计算机环境,并且成员不能够获得主机和所在内网的保密信息,之后就是在数据进行传输的时候进行数据的加密,还有就是当数据进行持久化存储的时候也要进行相应的加密,只有进行相应的验证之后可以进行正确的读取内容。
并且JAVA很多时候都是和网络相联系的,并且JAVA在网络上面提供很多很多的服务,并且也要去连接其他的服务,所以这个时候,JAVA的安全性就更加的重要了,如果没有安全机制,就会造成信息的丢失,资料的泄密等很多很多严重的后果。
JAVA语言本事的安全性和类加载器这两个都毕竟简单,我们重点来看看安全管理器。
安全管理器为Java虚拟机的环境提供了一个限制了应用的操作运行环境,保护了虚拟机外部的资 源不会被虚拟机内部的恶意代码破坏。安全管理器的安全策略可以灵活的建立细粒度的访问控制策略,将不同的资源访问权限授予不同的代码单元。首先在赋予权限之前,通过签名来确保文件的来源并且保证本地虚拟机加载前是没有修改过的,只有保证了源码的来源可靠,才能分配相应的操作权限,这个是通过文件内容进行单向散列,然后将散列加到文件后面作为文件的一部分传递给用户,用户接收后重新计算之后毕竟,如果相同就表示内容没有被改动,这样就可以确保内容是否一致性了。仅仅是通过散列还是不行的,为了安全,我们必须在发送之前用私钥进行加密,之后用户通过公钥继续加密验证就可以了。
JAVA体系结构提供的安全API,主要有java认证和授权服务(JAAS),java安全套接字扩展(JSSE)和java加密扩展(JCE) API提供了加密算法可以按照我们的需要,实现对任 意数据的加密和解密.
加密算法JCE中提供 了DES、多重DES、PBEWithMD5AndDES、RSA和Blowfish等等。DES是很多机构组织采用的数据加密标准;而多重DES使用多 个DES密码进行多长DES加密,加大了攻击的难度但是也增加了加密解密过程说花的时间;PBEWithMD5AndDES前面提到过,主要是计算散列, 然后对散列进行DES加密,来实现签名认证;RSA算法是1978年公布的一种分组加密算法,也是现在应用得最广泛的公钥密钥算法;Blowfish是由 Bruce Schneier公布的一种加密算法,没有申请专利,并且公布了实现的代码,它适合不需要经常更换密钥的情况。
JAVA安全套接字扩展包JSSE提供的是基于套接字直接传递的数据进行加密,JSSE实现了 SSL(安全套接字层)的加密,SSL作为HTTPS协议的基础,提供了在TCP套接字上对数据进行加密的方法,也是基于WEB应用最常用的一种加密方式,我们可以定义运行任意应用程序协议--包 括 HTTP、TCP/IP、FTP,甚至 Telnet--的客户机与服务器之间的安全套接字连接。
从这些可以看到JAVA的安全性是很高很高的,但是既然是公开的让人来研究的就还会有很多问题的,还有扩展和发展的空间,所以对JAVA安全也是一个更大的挑战。

猜你喜欢

转载自nevergiveuptochange.iteye.com/blog/1485689
今日推荐