IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
skip to main content

developerWorks 中国  >  Lotus | Security  >

在 IBM Workplace Collaboration Services 中使用 PKI 服务

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 中级

杨超峰 , 测试工程师, IBM 中国软件开发实验室

2006 年 4 月 17 日

本文详细介绍了IBM Workplace Collaboration Services 产品中 PKI 服务组件及其在产品中的工作机制。作者站在最终用户的立场,提出一系列问题并逐步解答,由浅入深,环环相扣;作者以 Microsoft CA 为例,为用户演示了一个 PKI 应用的真实场景。最后对 PKI 技术在 IBM Workplace Collaboration Services 产品中的未来应用作了展望。

背景知识介绍

本文使用的缩写:

  • PKI: 公钥基础架构 (Public key infrastructure)
  • CA: 证书机构 (Certification authority)
  • S/MIME: 安全多功能因特网邮件扩展 (Secure/Multipurpose Internet Mail Extensions)
  • WCS: IBM Workplace Collaboration Services 版本 2.6
  • WMC: IBM Workplace Managed Client 版本 2.6

在开始之前,我们首先要对 PKI 和 S/MIME 有一个基本概念。如果需要了解更多有关这些领域的内容,请参考专门的文献。

A: PKI

PKI 是一种在 Internet 中广泛应用的安全通讯基础设施,它主要提供以下三种服务:

  • 机密性(Confidentiality): 该服务向信息发送者和接收者确保,除了最终的信息接收者之外,其他任何实体都不能读取信息内容。该服务通过加密 (encryption) 方式实现。
  • 鉴别(Authentication): 该服务向信息接收者确保信息发送者的身份,即某信息确系发送者A而不是其他任何发送者发出。该服务通过数字签名(digital signature) 实现。
  • 完整性(Integrity): 该服务向信息接收者确保所收到的信息在传输过程中未被篡改。该服务通过数字签名(digital signature) 实现。 采用公钥方式进行安全通讯时,安全的发布和分发公钥是最为重要的事情。PKI 为此提供了一个很好的解决方案:证书(certificate )。证书把公钥和证书的使用者绑定在一起,证书由 PKI 组件 CA 签署并由 CA 确保证书使用者的身份。

B: S/MIME

S/MIME 主要应用在电子邮件领域,为用户提供安全地发送、接收 MIME 数据的服务。S/MIME 为电子邮件应用程序提供的安全服务包括:消息鉴别、消息完整性、消息不可抵赖性、私密性和数据安全等。而这些服务是基于 PKI 技术实现的。

对这两个基本概念有了简单了解之后,您也许仍然心存疑惑: WCS 和 PKI 之间到底有什么关系?

WCS 用户为什么需要 PKI ?

除了传统的基于浏览器的客户端 (例如 IE、 Netscape、 Mozilla 和 Firefox 等), WCS 还为用户提供了一种由服务器端管理的富客户端 WMC。WMC 用户可以获取 X.509 证书对电子邮件进行签名、加密、解密处理;根据邮件相关的用户策略,WMC 用户可以发送和接收 S/MIME 邮件。虽然用户可以选择使用自签名的证书,但是在真实的企业环境中,选择由知名 CA (例如 Lotus Domino、VeriSign 和 Microsoft)发布的证书通常更为可取。

现在您的疑惑可以解开了:S/MIME 邮件!这正是 WCS 产品需要 PKI 的原因。

也许现在您又有新的疑问:

PKI 在 WCS 中是如何运作的?

首先,WCS 并没有自己的 PKI 和 CA。

那 WCS 如何使用 PKI 提供的服务呢?原来 WCS 采用了一种灵活的“可插拔”适配器机制-- PKI 框架结构,该框架结构把 S/MIME 应用的证书请求发送给第三方 CA 并由第三方发布证书。PKI 框架结构的最主要组件就是 PKI 适配器 (PKI Adapter) ,适配器可由用户根据实际情况灵活配置,负责和外部 CA 通讯。

如果系统中邮件相关策略规定某个用户可以收发 S/MIME 邮件,系统就为该用户收发 S/MIME 邮件所需的证书生成一个证书请求,证书请求会被存储在 PKI 证书请求数据库里;PKI 任务调度器(Task Scheduler)定期获取 PKI 证书请求并提交给 PKI 适配器处理;PKI 适配器对证书请求进行格式化,然后把证书请求提交给外部 CA 处理。如果外部 CA 通过了证书申请并颁发了相应的证书,PKI 适配器会接收颁发的证书并把它存储在用户的信任证书库 (credential store) 中。用户可以对自己的证书库进行管理;通常用户的证书对组织中的其他用户也是可见的,因为他们需要靠证书来交换信息。

下图演示了一次证书请求的流程:


图1. 证书请求流程
图1. 证书请求流程

①客户端应用程序生成PKI证书请求并提供必要的参数;PKI 证书请求传递给 PKI 供应者。

②PKI 供应者检查证书请求,从请求中提取相关信息并选择合适的 PKI 适配器,然后把证书请求转发给选中的 PKI 适配器,并提供 PKI 适配器所需的信息。

③PKI 适配器实例获取 PKI 供应者转发的证书请求并保存该请求,同时创建一个 PKCS#10 格式的证书请求,然后使用 PKI 特定的协议把格式化的请求转发给外部 CA。

④外部 CA 接受 PKI 适配器发送的证书请求,根据相关策略,发布证书或者拒绝证书请求。一旦证书被发布,PKI 适配器会得到通知然后调用特定函数取回该证书。

⑤一旦外部 CA 处理完证书请求,PKI 适配器可以通过 PKI 特定的机制发现该事实 (通过电子邮件接收通知或者主动轮询外部 CA),获取由 CA 返回的 PKCS#7 格式证书。然后 PKI 适配器会构造一个包含新发布证书的对象并通知 PKI 供应者。

⑥PKI 供应者获取发布的证书信息并更新对证书的引用信息。如果证书请求者要求将证书公开,PKI 供应者会在组织目录中公布该证书。

⑦用户现在可以选择使用新发布的证书进行 S/MIME 电子邮件应用。

现在您对证书请求流程已经了如指掌,为什么不开始实践一下呢?OK,下面我们以 Microsoft CA 为例,向您展示 PKI 在 WCS 中的真实应用场景!

PKI 应用场景

Microsoft CA 是 WCS 目前支持的三种外部 CA 之一。Microsoft Certificate Services 提供了一种机制方便用户构建 CA,为 Internet 安全应用提供服务。Certificate Services 包含服务器引擎、服务器数据库和其它模块、工具。外部应用程序、模块、管理工具可以使用 Component Object Model (COM) 接口和服务器引擎交互。

Microsoft CA 可以部署在 Windows 2000 Server 中。一旦 CA 服务开始运行,它就可以处理来自其他客户端的证书请求。 发送给 CA 的证书请求默认情况下处于 pending 状态, 管理员对证书请求者的身份进行验证,根据 CA 的策略,可以选择接受或者拒绝证书请求。一旦证书请求通过,Certificate Services 就会产生相应的证书。

在开始真正的实践之前,我们还需要以下三个条件:

条件 1: 建立运行环境

图 2 是我的运行环境部署状况。如果您对如何部署 WCS 服务器、 WMC 服务器端/客户端、 Microsoft PKI EJB 不熟悉,可以参考 WCS information center。

运行环境基本信息如下:

Host A: 测试客户端

  • Windows 2000 professional 平台, Intel Pentium CPU 3.0GHz, 1GB 内存, 10GB 硬盘。
  • 浏览器: IE 6.0。

Host B: WCS 服务器

  • Windows 2003 平台, WCS archive 安装模式,使用 Websphere Member Manager 和 Cloudscape 数据库。
  • WMC 服务器端组件成功部署。
  • WCS portal URL: http://lwprh25.lotus.com/lwp/myworkplace。
  • WCS Admin Console URL: http://lwprh25.lotus.com:9091/admin。

Host C: Microsoft CA

  • Windows 2000 server 平台。 CA (CA名称Westford Root) 服务正常运行。
  • WAS 和 Microsoft PKI EJB 成功部署。

图2. Microsoft CA 运行环境
图2. Microsoft CA 运行环境

条件 2: 设置 Microsoft CA PKI 适配器配置文件

清单 1 是本次实践所用到的 pkiconfig.xml 文件。 该文件必须拷贝到 WCS 服务器 (Host B) WCS 的安装目录下,比如 C:\Workplace\AppServer。该配置文件内容很直观,详细信息可以参考 WCS information center。


清单1. Microsoft PKI 适配器配置文件

...
<PKIAdapter Name="microsoft">
…
<Adapter class="com.ibm.workplace.security.pki.adapters.microsoft.adapter.MSPkiAdapter">
<caName>
Westford Root
</caName>
<machineName>
9.181.64.83
</machineName>
<mspkiEJBHostName>
lwpcn03.lotus.com
</mspkiEJBHostName>
<mspkiEJBHostPort>
2809
</mspkiEJBHostPort>
…

条件 3: 设置 PKI 用户帐户并启动 PKI 服务

以下步骤需要在 Host A 上完成。

  • 用户注册: 从 IE 访问 WCS portal URL ,成功注册一个名为 pkitest01 的用户,使用新注册用户 pkitest01 登录 WCS portal。切换到 My Work>Mail 视图,确保 pkitest01 能够正常收发邮件。
  • WMC 安装配置: pkitest01 切换到 WCS portal 的 Welcome page > Downloads,下载 IBM Workplace Managed Client 到 Host A,确保用户 pkitest01 WMC 成功安装并可以从服务器端获得服务,WMC 邮件功能正常。
  • PKIAdmin 角色映射: 通过 IE 访问 WCS Admin Console URL ,以 wpsadmin (Admin Console 管理员) 登录管理控制台。切换到 Applications > Enterprise Applications > LWP_Security > Additional Properties,打开 Map security roles to users/groups 页面,把 PKIAdmin 角色映射到 pkitest01;打开 Map RunAs roles to users 页面,把 PKIAdmin 角色映射到 pkitest01。保存设置。
  • 邮件策略设置: wpsadmin 切换到 Admin Console > IBM Workplace software > Users > Manage User Policies > Default User Policy > Additional Properties > Mail Details > Rich Client Details > Credentials, 选中 “Submit credentials to certificate authority”。保存设置。
  • 设置 PKI 任务调度器: wpsadmin 切换到 Admin Console > Security > PKI Task Scheduler,设置时间间隔。我选中的是默认值 5 分钟;选中 Check Enable。保存。

以下步骤需要在 Host B 上完成。

  • 重新启动 WCS 服务器: 为了使以上设置有效,必需重启 WCS 服务器。切换到 Host B 目录 C:\Workplace\PortalServer\rootscripts下,使用 stopWorkplaceServices.bat 来停止 WCS 服务器;服务器成功停止之后,使用 startWorkplaceServices.bat 启动服务器。

有了以上三个条件,我们现在终于可以开始 PKI 实践了。本文将只关注证书生成的流程。

应用场景:

用户 pkitest01 登录 WMC,想给一位朋友发送一封保密邮件。但他现在还没有 Microsoft CA 颁发给他的证书。所以用户 pkitest01 现在还需要稍事等待,把要发送的邮件先保存在他的草稿箱,等到获取证书之后再发送。

用户 pkitest01 如何才能得到 Microsoft CA 颁发的证书?

  • 用户 pkitest01 撰写一封简单的邮件,选中 Delivery Settings 中的 Digitally sign 选项,然后把这封邮件发送给自己。这封邮件使用用户的自签名证书进行数字签名。 打开 WMC File > Preferences对话框,在Security > My Certificates 视图中,我们可以看到用户的自签名证书。在用户获得 Microsoft CA 颁发的证书之前,用户的自签名证书是邮件进行加密和签名处理的默认证书。
  • WMC 客户端和 WCS 进行同步,用户发出的邮件通过配置好的 Microsoft PKI 适配器触发系统生成一个证书请求,该请求将被发送给 PKI 适配器配置文件中指定的 Microsoft CA。Microsoft CA 管理员稍后可以在 Microsoft CA 的 Pending Requests 列表中看到该请求,如下图 3 所示:
    图3. CA Pending 列表中的证书请求
    图3. CA Pending 列表中的证书请求
  • Microsoft CA 管理员通过证书请求并颁发证书。新发布的证书可以在 Microsoft CA 的 Issued Certificates 列表中看到。图 4 是证书的信息:.
    图4. Microsoft CA 颁发的证书
    图4. Microsoft CA 颁发的证书
  • 几分钟之后,用户 pkitest01 登录的 WMC 和 WCS 服务器进行同步。在 WMC 的 My Certificates 视图中,我们可以看到由 Microsoft CA 新颁发的证书,并且该证书已经取代用户自签名证书成为邮件签名和加密的默认证书。
    图5. 用户证书库中新颁发的证书的信息
    图5. 用户证书库中新颁发的证书的信息

好了,由 Microsoft CA 颁发的证书现在已经成功取回,用户pkitest01 现在可以使用该证书,把保存在草稿箱中的邮件发送给朋友了。

至此,我们以 Microsoft CA 为例,已经熟悉了 PKI 是如何在当前版本的 WCS 中应用的,是不是很简单?有了这次实践经验,您可以尝试 WCS 所支持的其它两种外部 CA 提供的 PKI 服务:Lotus Domino 和 VeriSign。

最后,我们在此尝试对 WCS 未来版本中的 PKI 应用进行展望。

未来 WCS 中的 PKI

WCS目前提供的PKI服务已能满足绝大多数客户日常事务的需求。为了向客户提供更好的服务,工程技术人员将不断优化方案。在未来WCS中,用户也许可以期待以下新的PKI特性:

  • PKI 框架结构会对用户的集群环境提供更好的支持。
  • Workplace 管理控制台会提供更多方便易用的配置、监控功能 
    • 可以跨越整个部署单元对PKI 框架结构和CA适配器进行配置
    • 可以对适配器及通过适配器的请求进行更好的监控
    • 适配器配置的升级更方便
  • 采用Web Services模型,实现PKI客户端的请求提交,替代当前的远程EJB方式
  • 在离线情况下,支持WMC提交证书请求

致谢

感谢 Lisa、刘峻峰和其他 Workplace Team 的同事在工作中给予的大力支持。





回页首


参考资料





回页首


关于作者

杨超峰,IBM Workplace Collaboration Services 安全组件(PKI、 ACF、 DURL 等)功能测试工程师。现在 IBM 中国软件开发实验室工作。






回页首


对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?




回页首


其他公司、产品或服务的名称可能是其他公司的商标或服务标志。


    关于 IBM隐私条约联系 IBM