1.安全套接层(SSL)协议概述
安全套接层(Secure Sockets Layer,SSL)协议是Netscape Communication公司于1996年设计开发的,主要用于提高应用程序之间的数据安全系数。SSL协议主要提供3方面的服务:一是用户和服务器的合法性认证,二是加密数据以隐蔽被传送的数据,三是保护数据的完整性。SSL协议涉及所有TCP/IP应用程序,是一个保证任何安装了安全套接层的客户和服务器之间安全的协议。
SSL协议支持两台计算机间的安全连接,其实现属于Socket层,处于应用层和传输层之间,由SSL记录协议(SSL Record Protocol)和SSL握手协议(SSL Hand-shake Protocol)组成,其结构如图9-6所示。
图9-6 SSL在TCP/IP网络分层结构模型中的位置
SSL握手协议描述建立安全连接的过程,在客户和服务器传送应用层数据之前,完成诸如加密算法和会话密钥的确定,通信双方的身份验证等功能;SSL记录协议则定义了数据传送的格式,上层数据包括SSL握手协议建立安全连接时所需传送的数据都通过SSL记录协议再往下层传送。这样,应用层通过SSL协议把数据传给传输层时,已是被加密后的数据,此时TCP/IP只需负责将其可靠地传送到目的地,弥补了TCP/IP安全性较差的弱点。
SSL作为目前保护Web安全和基于HTTP的电子商务交易安全的事实上的标准,被许多世界知名厂商的Intranet和Internet网络产品所支持,其中包括Netscape、Microsoft、IBM、Open Market等公司提供的支持SSL的客户机和服务器产品,例如,IE和Netscape浏览器,IIS、Domino Go WebServer、Netscape Enterprise Server和Appache等Web Server。
2.基于SSL协议的交易流程
基于SSL协议的支付系统是网上支付普遍采用的方法。该系统的主体有持卡人、商家、支付网关和发卡银行。交易流程如下:
1)持卡人登录商品发布站点,验证商家身份。
2)持卡人决定购买,向商家发出购买请求。
3)商家返回同意支付等信息。
4)持卡人验证支付网关的身份,填写支付信息,将订购信息和支付信息通过SSL传给商家,但支付信息被支付网关的公开密钥加密过,对商家来说是不可读的。
5)商家用支付网关的公开密钥加密支付信息等,传给支付网关,要求支付。
6)支付网关解密商家传来的信息,通过传统的银行网络到发卡银行验证持卡人的支付信息是否有效,并即时划账。
7)支付网关用它的私有密钥加密结果,把结果返回商家。(www.xing528.com)
8)商家用支付网关的公开密钥解密后返回信息给持卡人,送货,交易结束。
SSL协议简化的交易流程如图9-7所示。
图9-7 SSL协议简化的交易流程
3.SSL协议的安全性分析
SSL协议采用对称密码技术和公钥密码技术相结合的方式,提供了以下3种基本的安全服务:
1)保密性。SSL客户机和服务器之间通过密码算法和密钥的协商,建立起一个安全通道。以后在安全通道中传输的所有信息都经过了加密处理,网络中的非法窃听者所获取的信息都将是无意义的密文信息。
2)完整性。SSL协议利用密码算法和hash函数,通过对传输信息特征值的提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免服务器和客户机之间的信息内容受到破坏。
3)认证性。利用证书技术和可信的第三方CA,可以让客户机和服务器相互识别对方的身份。为了验证证书持有者是其合法用户(而不是冒名用户),SSL协议要求证书持有者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。
虽然SSL协议具有以上安全特性,且开发成本小,但应用存在着不容忽视的缺点:
1)密钥管理问题。客户机和服务器在互相发送自己能够支持的加密算法时是以明文传送的,存在被攻击修改的可能。同时所有的会话密钥中都将生成master-key,握手协议的安全完全依赖于对master-key的保护。
2)机密强度问题。Netscape公司依照美国相关规定,在它的国际版的浏览器及服务器上使用40位的密钥,密钥过短使得SSL协议容易被破译。
3)数字签名问题。SSL协议没有数字签名功能,也就是说,没有抗否认服务。客户无法保证商家能够对他们的信用卡信息保密,也无法保证商家是该支付卡的特约商家。同时,商家也无法确定客户是该信用卡的合法拥有者。客户的信息先到商家,让商家阅读,这样,客户信息的安全性就得不到保证,SSL协议只能保证信息传递过程的安全,而传递过程是否有人截取就无法保证了。所以,SSL协议并没有实现电子支付所要求的保密性、完整性,而且多方互相认证也是很困难的。
4)SSL协议的安全范围仅限于持卡人到商家的信息交流,SSL支持的互操作性很有限,有时甚至在同一应用程序范围内也不能成功连接,例如,若服务器支持某种特殊的信令,而客户端无法访问这样的信令,这里连接就不能成功。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。