SSL(Secure Socket Layer),是网景公司(NetScape)在90年代中后期基于公钥加密体系和X.509证书,提出的用以在两个网络应用之间提供一条可信保密通道的安全协议。正如协议名称中所标示的(Socket Layer),SSL工作于网络协议栈中的传输层(Transport Layer),更准确地说,工作在传输层协议之上;而对应用层协议(HTTP/FTP/Telnet/SMTP/POP3,...)来说,SSL是透明的。
SSL一经推出,便得到了广泛使用,随后被IETF(Ineternet Engineering Task Force,Internet标准化组织)采纳并修改为TLS(Transport Layer Security)标准。尽管在技术细节上略有差异,但TLS和SSL区别并不大(TLS提供向下兼容SSL的工作方式)。
1. SSL 1.0
未公开发布。
2. SSL 2.0
1995年发布。随后因协议本身存在安全性上的缺限而迅速被SSL 3.0取代。
3. SSL 3.0
1996年发布,协议细节:The SSL 3.0 Protocol。
4. TLS 1.0
1999年发布,RFC2246。在SSL 3.0的基础上略有改动,为了标示和SSL协议的联系并有所区别,使用版本号3.1。
5. TLS 1.1
2006年发布,RFC4346,使用版本号3.2。对TLS 1.0的改进有:
- 显示初始化向量(explicit Initialization Vector,IV)替代隐示初始化向量(implicit IV),以提供对CBC攻击的抵御(CBCATT)
- 为协议参数定义了IANA(Internet Assigned Numbers Authority)注册值
- 修复了因过早的终结所导致的会话不可恢复问题
- 增加了一些新的针对TLS攻击的相关说明
6. TLS 1.2
2008年发布, RFC5246,使用版本号3.3。对TLS 1.1的改进有:
- 伪随机数生成函数(Psedorandom)中的MD5/SHA-1混合算法被P_SHA256替代,或由加密算法组(Cipher-suit,指定了认证/加密/消息认证算法的一个算法组)指定
- 数字签名部分所使用的MD5/SHA-1算法由单一散列(hash)算法替代
- 强化了客户端和服务端指定散列算法和签名算法的能力
- 支持使用了附加数据模式的认证加密的支持
- 增加TLS扩展定义和AES标准算法套件
- 强制实现TLS_RSA_WITH_AES_128_CBC_SHA算法组
- 增加了HMAC-SHA256算法组
- 去掉了IDEA和DES加密方式
- ...