摘要:SSL/TLS協議是業界常用的加密通信協議,通過該協議可以完成通信雙方身份認證,會話密鑰協商,通信內容加密和完整性保護。
本文分享自華為雲社區《GaussDB(DWS)安全測試之TLS協議》,作者:ACBD 。
1. 協議安全機制
SSL/TLS協議是業界常用的加密通信協議,通過該協議可以完成通信雙方身份認證,會話密鑰協商,通信內容加密和完整性保護。SSL/TLS協議的算法套件包含4種算法:密鑰交換、認證、加密、MAC算法。如TLS_DHE_RSA_WITH_AES_128_CBC_SHA256算法套件,DHE是密鑰交換算法,RSA是認證算法,AES_128_CBC是對稱加密算法,SHA256是做完整性保護的MAC算法。如果沒有顯示密鑰交換算法和認證算法,那么這兩者都是RSA算法,如:TLS _RSA_WITH_AES_128_CBC_SHA。如果套件中的有一種算法不安全,那么就應該禁用該算法套件。
SSL/TLS協議體系結構
SSL/TLS協議實現的安全機制包括:
- 密鑰配送的安全性:利用密鑰協商算法來保障密鑰本身的安全性。
- 數據傳輸的機密性:利用對稱密鑰算法對傳輸的數據進行加密。
- 身份驗證機制:基於證書利用數字簽名方法對服務器和客戶端進行身份驗證,其中客戶端的身份驗證是可選的。
- 消息完整性驗證:消息傳輸過程中使用MAC算法來檢驗消息的完整性。
上述四個部分構成了SSL/TLS加密套件。
例如TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,由協議名稱TLS、密鑰交換算法 KeyExchange(密鑰協商)ECDHE、認證算法 Au (身份驗證)RSA、對稱加密算法 Enc (信息加密)AES_256_CBC和信息摘要 Mac(完整性校驗)SHA384組成。
SSL/TLS協議組成
TLS/SSL的功能實現主要依賴於三類基本算法:非對稱加密、對稱加密和散列函數 Hash,其利用非對稱加密實現身份認證和密鑰協商,對稱加密算法采用協商的密鑰對數據加密,基於散列函數驗證信息的完整性。
2. 測試關注點
- 協議版本
- SSL協議:SSL協議各版本均存在安全漏洞,因此禁止使用,包括0、2.0和3.0。
- TLS協議:禁止使用0、TLS1.1協議,薦使用TLS1.2或者TLS1.3。
- 密鑰協商交換算法
在客戶端和服務器開始交換TLS所保護的加密信息之前,他們必須安全地交換或協定加密密鑰和加密數據時要使用的密碼。DH/ECDH的密鑰協商協議不能驗證服務器或用戶,易受中間人攻擊因此不能使用,需要使用能提供前向保密能力的DHE/ECDHE算法,且禁止使用RSA作為密鑰交換算法。
- 認證算法
目前主流的是RSA算法,需注意算法長度小於2048bits為不安全算法,推薦使用長度大於3072bits的安全算法。
- 加密算法
數據加密使用對稱加密算法,常見的加密算法有 AES-CBC、3DES、AES-GCM等,注意使用安全的加密算法,對於已被認為不安全的算法應禁止使用。
分組加密場景,產品應優先選擇GCM模式。TLS的算法套件的選擇,是按照順序從前到后逐個匹配的,需要把優選的套件放在前面,次選的放在后面。
- 完整性算法
為了避免網絡中傳輸的數據被非法篡改,SSL/TLS利用基於MD5或SHA的MAC算法來保證消息的完整性。其中基於MD5的算法已被證明不安全,禁止使用,基於SHA的算法需使用安全的SHA3、SHA25或以上。
想了解GuassDB(DWS)更多信息,歡迎微信搜索“GaussDB DWS”關注微信公眾號,和您分享最新最全的PB級數倉黑科技,后台還可獲取眾多學習資料哦~