必威电竞|足球世界杯竞猜平台

密碼套件
來源:互聯網

密碼套件(Cipher suite)是傳輸層安全(TLS)/安全套接字層(SSL)網絡協議中的一個概念。在TLS 1.3之前,密碼套件的名稱是以協商安全設置時使用的身份驗證、加密、消息認證碼(MAC)和密鑰交換算法組成。TLS 1.3中的密碼套件格式已經修改。在目前的TLS 1.3草案文檔中,密碼套件僅用于協商加密和HMAC算法。

密碼套件概念的結構和使用在定義協議的文檔中被定義。TLS密碼套件注冊表(TLS Cipher Suite Registry)中提供了密碼套件命名的參考表。

歷史

密碼的使用自創建以來一直是安全套接字層(SSL)傳輸協議的一部分。對于大多數用途,SSL已成功通過TLS。但是,原始的SSL草案并未使用名稱密碼套件。相反,客戶端和服務器從一小組密碼中選擇以確保其連接的能力稱為密碼選擇。直到SSL v3(SSL的最后一個版本)才使用名稱密碼套件。自TLS以來,每個版本都在其標準化中使用了密碼套件。密碼套件的概念和目的自該術語首次被提出以來并沒有改變。它已經并且仍然被用作描述機器支持的算法的結構,以便兩臺機器決定使用哪些算法來保護它們的連接。改變的是密碼套件中支持的算法版本。每個版本的TLS都增加了對更強版本算法的支持,并移除了對已識別為不安全算法版本的支持。

擬議的TLS 1.3草案標志著密碼套件在機器間的協調方式發生了變化。為兩臺通信機選擇的密碼套件由握手過程決定。在TLS 1.3草案中對握手過程進行了修改,以減少需要發送的消息數量。與歷史版本和當前版本的TLS相比,這樣可以減少處理,減少數據包流量并提高效率。

使用

在創建一個TLS連接后,一次也稱TLS握手協議的握手發生。在這個握手,一條ClientHello和一條serverHello消息被發出。首先,客戶端按照偏好的順序發送它支持的密碼套件的列表。然后服務器回復它從客戶端的列表中選擇的密碼套件。要測試服務器支持的TLS密碼套件,可以使用SSL/TLS掃描器軟件。

詳細描述

在TLS 1.0 - 1.2中

每個密碼套件的名稱(例如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)定義一個密鑰交換算法、一個批量加密算法、一個消息認證碼(麥金塔)算法,以及一個偽隨機函數(PRF)。

??密鑰交換算法,例如ECDHE_RSA,用于決定客戶端與服務器之間在握手時如何身份驗證。

??批量加密算法,例如AES_128_GCM,用于加密消息流。它還包括密鑰大小及顯式和隱式初始化向量(密碼學隨機數)的長度。

??消息認證碼算法,例如SHA256,用于創建消息摘要,消息流每個數據塊的加密散列。

??偽隨機函數,例如TLS 1.2的偽隨機函數使用MAC算法的散列函數來創建一個主密鑰——連接雙方共享的一個48字節的私鑰。主密鑰在創建會話密鑰(例如創建麥金塔)時作為一個來源。

算法示例

密鑰交換/協商:RSA、Diffie–Hellman、ECDH、SRP、PSK

身份驗證:RSA、DSA、ECDSA

塊密碼:RC4、3DES、AES、IDEA、DES、Camellia。在舊版本的SSL中,RC2也被使用過。

消息身份驗證:對于TLS來說,密鑰散列消息認證碼使用MD5或一種SHA散列算法。對于SSL,則SHA、MD5、MD4及MD2都可使用。

在TLS 1.3(草案)中

在TLS 1.3中,密碼套件表示一個AEAD加密算法和一個用在HKDF中的散列算法。例如,TLS_AES_128_GCM_SHA256表示使用AES_128_GCM加密消息,SHA256是HKDF中的底層散列算法。非AEAD加密算法(諸如AES_128_CBC)不允許使用。

因為TLS 1.3密碼套件的結構不同于以前的版本,為TLS 1.3定義的密碼套件不能在TLS 1.2中使用,反之亦然。

密鑰交換算法使用TLS擴展協商。

編程參考

在編程層面,密碼套件被引用為:

CipherSuite cipher_suites:客戶端支持的加密選項的列表;

CipherSuite cipher_suite:服務器從客戶端的cipher_suites以及相關ServerHello消息中選定的加密包。

漏洞

密碼套件與其包含的算法一樣安全。如果密碼套件中的加密或認證算法的版本存在已知漏洞,那么密碼套件和TLS連接就容易受到攻擊。因此,針對TLS和密碼套件的常見攻擊稱為Down Grade Attack。當現代客戶端連接到使用舊版TLS或SSL的舊服務器時,會發生TLS降級。

當開始握手時,現代客戶端將提供它支持的最高協議。如果連接失敗,它將自動再次使用較低協議(如TLS 1.0或SSL 3.0)重試,直到與服務器握手成功。降級的目的是使新版本的TLS與舊版本兼容。但是,攻擊者可能會利用此功能并使其成為客戶端自動降級到支持密碼套件的TLS或SSL版本,其中的算法以弱安全性和漏洞而聞名。這導致了諸如POODLE之類的攻擊。

避免此安全漏洞的一種方法是禁用服務器或客戶端能夠降級到SSL3.0的能力。這個修復的缺點是它會使一些傳統硬件無法被新硬件訪問。如果傳統硬件需要SSL 3.0支持,則有一個經過批準的TLS_FALLBACK_SCSV密碼套件,用于驗證是否因惡意意圖而觸發降級。

參考資料 >

生活家百科家居網