当前位置: 首页 > 服务器 > IBM > IBM软件 > SSL握手及其在Rational Integration Tester传输中的应用

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

2014-08-08 14:32 来源:风信网 作者:John Chewter 人气指数: 我要评论

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 SSL握手
大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

芈月传 老司机玩法 萌乐网 黑科技 坐骑揭秘 三国令 铁血皇城 竞技场攻略 书剑恩仇录 披风玩法 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 哥们网 天书世界 奇珍商城 热血战歌 传奇宝藏抽奖 门徒 范伟打天下 打开方式 门徒获取玩法 三大萌宠简介 新手攻略 挂机系统简介 材料副本 大海战 鸵鸟 大黑 激情玩法 门徒战力提升 万世 强化属性 上古降魔 提升战力 装备攻略 九阴绝学 品质推荐 老干妈 激战来袭 大黑游戏 新服亮点 福利多多 画江山 资料片 玩家 九阴真经 江湖儿女 真实场景 现实 虚拟 随机副本 风色轨迹 听天由命 ppwan 神助攻 武林秘药 激活八大脉门 九天劫变 猎命格 天问 大型PVP 花千骨 激战更尽兴 网易mumu 手游玩家 安卓模拟器 安卓 单挑群战 武侠传说 女神 孙尚香专访 胸猛抱团 新游 占山为王 跨服城战 蜀山战纪 剑雨江湖 攻略 实时VR交互 七大女神代言 酷炫走江湖 世界四大杀手 玩家专访 三国经典 大制作 好玩网页游戏 盘点 宇宙霸主 境界玩法 莽荒纪 勇闯难关 镜像副本 荒漠霸主 装备精通 三大战役 鹌小彦奇谈