IBM Notes插件签名校验机制及其应用

引言

伴随着 Eclipse 富客户端平台(Rich Client Platform,RCP)的普及,越来越多的功能以插件的形式出现。这使得企业除了可以自行开发插件之外,也可以选择使用第三方提供的插件。但是互联网上的插件五花八门,如何保证插件来源的安全成为企业所面临的问题。基于公共密钥基础设施(Public Key Infrastructure,PKI)的数字签名技术为该问题提供了一个很好的解决方案。插件提供机构对其所开发的插件利用其私人密钥(Private key)进行数字签名(即加密过程),而使用机构则利用提供机构所公开的公共密钥(Public Key)对插件签名进行校验(即解密和验证过程),这样在技术上既能够保证该插件确实是由该受信任的机构所提供,同时也保证了插件内容未被恶意篡改,即完整性。

IBM Notes 中的插件签名校验机制

Notes 的插件签名校验机制在借鉴了 Eclipse 实现的同时,也根据自身的产品特点进行了相应的扩展。在 Notes 中,插件签名校验的流程为:

从已签名的插件中获取签名证书数据,构建内存证书对象。

根据所处的不同阶段(Notes 安装中或者安装后),加载相应的证书库。

在 Notes 中,以下两种情况会触发插件签名安全检验:

一、在 Notes 安装过程中,所有位于安装包中的插件在默认情况下必须被受信任的实体所签名,否则将导致该插件安装失败。Notes 版本制作小组(Build Team)在生成 Notes 安装包过程中已经预置了该过程所需要的所有证书,因此在安装由 IBM 提供的默认的 Notes 安装包中的插件时不会存在任何的安全警告,因为它们的签名都是可以被校验通过的。以 Windows 安装包为例,该过程所涉及的证书库文件为安装包的 deploy 目录下的 .keystore.IBM_J9_JVM.install;

二、在 Notes 安装完成之后,如果此时客户希望部署自己开发或者第三方开发的插件时,则需要利用安装 / 更新(Install/Update)来完成。以 Windows 为例,该过程涉及的证书库文件为 Notes 自带的 JVM 中的证书库文件,具体路径为安装目录下 \Notes\jvm\lib\security\cacerts,其默认密码为“changeit”,且证书库类型为“jks”。Notes 中的安装 / 更新界面默认是隐藏的,可以通过修改以下文件来启用,即 Notes 的用户数据目录下 \Data\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.ibm.notes.branding.prefs,设置其 enable.update.ui 为 true,则可以在 File\Application 中看到隐藏的菜单项。如果 com.ibm.notes.branding.prefs 不存在,则需要新建该文件,并且设置其内容为“enable.update.ui=true”。

在证书库中进行签名校验,如果签名校验通过,则校验完成,可以继续插件的安装过程。

如果步骤 3)中签名校验未通过,Notes 则会查找预置的插件签名校验失败处理策略,根据策略的设置,进行后续的相应处理。

客户可以在安装包中的 deploy\ plugin_customization.ini 配置文件中设置相应的策略,根据对应的值来指定相应的处理方式。例如,当指定 com.ibm.rcp.security.update/UNTRUSTED_SIGNATURE_POLICY 为 PROMPT 时,如果该插件的签名不被信任,则会弹出相应的安全警告提示框供用户自行选择,也可以将上述项目设置为 DENY,那么一旦签名不被信任时,则直接拒绝其安装,不再进行提示。默认情况下,该项目的值为 PROMPT。

定制 Notes 安装包预置第三方插件的需求

客户在购买了 Notes 之后,除了使用 Notes 本身提供的开箱即用功能,例如邮件之外,往往会基于 Notes 底层 Java 平台(即 Lotus Expeditor)所提供的强大的平台功能来进行二次开发,即以 Notes 为基础开发满足企业自身需求的各种功能插件。此时,相应的问题也随之而来,尽管 Lotus Domino 可以实现对各个 Notes 客户端的中心管理功能,但是却仅限于在策略配置级别的管理,无法通过 Domino 的策略下发插件,那么如何才能将企业自行开发或者购买的第三方功能插件安全快速的部署在所有的 Notes 客户端上呢?此时,定制 Notes 的安装包,预置企业自行开发或者第三方的插件成为一种选择。在该过程中,插件来源的安全性显然不能被忽视,因此在了解了 Notes 的插件签名校验机制后,对于上述需求,我们可以直接利用 Notes 提供的插件安全校验机制来确保我们所做的各种配置是足够安全的。

定制 Notes 安装包来安全预置第三方插件的完整解决方案

以下就以一个测试的被自签名证书所签署的插件为例,了解下定制 Notes 安装包,安全预置第三方插件的完整解决方案。

先决条件

下载并安装 Java 2 Standard Edition(Java Development Kit)V5 及更新版本

下载并安装 IBM IBM Notes V8.5.3

下载 IBM Lotus Expeditor Toolkit V6.2.3

下载 Eclipse 3.4 或以上版本并安装 Expeditor Toolkit 以准备 Notes 开发调试环境

在 Eclipse Foundation 上可以找到相应的 Eclipse 平台(Eclipse3.4 或以上版本),并且通过 Eclipse 的“帮助\  软件更新\  查找并安装”菜单来安装 Expeditor Toolkit V6.2.3,配置好 Notes 的 Java 开发和调试环境。具体的配置过程可以参见 Developerworks 中 Expeditor Toolkit 的产品文档。

详细步骤

1. 创建未签名插件

此处我们会以一个测试插件(com.test.helloworld)为例,该插件的功能是在 Notes 的 Open 按钮下新增一个选项(Hello view),点击该选项将会打开一个新的 View 页面,在该 View 中我们绘制了一个按钮,点击该按钮会弹出消息框并显示“Hello world”的文本消息。样例代码可以从 下载章节获取。

图 1. Open 菜单下新增“Hello view”选项

时间: 2016-06-18

IBM Notes插件签名校验机制及其应用的相关文章

探究Notes插件签名校验机制及安全预置第三方已签名插件解决方案

伴随着 Eclipse 富客户端平台(Rich Client Platform,RCP)的普及,越来越多的功能以插件的形式出现.这使得企业除了可以自行开发插件之外,也可以选择使用第三方提供的插件.但是互联网上的插件五花八门,如何保证插件来源的安全成为企业所面临的问题.基于公共密钥基础设施(Public Key Infrastructure,PKI)的数字签名技术为该问题提供了一个很好的解决方案.插件提供机构对其所开发的插件利用其私人密钥(Private key)进行数字签名(即加密过程),而使用

探索Eclipse的插件签名机制

副标题:学习如何在 Eclipse 和 IBM Lotus Expeditor 中创建带签名插件 简介:在为软件安装插件时,安全性是一个很重要的问题.本文探索在 Eclipse 平台上使用的签名技 术,确定插件的可信度.Eclipse 将插件分为 5 类:签名的.未签名的.可信的.不可信的.过期的. 通过本文学习如何在 Eclipse 和 IBM Lotus Expeditor(基于 Eclipse 的产品)中创建带 签名的插件. 本文介绍了 Eclipse 插件签名及其应用.此外,还介绍了 I

IBM Notes/iNotes 9 之 Open Social新特性

OpenSocial 简介 近年来,社交网站得到了蓬勃的发展,在 OpenSocial 这个概念提出之前,不同的社交网站向开发人员提供了不同的私有 API 来访问社交网站数据,这样一个应用如果需要部署到多个社交网站,需要提供不同的实现,因此很难得到重用.针对这个的问题,OpenSocial 规范应运而生.它是一套统一的接口标准,用来描述社交网络的数据规范.有了 OpenSocial,基于该通用 API 开发的社交应用程序可以运行在任意支持 OpenSocial 规范的社交网站上.真正实现了"一次

简述IBM Notes 9.0在 Mountain Lion 操作系统上的安装新特性

IBM Notes 9.0 版本是 Notes 产品历史上的一个重要里程碑.除了采用新的品牌名称(由 Lotus Notes 到 IBM Notes),IBM Notes 9.0 版本中还带来了崭新的用户界面和许多新的功能特性,增加了对一些重要新平台版本的支持,而 Mountain Lion(OS X 10.8) 就是其中之一. 本文就将着重介绍 IBM Notes 9.0 在 Mountain Lion 上安装方面的新特性. 1. IBM Notes 9.0 全新安装的特性 用户安装界面的变化

Android5.1.1 - APK签名校验分析和修改源码绕过签名校验

Android5.1.1 - APK签名校验分析和修改源码绕过签名校验 作者:寻禹@阿里聚安全 APK签名校验分析 找到PackageParser类,该类在文件"frameworks/base/core/java/android/content/pm/PackageParser.java"中.PackageParser类的collectCertificates方法会对APK进行签名校验,在该方法会遍历APK中的所有文件,并对每个文件进行校验.下面是该方法的部分源码: APK是一个ZIP

BrnShop开源网上商城第三讲:插件的工作机制

原文:BrnShop开源网上商城第三讲:插件的工作机制 这几天BrnShop的开发工作比较多,所以这一篇文章来的晚了一些,还请大家见谅呀!还有通知大家一下BrnShop1.0.312版本已经发布,此版本添加了报表统计等新功能,需要源码的园友可以点此下载.好了,我们现在进入今天的正题.关于BrnShop插件内容比较多,所以我分成两篇文章来讲解,今天先讲第一部分内容:插件的工作机制. 对于任意一种插件机制来说,基本上只要解决以下三个方面的问题,这个插件机制就算成功了.这三个方面如下: 插件程序集的加

jQuery form 表单验证插件(fieldValue)校验表单_jquery

jQuery form表单验证相关知识,在做项目中经常会用到,其实也不算复杂,下面通过一段代码给大家介绍jQuery form 表单验证插件(fieldValue)校验表单的相关知识,感兴趣的朋友一起学习吧 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>jQuery form插件的使用--使用 fieldValue

宽中窥豹IBM Connections的扩展点机制

随着 IBM Connections 的升级,IBM Connections 提供了更加方便的扩展方式,使客户能够方便的扩展 IBM Connections 的已有应用,将组织已有资产和 IBM Connections 集成,将 IBM Connections 嵌入到其它应用.Media Gallery( 媒体库 ) 是 IBM Connections 中社区 (Community) 组件的重要组成部分.它能够以多种形式展示图片,视频,音频等多媒体文件,此外还支持视频音频的播放.本文将先介绍如何

IBM Notes 9 的新功能

Notes 9 将支持客户不断创造更高效的工作团队,从各个方面提供更加贴心便捷的用户体验.全新的主页设计,新增的 OneUI 主题,众多 Notes 邮件新功能,日历新功能等等,从界面到功能,无一不是新的惊喜.在下文中,我们将一一为你介绍 Notes 9 这些主要的新特性. 新的 Home 页面:Discover Page Notes 9 引入了全新的 Discover 页面来替换原有的 Get Start 页面.你可以从下面两张图片对他们的区别有一个直观的感受. 图 1. 新的 Discove