12-SSL配置
本章節下載: 12-SSL配置 (310.84 KB)
目 錄
設備運行於FIPS模式時,本特性部分配置相對於非FIPS模式有所變化,具體差異請見本文相關描述。有關FIPS模式的詳細介紹請參見“安全配置指導”中的“FIPS”。
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告警協議:用來向對端報告告警信息,以便對端進行相應的處理。告警消息中包含告警的嚴重級別和描述。
表1-1 SSL配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置SSL服務器端策略 |
請在SSL服務器端進行本配置 |
|
配置SSL客戶端策略 |
請在SSL客戶端進行本配置 |
|
配置設備的安全增強級別 |
- |
SSL服務器端策略是服務器啟動時使用的SSL參數。隻有與HTTPS(Hypertext Transfer Protocol Secure,超文本傳輸協議的安全版本)等應用關聯後,SSL服務器端策略才能生效。
表1-2 配置SSL服務器端策略
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
(可選)禁止SSL服務器使用指定的SSL版本進行SSL協商 |
非FIPS模式下: ssl version { ssl3.0 | tls1.0 | tls1.1 } * disable undo ssl version { ssl3.0 | tls1.0 | tls1.1 } * disable FIPS模式下: ssl version { tls1.0 | tls1.1 } * disable undo ssl version { tls1.0 | tls1.1 } * disable |
非FIPS模式下: 缺省情況下,允許SSL 服務器使用SSL3.0、TLS1.0、TLS1.1和TLS1.2版本的協商功能 FIPS模式下: 缺省情況下,允許使用TLS1.0、TLS1.1和TLS1.2版本的協商功能 |
(可選)配置SSL服務器端關閉SSL重協商 |
ssl renegotiation disable |
缺省情況下,允許SSL重協商 |
創建SSL服務器端策略,並進入SSL服務器端策略視圖 |
ssl server-policy policy-name |
缺省情況下,設備上不存在任何SSL服務器端策略 |
(可選)配置SSL服務器端策略所使用的PKI域 |
pki-domain domain-name |
缺省情況下,沒有指定SSL服務器端策略所使用的PKI域 如果客戶端需要對服務器端進行基於數字證書的身份驗證,則必須在SSL服務器端使用本命令指定PKI域,並在該PKI域內為SSL服務器端申請本地數字證書 PKI域的創建及配置方法,請參見“安全配置指導”中的“PKI” |
配置SSL服務器端策略支持的加密套件 |
非FIPS模式下: 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 | 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 | exp_rsa_des_cbc_sha | exp_rsa_rc2_md5 | exp_rsa_rc4_md5 | rsa_3des_ede_cbc_sha | rsa_aes_128_cbc_sha | rsa_aes_128_cbc_sha256 | rsa_aes_256_cbc_sha | rsa_aes_256_cbc_sha256 | rsa_des_cbc_sha | rsa_rc4_128_md5 | rsa_rc4_128_sha } * FIPS模式下: ciphersuite { ecdhe_ecdsa_aes_128_cbc_sha256 | ecdhe_ecdsa_aes_256_cbc_sha384 | ecdhe_ecdsa_aes_128_gcm_sha256 | 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 | rsa_aes_128_cbc_sha | rsa_aes_128_cbc_sha256 | rsa_aes_256_cbc_sha | rsa_aes_256_cbc_sha256 } * |
缺省情況下,SSL服務器端策略支持所有的加密套件 |
配置SSL服務器上緩存的最大會話數目和SSL會話緩存的超時時間 |
session { cachesize size | timeout time } * |
缺省情況下,SSL服務器上緩存的最大會話數目為500個,SSL會話緩存的超時時間為3600秒 |
配置SSL服務器端對SSL客戶端的身份驗證方案 |
client-verify { enable | optional } |
缺省情況下,SSL服務器端不要求對SSL客戶端進行基於數字證書的身份驗證 SSL服務器端在基於數字證書對SSL客戶端進行身份驗證時,除了對SSL客戶端發送的證書鏈進行驗證,還要檢查證書鏈中的除根CA證書外的每個證書是否均未被吊銷 |
配置SSL協商時SSL服務器端發送完整的證書鏈 |
certificate-chain-sending enable |
缺省情況下,SSL協商時,SSL服務器端隻發送本地證書,不發送證書鏈 |
· 目前,SSL協議版本主要有SSL2.0、SSL3.0、TLS1.0、TLS1.1和TLS1.2(TLS1.0對應SSL協議的版本號為3.1)。設備作為SSL服務器時,缺省情況下,可以與SSL3.0、TLS1.0、TLS1.1和TLS1.2版本的SSL客戶端通信,還可以識別同時兼容SSL2.0/SSL3.0/TLS1.0/TLS1.1/TLS1.2版本的SSL客戶端發送的報文,並通知該客戶端采用SSL3.0/TLS1.0/TLS1.1/TLS1.2版本與SSL服務器通信。
· 當設備對係統安全性有較高要求時可以通過命令行關閉SSL 3.0版本。
用戶可以通過Web頁麵訪問和控製設備。為了防止非法用戶訪問和控製設備,提高設備管理的安全性,設備要求用戶以HTTPS的方式登錄Web頁麵,利用SSL協議實現用戶身份驗證,並保證傳輸的數據不被竊聽和篡改。
為了滿足上述需求,需要進行如下配置:
· 配置Device作為HTTPS服務器,並為Device申請證書。
· 為HTTPS客戶端Host申請證書,以便Device驗證其身份。
其中,負責為Device和Host頒發證書的認證機構為CA server。
· 本配置舉例中,采用Windows Server作為CA,在CA上需要安裝SCEP(Simple Certificate Enrollment Protocol,簡單證書注冊協議)插件。
· 進行下麵的配置之前,需要確保Device、Host、CA之間路由可達。
圖1-3 SSL服務器端策略組網圖
(1) 配置HTTPS服務器Device
# 配置PKI實體en,指定實體的通用名為http-server1、FQDN為ssl.security.com。
<Device> system-view
[Device] pki entity en
[Device-pki-entity-en] common-name http-server1
[Device-pki-entity-en] fqdn ssl.security.com
[Device-pki-entity-en] quit
# 配置PKI域1,指定信任的CA名稱為CA server、注冊服務器的URL為http://10.1.2.2/certsrv/mscep/mscep.dll、證書申請的注冊受理機構為RA、實體名稱為en、CRL發布點的URL為http://10.1.2.2/CertEnroll/caserver.crl。
[Device] pki domain 1
[Device-pki-domain-1] ca identifier CA server
[Device-pki-domain-1] certificate request url http://10.1.2.2/certsrv/mscep/mscep.dll
[Device-pki-domain-1] certificate request from ra
[Device-pki-domain-1] certificate request entity en
[Device-pki-domain-1] crl url http://10.1.2.2/CertEnroll/caserver.crl
# 指定證書申請使用的密鑰對,用途為通用,名稱為abc,密鑰長度為1024比特。
[Device-pki-domain-1] public-key rsa general name abc length 1024
[Device-pki-domain-1] quit
# 生成本地的RSA密鑰對。
[Device] public-key local create rsa name abc
The range of public key size is (512 ~ 4096).
If the key modulus is greater than 512,it will take a few minutes.
Press CTRL+C to abort.
Input the modulus length [default = 1024]:
Generating Keys...
..........................++++++
.....................................++++++
Create the key pair successfully.
# 獲取CA的證書。
[Device] pki retrieve-certificate domain 1 ca
The trusted CA's finger print is:
MD5 fingerprint:7682 5865 ACC2 7B16 6F52 D60F D998 4484
SHA1 fingerprint:DF6B C53A E645 5C81 D6FC 09B0 3459 DFD1 94F6 3DDE
Is the finger print correct?(Y/N):y
Retrieved the certificates successfully.
# 為Device申請證書。
[Device] pki request-certificate domain 1
Start to request general certificate ...
Certificate requested successfully.
# 創建一個名為myssl的SSL服務器端策略。
[Device] ssl server-policy myssl
# 配置SSL服務器端策略使用的PKI域名為1。
[Device-ssl-server-policy-myssl] pki-domain 1
# 配置服務器端需要驗證客戶端身份。
[Device-ssl-server-policy-myssl] client-verify enable
[Device-ssl-server-policy-myssl] quit
# 配置HTTPS服務使用的SSL策略為myssl。
[Device] ip https ssl-server-policy myssl
# 開啟HTTPS服務。
[Device] ip https enable
# 創建本地用戶usera,密碼為123,服務類型為https,用戶角色為network-admin。
[Device] local-user usera
[Device-luser-usera] password simple 123
[Device-luser-usera] service-type https
[Device-luser-usera] authorization-attribute user-role network-admin
(2) 配置HTTPS客戶端Host
在Host上打開IE瀏覽器,輸入網址http://10.1.2.2/certsrv,根據提示為Host申請證書。
(3) 驗證配置結果
在Host上打開IE瀏覽器,輸入網址https://10.1.1.1,選擇CA server為Host頒發的證書,即可打開Device的Web登錄頁麵。在登錄頁麵,輸入用戶名usera,密碼123,則可進入Device的Web配置頁麵,實現對Device的訪問和控製。
· PKI配置命令的詳細介紹請參見“安全命令參考”中的“PKI”。
· public-key local create rsa命令的詳細介紹請參見“安全命令參考”中的“公鑰管理”。
· HTTPS的詳細介紹,請參見“基礎配置指導”中的“配置通過Web登錄設備”。
SSL客戶端策略是客戶端連接SSL服務器時使用的參數。隻有與應用層協議,如DDNS(Dynamic Domain Name System,動態域名係統),關聯後,SSL客戶端策略才能生效。有關DDNS的詳細介紹請參見“三層技術-IP業務配置指導”中的“域名解析”。
表1-3 配置SSL客戶端策略
配置任務 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
(可選)配置SSL客戶端關閉SSL重協商 |
ssl renegotiation disable |
缺省情況下,允許SSL重協商 |
創建SSL客戶端策略,並進入SSL客戶端策略視圖 |
ssl client-policy policy-name |
缺省情況下,設備上不存在任何SSL客戶端策略 |
(可選)配置SSL客戶端策略所使用的PKI域 |
pki-domain domain-name |
缺省情況下,沒有指定SSL客戶端策略所使用的PKI域 如果服務器端需要對客戶端進行基於數字證書的身份驗證,則必須在SSL客戶端使用本命令指定PKI域,並在該PKI域內為SSL客戶端申請本地數字證書 PKI域的創建及配置方法,請參見“安全配置指導”中的“PKI” |
配置SSL客戶端策略支持的加密套件 |
非FIPS模式下: 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 | 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 | exp_rsa_des_cbc_sha | exp_rsa_rc2_md5 | exp_rsa_rc4_md5 | rsa_3des_ede_cbc_sha | rsa_aes_128_cbc_sha | rsa_aes_128_cbc_sha256 | rsa_aes_256_cbc_sha | rsa_aes_256_cbc_sha256 | rsa_des_cbc_sha | rsa_rc4_128_md5 | rsa_rc4_128_sha } FIPS模式下: prefer-cipher { 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 | rsa_aes_128_cbc_sha | rsa_aes_128_cbc_sha256 | rsa_aes_256_cbc_sha | rsa_aes_256_cbc_sha256 } |
非FIPS模式下: 缺省情況下,SSL客戶端策略支持的加密套件為rsa_rc4_128_md5 FIPS模式下: 缺省情況下,SSL客戶端策略支持的加密套件為rsa_aes_128_cbc_sha |
配置SSL客戶端策略使用的SSL協議版本 |
非FIPS模式下: version { ssl3.0 | tls1.0 | tls1.1 | tls1.2 } FIPS模式下: version { tls1.0 | tls1.1 | tls1.2 } |
缺省情況下,SSL客戶端策略使用的SSL協議版本為TLS 1.0 對安全性要求較高的環境下,建議為不要為SSL 客戶端指定SSL3.0 版本 |
配置客戶端需要對服務器端進行基於數字證書的身份驗證 |
server-verify enable |
缺省情況下,SSL客戶端需要對SSL服務器端進行基於數字證書的身份驗證 |
設備的安全增強級別有兩個,分別為1和2,2的安全級別較高。當設備的安全級別為2時,對SSL應用有如下限製:
· SSL客戶端策略和SSL服務器端策略不支持DES、3DES、MD5、RC4和RC2類型的加密套件。
· SSL客戶端策略和服務器端策略均不支持使用低於TLS1.1的SSL協議版本。
· 不支持開啟SSL重協商功能。
用戶可以根據自身對安全增強級別的需求,通過本命令來配置調整設備的安全增強級別。
安全增強級別切換之後,對於引用SSL策略的服務(如HTTP和SSL VPN服務),需要重啟相關服務,以更新引用的SSL策略。
表1-4 配置設備的安全增強級別
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置設備的安全增強級別 |
security-enhanced level level-value |
缺省情況下,設備的安全增強級別為1 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SSL的運行情況,通過查看顯示信息驗證配置的效果。
表1-5 SSL顯示和維護
操作 |
命令 |
顯示SSL服務器端策略的信息 |
display ssl server-policy [ policy-name ] |
顯示SSL客戶端策略的信息 |
display ssl client-policy [ policy-name ] |
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!