密碼套件
命名为认证,加密和消息认证码算法的组合
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
密碼套件(Cipher suite)是傳輸層安全(TLS)/安全通訊端層(SSL)網路協定中的一個概念。在TLS 1.3之前,密碼套件的名稱是以協商安全設定時使用的身分驗證、加密、訊息鑑別碼(MAC)和金鑰交換演算法組成。TLS 1.3僅能使用AEAD密碼套件。[1]
密碼套件概念的結構和使用在定義協定的文件中被定義。[2]TLS密碼套件登錄檔(TLS Cipher Suite Registry)中提供了密碼套件命名的參考表。[3]
使用
在建立一個TLS連接後,一次也稱TLS握手協定的握手發生。在這個握手,一條ClientHello和一條ServerHello訊息被發出。[4]首先,客戶端按照偏好的順序傳送它支援的密碼套件的列表。然後伺服器回覆它從客戶端的列表中選擇的密碼套件。[5]要測試伺服器支援的TLS密碼套件,可以使用SSL/TLS掃描器軟體。
詳細描述
TLS1.0至TLS1.2
每個密碼套件的名稱(例如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)定義一個金鑰交換演算法、一個批次加密演算法、一個訊息鑑別碼(MAC)演算法。[5][6][7]
- 金鑰交換演算法,例如ECDHE_RSA,用於決定客戶端與伺服器之間在握手時如何身分驗證。[8]
- 批次加密演算法,例如AES_128_GCM,用於加密訊息流。[9]
- 訊息鑑別碼演算法,例如SHA256,用於建立密碼雜湊函式,訊息流每個資料塊的加密雜湊。[9]
- 偽隨機函式,例如TLS 1.2的偽隨機函式使用MAC演算法的雜湊函式來建立一個主金鑰——連接雙方共享的一個48位元組的私鑰。主金鑰在建立對談金鑰(例如建立MAC)時作為一個熵來源。[10]
演算法範例
- 金鑰交換/協商
- RSA、Diffie–Hellman、DHE、ECDH、ECDHE、SRP、PSK
- 身分驗證
- RSA、DSA、ECDSA
- 塊密碼/流密碼
- AES、Camellia、IDEA、ChaCha20、3DES、DES、RC4。在舊版本的SSL中,RC2也被使用過。
- 訊息驗證
- 對於TLS來說,訊息鑑別碼使用SHA或MD5雜湊演算法。對於SSL,則SHA、MD5、MD4及MD2都可使用。
TLS 1.3
在TLS 1.3中,密碼套件表示一個帶關聯資料的加密認證加密演算法和一個訊息鑒別碼。[1]例如,TLS_AES_128_GCM_SHA256。非AEAD加密演算法(諸如AES_128_CBC)不允許使用。
編程參考
在編程層面,密碼套件被參照為:
參考資料
- ^ 1.0 1.1 E. Rescorla. The Transport Layer Security (TLS) Protocol Version 1.3. November 4, 2016 [2016-11-11]. (原始內容存檔於2016-01-04). 參照錯誤:帶有name屬性「tls13cipher」的
<ref>
標籤用不同內容定義了多次 - ^ RFC 5246
- ^ TLS Cipher Suite Registry. [2016-12-24]. (原始內容存檔於2016-12-21).
- ^ RFC 5246, p. 37
- ^ 5.0 5.1 RFC 5246, p. 40
- ^ CipherSuites and CipherSpecs. IBM. [20 November 2009].
- ^ Cipher Suites in Schannel. Microsoft MSDN. [20 November 2009]. (原始內容存檔於2016-04-23).
- ^ RFC 5246, p. 47
- ^ 9.0 9.1 RFC 5246, p. 17
- ^ RFC 5246, p. 16-17, 26
- ^ RFC 5246, p. 41
- ^ RFC 5246, p. 42-43, 64