SSL與TLS的區別以及介紹

weixin_34391854發表於2017-03-04

http://kb.cnblogs.com/page/197396/

  SSL:(Secure Socket Layer,安全套接字層),位於可靠的面向連線的網路層協議和應用層協議之間的一種協議層。SSL通過互相認證、使用數字簽名確保完整性、使用加密確保私密性,以實現客戶端和伺服器之間的安全通訊。該協議由兩層組成:SSL記錄協議和SSL握手協議。

  TLS:(Transport Layer Security,傳輸層安全協議),用於兩個應用程式之間提供保密性和資料完整性。該協議由兩層組成:TLS記錄協議和TLS握手協議。

  SSL是Netscape開發的專門使用者保護Web通訊的,目前版本為3.0。最新版本的TLS 1.0是IETF(工程任務組)制定的一種新的協議,它建立在SSL 3.0協議規範之上,是SSL 3.0的後續版本。兩者差別極小,可以理解為SSL 3.1,它是寫入了RFC的。 

  SSL (Secure Socket Layer)

  為Netscape所研發,用以保障在Internet上資料傳輸之安全,利用資料加密(Encryption)技術,可確保資料在網路上之傳輸過程中不會被擷取。目前一般通用之規格為40 bit之安全標準,美國則已推出128 bit之更高安全標準,但限制出境。只要3.0版本以上之I.E.或Netscape瀏覽器即可支援SSL。 

  當前版本為3.0。它已被廣泛地用於Web瀏覽器與伺服器之間的身份認證和加密資料傳輸。

  SSL協議位於TCP/IP協議與各種應用層協議之間,為資料通訊提供安全支援。SSL協議可分為兩層: SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供資料封裝、壓縮、加密等基本功能的支援。 SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。

  SSL協議提供的服務主要有:

  1)認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;

  2)加密資料以防止資料中途被竊取;

  3)維護資料的完整性,確保資料在傳輸過程中不被改變。

  SSL協議的工作流程:

  伺服器認證階段:

  1)客戶端向伺服器傳送一個開始資訊“Hello”以便開始一個新的會話連線;

  2)伺服器根據客戶的資訊確定是否需要生成新的主金鑰,如需要則伺服器在響應客戶的“Hello”資訊時將包含生成主金鑰所需的資訊;

  3)客戶根據收到的伺服器響應資訊,產生一個主金鑰,並用伺服器的公開金鑰加密後傳給伺服器;

  4)伺服器恢復該主金鑰,並返回給客戶一個用主金鑰認證的資訊,以此讓客戶認證伺服器。

  使用者認證階段:在此之前,伺服器已經通過了客戶認證,這一階段主要完成對客戶的認證。經認證的伺服器傳送一個提問給客戶,客戶則返回(數字)簽名後的提問和其公開金鑰,從而向伺服器提供認證。

  從SSL 協議所提供的服務及其工作流程可以看出,SSL協議執行的基礎是商家對消費者資訊保密的承諾,這就有利於商家而不利於消費者。在電子商務初級階段,由於運作電子商務的企業大多是信譽較高的大公司,因此這問題還沒有充分暴露出來。但隨著電子商務的發展,各中小型公司也參與進來,這樣在電子支付過程中的單一認證問題就越來越突出。雖然在SSL3.0中通過數字簽名和數字證書可實現瀏覽器和Web伺服器雙方的身份驗證,但是SSL協議仍存在一些問題,比如,只能提供交易中客戶與伺服器間的雙方認證,在涉及多方的電子交易中,SSL協議並不能協調各方間的安全傳輸和信任關係。在這種情況下,Visa和MasterCard兩大信用卡公組織制定了SET協議,為網上信用卡支付提供了全球性的標準。 

  TLS(Transport Layer Security Protocol):安全傳輸層協議 

  安全傳輸層協議(TLS)用於在兩個通訊應用程式之間提供保密性和資料完整性。該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)。較低的層為 TLS 記錄協議,位於某個可靠的傳輸協議(例如 TCP)上面。

  TLS 記錄協議提供的連線安全性具有兩個基本特性:   

  • 私有――對稱加密用以資料加密(DES 、RC4 等)。對稱加密所產生的金鑰對每個連線都是唯一的,且此金鑰基於另一個協議(如握手協議)協商。記錄協議也可以不加密使用。   
  • 可靠――資訊傳輸包括使用金鑰的MAC進行資訊完整性檢查。安全雜湊功能( SHA、MD5 等)用於 MAC 計算。記錄協議在沒有 MAC 的情況下也能操作,但一般只能用於這種模式,即有另一個協議正在使用記錄協議傳輸協商安全引數。 

  TLS記錄協議用於封裝各種高層協議。作為這種封裝協議之一的握手協議允許伺服器與客戶機在應用程式協議傳輸和接收其第一個資料位元組前彼此之間相互認證,協商加密演算法和加密金鑰。 TLS 握手協議提供的連線安全具有三個基本屬性:   

  • 可以使用非對稱的,或公共金鑰的密碼術來認證對等方的身份。該認證是可選的,但至少需要一個結點方。
  • 共享加密金鑰的協商是安全的。對偷竊者來說協商加密是難以獲得的。此外經過認證過的連線不能獲得加密,即使是進入連線中間的攻擊者也不能。
  • 協商是可靠的。沒有經過通訊方成員的檢測,任何攻擊者都不能修改通訊協商。 

  TLS的最大優勢就在於:TLS是獨立於應用協議。高層協議可以透明地分佈在TLS協議上面。然而, TLS 標準並沒有規定應用程式如何在TLS上增加安全性;它把如何啟動 TLS 握手協議以及如何解釋交換的認證證書的決定權留給協議的設計者和實施者來判斷。 

  協議結構 

  TLS 協議包括兩個協議組――TLS記錄協議和TLS握手協議――每組具有很多不同格式的資訊。在此檔案中我們只列出協議摘要並不作具體解析。具體內容可參照相關文件。

  TLS記錄協議是一種分層協議。每一層中的資訊可能包含長度、描述和內容等欄位。記錄協議支援資訊傳輸、將資料分段到可處理塊、壓縮資料、應用MAC 、加密以及傳輸結果等。對接收到的資料進行解密、校驗、解壓縮、重組等,然後將它們傳送到高層客戶機。

  TLS連線狀態指的是TLS記錄協議的操作環境。它規定了壓縮演算法、加密演算法和MAC演算法。

  TLS記錄層從高層接收任意大小無空塊的連續資料。金鑰計算:記錄協議通過演算法從握手協議提供的安全引數中產生金鑰、 IV 和MAC金鑰。

  TLS 握手協議由三個子協議組構成,允許對等雙方在記錄層的安全引數上達成一致、自我認證、例示協商安全引數、互相報告出錯條件。 

  關係就是。。。。並列關係

  最新版本的TLS(Transport Layer Security,傳輸層安全協議)是IETF(Internet Engineering Task Force,Internet工程任務組)制定的一種新的協議,它建立在SSL 3.0協議規範之上,是SSL 3.0的後續版本。在TLS與SSL3.0之間存在著顯著的差別,主要是它們所支援的加密演算法不同,所以TLS與SSL3.0不能互操作。

  1.TLS與SSL的差異

  1)版本號:TLS記錄格式與SSL記錄格式相同,但版本號的值不同,TLS的版本1.0使用的版本號為SSLv3.1。

  2)報文鑑別碼:SSLv3.0和TLS的MAC演算法及MAC計算的範圍不同。TLS使用了RFC-2104定義的HMAC演算法。SSLv3.0使用了相似的演算法,兩者差別在於SSLv3.0中,填充位元組與金鑰之間採用的是連線運算,而HMAC演算法採用的是異或運算。但是兩者的安全程度是相同的。

  3)偽隨機函式:TLS使用了稱為PRF的偽隨機函式來將金鑰擴充套件成資料塊,是更安全的方式。

  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)填充:使用者資料加密之前需要增加的填充位元組。在SSL中,填充後的資料長度要達到密文塊長度的最小整數倍。而在TLS中,填充後的資料長度可以是密文塊長度的任意整數倍(但填充的最大長度為255位元組),這種方式可以防止基於對報文長度進行分析的攻擊。

  2.TLS的主要增強內容

  TLS的主要目標是使SSL更安全,並使協議的規範更精確和完善。TLS 在SSL v3.0 的基礎上,提供了以下增強內容:

  1)更安全的MAC演算法

  2)更嚴密的警報

  3)“灰色區域”規範的更明確的定義

  3.TLS對於安全性的改進

  1)對於訊息認證使用金鑰雜湊法:TLS 使用“訊息認證程式碼的金鑰雜湊法”(HMAC),當記錄在開放的網路(如因特網)上傳送時,該程式碼確保記錄不會被變更。SSLv3.0還提供鍵控訊息認證,但HMAC比SSLv3.0使用的(訊息認證程式碼)MAC 功能更安全。

  2)增強的偽隨機功能(PRF):PRF生成金鑰資料。在TLS中,HMAC定義PRF。PRF使用兩種雜湊演算法保證其安全性。如果任一演算法暴露了,只要第二種演算法未暴露,則資料仍然是安全的。

  3)改進的已完成訊息驗證:TLS和SSLv3.0都對兩個端點提供已完成的訊息,該訊息認證交換的訊息沒有被變更。然而,TLS將此已完成訊息基於PRF和HMAC值之上,這也比SSLv3.0更安全。

  4)一致證書處理:與SSLv3.0不同,TLS試圖指定必須在TLS之間實現交換的證書型別。

  5)特定警報訊息:TLS提供更多的特定和附加警報,以指示任一會話端點檢測到的問題。TLS還對何時應該傳送某些警報進行記錄。

相關文章