TLS和SSL一樣嗎?有什么區(qū)別?

之前的文章中,我們談及了SSL,今天我們就來聊一聊它的“孿生兄弟”——TLS。

TLS
圖片來源于網絡

說起TLS,就不得不提起SSL,它們就像“孿生兄弟”,一樣但又不完全一樣。

什么是SSL?

SSL(Secure Socket Layer 安全套接層)是TCP/IP協(xié)議中基于HTTP之下,TCP之上的一個可選協(xié)議層。

SSL
圖片來源于網絡

起初HTTP在傳輸數(shù)據(jù)時使用的是明文,是不安全的。為了解決這個隱患,網景(Netscap)公司推出了SSL。而越來越多的人也開始使用HTTPS(HTTP+SSL)。

什么是TLS?

HTTPS的推出受到了很多人的歡迎,在SSL更新到3.0時,?互聯(lián)網工程任務組(IETF)對SSL3.0進行了標準化,并添加了少數(shù)機制,并將其更名為TLS1.0(Transport Layer Security 安全傳輸層協(xié)議)。

TLS
圖片來源于網絡

TLS與SSL之間的主要區(qū)別:

  1. 版本號:TLS記錄格式與SSL記錄格式相同,但版本號的值不同,TLS的版本1.0使用的版本號為SSLv3.1。
  2. 報文鑒別碼:SSLv3.0和TLS的MAC算法及MAC計算的范圍不同。TLS使用RFC-2104定義的HMAC算法。SSLv3.0使用了相似的算法,兩者差別在于SSLv3.0中,填充字節(jié)與密鑰之間采用的是連接運算,而HMAC算法采用的異或運算。但是兩者的安全程度是相同的。
  3. 偽隨機函數(shù):TLS使用了稱為PRF的偽隨機函數(shù)來將密鑰擴展成數(shù)據(jù)塊,是更安全的方式。
  4. 報警代碼:TLS支持幾乎所有的SSLv3.0報警代碼,而且TLS還補充定義了很多報警代碼,如解密失敗(decryption_failed)、記錄溢出(record_overflow)、未知CA(unknown_ca)、拒絕訪問(access_denied)等。
  5. 密文族和客戶證書:SSLv3.0和TLS存在少量差別,即TLS不支持Fortezza密鑰交換、加密算法和客戶證書。
  6. certificate_verify和finished消息:SSLv3.0和TLS在用certificate_verify和finished消息計算MD5和SHA-1散列碼時,計算的輸入有少許差別,但安全性相當。
  7. 加密計算:TLS和SSLv3.0在計算主密值(master secret)時采用的方式不同。
  8. 填充:用戶數(shù)據(jù)加密之前需要增加的填充字節(jié)。在SSL中,填充后的數(shù)據(jù)長度喲啊達到密文快長度的最小整數(shù)倍。而在TLS中,填充后的數(shù)據(jù)長度可以是密文塊長度的任意整數(shù)倍(但填充的最大長度為255字節(jié)),這種方式可以防止基于對報文長度進行分析的攻擊。
TLS和SSL
圖片來源于網絡

簡單的來說可以把TLS看做是SSL3.0的升級版,由于它們所支持的加密算法不同,所以TLS與SSL3.0不能互操作。另外SSL表示安全套接字層,而TLS表示傳輸層安全。雖然它們之間有些區(qū)別,但是SSL和TLS協(xié)議的目的都是為互聯(lián)網通信提供安全及數(shù)據(jù)完整性保障。

免責聲明:素材源于網絡,如有侵權,請聯(lián)系刪稿。