11.1.2 SSL/TLS协议
SSL/TLS协议包含两个协议:SSL(Secure Socket Layer,安全套接字层)和TLS(Transport Layer Security,传输层安全)协议。
❑SSL(Secure Socket Layer,安全套接字层):由Netscape(网景)公司研发,位于TCP/IP参考模型中的网络传输层,作为网络通讯提供安全及数据完整性的一种安全协议。
❑TLS(Transport Layer Security,传输层安全):基于SSL协议之上的通用化协议,它同样位于TCP/IP参考模型中的网络传输层,作为SSL协议的继任者,成为下一代网络安全性和数据完整性安全协议。详见文档RFC 2246(http://www.ietf.org/rfc/rfc2246.txt)。
目前,SSL共有3个版本:SSL1.0、SSL2.0和SSL3.0。SSL3.0规范在1996年3月正式发布,较之前2个版本提供了更多的算法支持和安全特性。1999年,IETF(The Internet Engineering Task Force,互联网工程任务组)(详见http://www.ietf.org/)在基于SSL3.0协议的基础上发布了TLS1.0,TLS1.0与SSL3.0几乎是兼容的。因此,通常意义上我们提到的SSL/TLS协议指的是SSL3.0或TLS1.0的网络传输层安全协议。
SSL/TLS协议可分为两层:记录协议(Record Protocol)和握手协议(Handshake Protocol)。
❑记录协议(Record Protocol):建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
❑握手协议(Handshake Protocol):建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
握手协议较为底层,不好理解,好在目前主流计算机语言(如Java语言)的开发者已经将这些协议的处理封装得透明,无需我们关心。
SSL/TLS协议涉及多种加密算法,包含消息摘要算法、对称加密算法、非对称加密算法,以及数字签名算法。
❑消息摘要算法:MD5和SHA1。
❑对称加密算法:RC2、RC4、IDEA、DES、Triple DES和AES。
❑非对称加密算法:RSA和Diffie-Hellman(DH)。
❑数字签名算法:RSA和DSA。
SSL/TLS协议利用密码学算法在互联网上提供端点身份认证和通信保密,完全基于PKI,有较高的安全性。因此,SSL/TLS协议成了网络上最常用的网络传输层安全保密通讯协议,众多电子邮件、网银、网上传真都通过SSL/TLS协议确保数据传输安全。随着卫星和无线网络的发展,WAP安全逐渐得到重视。受限于手机及手持设备的处理和存储能力,WAP论坛(http://www.wapforum.org/)在TLS的基础上进行了简化,制定了WTLS(Wireless Transport Layer Security,无线传输层安全)协议。