【TLS協議】

lijieshare發表於2018-01-16

TLS:安全傳輸層協議

TLS:Transport Layer Security

安全傳輸層協議(TLS)用於在兩個通訊應用程式之間提供保密性和資料完整性。

該協議由兩層組成: TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)

 

概況

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

協議結構

TLS協議包括兩個協議組―― TLS 記錄協議和 TLS 握手協議――每組具有很多不同格式的資訊。

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

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

TLS 記錄層從高層接收任意大小無空塊的連續資料。金鑰計算:記錄協議通過演算法從握手協議提供的安全引數中產生金鑰、 IV 和 MAC 金鑰。TLS 握手協議由三個子協議組構成,允許對等雙方在記錄層的安全引數上達成一致、自我認證、例示協商安全引數、互相報告出錯條件。

記錄協議

TLS記錄協議位於TLS握手協議的下面,在可靠的傳輸協議(如TCP/IP)上面。TLS記錄協議的一條記錄包含長度欄位、描述欄位和內容欄位。TLS記錄協議處理資料的加密,即記錄協議得到要傳送的訊息之後,將資料分成易於處理的資料分組,進行資料壓縮處理(可選),計算資料分組的訊息認證碼MAC,加密資料然後傳送資料;接收到的訊息首先被解密,然後校驗MAC值,解壓縮,重組,最後傳遞給協議的高層客戶。記錄協議有四種型別的客戶:握手協議、警告協議、改變密碼格式協議和應用資料協議。通常使用一個對稱演算法,演算法的金鑰由握手協議提供的值生成。

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

私有――對稱加密用以資料加密(DES 、RC4 等)。對稱加密所產生的金鑰對每個連線都是唯一的,且此金鑰基於另一個協議(如握手協議)協商。記錄協議也可以不加密使用。

可靠――資訊傳輸包括使用金鑰的 MAC 進行資訊完整性檢查。安全雜湊功能( SHA、MD5 等)用於 MAC 計算。記錄協議在沒有 MAC 的情況下也能操作,但一般只能用於這種模式,即有另一個協議正在使用記錄協議傳輸協商安全引數。

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

握手協議

TLS握手協議處理對等使用者的認證,在這一層使用了公共金鑰和證書,並協商演算法和加密實際資料傳輸的金鑰,該過程在TLS記錄協議之上進行。TLS握手協議是TLS協議中最複雜的部分,它定義了10種訊息,客戶端和伺服器利用這10種訊息相互認證,協商雜湊函式和加密演算法並相互提供產生加密金鑰的機密資料。TLS記錄協議會在加密演算法中用到這些加密金鑰,從而提供資料保密性和一致性保護。

TLS 握手協議提供的連線安全具有三個基本屬性:

1.可以使用非對稱的,或公共金鑰的密碼術來認證對等方的身份。該認證是可選的,但至少需要一個結點方。

2.共享加密金鑰的協商是安全的。對偷竊者來說協商加密是難以獲得的。此外經過認證過的連線不能獲得加密,即使是進入連線中間的攻擊者也不能。

3.協商是可靠的。沒有經過通訊方成員的檢測,任何攻擊者都不能修改通訊協商。

TLS握手協議:

1.改變密碼規格協議

2.警惕協議

3.握手協議

綜述

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

TLS包含三個基本階段:

1.對等協商支援的金鑰演算法

2.基於私鑰加密交換公鑰、基於PKI證書的身份認證

3.基於公鑰加密的資料傳輸保密

 



 

不使用SSL/TLS的HTTP通訊,就是不加密的通訊。所有資訊明文傳播,帶來了三大風險。

(1) 切聽風險(eavesdropping):第三方可以獲知通訊內容。

(2) 篡改風險(tampering):第三方可以修改通訊內容。

(3) 冒充風險(pretending):第三方可以冒充他人身份參與通訊。

SSL/TLS協議是為了解決這三大風險而設計的,希望達到:

(1) 所有資訊都是加密傳播,第三方無法切聽

(2) 具有校驗機制,一旦被篡改,通訊雙方會立刻發現。

(3) 配備身份證書,防止身份被冒充。

 

 

 

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

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

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

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

SSL協議的工作流程:

  伺服器認證階段:

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

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

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

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

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

相關文章