岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 核心技术 >> SwingAwtApplet >> Java正文
Trusted Applet的制作和运行
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-22 16:45:55

  本系统的客户程序是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

[1] [2] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    传世私服 传奇世界私服 天龙八部私服 bet365 传世私服 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365