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

本文介绍了如何使用J2ME Wireless Toolkit的安全特性。先阐述其结合MIDP2.0的增强安全特性,如程序签名、安全域等。接着详细说明签名MIDlet套件、建立密钥对、导入加密密钥、删除别名以及管理默认模拟器证书的方法和步骤,还提及使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

说明:

    本文参考自:http://java.sun.com/j2me/docs/wtk2.0/user_html/security.html

 

准备工作:

       必须安装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工具、JADtoolMEKeytool的复杂过程。而J2ME无线工具包中的安全工具由我们调用的图形界面构成。它能够完成整个的处理过程,而不需要使用命令行工具。使用安全工具,我们能做到:

       ·建立一对新的密钥并为它提供一个别名

       ·为J2ME KeystoreJ2SE 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)方式运行,应用程序(使用签名的jadjarMIDlet套件)才能正常运行。

 

四、导入加密密钥对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 password password.

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

其中密钥证书(由于证书与密钥相关所以在这里作为一个整体看待)可以使用工具生成,也可从J2SEKeystore导入。但是只有在测试时,使用生成的密钥证书的程序才能正常运行。Keystore可以看作密钥证书的集合,用于保存证书。

如何使用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工具、JADtoolMEKeytool的复杂过程。而J2ME无线工具包中的安全工具由我们调用的图形界面构成。它能够完成整个的处理过程,而不需要使用命令行工具。使用安全工具,我们能做到:

       ·建立一对新的密钥并为它提供一个别名

       ·为J2ME KeystoreJ2SE 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)方式运行,应用程序(使用签名的jadjarMIDlet套件)才能正常运行。

 

四、导入加密密钥对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 password password.

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

其中密钥证书(由于证书与密钥相关所以在这里作为一个整体看待)可以使用工具生成,也可从J2SEKeystore导入。但是只有在测试时,使用生成的密钥证书的程序才能正常运行。Keystore可以看作密钥证书的集合,用于保存证书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值