随着电子商务的不断发展,对于互联网用户来说,数据安全性变得越来越重要。“安全套接字层”(SSL)协议可以确保通过互联网传送的敏感信息是安全的。
SSL 可以防止信息面临下列风险:
- 互联网窃听
- 窃取数据
- 通信量分析
- 修改数据
- 浏览器/服务器感染特洛伊木马病毒
IMS Connector for Java 与 IMS Connect 之间的一种通信方法是通过 TCP/IP 套接字进行通信。如果 IMS Connector for Java 使用 TCP/IP,则可以使用 SSL 来保护两个实体之间进行的 TCP/IP 通信。IMS Connector for Java 提供的 SSL 支持与 IMS Connect 提供的支持,将公用密钥、专用密钥和对称密钥加密方案结合起来使用,从而获得客户机和服务器认证、数据机密性和完整性。SSL 依赖于 TCP/IP 通信协议,SSL 协议允许已启用 SSL 的服务器向已启用 SSL 的客户机认证它自己,反之亦然。一旦完成了认证,上述服务器与客户机之间就可以建立加密连接,这同时也保护了数据的完整性。
对于 SSL 支持,当在 WebSphere® 环境中运行时,IMS Connector for Java 将使用“Java 安全套接字扩展”(IBM® JSSE)的 IBM 实现。WebSphere Studio Application Developer Integration Edition、Rational Application Developer 和 WebSphere Application Server 中都包含了此 SSL 库。
SSL 概念
证书
数字证书是一个用来验证证书所有者标识的数字文档。数字证书包含一些个人信息,例如,所有者的姓名、所在公司以及公用密钥。证书都经过“认证中心”(CA)(它是值得信赖的权威机构)利用数字签名进行了签名。
认证中心
认证中心(CA)是一个值得信赖的团体,它负责为用户和系统创建并颁发数字证书。作为一个有效凭证,CA 为证书建立了值得信赖的基础。
证书管理
证书和专用密钥都存储在称为密钥库的文件中。密钥库就是一个用来保存密钥资料的数据库。可以将密钥库信息分为两类:密钥条目和可信任证书条目。为了安全起见,可以将这两种条目分开存储。
- 密钥库
- 密钥库用来保存密钥条目,例如,IMS Connector for Java 的用户的专用密钥。
- 信任密钥库
- 信任密钥库是一个只保存用户信任的证书的密钥库。仅当用户决定信任某实体时,才应该将条目添加至信任密钥库。信任密钥库条目的一个示例就是目标 IMS Connect 的证书。
为了方便起见,IMS Connector for Java 允许用户既可以将密钥条目和可信任证书条目存储在密钥库中,也可以存储在信任密钥库中。用户也可以选择将它们分开存储。在所有受支持的平台上,IMS Connector for Java 都是仅支持“JKS”这种密钥库类型和 X.509 证书。在 z/OS 上,IMS Connector for Java 还支持 RACF 密钥环中的 JCERACFKS(软件加密)和 JCE4758RACFKS(硬件加密)密钥库。
SSL 过程
SSL 协议由服务器认证、客户机认证(可选)和接下来进行的加密对话组成。以下方案逐步完成了 SSL 过程。
服务器认证
客户 Alice 想将一些敏感信息发送给银行。她需要确认,她把个人信息发送至的服务器确实是她想联系的银行的服务器。SSL 服务器认证允许客户机确认服务器的标识。已启用 SSL 的客户机软件使用标准的公用密钥加密技术来确保服务器的证书和公用标识是有效的,并且该证书和标识是由客户机的可信任认证中心(CA)列表中的其中一个认证中心颁发的。
客户机认证
同样,银行需要确认发送信息的确实是 Alice。SSL 客户机认证允许服务器确认客户机的标识。通过使用进行服务器认证时采用的相同技术,已启用 SSL 的服务器软件将验证客户机的证书和公用标识是有效的,并且该证书和标识是由服务器的可信任认证中心(CA)列表中的其中一个认证中心颁发的。
SSL 握手
Alice 和银行都将他们的证书和专用密钥存储在密钥库中。Alice 与银行之间真正的 SSL 会话是遵循客户机与服务器之间的握手序列建立的。根据服务器是配置为提供服务器证书还是请求客户机证书,以及所使用的密码套件不同,握手序列也可能会有所不同。密码就是一种加密算法。SSL 协议将确定客户机与服务器如何协商密码套件以便互相进行认证、传输证书和建立会话密钥。密码套件中使用的一些算法包括:
- DES - 数据加密标准
- DSA - 数字签名算法
- KEA - 密钥交换算法
- MD5 - 消息摘要算法
- RC2 和 RC4 - Rivest 加密密码
- RSA - 用于加密和认证的公用密钥算法
- RSA 密钥交换 - 基于 RSA 算法的、用于 SSL 的密钥交换
- SHA-1 - 安全散列算法
- SKIPJACK - 在符合 FORTEZZA 的硬件中实现的一种保密的对称密钥算法
- 三重 DES - 应用了 DES 三次。
SSL 2.0 和 SSL 3.0 协议支持发生重叠的多组密码套件。管理员可以对客户机和服务器启用或禁用受支持的任何密码套件。当特定客户机和服务器在 SSL 握手期间交换信息时,客户机和服务器将标识它们共同具有的最强壮的密码套件,并将它们用于 SSL 会话。
传输层安全性版本 1(TLS V1)是对 SSL 3.0 协议的升级。IMS Connector for Java 仅支持 TLS V1。不存在向后兼容性问题。