17-SSL配置
本章節下載: 17-SSL配置 (244.00 KB)
SSL(Secure Sockets Layer,安全套接字層)是一個安全協議,為基於TCP的應用層協議(如HTTP)提供安全連接。SSL協議廣泛應用於電子商務、網上銀行等領域,為應用層數據的傳輸提供安全性保證。
SSL提供的安全連接可以實現如下功能:
· 保證數據傳輸的機密性:利用對稱密鑰算法對傳輸的數據進行加密,並利用密鑰交換算法,如RSA(Rivest Shamir and Adleman),加密傳輸對稱密鑰算法中使用的密鑰。對稱密鑰算法、非對稱密鑰算法RSA的詳細介紹請參見“安全配置指導”中的“公鑰管理”。
· 驗證數據源的身份:基於數字證書利用數字簽名方法對SSL服務器和SSL客戶端進行身份驗證。SSL服務器和SSL客戶端通過PKI(Public Key Infrastructure,公鑰基礎設施)提供的機製獲取數字證書。PKI及數字證書的詳細介紹請參見“安全配置指導”中的“PKI”。
· 保證數據的完整性:消息傳輸過程中使用MAC(Message Authentication Code,消息驗證碼)來檢驗消息的完整性。MAC算法在密鑰的參與下,將任意長度的原始數據轉換為固定長度的數據,原始數據的任何變化都會導致計算出的固定長度數據發生變化。如圖1-1所示,利用MAC算法驗證消息完整性的過程為:
a. 發送者在密鑰的參與下,利用MAC算法計算出消息的MAC值,並將其加在消息之後發送給接收者。
b. 接收者利用同樣的密鑰和MAC算法計算出消息的MAC值,並與接收到的MAC值比較。
c. 如果二者相同,則接收者認為報文沒有被篡改;否則,認為報文在傳輸過程中被篡改,接收者將丟棄該報文。
圖1-1 MAC算法示意圖
如圖1-2所示,SSL協議可以分為兩層:下層為SSL記錄協議(SSL Record Protocol);上層為SSL握手協議(SSL Handshake Protocol)、SSL密碼變化協議(SSL Change Cipher Spec Protocol)和SSL告警協議(SSL Alert Protocol)。
圖1-2 SSL協議棧
· SSL記錄協議:主要負責對上層的數據進行分塊、計算並添加MAC、加密,最後把加密後的記錄塊傳輸給對方。
· SSL握手協議:用來協商通信過程中使用的加密套件(數據加密算法、密鑰交換算法和MAC算法等),實現服務器和客戶端的身份驗證,並在服務器和客戶端之間安全地交換密鑰。客戶端和服務器通過握手協議建立會話。一個會話包含一組參數,主要有會話ID、對方的數字證書、加密套件及主密鑰。
· SSL密碼變化協議:客戶端和服務器端通過密碼變化協議通知對端,隨後的報文都將使用新協商的加密套件和密鑰進行保護和傳輸。
· SSL告警協議:用來向對端報告告警信息,以便對端進行相應的處理。告警消息中包含告警的嚴重級別和描述。
目前,SSL協議版本主要有SSL2.0、SSL3.0、TLS1.0(TLS1.0對應SSL協議的版本號為3.1)、TLS1.1、TLS1.2和TLS1.3。
由於SSL 3.0版本存在一些已知的安全漏洞,當設備對係統安全性有較高要求時,可以在SSL服務器上通過命令行關閉SSL 3.0版本。
設備作為SSL服務器時,可以與SSL3.0、TLS1.0、TLS1.1、TLS1.2和TLS1.3版本的SSL客戶端通信,還可以識別同時兼容SSL2.0/SSL3.0/TLS1.0/TLS1.1/TLS1.2/TLS1.3版本的SSL客戶端發送的報文,並通知該客戶端采用SSL3.0/TLS1.0/TLS1.1/TLS1.2/TLS1.3版本與SSL服務器通信。
SSL配置任務如下:
(1) 配置SSL服務器端策略
¡ (可選)禁止SSL服務器使用指定的SSL版本進行SSL協商
¡ (可選)配置SSL服務器端關閉SSL重協商
(2) 配置SSL客戶端策略
(3) 配置SSL服務器與客戶端進行算法協商時按照服務器端加密套件順序進行匹配
SSL服務器端策略是設備作為服務器時使用的SSL參數。隻有與HTTPS(Hypertext Transfer Protocol Secure,超文本傳輸協議的安全版本)等應用關聯後,SSL服務器端策略才能生效。
在配置SSL VPN服務、負載均衡以及代理策略等業務時,存在需要在服務器端部署兩個證書的情況。此時可以使用pki-domain命令一次指定兩個PKI域,使SSL服務器端策略能夠同時關聯兩個數字證書。
(1) 進入係統視圖。
system-view
(2) 創建SSL服務器端策略,並進入SSL服務器端策略視圖。
ssl server-policy policy-name
(3) 配置SSL服務器端策略所使用的PKI域。
pki-domain domain-name&<1-2>
缺省情況下,未指定SSL服務器端策略所使用的PKI域。
如果客戶端需要對服務器端進行基於數字證書的身份驗證,則必須在SSL服務器端指定PKI域,並在該PKI域內為SSL服務器端申請本地數字證書。PKI域的創建及配置方法,請參見“安全配置指導”中的“PKI”。
(4) 配置SSL服務器端策略支持的加密套件。
ciphersuite { dhe_rsa_aes_128_cbc_sha | dhe_rsa_aes_128_cbc_sha256 | dhe_rsa_aes_256_cbc_sha | dhe_rsa_aes_256_cbc_sha256 | ecc_sm2_sm1_sm3 | ecc_sm2_sm4_sm3 | ecdhe_ecdsa_aes_128_cbc_sha256 | ecdhe_ecdsa_aes_128_gcm_sha256 | ecdhe_ecdsa_aes_256_cbc_sha384 | ecdhe_ecdsa_aes_256_gcm_sha384 | ecdhe_rsa_aes_128_cbc_sha256 | ecdhe_rsa_aes_128_gcm_sha256 | ecdhe_rsa_aes_256_cbc_sha384 | ecdhe_rsa_aes_256_gcm_sha384 | ecdhe_sm2_sm1_sm3 | ecdhe_sm2_sm4_sm3 | exp_rsa_des_cbc_sha | rsa_3des_ede_cbc_sha | rsa_aes_128_cbc_sha | rsa_aes_128_cbc_sha256 | rsa_aes_128_gcm_sha256 | rsa_aes_256_cbc_sha | rsa_aes_256_cbc_sha256 | rsa_aes_256_gcm_sha384 | rsa_des_cbc_sha | rsa_sm1_sha | rsa_sm1_sm3 | rsa_sm4_sha | rsa_sm4_sm3 | tls_aes_128_ccm_sha256 | tls_aes_128_ccm_8_sha256 | tls_aes_128_gcm_sha256 | tls_aes_256_gcm_sha384 | tls_chacha20_poly1305_sha256 } *
SSL服務器端策略支持的加密套件為ECC_SM2_SM1_SM3、ECC_SM2_SM4_SM3、ECDHE_SM2_SM1_SM3、ECDHE_SM2_SM4_SM3、EXP_RSA_DES_CBC_SHA、RSA_3DES_EDE_CBC_SHA、RSA_DES_CBC_SHA、RSA_SM1_SHA、RSA_SM1_SM3、RSA_SM4_SHA、RSA_SM4_SM3、RSA_AES_128_CBC_SHA、RSA_AES_256_CBC_SHA、DHE_RSA_AES_128_CBC_SHA、DHE_RSA_AES_256_CBC_SHA、RSA_AES_128_CBC_SHA256、RSA_AES_256_CBC_SHA256、DHE_RSA_AES_128_CBC_SHA256、DHE_RSA_AES_256_CBC_SHA256、ECDHE_RSA_AES_128_CBC_SHA256、ECDHE_RSA_AES_256_CBC_SHA384、ECDHE_RSA_AES_128_GCM_SHA256、ECDHE_RSA_AES_256_GCM_SHA384、ECDHE_ECDSA_AES_128_CBC_SHA256、ECDHE_ECDSA_AES_256_CBC_SHA384、ECDHE_ECDSA_AES_128_GCM_SHA256、ECDHE_ECDSA_AES_256_GCM_SHA384、RSA_AES_128_GCM_SHA256、RSA_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_AES_128_CCM_SHA256、TLS_AES_128_CCM_8_SHA256。
(5) (可選)配置SSL服務器上緩存的最大會話數目和SSL會話緩存的超時時間。
session { cachesize size | timeout time } *
缺省情況下,SSL服務器上緩存的最大會話數目為500個,SSL會話緩存的超時時間為3600秒。
(6) 配置SSL服務器端對SSL客戶端的身份驗證方案。
client-verify { enable | optional }
缺省情況下,SSL服務器端不要求對SSL客戶端進行基於數字證書的身份驗證。
SSL服務器端在基於數字證書對SSL客戶端進行身份驗證時,除了對SSL客戶端發送的證書鏈進行驗證,還要檢查證書鏈中的除根CA證書外的每個證書是否均未被吊銷。
(7) (可選)配置SSL協商時SSL服務器端發送完整的證書鏈。
certificate-chain-sending enable
缺省情況下,SSL協商時,SSL服務器端隻發送本地證書,不發送證書鏈。
SSL客戶端策略是客戶端連接SSL服務器時使用的參數。隻有與應用層協議,如DDNS(Dynamic Domain Name System,動態域名係統),關聯後,SSL客戶端策略才能生效。有關DDNS的詳細介紹請參見“三層技術-IP業務配置指導”中的“域名解析”。
對安全性要求較高的環境下,建議不要為SSL 客戶端指定SSL3.0 版本。
(1) 進入係統視圖。
system-view
(2) 創建SSL客戶端策略,並進入SSL客戶端策略視圖。
ssl client-policy policy-name
(3) 配置SSL客戶端策略所使用的PKI域。
pki-domain domain-name
缺省情況下,未指定SSL客戶端策略所使用的PKI域。
如果服務器端需要對客戶端進行基於數字證書的身份驗證,則必須在SSL客戶端指定PKI域,並在該PKI域內為SSL客戶端申請本地數字證書。PKI域的創建及配置方法,請參見“安全配置指導”中的“PKI”。
(4) 配置SSL客戶端策略支持的加密套件。
prefer-cipher { dhe_rsa_aes_128_cbc_sha | dhe_rsa_aes_128_cbc_sha256 | dhe_rsa_aes_256_cbc_sha | dhe_rsa_aes_256_cbc_sha256 | ecc_sm2_sm1_sm3 | ecc_sm2_sm4_sm3 | ecdhe_ecdsa_aes_128_cbc_sha256 | ecdhe_ecdsa_aes_128_gcm_sha256 | ecdhe_ecdsa_aes_256_cbc_sha384 | ecdhe_ecdsa_aes_256_gcm_sha384 | ecdhe_rsa_aes_128_cbc_sha256 | ecdhe_rsa_aes_128_gcm_sha256 | ecdhe_rsa_aes_256_cbc_sha384 | ecdhe_rsa_aes_256_gcm_sha384 | ecdhe_sm2_sm1_sm3 | ecdhe_sm2_sm4_sm3 | exp_rsa_des_cbc_sha | rsa_3des_ede_cbc_sha | rsa_aes_128_cbc_sha | rsa_aes_128_cbc_sha256 | rsa_aes_128_gcm_sha256 | rsa_aes_256_cbc_sha | rsa_aes_256_cbc_sha256 | rsa_aes_256_gcm_sha384 | rsa_des_cbc_sha | rsa_sm1_sha | rsa_sm1_sm3 | rsa_sm4_sha | rsa_sm4_sm3 | tls_aes_128_ccm_sha256 | tls_aes_128_ccm_8_sha256 | tls_aes_128_gcm_sha256 | tls_aes_256_gcm_sha384 | tls_chacha20_poly1305_sha256 } *
SSL客戶端策略支持的加密套件為ECC_SM2_SM1_SM3、ECC_SM2_SM4_SM3、ECDHE_SM2_SM1_SM3、ECDHE_SM2_SM4_SM3、EXP_RSA_DES_CBC_SHA、RSA_3DES_EDE_CBC_SHA、RSA_DES_CBC_SHA、RSA_SM1_SHA、RSA_SM1_SM3、RSA_SM4_SHA、RSA_SM4_SM3、RSA_AES_128_CBC_SHA、RSA_AES_256_CBC_SHA、DHE_RSA_AES_128_CBC_SHA、DHE_RSA_AES_256_CBC_SHA、RSA_AES_128_CBC_SHA256、RSA_AES_256_CBC_SHA256、DHE_RSA_AES_128_CBC_SHA256、DHE_RSA_AES_256_CBC_SHA256、ECDHE_RSA_AES_128_CBC_SHA256、ECDHE_RSA_AES_256_CBC_SHA384、ECDHE_RSA_AES_128_GCM_SHA256、ECDHE_RSA_AES_256_GCM_SHA384、ECDHE_ECDSA_AES_128_CBC_SHA256、ECDHE_ECDSA_AES_256_CBC_SHA384、ECDHE_ECDSA_AES_128_GCM_SHA256、ECDHE_ECDSA_AES_256_GCM_SHA384、RSA_AES_128_GCM_SHA256、RSA_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_AES_128_CCM_SHA256、TLS_AES_128_CCM_8_SHA256。
(5) 配置SSL客戶端策略使用的SSL協議版本。
version { gm-tls1.1 | ssl3.0 | tls1.0 | tls1.1 | tls1.2 | tls1.3 }
缺省情況下,SSL客戶端策略使用的SSL協議版本為TLS 1.2。
(6) 配置客戶端需要對服務器端進行基於數字證書的身份驗證。
server-verify enable
缺省情況下,SSL客戶端需要對SSL服務器端進行基於數字證書的身份驗證。
當設備對係統安全性有較高要求時可以通過配置本功能關閉對應版本號的SSL協商。
禁止SSL服務器使用指定的SSL版本進行SSL協商支持在係統視圖下配置或在SSL服務器端策略視圖內配置兩種方式:係統視圖的配置對所有SSL服務器端策略都有效,而SSL服務器端策略內的配置隻對當前SSL服務器端策略有效。對於一個SSL服務器端策略來說,優先采用該SSL服務器端策略內的配置,隻有該SSL服務器端策略內未進行配置時,才采用全局的配置。
如果通過本功能關閉了指定版本的SSL協商功能,並不會同時關閉比其更低版本的SSL協商功能,例如,ssl version tls1.1 disable命令僅表示關閉了TLS1.1版本的SSL協商功能,不會同時關閉TLS1.0版本。
(1) 進入係統視圖。
system-view
(2) 禁止SSL服務器使用指定的SSL版本進行SSL協商。
ssl version { gm-tls1.1 | ssl3.0 | tls1.0 | tls1.1 | tls1.2 | tls1.3 } * disable
缺省情況下,允許SSL服務器使用TLS1.1、TLS1.2和TLS1.3版本的協商功能。
(3) 進入SSL服務器端策略視圖。
ssl server-policy policy-name
(4) 禁止SSL服務器使用指定的SSL版本進行SSL協商。
version { gm-tls1.1 | ssl3.0 | tls1.0 | tls1.1 | tls1.2 | tls1.3 } * disable
缺省情況下,SSL服務器采用的SSL協商版本與全局采用的SSL協商版本一致。
關閉SSL重協商是指,不允許複用已有的SSL會話進行SSL快速協商,每次SSL協商必須進行完整的SSL握手過程。關閉SSL重協商會導致係統付出更多的計算開銷,但可以避免潛在的風險,安全性更高。
通常情況下,不建議關閉SSL重協商。本命令僅用於用戶明確要求關閉重協商的場景。
(1) 進入係統視圖。
system-view
(2) 配置SSL服務器端關閉SSL重協商。
ssl renegotiation disable
缺省情況下,SSL重協商功能處於關閉狀態。
SSL服務器端和SSL客戶端在進行SSL協商時,會在協商過程中確定兩端報文交互時使用的密鑰交換算法、數據加密算法及MAC算法。缺省情況下,SSL服務器端在收到包含客戶端加密套件的SSL協商報文時,會以報文中所帶的客戶端的加密套件作為匹配條件,在本服務器端配置的加密套件中查找符合條件的套件,即按照優先級從高到低的順序,依次選取SSL客戶端的加密套件,然後從SSL服務器端查找與之匹配的加密套件,直到匹配成功。如果沒有任何一個加密套件匹配成功,則協商失敗。
開啟本功能後,SSL服務器端在收到包含客戶端加密套件的SSL協商報文時,會按照服務器端策略配置的加密套件的順序來進行匹配,即按照優先級從高到低的順序,依次選取SSL服務器端的加密套件,然後從SSL客戶端查找與之匹配的加密套件,直到匹配成功。如果沒有任何一個加密套件匹配成功,則協商失敗。
(1) 進入係統視圖。
system-view
(2) 進入SSL服務器端策略視圖。
ssl server-policy policy-name
(3) 開啟SSL服務器策略與客戶端進行協商時按照服務器端配置的加密套件順序進行匹配的功能。
ciphersuite server-preferred enable
缺省情況下,SSL服務器與客戶端進行算法協商時按照客戶端支持的加密套件的順序進行匹配。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SSL的運行情況,通過查看顯示信息驗證配置的效果。
表1-1 SSL顯示和維護
操作 |
命令 |
顯示SSL客戶端策略的信息 |
display ssl client-policy [ policy-name ] |
顯示SSL服務器端策略的信息 |
display ssl server-policy [ policy-name ] |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!