傳輸層安全協議

维基百科,自由的百科全书
(重定向自传输层安全
跳转至: 导航搜索

傳輸層安全協議英语Transport Layer Security,縮寫為 TLS),及其前身安全套接层Secure Sockets LayerSSL)是一种安全协议,目的是為網際網路通信,提供安全及数据完整性保障。在網景公司(Netscape)推出首版Web浏览器的同时提出SSL,IETF將SSL進行標準化,1999年公布了 TLS標準文件。

SSL包含记录层(Record Layer)和传输层,记录层协议确定了传输层数据的封装格式。傳輸層安全協議使用X.509認證,之後利用非對稱加密演算來對通訊方做身份認證,之後交換對稱金鑰作為會談金鑰(session key)。這個會談金鑰是用來將通訊兩方交換的資料做加密,保证两个应用间通信的保密性和可靠性,使客户與服务器应用之间的通信不被攻击者窃听。

SSL在服务器和客户机两端可同时被支持,目前已成为互联网上保密通讯的工业标准。现行的Web浏览器亦普遍将HTTP和SSL相结合,从而实现安全通信。

優勢[编辑]

SSL协议的优势在于它是应用层协议独立无关的。高层的应用层协议(例如:HTTPFTPTelnet等等)能透明的建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

發展歷史[编辑]

2014年10月,Google發布在SSL 3.0中發現設計缺陷,建議禁用此一協議。攻擊者可以向TSL發送虛假錯誤提示,然後將安全連接強行降級到古老的SSL 3.0,然後就可以利用其中的設計漏洞竊取敏感信息。Google在自己公司相關產品中陸續禁止回溯相容,強制使用TLS協議。Mozilla也會計劃於11月25日發布的Firefox 34中,將徹底禁掉 SSL 3.0。微軟同樣發出了安全通告。

SSL最初是網景(Netscape)公司設計的Web安全傳輸協議,誕生於1999年,已經相當古老。IETF將其進行了標準化,並改名為TLS。

过程[编辑]

双向证书认证的SSL握手过程。

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

  1. 发送一个「ClientHello」消息,内容包括:支持的协议版本,比如TLS1.0版,一个客户端生成的随机数(稍后用户生成“会话密钥”),支持的加密算法(如RSA公钥加密)和支持的压缩算法。
  2. 然后收到一个「ServerHello」消息,内容包括:确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信,一个服务器生成的随机数,稍后用于生成"对话密钥",确认使用的加密方法,比如RSA公钥加密,服务器证书。
  3. 当双方知道了连接参数,客户端与服务器交换证书(依靠被选择的公钥系统)。这些证书通常基于X.509,不过已有草案支持以OpenPGP为基础的证书。
  4. 服务器请求客户端公钥。客户端有证书即双向身份认证,没证书时随机生成公钥。
  5. 客户端与服务器通过公钥保密协商共同的主私钥(双方随机协商),这通过精心谨慎设计的伪随机数功能实现。结果可能使用Diffie-Hellman交换,或简化的公钥加密,双方各自用私钥解密。所有其他关键数据的加密均使用这个「主密钥」。

数据传输中记录层(Record layer)用于封装更高层的HTTP等协议。记录层数据可以被随意压缩、加密,与消息验证码压缩在一起。每个记录层包都有一个Content-Type段用以记录更上层用的协议。

TLS和SSL的差異[编辑]

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议。这种协议在Web上获得了广泛的应用。IETF(www.ietf.org)将SSL作了标准化,即RFC 2246,并将其称为TLSTransport Layer Security),其最新版本是RFC 5246,版本1.2。从技术上讲,TLS1.0与SSL3.0的差異非常微小。

TLS[编辑]

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

TLS包含三个基本阶段:

  1. 对等协商支援的密钥算法
  2. 基于非对称密钥的信息传输加密和身份认证、基于PKI证书的身份认证
  3. 基于对称密钥的数据传输保密

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

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

  • 所有的记录层数据均被编号,用于消息验证码校验。

链接[编辑]

参考[编辑]

本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。