SSL握手及其在Rational Integration Tester传输中的应用

日期:2014/8/8 19:00:00 来源:本网整理 阅读:19

IBM® Rational® Integration Tester 是 IBM® Rational® Test Workbench 提供的诸多功能的一部分,使您能够对非常复杂的应用程序进行集成测试。Rational Integration Tester 是一种桌面解决方案,可以通过如下方式测试遗留的或现代化的架构:

  • 帮助您显示服务和组件之间的连接和依赖关系。
  • 为不能用于测试的服务创建存根(stub),并自动化完成集成测试的所有工作。

本文将重点介绍 Secured Socket Layer (SSL) 在 Rational Integration Tester 中的使用和配置。由于设置过程涉及大量信息,因此使 Secured Socket Layer 及其配置变得难以理解。SSL 在 IBM Rational Integration Tester 中的配置和使用则难上加难,因为存在大量不同的技术,并且应用程序能够同时充当客户端和服务器

Rational Integration Tester 在受支持的传输物理资源编辑器中提供了 SSL 配置,每个配置都引用了密匙材料(key material),用于进行对等验证,也可以选择用于呈现测试或存根。

为了提供密匙管理帮助,Rational Integration Tester 使用了一种 Identity Store 资源,它是围绕 Java 密匙库(keystore)的便捷包装器,使您能够统一地导入和管理各种形式的私匙和证书。

在“在 Rational Integration Tester 内使用 SSL”系列文章的第一篇中,您将:

  • 了解什么是密匙材料
  • 了解在 SSL 握手的哪个环节以及如何使用密匙材料
  • 找到包含密匙材料的文件
  • 对 SSL 在 Rational Integration Tester 内的管理、配置和使用有一个整体理解

密匙材料

SSL 通信基于公共和私有密匙对,允许通信的每一端(或每个对等端)使用一个或另外一个密匙建立安全的共享密匙。在结合使用证书和证书颁发机构后,这些密匙对就能提供一个安全通信框架。

在通过 SSL 进行通信时,Rational Integration Tester 将充当客户端的角色,需要能够在建立连接后对提供给它的身份进行验证。在充当服务器角色以及在参与相互验证时,Rational Integration Tester 也需要能够提供一个身份。

SSL 握手

在使用 SSL 建立连接后将发生一次握手,这样双方可以验证对方的身份,从而能够安全地进行后续通信。图 1 展示了在握手期间有哪些环节使用了密匙。

图 1. 在 SSL 握手期间使用密匙材料

SSL握手及其在Rational Integration Tester传输中的应用
  1. 在接收到客户端 Hello 消息后,服务器将回应一个 Hello 消息,其中包含它的数字证书。
  2. 如果发生了相互认证,服务器将发送一个客户端认证请求,包含一个可接受的证书颁发机构的名称列表。
  3. 客户端将验证服务器证书上的签名。
  4. 如有必要,客户端将发送它的证书,或者一个 无数字证书 警告。
  5. SSL 服务器将验证客户端证书的签名。

认证过程是通过在 SSL 握手期间互相交换数字证书实现的。

所需的证书如下所示,其中证书颁发机构 CA1 向 SSL 客户端发出一个证书,而 CA2 向 SSL 服务器发出一个证书:

  • 服务器身份验证
  • 客户端身份验证
  • 自签名证书

服务器身份验证

服务器身份验证是最常见的场景,通常发生在电子商务过程中,只要求客户端信任服务器。对于服务器身份验证,SSL 服务器需要以下内容:

  • CA2 颁发的服务器证书
  • 服务器的私匙

客户端需要 CA2 的 CA 证书 或 CA2 颁发的服务器证书。

客户端身份验证

客户端身份验证也称为相互验证,其中 SSL 服务器需要验证客户端的身份,它将检查客户端的数字证书。对于客户端身份验证,服务器将给出一组它所信任的证书类型和颁发机构,这样客户端就能从其身份库中找到并返回最合适的身份。除了上述内容外,SSL 服务器还需要 CA1 的 CA 证书 或 CA1 颁发的客户端证书。

客户端还需要以下内容:

  • CA1 颁发的客户端证书
  • 客户端的私匙

客户端身份验证实际上只是将服务器验证的需求颠倒了一下。

注意:双方可能都需要其他中间证书来构成一个证书链,该证书链的终端是根 CA 证书。通常,这些证书被作为客户端/服务器证书的一部分包含。

自签名证书

在不需要正规信任的情形下,比如在测试环境,可以使用自签名证书。这类证书可以同时看作是客户端/服务器证书以及 CA 证书。

密匙材料的文件格式

在 Rational Integration Tester 中定义测试系统的模型时,密匙材料通常手动生成,或来自正在与之进行交互的服务器。密匙被导出或下载,并按照以下文件格式进行存储:

  • PEM 格式
  • DER 格式
  • PKS#7 格式
  • PKS#12 格式
  • JKS 格式

PEM 格式

PEM 格式是最常见的认证格式。扩展名包括 .pem、.crt 和 .cer。它们是使用 Base64 编码的 ASCII 文件,并包含某些 -----BEGIN CERTIFICATE----- 及 -----END CERTIFICATE----- 语句。尽管证书和私匙可以保存为 PEM 格式,但是 Rational Integration Tester 只处理证书元素。

DER 格式

DER 格式是密匙材料的原始的二进制版本。文件扩展名通常为 .der,但是很多时候使用和 PEM 证书相同的扩展名 .cer。如果在一个简单的编辑器中打开 DER 格式文件,那么将无法读取文件内容。

PKCS#7 格式

PKCS#7 格式包含单独的证书和证书链,但是不包括私有密匙。尽管它可以保存为二进制文件,但是通常以 Base64 ASCII 格式保存,文件扩展名为 .p7b 或 .p7c。Base64 P7B 证书包含 -----BEGIN PKCS7----- 和 -----END PKCS7----- 语句。

PKCS#12 格式

PKCS#12 或 PFX 格式是一种二进制格式,用于在可以加密的文件中保存服务器证书、任何中间证书以及私有密匙。PFX 文件的常用扩展名包括 .pfx 和 .p12。

JKS 格式

Java 密匙库是一个受密码保护的证书和钥匙存储库。它几乎始终基于文件形式,并由 JRE 内的默认实现提供。文件内容为二进制内容,常用扩展名为 .jks。

Identity Store 资源

获得相关的密匙材料后,需要将密匙导入到 Rational Integration Tester。为了能够统一地访问各种类型的密匙,Rational Integration Tester 通过一个 Identity Store 资源收藏了所有数字证书和密匙。Identity Stores 在 Architecture School 的 Physical View 中创建和访问,如图 2 所示。

图 2. 创建 Identity Store 资源

SSL握手及其在Rational Integration Tester传输中的应用

在新创建的 Identity Store 资源编辑器中,您首先需要引用或创建一个底层密匙库,如图 3 所示,它将使 Rational Integration Tester 能够比较安全地保存密匙材料。

图 3. 配置新的 Identity Store

SSL握手及其在Rational Integration Tester传输中的应用

单击 New ,打开标准的文件选择对话框并指定密匙库的名称和位置。

注意:如果项目要保持可移植性,那么应当将密匙库文件放在项目结构内。这种安排能够使其他用户共享密匙库,并作为已部署的测试和虚拟服务的一部分使用。

如图 4 所示,指定文件名和位置后,将密匙库放到项目内部。

图 4. 设置 Keystore 密码

SSL握手及其在Rational Integration Tester传输中的应用

创建密码后,开始从一个或多个支持的文件类型中导入密匙材料。单击 Import Key/Certificate(s),使用文件浏览器定位并选择文件。Rational Integration Tester 尝试识别文件类型,并在必要时请求获得用于保证密匙安全的密码,如图 5 所示。

本例中使用了 JKS 文件,Rational Integration Tester Platform Pack 为了结合使用 HTTP(S) 代理而附带了该文件。

图 5. 输入密码,执行导入

SSL握手及其在Rational Integration Tester传输中的应用

和大部分包含私有密匙的密匙材料一样,需要使用一个密码来访问文件内容。对于 JKS 等格式,需要使用二级密码来访问文件中包含的私有密匙。当需要一个二级密码时,Rational Integration Tester 将自动尝试使用第一个密码。完成后,密匙材料将被添加到 Identity Store,如图 6 所示。

图 6. 访问导入的证书和密匙

SSL握手及其在Rational Integration Tester传输中的应用

在导入 PKCS#12 格式的私有密匙后,您可能会遇到 Identity Store 资源无法发现密匙的情况,如图 7 所示。

图 7. Identity Store 由于无效密码而无法发现密匙

SSL握手及其在Rational Integration Tester传输中的应用

要访问密匙并在 Rational Integration Tester 中使用密钥,请单击 Password 列中的单元格并输入对应的密码,如图 8 所示。

图 8. 输入正确的密匙密码

SSL握手及其在Rational Integration Tester传输中的应用

虽然可以将您要使用的所有密匙材料都导入到一个 Identity Store 资源中,但最佳方法是创建逻辑集合,这些集合表示各个传输应当使用的可靠的密匙组。

导入密匙材料并且可以通过 Identity Store 资源使用后,您可以在物理传输配置中使用这些密匙材料。

基于 HTTP 的 SSL 配置

在 HTTP 传输中,SSL 选项卡使您能够向安全连接的一端或两端显示配置,如图 9 所示。

图 9. 指定 HTTP SSL 设置

SSL握手及其在Rational Integration Tester传输中的应用

这些设置在连接的客户端用于测试,在服务器端用于虚拟服务。具体设置取决于您正在配置的是安全连接的哪一端。

在服务器端配置 HTTP SSL

在初始 SSL 握手期间需要用到附带的证书和对应的密码(参见 图 1,步骤 1)。客户端可以使用该证书和密码套件生成 pre-master 密匙并加密它,密码套件用于计算在会话后期使用的共享密匙(master 密匙)。要加密 pre-master 密匙,需要在 SSL 设置中指定 Identity Store 和密匙。

作为客户端配置 HTTP SSL

当相连接的服务器执行相互验证并请求客户端证书时,才会 需要使用附带的证书和密匙(参见 图 1,步骤 2)。大部分场合都不需要使用这种模式,可以将这种模式看作是使用浏览器连接到某个安全的 Web 站点。您需要知道该站点是有效的,但是站点不要求每个用户用证书和密匙证明自己的身份。

备注:如果指定这种配置,则需要将密匙与正在运行测试的机器相关联。它取决于服务器所执行的验证的程度。

为 HTTP SSL 指定可靠的证书

在充当客户端或服务器时,您可以对 Rational Integration Tester 进行配置,对提供给它的证书执行更高级别的验证。提供的选项包括:

  • Perform Authentication:表示是否应该执行任意级别验证,或者是否应该盲目信任远程对等传输端。
  • Specify Trusted Certificates:表示远程对等端提供的证书链末端的证书必须匹配经过配置的 Identity Store 资源中的某个证书。
  • Verify Certificate Chain:确保对等端的证书链是正确的,而且每个证书都是有效的。

通常,出于测试目的,您不需要关心所连接的服务器的身份或有效性,因此所有这些选项通常保留为未选中状态。

针对其他传输配置 SSL

其他许多传输,比如 IBM® WebSphere® MQ 和 CICS® Transaction Gateway,也提供了客户端 SSL 连接以及一组类似的配置选项。在所有情形下,都可以通过相同的方式使用密匙材料来信任客户端身份和表示它。

对 SSL 通信进行故障排除

在配置 SSL 时,最重要的一点是理解都涉及到了哪些连接方,特别是它们彼此之间有什么样的关系。通过单向或相互验证确保通信的安全性,并了解所使用的协议,例如 SSL 或 TLS。

对于虚拟化,确保使用了合适的证书和密匙配置物理传输。如果企业内的物理传输不可用,那么可以使用 OpenSSL 之类的工具或 Rational Integration Tester Platform Pack 内的代理服务器附带的证书和密匙建立连接。

结束语

本文介绍了各种密匙类型以及它们在 Rational Integration Tester 中的使用,从而可以连接并测试使用 SSL 保护的应用程序。在本系列第二部分中,我们将探讨如何使用 HTTP(S) 代理服务器来记录和重新路由安全流量,我们将使用现有密匙材料或使用 HTTP 代理服务器附带的证书和密匙。HTTP 代理服务器包含在 Rational Integration Tester Platform Pack 中。

  • 本文相关:
  • 使用IBM Rational Test Virtualization Server测试移动应用程序
  • 在IBM Integration Bus中配置WebSphere Service Registry and Repository缓存
  • IBM WSRR 使用 HTTP Request 节点执行 SLA 检查
  • IBM Rational Lifecycle Integration Adapters概览
  • BigSheets将数据转换为可用于未来查询和其他处理的可视化形式
  • IBM Cognos BI企业级商业智能产品日志简介
  • IBM医疗连接包一款基于Message Broker的新产品
  • WebSphere Message Broker和IBM Integration Bus中ESQL共享变量的使用
  • MongoDB保护新一代数据库的配置和策略
  • 使用IBM Rational Test Workbench进行移动终端应用测试
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2015 www.zgxue.com All Rights Reserved