探索Eclipse的插件签名机制 - 编程入门网
,我们创建了一个 HelloWorld 样例插件、一个 HelloWorld 特性, 以及一个用来封装它们的 HelloWorld 更新站点。
图 2. 插件的种类 探索Eclipse的插件签名机制(3)时间:2011-11-11 IBM Xing Xing Li我们使用 Eclipse Update Manager 通过以下步骤验证它的身份: 单击 Help > Software Update > Find and Install …。 选择 Search for new feature to install 并单击 Next。 单击 New Local Site … 按钮,导航到 HelloWorld 更新站点并单击 OK。 单击 Finish。 我们将收到一个 “unsigned feature” 通知,警告我们这个特性没有签名,并且无 法验证其提供者。 图 3. 在 Eclipse 中验证未签名的插件 如果使用相同的步 骤安装该插件,IBM Lotus Expeditor(一个基于 Eclipse 的强大平台)也会显示类似的警告消息。用户 可以通过单击单选按钮选择接受或拒绝该插件,如下所示。 图 4. 在 IBM Lotus Expeditor 中验证未签名插件的测试场景 探索Eclipse的插件签名机**(4)时间:2011-11-11 IBM Xing Xing Li未签名特性 代码完整性的目标就是确定代码在安装之前未被修改。要实现这一目标,我们使用两个实用工具: Keytool 和 Jarsigner。 Keytool 是一个用来管理密匙和****的命令行工具。****是指来自某一实体(比如,个人、公司、计 算机和程序等)的数字签名语句,它说明其他一些实体的公共密匙(或其他信息)有一个特定的值。 Keytool 当前处理 X.509 ****。X.509 ****包括 Version、Validity Period、Subject Name(普通名称 ,组织部门,组织和国家)等。密匙和****存储在 keystore 中,它实际上是一个文件。它通过密码保护 私有密匙。 Jarsigner 是另一个用于为 JAR 文件签名并验证签名的实用工具。为了验证 JAR 文件中的数字签名 ,Jarsigner 将获取随 JAR 文件附带的****,然后根据特定的 keystore 检查该****的公共密匙是否可 信。我们将在本文中使用 Jarsigner 的签名和验证功能。 首先,我们使用 Keytool 创建一个 keystore,它包含一对密匙(公共密匙和私有密匙)。发出以下 命令。 清单 1. 创建一个 keystore
该命令完成以下任务: 它在 C:\keystore 目录中创建一个名为 mykeystore 的 keystore 文件,并为它分配一个密码 store123。keystore 的默认类型是 jks。 它为一个实体生成公共/私有密匙对。该实体的普通名称的 Distinguished Name 值是 “Li Xing Xing”,组织部门是 “CDL”,组织是 “IBM”,国家是 “CN”。密码 key123 分配给私有密匙。 keystore 中将包含一个名为 “business” 的实体。 它使用默认的 DSA 密匙生成算法,并创建两个 1024 位(默认长度)的密匙。 它使用默认的签名算法(SHA1 和 DSA)创建一个带有自我签名的****,有效期为 180 天。 相应地,将在目标文件夹中创建一个名为 mykeystore 的文件。 图 5. 生成的 Mykeystore 探索Eclipse的插件签名机制(5)时间:2011-11-11 IBM Xing Xing Li创建一个带有自我签名的证书之后,我们将通过下面的 Jarsigner 命令使用它为 feature.jar 和 plugin.jar 签名,如清单 2 和清单 3 所示。在这里,我们以 jarsigner [options] jar-file alias 命令格式使用 Jarsigner 的签名功能。我们在选项字段中提供 keystore 文件的位置、keystore 密码和 私有密匙密码。 清单 2. 为特性 JAR 文件签名
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |