本系统的客户程序是Java Applet,但它的执行需要读本地硬盘,以及进行安全算法方面
操作,这些操作都需要有本地Application的权限,而无法在普通的沙箱机制的限制下运
行。
1 沙箱机制对Applet的安全性限制
在浏览器或者appletviewer中运行远程主机上存放的Applet时,Java VM认为它是不可信
任的,将其置于所谓sandbox的保护之下,在这样的情况下Applet的运行受到下面的限制
:
b) Applet不能读写客户端主机上的文件
c) Applet不能执行JCE/JCA中的addProvider操作
d) 在进行网络连接时Applet只能与提供它的服务器建立连接
e) Applet在事件捕获、读取系统信息等其他方面受到限制
f) 在Netscape浏览器中,不提供java.security.*的支持,在IE浏览器中对Applet的运行
做了比appletviewer中更加高的限制
由于上述的限制,安全公文传递系统的客户程序直接在浏览器或appletviewer中运行时会
遇到下列问题:
b) 客户程序无法读写客户机的存储设备
c) 客户程序无法执行addProvider操作
d) 在使用额外类库时发生Security Exception
e) 在Netscape浏览器中因为缺乏java.security.*的支持而完全无法运行
bitsCN_com
f) 在IE浏览器中发生更多的Security Exception
产生这些问题的原因是各种java VM将公文系统的客户程序视为不可信任的。解决的方法
是要使Java VM信任公文系统的客户程序。
3 Applet的签名和信任机制
要使Applet得到虚拟机的信任就要有办法让虚拟机知道Applet是可信任的人提供的。SUN
、Netscape
Communicator和IE4.0各自提供了一套互相之间不兼容的Applet签名机制。它们的原理都
是相同的,就是通过验证一个可信任的签名者的数字签名,来验证Applet是由可信任的作
者提供的。在安全公文传递系统中我们采用了SUN提供的签名机制,并通过安装java
plugin使得在各种浏览器中都可以使用这套签名机制。
SUN在JDK1.X版本中提供了一个名为javakey的小程序。applet数字签名它能够替开发者完成对Applet进行
数字签名的所有步骤,也能替最终用户完成设置对开发者信任的工作。要对Applet进行数
字签名之前,必须用JDK的另外一个工具程序jar将applet中用到的类打包成一个.JAR文件
。这样建立一套基于ja
vakey的Applet签名和信任体系包括下列三项工作:
* 用jar工具创建.JAR文件
* 用javakey创建数字签名 bitsCN_com
* 在客户端安装java plugin,并设置对签名人的信任
下面分别阐述这三项工作。
4 用jar工具创建.JAR文件
JAR是Java
Archive的缩写。Jar工具的主要功能是将文件压缩和打包。JDK提供jar工具的目的主要是
让用户可以将applet中用到的class文件和其他文件压缩打包到一个文件中,当浏览
applet时通过一从http的传输将它们一并下载到客户端,节省多次下载多个小文件所浪费
的协议建立时间。客户程序
在下载了applet的.jar文件后就可以运行applet而无需再继续下载其他文件了。Javakey
在生成数字签名时要求有关的类都打包在一个.jar文件中,它生成的数字签名也会自动添
加到这个.jar文件中去。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28147-1.html
冷静
fx