探索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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |