如何使用J2ME Wireless Toolkit的安全特性

转载自: cleverpig2003的专栏
如何使用J2ME Wireless Toolkit的安全特性
 
说明:
 
准备工作:
       必须安装J2ME无线工具,从http://java.sun.com/j2me即可获得。
 
一、J2ME无线工具的安全特性简介:
       J2ME无线工具包结合了MIDP2.0提供的增强安全特性和提供给我们的使用新安全特性的工具。这些加强的安全特征为:
    ·程序签名
       ·不同级别的安全域
       ·通过使用证书验证程序的发送者的身份
       ·验证设备接收的应用程序的完整性
 
二、签名MIDlet套件:
       当我们建立和打包我们的MIDlet套件(有关介绍见http://www-900.cn.ibm.com/developerWorks/cn/java/j-j2me/index.shtml)时,可以使用J2ME无线工具包提供的安全工具对MIDlet套件进行签名。J2ME无线工具包不但能够使用已经存在的一对公钥和私钥签名MIDlet套件,而且还能使用我们生成的一对新的公钥和私钥。每对密钥与一个证书相关联。通过赋值一个安全域给一个证书,使持有可信级别证书的持有者有访问受到保护的APIs和其它一些APIs。
       MIDlet套件能被赋值到以下的一种域类型:
       ·Untrusted-MIDlet套件的来源和jar文件完整性不被设备信任(例如:一个未签名的MIDlet套件)。
       ·Trusted-由jar文件表示的MIDlet套件被使用设备能够验证的证书签名。
       ·Minimum-一个安全域:所有访问受到保护的APIs权限都被拒绝,包括访问推入(push)功能和网络协议。
       ·Maximum-与Trusted相同。一个安全域:所有访问受到保护的APIs权限都被允许,包括访问推入(push)功能和网络协议。
签名的过程很明显是调用keytool工具、JADtool、MEKeytool的复杂过程。而J2ME无线工具包中的安全工具由我们调用的图形界面构成。它能够完成整个的处理过程,而不需要使用命令行工具。使用安全工具,我们能做到:
       ·建立一对新的密钥并为它提供一个别名
       ·为J2ME Keystore从J2SE Keystore的一对已经存在的密钥中复制证书
       ·为MIDlet套件的JAD文件添加一对密钥证书
       ·数字化的签名MIDlet套件的jar文件,为MIDlet套件的JAD文件签名
       ·删除旧的证书
       J2ME无线工具包建立一对密钥时,证书被保存在ME keystore文件中。
访问http://java.sun.com/products/midp的描述。来获取更多关于MIDP2.0
 
三、建立一对密钥并对MIDlet套件签名:
       如果我们需要建立一对密钥,我们可以使用New Key Pair对话窗口生成。在必须提供一个别名,一个唯一的名字,组织名后,这个工具将生成由别名所引用的一个公钥和一个私钥。这对蜜钥被存放在keystore中。一个与这对蜜钥相关的证书也被生成,我们将被要求提供一个与这证书相关联的安全域。与这对密钥相关的证书被自动导入到默认模拟器的keystore中。我们后面将使用它签名MIDlet套件。
注意-在无线工具包环境下的生成一对密钥和签名MIDlet的行为只是为了测试的目的。签名是个虚拟的行为而不是实际的事件。我们运行我们的应用程序在一个实际设备时,必须要获得一个从被我们的设备所识别的证书授权机构授权的证书。
生成一对密钥的步骤:
1. 选择工程-〉Sign in the KtoolBar
签名MIDlet套件的窗口打开。另一个打开签名MIDlet套件的窗口的方法是选择File-Utilities 并点击Sign MIDlet按钮。
       2.在签名MIDlet套件的窗口中点击New Key Pair,提供以下信息:
    • 新建密钥对的别名
    • 包含密钥对的存储keystore的服务器名.
    • 组织名称
这是生成密钥对的最小要求。
3.点击Create,然后提供一个与证书相关的安全域名。
这对密钥被生成,别名被加到别名列表中。
我们能够在J2SEKey Detail面板中看到这个证书和密钥的信息。这些信息包括证书主题和发行者的唯一名称(DN),证书的序列号,证书的有效期,使用的加密算法,证书授权者的数字签名。一个证书的拷贝被自动存放到了默认模拟器的keystore中。
4. 点击签名MIDlet窗口,从文件选择器中选择MIDlet套件的JAD文件。
证书被拷贝到了.jad文件。Jar文件被数字化签名了。签名成功时一个确认对话框会出现。如果签名失败,则一个带有错误信息和错误原因的对话框会出现。
注意-只有在发布应用程序时使用应用程序管理系统设置为over-the-air (OTA)方式运行,应用程序(使用签名的jad和jarMIDlet套件)才能正常运行。
 
四、导入加密密钥对MIDlet套件签名:
我们能够使用一个已存在的密钥对MIDlet套件进行签名。
1.在签名MIDlet套件的窗口中点击Import Key Pair,从文件选择器中选择keystore文件。
2.输入访问keystore的密码。
3.keystore的别名列表中选择别名
4.输入证书引用的别名
5.选择与证书相关联的安全域
6.在签名MIDlet套件窗口中点击Sign MIDlet Suite,从文件选择器中选择MIDlet套件的JAD文件。
签名成功时一个确认对话框会出现。如果签名失败,则一个带有错误信息和错误原因的对话框会出现。
 
五、删除别名:
       删除一对密钥:
1. 在签名MIDlet套件的窗口中选择要删除的密钥对
2. 选择Action->Delete Selection
一个确认对话框会出现。点击Yes继续删除操作。那个引用被删除的密钥对的别名将从列表中被删除。
 
六、管理默认模拟器证书:
       默认模拟器自带一个默认的证书集。证书被用来检查网络连接的有效性和签名MIDlet套件的有效性。如果正使用一个安全协议访问web站点,例如HTTS或者SSL,站点的证书将被检查是否有效。MIDlet套件的证书也将被用来检查访问站点是否有权限。如果站点证书无效或者MIDlet套件没有权限,则访问站点的行为将被拒绝。当我们虚拟一个网络传输时,在默认模拟器的keystore中的证书将被检查。关于如何在无线工具包环境下为网络协议添加API权限请参考Adding API Permissions"
       J2ME工具包提供的证书管理器能帮助我们维护在默认模拟器的keystore中的证书。如果我们添加一个证书到默认模拟器的证书集,我们能通过从J2SE keystore导入到默认模拟器 keystore的证书或者从证书授权机构获取证书并导入到默认模拟器 keystore中。当证书过期或者证书不使用,我们能够从keystore中删除它。
       通过证书管理器中的证书列表我们能看到在J2ME中的证书。当然也能通过使用命令行工具,如MEKeyTool,显示证书列表。关于如何使用MEKeyTool请参考Appendix D, "Command Line Utilities.”。
 
查看证书:
       1.选择File -> Utilities,在Utilities对话框中点击Manage Certificates按钮。
              打开的J2ME证书管理窗口显示了J2ME keystore文件中的证书。
       2.从J2ME Key Detail面板中选择证书,查看其详细信息。
      
 
       导入证书:
我们能通过从J2SE keystore导入到默认模拟器 keystore的证书或者从证书授权机构获取证书并导入到默认模拟器 keystore中。
选择File -> Utilities点击Manage Certificates按钮。
J2SE Keystore导入证书:
1.       选择Action -> Import J2SE Certificate.
2.      提供一个默认安全域给导入的证书.
3.      从文件选择器中选择证书存放的keystore 文件.
默认的keystore文件为keystore.sks.
4.      输入访问keystore时的密码。
默认的keystore passwordpassword.
5.      从别名列表中选择一个证书别名。
证书出现在J2ME Keystore的证书列表中,我们能够选择证书,并J2ME Key Detail面板中选择证书,查看其详细信息。
             
              从证书授权导入证书:
为了从CA获得一个证书,我们必须生成一个证书请求。当我们接收到证书时,便能通过证书管理器将证书导入到默认模拟器中。
1.      点击Import Certificate,从文件选择器选择一个证书.
证书使用.cer作为扩展名。
2.      从安全域对话框中选择安全域
证书被拷贝到默认模拟器的keystore中,并出现在证书管理器的证书列表中。
 
管理其它Keystores的证书:
如果在J2ME Keystore中有不止一个keystore文件,我们能够通过证书管理器打开这个keystore文件查看此keystore中的证书。当然也能使用证书管理器删除这个keystore文件中的证书。
              打开另一个keystore
·         点击Open Keystore,从文件选择器选择keystore 文件。
总结一下:
       J2ME无线工具包安全特性的组成部分:密钥证书-〉Keystore。
其中密钥证书(由于证书与密钥相关所以在这里作为一个整体看待)可以使用工具生成,也可从J2SE的Keystore导入。但是只有在测试时,使用生成的密钥证书的程序才能正常运行。Keystore可以看作密钥证书的集合,用于保存证书。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值