分享
 
 
 

TrustedApplet的制作和运行

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

本系统的客户程序是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.*的支持而完全无法运行

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进行数

字签名之前,必须用JDK的另外一个工具程序jar将applet中用到的类打包成一个.JAR文件

。这样建立一套基于ja

vakey的Applet签名和信任体系包括下列三项工作:

* 用jar工具创建.JAR文件

* 用javakey创建数字签名

* 在客户端安装java plugin,并设置对签名人的信任

下面分别阐述这三项工作。

4 用jar工具创建.JAR文件

JAR是Java

Archive的缩写。Jar工具的主要功能是将文件压缩和打包。JDK提供jar工具的目的主要是

让用户可以将applet中用到的class文件和其他文件压缩打包到一个文件中,当浏览

applet时通过一从http的传输将它们一并下载到客户端,节省多次下载多个小文件所浪费

的协议建立时间。客户程序

在下载了applet的.jar文件后就可以运行applet而无需再继续下载其他文件了。Javakey

在生成数字签名时要求有关的类都打包在一个.jar文件中,它生成的数字签名也会自动添

加到这个.jar文件中去。

使用了.jar文件后html中的applet标记略有不同,比普通的多出了一个archive项,例如

archive="jars/animator.jar,jars/support.jar"width=460 height=160

jar是命令行工具,常用的形式有:

jar cf myjarfile *.class:将当前目录的所有.class文件加到文件myjarfile中去

jar cvf myjarfile mydir:将mydir里面所有文件加到文件myfile中去

jar工具的详细使用方法在JDK的文档有介绍。

6 用javakey创建数字签名

javakey包括非常丰富的命令和参数,能够为用户创建密钥对和证书。详细的说明可以在

JDK的文档中找到。简单来说,用javakey创建运行带数字签名的.jar文件主要包括下列步

骤:

2. 创建signer并设置为信任的,格式为:

javakey cs jiewen true

如果创建时没有指定true参数,新建的signer将是不信任的,可以用

javakey t jiewen true

5. 创建公钥/私钥对,由于SUN本身提供对DSA算法的实现,所以一般都创建DSA的密钥对

javakey gk mysigner DSA 512

512表示密钥长度为512位

8. 创建signer的证书,创建证书时需要编辑一个说明文件说明证书的内容,创建证书的

命令行格式为:

javakey -gc 说明文件

说明文件的主要内容为:

issuer.name=jiewen

#签发人名字,如果没有则指定自己的名字

#issuer.cert=1

#如果签发人不是自己,则要指定这项

subject.name=jiewen

#拥有人的名字

subject.real.name=Zheng Jiewen

subject.org.unit=Nc

subject.org=Scut

subject.country=China

#以上为拥有人的详细资料

start.date=19 Aug 1998

end.date=19 Aug 1999

#有效期

serial.number=1001

#序列号

out.file=cert.cer

#输出文件名称

12. 对JAR文件进行数字签名,需要编辑一个说明文件来说明签名操作的细节。命令行为

javakey -gs 说明文件 jar文件

说明文件的主要内容为:

signer=jiewen

#指定签名人

cert=1

#指定用签名人的哪个证书

chain=0

#必须指定但没有意义

signature.file=jiewen

#签名存储在哪个文件里面

out.file=out.jar

#输出的jar文件的文件名

14. 在客户端创建signer,并信任之:

javakey c jiewen true

16. 在客户端安装signer的证书,命令行为:

javakey ic jiewen jiewen.cer

jiewen为signer的名字,jiewen.cer为存放证书的文件。

完成上述操作后客户端的appletviewer就能够以信任方式来运行签名了的applet了。这时

applet获得的权限和本地的application是一致的。

7 安装和配置Java plugin

Java plugin是一个浏览器的plugin产品。在浏览器中安装了这个plugin后用户就可以在

浏览器环境下用SUN的Java虚拟机来运行网页中的applet了。安全公文传递系统的客户程

序用javakey进行数字签名,必须在SUN的java虚拟机中才能被识别,因此必须在客户端安

装java plugin。

Java plugin并不能令普通的含有applet标记的html文件在SUN的java虚拟机中运行applet

,它只认识为它设计的特殊标记。为了产生含有这样特殊标记的文件,可以到SUN的站点

下载专门的转换器,将含有applet标记的html文件转换为含有java plugin使用的html标

记的文件。

Java plugin的安装非常简单,只需下载安装文件并运行之,安装程序就会自动完成安装

工作了。但是单纯安装java plugin是无法以信任方式运行客户程序的,还要在java

plugin的运行环境中设置对signer信任和安装signer的证书。要做到这点,必须分两步进

行。

首先要知道java plugin的home目录是什么,方法是:运行java plugin的control panel

,打开里面的Show Java Console选项,然后到浏览器里面浏览要运行的applet所在的网

页,这时就会出现java console窗口,里面有一行是User home directory = ?,就是当

前的home目录了。

知道了home目录后就要把包含有信任信息和签发人证书的文件拷贝到这个目录中去。如果

用户有jdk的话,可以用jdk的javakey工具按照前面的说明来设置信任和安装证书,然后

在jdk的安装目录(如果使用windows)或者用户的home目录(如果使用unix)找到一个名

字为identitydb.obj的

文件,将这个文件拷贝到java plugin的home目录中,设置的信任就生效了。如果用户没

有jdk,可以下载安装jdk来创建这个文件,或者可以从别人处拷贝这个identitydb.obj文

件,并安装到自己的java plugin的home目录中。

另外,如果是在局域网内,也可以在浏览器内设置安全级别,将Applet所在的主机设成可信

任的站点,这样就可以设置Applet的安全级了.IE4是可以的,别的没试过.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有