SSL安全传输技术的探索应用实践

热点探究信息安全SSL安全传输技术的探索应用实践中国银行信息中心高国奇段慧军周波勇近年来,随着IBM主机通信技术的进一步发展,在互联网中应用广泛的TCP/IP协议逐渐成为主机通信网络的主要工作协议之一

热点探究

信息安全

SSL安全传输技术的探索应用实践

中国银行信息中心

高国奇

段慧军

周波勇

近年来,随着IBM主机通信技术的进一步发展,在互联网中应用广泛的TCP/IP协议逐渐成为主机通信网络的主要工作协议之一。

IBMWebSphereMQ是一个优秀的消息传递中间件,它被广泛地应用于各种企业应用系统之间的互联。WebSphereMQ也作为重在许多大型银行业务系统中,

要的联机传输工具被大量投入应用。由于WebSphere在很多的银行业务系统部署中,MQ支持TCP/IP协议,

开始逐步采用TCP/IP作为基础的网络平台系统。但TCP/IP体系结构的天然开放性,人们在享受其带来便利的同时,也很容易遭受各种有意或无意的攻击,如:破坏信息的完整性、仿冒他人非法获取机密资料、在传输过程中截获各种信息等。为了保证TCP/IP通信的安全性,人们提出了安全套接层(SSL,SecuritySocketLayer)协议。目前,SSL已经成为一种安全有效的网络安全技术,被人们广泛地部署到各种应用系统中。IBM公司的WebSphereMQ从5.3版本开始支持SSL,可以利用它建立安全可靠的数据传输通道。

本文结合数据安全通信的一些基本概念和要点,简要介绍了SSL技术的工作过程,并针对IBM公司的z/OS平台和AIX平台上的WebSphereMQ应用,探讨和验证了SSL技术对于WebSphereMQ安全通信的应用和部署方法。

体的划分有赖于所涉及的对象。目前常将其分成以下三个主要类别:保密性(Confidentiality)、消息完整性(MessageIntegrity)和端点认证(EndpointAuthentica-tion)。

①保密性。通常来说,人们在规划网络安全时首先考虑的是其保密性,目的就是希望能保证信息对无关的用户是不可用的。

②消息完整性。消息完整性是指通信双方需要确认自己所收到的信息就是发送者发送的信息,目的是要保证发送方发送的信息在到达接收方之前没有被任何第三方篡改。

③端点认证。端点认证的目的是要确定通信中的某个端点(通常为发送方)就是明确已知的那个端点。如果没有端点认证,要想提供保密性和消息完整性就会非常困难。例如,我们收到了一份来自客户端张三的消息,如果无法确定该消息是由客户端还是攻击者发送的,那么消息的完整性和保密性对于我们来说就没有任何意义。与之类似,当我们向服务器端李四发送一份机密信息,而实际上却将机密信息发送给了攻击者,对我们来说也同样毫无意义可言。

下面简单介绍一些常用的网络安全应用技术。

1.密码学

密码学是一种设计各种安全算法的理论,研究使用此类算法的目的是为了保证系统和协议的安全。其

一、网络安全技术

通信安全由许多不同而相互关联的特性构成,具

基本思想是:加密算法接收一定长度的用户数据并在密钥的控制下将其转换为密文(Ciphertext)。密文看上去就像随机数据,没有密码就无法收集与明文(Plain-

中国金融电脑2007年第3期・19

,

热点探究

信息安全

text)有关的各种有用信息。

在密码学中,待加密的消息称为明文,经过一个以密钥为参数的函数变换,输出的结果称为密文,这个过程称为加密。当密文通过网络传送到接收方之后,使用一个与加密过程相同的密钥(对称加密)或不同的密钥(非对称加密)为参数的函数进行变换,这个过程称为解密,输出的结果为原始的明文。

评价一个加密算法的好坏主要取决于两个方面:算法的强健性(即牢固程度)、密钥的长度。

公开密钥密码体系一般不用于数据信息加密,而主要用于解决密钥发布和身份认证问题。数据信息的加密主要采用对称密码方式。

3.消息摘要

消息摘要(MD,MessageDigest)是一种函数,它以单向散列函数作为基础,接受一个任意长度消息明文作为输入,并且根据此明文计算出一个固定长度的位串。消息摘要有以下四个重要特征。

①给定消息P,很容易计算MD(P);

②给定MD(P),在实践中要想找到P是不可能的;)=MD③在给定P的情况下,无法找到满足MD(P′(P)的P′;

也会导致④在输入的消息中即使只有1位的变化,完全不同的输出。

直白地说,消息摘要最重要的属性是不可逆性(Ir-reversibility),给定摘要值,要想计算出它对应的消息几乎是不可能的。

消息摘要的主要用途是用于计算数字签名和信息验证码。目前使用最为广泛的消息摘要算法是消息摘要5(MD5)和安全散列算法1(SHA-1)。

2.加密算法

常用的数据加密算法有对称密钥加密和非对称密钥加密两大体系。在对称密钥体系中,通信双方持有相同的密钥,信息发送方用密钥将信息加密,密文到达接收方后,使用同一个密钥将其解密。在实际应用中有多种加密算法属于对称密钥体系,如常见的数据加密标准(DES)、三重DES(3DES)和高级加密标准AES)等。(

DES是由IBM公司在20世纪70年代开发的一个美国官方加密标准,曾经广泛应用于很多安全产品中。由于其密钥长度只有56位,很容易遭到破解,目前已经无法提供足够的安全保障。后来IBM公司意识到DES的密钥长度太短,通过三重加密的方法对其进行了有效的改进,改进的算法称为3DES,其密钥长度扩展为168位。由于改进的算法能够提供良好的数据信息保密性,3DES加密算法当前已获得了广泛的应用。

AES算法是目前可选的最佳加密算法之一,其算法支持128、192和256位密钥长度,具有极强的加密安全性和可靠性,在目前及可以预见的将来都会广泛应用于各种安全产品中。

在非对称密钥体系(一般称为公开密钥密码体系)中,密钥是由一个密钥对组成的,一个密钥对包括一个私钥和一个公钥。公钥和私钥一起产生并且相互依存。密钥的发布者自己拥有私钥,并且将公钥公开给所有需要与之通信的人。由公钥加密的信息可以由私钥解密,反之亦然。

目前公开密钥密码体系中常用的算法是RSA算法。在实践中大量的安全性都是建立在它的基础之上。其主要缺点是:要想达到好的安全性,要求至少使用1024位长度的密钥,这使得RSA算法的速度非常慢。

20・中国金融电脑2007年第3期

4.信息验证码

信息验证码(MAC)类似于摘要算法,但是它在计算的时候还需要采用一个密钥,因此MAC同时依赖于所使用的密钥及信息本身。目前常用的构造MAC的方法是HMAC。

5.数字签名

为了能够在信息系统中验证各种敏感信息和参与方的真实有效性,需要构建一个经过授权的数字签名系统,其中一方向另一方发送的签名消息必须满足以下的条件。

①接收方可以验证发送方宣称的身份;②发送方以后无法否认该消息的内容;③接收方不可能自己编造这样的消息。

满足以上三个条件的数字签名系统可以实现身份确认、不可抵赖性。

利用公开密钥密码体系和消息摘要技术可以实现数字签名技术。如图1所示,客户端张三首先计算明文P的消息摘要MD(P),然后针对消息摘要用自己的私钥DA加密进行签名,并且将签名之后的摘要和明

,

热点探究

信息安全

文本身一起发送给服务器端李四。如果中途有攻击者偷偷将P更换为P′,则当李四计算MD(P′)时就会发现这一点。

英文域名

中文域名版本序列号

含义

表1数字证书中的主要域

VersionX.509的具体版本号序列号加上CA的名字唯一

标识当前证书

用于为证书做签名的算法

张三

图1

P,D[]AMD(P)

使用消息摘要的数字签名

李四

Serialnumber

Signaturealgorithm签名算法Issuer

颁发者有效期主题名公钥

颁发者标识符主题标识符扩展域签名

CA的X.500名字有效期的起止时间

该证书所证明的密钥所有者

实体

主题的公钥及使用该公钥的算法的ID

一个可选的ID,唯一标识了证书的颁发者

一个可选的ID,唯一标识了证书的主题

目前已经定义了许多扩展域证明的签名(用CA的私钥做的签名)

采用数字签名,能够保证信息是由签发者自己签名发送的,签名者不能否认;信息自签发后到收到为止没被修改过,签发的信息真实有效。

ValidityperiodSubjectnamePublickeyIssuerIDSubjectIDExtensionsSignature

6.数字证书

利用公开密钥密码体系和消息摘要可以计算数字签名,但是无法解决公钥的安全发布问题。为了解决这个问题,人们成立了一个名为证书权威机构(CA,Certi-ficationAuthority)的组织来管理公钥的发布问题。CA所做的主要工作就是证明每个公钥的确属于某个真实的个人、公司或者组织。例如,李四希望张三和其他的人能出示他的公钥够安全地与他通信,他可以找到一个CA,和能够证明其真实身份的材料。然后,CA给他颁发一个包含其公钥的证书,并且使用CA自己的私钥对证书的摘要散列值进行签名。这样李四就获得了经过CA签名的数字证书。如果签署证书的上级证书就是自身,这种证书就称为自签证书。在没有CA的环境下,可以使用自签证书。

证书的基本任务是将一个公钥与安全主体(个人、公司等)的名字绑定在一起。为了保证证书格式的一致性,ITU设计了一套专门针对证书格式的标准X.509。X.509的核心是提供了一种描述证书的格式。表1列出了一个证书中最主要的域。

证书本身没有加密,同时也无须保护,而是其他用户通过验证该证书的合法性来确保获得安全主体的公钥。

CA、证书和目录。公开密钥基础设施的主要任务是提供一种方法将这些部件有序地组织起来,并且定义各种文档和协议标准。一个实际的PKI形式可能是一个单层的CA,也可能是一个多层的CA。公开密钥基础设施通常为树形的组织结构,其中最顶级的为根CA,它的责任是证明第二级的CA,依次类推。处于中间层次的CA有时又称为区域权威机构(RA,RegionalAuthority),它们可能覆盖一个特定的分支机构或一个特定的地理区域。处于最底层的CA真正为组织和个人颁发X.509证书。

每一由于在公开密钥基础设施的CA层次关系中,个直接上层CA都为其直接下层提供了签名证书,这样就形成了从最终用户到根CA的证书链,我们称之为信任链(ChainOfTrust)或者证书路径(CertificationPath)。其中根CA有时被称为信任锚(TrustAnchor)。

公开密钥基础设施还要负责处理有关证书撤销的事情,每个CA会定期发布一个证书撤销列表(CRL,CertificateRevocationList),该CRL列出了所有已被撤销证书的序列号。用户可以通过定期更新CRL列表来查询证书的有效性。

中国金融电脑2007年第3期・21

7.公开密钥基础设施

使用CA可以解决公钥安全发布的问题,但是对于CA本身也需要建设一个合适的管理架构。为此,人们又提出了另外一种证明公钥身份的方法,它的通用名称是公开密钥基础设施(PKI,PublicKeyInfrastructure)。

一个公开密钥基础设施有许多部件,包括用户、

,

热点探究

信息安全

消息用来指示之后所有的消息都将使用刚刚商定的密

二、SSL技术

SSL是美国网景(Netscape)公司提出的数据安全通信协议。SSL定义了在应用程序协议(如HTTP、Telenet、WebSphereMQ和FTP等)和TCP/IP协议之间提供数据安全性分层的机制。

SSL在两个套接字之间建立一个安全的连接,其中包括以下功能。

①客户和服务器之间的参数协商;②客户和服务器的双向认证;③保密的通信;④数据完整性保护。

SSL支持多种密码学算法,定义了多种安全参数组合,每种安全参数组合包括三个部分:签名算法、加密算法和信息验证算法。其中,签名算法用来完成数字签名的功能,加密算法用于防止数据泄密,信息验证算法用于保证数据完整性。目前较好的一种组合是使用RSA作为签名算法,使用三个独立密钥的3DES作为加密算法,使用SHA-1来保护数据完整性。这种组合具有很高的安全性,主要应用于银行和其他一些对安全要求比较高的行业。

SSL由两个子协议组成,一个用于安全连接的建立,另一个用于数据的安全传输。

张三

码进行加密,并用Finished消息来包含对整个连接过程的校验。

一旦服务器收到客户端的Finished消息,就会发送自己的ChangeCipherSpec和Finished消息,从而完成了建立安全连接阶段。

2.使用安全的连接传送用户数据

为了传输实际的数据,我们需要使用SSL的第二个子协议,如图3所示。

来自应用程序的信息数据首先被分割成最大16KB的单元,如果当前连接支持压缩功能的话,则每个单元被独立压缩。然后利用协商好的散列算法(如MD5或SHA-1)作散列运算,这个散列值被附加到每一个分段的尾部,作为它的MAC,之后利用协商好的对称加密算法对整个分段(包括MAC尾部)进行加密。最后每个分段被附加一个分段头,通过TCP连接被传送出去。

1996年,SSL被IETF组织进行了标准化工作,最终形成了传输层安全(TLS,TransportLayerSecurity)。

握手:ClientHelloRA握手:ServerHelloRB握手:CertificateChain握手:ServerHelloDone握手:ClientKeyExchangeChangeCipherSpec握手:完成ChangeCipherSpec握手:完成

李四

1.建立安全的连接

图2示出了连接建立子协议的工作过程。

张三(客户端)向李四(服务如图2所示,

器端)发送一个建立连接的请求,发送的第一条消息为ClientHello,其中包含了客户端推荐的加密参数和密钥产生过程中使用的随机数RA。服务器以三条消息进行响应:首先发送选择加密参数与压缩算法的ServerHello和使用的随机数RB,然后发送包含服务器公钥的证书链,最后发送ServerHelloDone消息表示握手结束。

接下来客户端发送ClientKeyExchange消息,并随机产生一个用服务器公钥加密的密钥。随后发送一条ChangeCipherSpec消息,该

22・中国金融电脑2007年第3期

加密

加上分段头

分段压缩加上MAC

图2SSL连接建立子协议

来自应用的信息数据部分1

……

部分n

图3使用SSL的数据传输

,

热点探究

信息安全

下三个方面的工作。

三、WebSphereMQ的SSL应用探讨

为了在IBMz/OS平台和AIX平台上实现Web-SphereMQ的SSL安全连接,需要考虑和规划下列内容。

(1)制作和存储数字证书

制作数字证书可以通过各自系统提供的工具来实现。在z/OS平台中我们可以使用系统提供的RACF组件;在AIX平台可以使用系统提供的iKeyman或GSK工具。

为了存储数字证书,还需要指定系统使用的证书存储机制。对于z/OS平台可以使用密钥存储环,对于AIX平台使用密钥数据库(KDB)。(KeyRing)

如果使用CA签名证书,使用WebSphereMQ通信的各方需要将CA机构的证书链及经过CA签名的证书存储在各自的系统中。如图4所示,四个利用Web-SphereMQ进行安全数据传输的系统只需要保存CA的证书链、自身的CA签名证书和私钥。

如果使用自签证书,通信各方分别需要保存自身和其他各个节点的证书。如图5所示,四个利用Web-SphereMQ进行安全数据传输的系统需要分别保存其他三个系统的自签证书、自身的证书和私钥。

(2)设置SSL工作参数

为了在IBMz/OS平台和AIX平台上正确部署WebSphereMQ的SSL安全应用,需要确定以下SSL具

1.数字证书

获取数字证书可以选择以下两个方式之一。①向证书认证机构申请CA证书;②系统自制自签证书。

如果不需要通过第三方进行身份确认,即在互信的应用环境中,可以使用操作系统提供的工具制作数字可以通过从证书并进行自我签名。如果使用CA证书,

CA认证中心下载或者提交个人证书请求来获得经过CA签名的证书。

在大型银行系统中,我们可以通过建设PKI系统来构建企业自身使用的CA认证机构以提供CA证书管理服务。

2.SSL安全参数

SSL安全参数是安全套件集合中的成员,我们在具体应用中需要指明实际使用的安全参数。一个安全参数主要包括以下几个方面。

①密钥交换和认证算法;②传输数据用的对称加密算法;

③消息认证算法。

在IBMz/OS平台上支持的安全参数集合有基本安全级别和安全级别3两个等级。基本安全级别提供最为基本的安全功能,无法满足对数据安全有着极高要求的银行业务系统的需求。安全级别3提供的安全参数大大增强了使用SSL进行数据传输的安全性,能够满足银行业务系统对于数据的安全性。

密钥存储库私钥系统3密钥存储库私钥系统1

系统2

私钥

CA证书

CA证书

经过CA签名

的个人证书

密钥存储库

经过CA签名的个人证书

系统4

私钥

CA证书

CA证书

经过CA签名的个人证书

密钥存储库

经过CA签名的个人证书

3.部署SSL

为了在WebSphereMQ通信中实现SSL安全功能,需要做好以

中国金融电脑2007年第3期・23

图4使用CA签名证书利用WebSphereMQ进行安全数据传输的系统

,

热点探究

信息安全

系统1

系统2

四、WebSphereMQSSL使用案例

系统3

自签证书

系统4自签证书密钥

系统2自签证书系统3自签证书系统4自签证书密钥

系统1自签证书

为了在IBMz/OS和AIX平台上测试和验证WebSphereMQ的SSL安全应用实施方法和效果,我们利用两台IBM主机和两台RS6000小型机分别搭建环境进行SSL安全数据

密钥存储库自签证书密钥存储库自签证书

系统3系统4

系统1

自签证书系统2自签证书系统4自签证书密钥

系统1自签证书系统2自签证书系统3自签证书密钥

传输测试。

1.系统软硬件平台

在我们的测试环境中,分别选择两台IBMZ系列主机和RS6000小型机作为测试硬件平台。

在两台主机上选择两个

密钥存储库自签证书

密钥存储库自签证书

图5使用自签证书利用WebSphereMQ进行安全数据传输的系统

体配置参数。

①选择合适的安全参数;

②提供保存数字证书的密钥存储文件;。③准备数字证书(CA证书或者自签证书)在一些特殊的应用环境中,下列配置作为可选项也需要明确。

①证书标识名过滤;

②通过LDAP检查证书撤销列表;③使用硬件加密卡。

(3)设置WebSphereMQ工作参数

为了在特定的队列管理器和特定的连接通道上设置SSL安全应用,需要分别设置它们的安全属性。

队列管理器的安全属性设置如表2所示。连接通道的安全属性设置如表3所示。

表2

属性

LPAR:LPAR1和LPAR2,分别运行z/OS1.7版本作为软件平台。在两台RS6000机器上分别运行AIX4.3.3版本和AIX5.2L版本(AIX2)作为软件平台。所有系统(AIX1)

平台上均安装运行WebSphereMQ5.3.1,该版本提供了基于SSL的安全应用实现。

AIX平台上运行的WebSphereMQ5.3.1版本在启用SSL安全传输功能时,对C++运行时的版本有严格要求。对于AIX4.3.3版本,要求C++运行时的版本不低于5.0.2.0;对于AIX5.2L版本要求C++运行时的版本不低于6.0.0.2。

另外,我们还选择了一台运行Windows2003企业版的PC机,利用其自带证书服务组件搭建了一个CA认证中心,来提供证书签名服务。

队列管理器的安全属性设置

描述

证书存储库的名称

(不带扩展名)

必须可选可选可选

属性

表3连接通道的安全属性设置

描述

加密套件名称

(队列两端必须保持一致)

必须可选可选

SSLKEYRSSLCRYPSSLCRLNLSSLTASKS

SSLCIPHSSLCAUTHSSLPEER

SSL加密硬件(Unixonly)SSL证书撤销列表库SSL启动任务数量(z/OSonly)

SSL客户端认证可选参数(REQUIRED/OPTIONAL)X.509证书标识名过滤

24・中国金融电脑2007年第3期

,

热点探究

信息安全

2.配置和组网

对于WebSphereMQ的具体配置如下。

(1)在LPAR1上使用“MQUSER”用户来启动MQ应用作业,队列管理器的名称为“MQZ1”,并配置如下通道。

发送通道:C_MQZ1.MQZ2、C_MQZ1.MQA1;接收通道:C_MQZ2.MQZ1、C_MQA1.MQZ1。(2)在LPAR2上使用“MQUSER”用户来启动MQ应用作业,队列管理器的名称为“MQZ2”,并配置如下通道。

发送通道:C_MQZ2.MQZ1、C_MQZ2.MQA2;C_MQZ1.MQZ2、C_MQA2.MQZ2。接收通道:

(3)在AIX1上使用“root”用户来启动MQ应用作业(root用户需要加入到mqm组中),队列管理器的名称为,并配置如下通道。“MQA1”

发送通道:C_MQA1.MQA2、C_MQA1.MQZ1;C_MQA2.MQA1、C_MQZ1.MQA1。接收通道:

(4)在AIX2上使用“root”用户来启动MQ应用作业(root用户需要加入到mqm组中),队列管理器的名称为“MQA2”,并配置如下通道。

C_MQA2.MQA1、C_MQA2.MQZ2;发送通道:

接收通道:C_MQA1.MQA2、C_MQZ2.MQA2。具体组网连接如图6所示。

主机系统1(MQZ1)

C_MQZ1.MQZ2C_MQZ2.MQZ1

主机系统2(MQZ2)

用了自签证书和CA签名证书两种形式。

需要注意的是,WebSphereMQ对于数字证书的标签有严格的要求,它规定必须以“ibmWebSphereMQ”作为前缀,后面加上队列管理器的名称。例如,本次测试过程中LPAR1的队列管理器名称为“MQZ1”,则标签名称必须是“ibmWebSphereMQMQZ1”,LPAR2的队列管理器的名称为“MQZ2”,则标签名称必须是“ibmWebSphereMQMQZ2”。另外,z/OS平台对于证书标签名称大小写敏感,而AIX平台则必须全部用小写,如队列管理器“MQA1”对应的证书的标签必须是。“ibmwebspheremqmqa1”

4.配置WebSphereMQSSL参数

我们使用WebSphereMQ提供的MQSC来进行SSL参数的配置。在z/OS平台还可以通过PDF/ISPF提供的菜单界面对WebSphereMQ中SSL的相关参数进行配置。

(1)队列管理器配置

具体的操作步骤请参见IBM公司的红宝书“WebSphereMQSecurityinanEnterpriseEnvironment”(SG246814)。

连接通道配置(2)

对于通道配置,我们需要指定其使用的SSL安全参通道之间必须指定相数组合,对于一对发送/接收组合,同的SSL安全参数组合。可以通过设置SSLCIPH参数来使用不同的SSL安全参数组合。

配置完上述步骤之后,需要将队列管理器和通道重新启动一次以便应用上述配置参数。当重新启动发送端之后,MQ就会采用安全的SSL通道进行连接。

综上所述,随着TCP/IP网络体系架构在金融领域应用部署的增加,网络数据传输的安全性也越来越多的受到了关注。在IBMz/OS操作系统的不断更新的过程中,其安全部分的功能一直在得到更新和增强,并对SSL/TLS提供了完善的支持,我们可以方便地将其部署在大量的基于TCP/IP的应用中,这样就能为金融系统的各种关键应用提供良好的安全保障。FCC

图6WebSphereMQ配置和组网的具体连接方式

3.使用RACF和GSK制作数字证书

在z/OS平台,我们使用RACF来制作数字证书和我们使用GSK工具来制作数证书存储环;在AIX平台,字证书和证书存储数据库。在测试过程中,我们分别使

C_MQZ1.MQA1

C_MQA2.MQZ2

主机系统1(MQA1)

C_MQA1.MQZ1

C_MQA2.MQA1C_MQA1.MQA2

主机系统2(MQA2)

C_MQZ2.MQA2

中国金融电脑2007年第3期・25

标签: