传输层安全协议

更新时间:2022-08-25 16:17

传输层安全协议及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布第一版TLS标准文件。随后又公布RFC 5246 (2008年8月)与 RFC 6176 (2011年3月)。在浏览器电子邮件即时通信VoIP网络传真等应用程序中,广泛支持这个协议。主要的网站,如Google、Facebook等也以这个协议来创建安全连接,发送数据。当前已成为互联网上保密通信的工业标准。

简介

TLS协议采用主从式架构模型,用于在两个应用程序间通过网络创建起安全的连接,防止在交换数据时受到窃听及篡改。

TLS协议的优势是与高层的应用层协议(如HTTPFTPTelnet等)无耦合。应用层协议能透明地运行在TLS协议之上,由TLS协议进行创建加密通道需要的协商和认证。应用层协议传送的数据在通过TLS协议时都会被加密,从而保证通信的私密性。

TLS协议是可选的,必须配置客户端和服务器才能使用。主要有两种方式实现这一目标:一个是使用统一的TLS协议通信端口(例如:用于HTTPS的端口443);另一个是客户端请求服务器连接到TLS时使用特定的协议机制(例如:邮件、新闻协议和STARTTLS)。一旦客户端和服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态的连接以传输数据。通过握手,客户端和服务器协商各种参数用于创建安全连接:

发展历史

安全网络编程

早期的研究工作,为方便改造原有网络应用程序,在1993年已经有了相似的Berkeley套接字安全传输层API方法。

SSL 1.0、2.0和3.0

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议,这种协议在Web上获得了广泛的应用。

基础算法由作为网景公司的首席科学家塔希尔·盖莫尔(Taher Elgamal)编写,所以他被人称为“SSL之父”。

2014年10月,Google发布在SSL 3.0中发现设计缺陷,建议禁用此一协议。攻击者可以向TLS发送虚假错误提示,然后将安全连接强行降级到过时且不安全的SSL 3.0,然后就可以利用其中的设计漏洞窃取敏感信息。Google在自己公司相关产品中陆续禁止向后兼容,强制使用TLS协议。Mozilla也在11月25日发布的Firefox34中彻底禁用了SSL 3.0。微软同样发出了安全通告。

TLS 1.0

IETF

TLS 1.1

TLS 1.1在RFC-4346中定义,于2006年4月发表,它是TLS 1.0的更新。在此版本中的差异包括:

支持IANA登记的参数。

TLS 1.2

TLS 1.2在RFC 5246中定义,于2008年8月发表。它基于更早的TLS 1.1规范。主要区别包括:

TLS 1.3

截至2018年3月21日,TLS 1.3是一个已经成为建议标准(Proposed Standard)的互联网草案。它基于更早的TLS 1.2规范,与TLS 1.2的主要区别包括:

算法

密钥交换和密钥协商

在客户端和服务器开始交换TLS所保护的加密信息之前,他们必须安全地交换或协定加密密钥和加密数据时要使用的密码。用于密钥交换的方法包括:使用RSA算法生成公钥和私钥(在TLS握手协议中被称为TLS_RSA),Diffie-Hellman(在TLS握手协议中被称为TLS_DH),临时Diffie-Hellman(在TLS握手协议中被称为TLS_DHE),椭圆曲线迪菲-赫尔曼(在TLS握手协议中被称为TLS_ECDH),临时椭圆曲线Diffie-Hellman(在TLS握手协议中被称为TLS_ECDHE),匿名Diffie-Hellman(在TLS握手协议中被称为TLS_DH_anon)和预共享密钥(在TLS握手协议中被称为TLS_PSK)。

TLS_DH_anon和TLS_ECDH_anon的密钥协商协议不能验证服务器或用户,因为易受中间人攻击因此很少使用。只有TLS_DHE和TLS_ECDHE提供前向保密能力。

在交换过程中使用的公钥/私钥加密密钥的长度和在交换协议过程中使用的公钥证书也各不相同,因而提供的强健性的安全。2013年7月,Google宣布向其用户提供的TLS加密将不再使用1024位公钥并切换到2048位,以提高安全性。

数据完整性

消息认证码(MAC)用于对数据完整性进行认证。HMAC用于CBC模式的块密码和流密码,AEAD用于身份验证加密例如GCM模式和CCM模式。

过程

以下简要介绍SSL协议的工作方式。客户端要收发几个握手信号:

TLS

TLS利用密钥算法在互联网上提供端点身份认证与通讯保密,其基础是公钥基础设施。不过在实现的典型例子中,只有网络服务者被可靠身份验证,而其客户端则不一定。这是因为公钥基础设施普遍商业运营,电子签名证书通常需要付费购买。协议的设计在某种程度上能够使主从架构应用程序通讯本身预防窃听干扰和消息伪造。

TLS包含三个基本阶段:

在第一阶段,客户端与服务器协商所用密码算法。当前广泛实现的算法选择如下:

TLS/SSL有多样的安全保护措施:

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}