12-SSL配置
本章節下載: 12-SSL配置 (267.92 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。
由於SSL 3.0版本存在一些已知的安全漏洞,當設備對係統安全性有較高要求時,可以在SSL服務器上通過命令行關閉SSL 3.0版本。
設備作為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服務器端配置任務如下:
· (可選)禁止SSL服務器使用指定的SSL版本進行SSL協商
· (可選)配置SSL服務器端關閉SSL重協商
SSL客戶端配置任務如下:
SSL服務器端策略是設備作為服務器時使用的SSL參數。隻有與HTTPS(Hypertext Transfer Protocol Secure,超文本傳輸協議的安全版本)等應用關聯後,SSL服務器端策略才能生效。
(1) 進入係統視圖。
system-view
(2) 創建SSL服務器端策略,並進入SSL服務器端策略視圖。
ssl server-policy policy-name
(3) 配置SSL服務器端策略所使用的PKI域。
pki-domain domain-name
缺省情況下,未指定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 | 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 } *
缺省情況下,SSL服務器端策略支持所有的加密套件。
(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服務器時使用的參數。隻有與應用層協議,如FTP(File Transfer Protocol,文件傳輸協議),關聯後,SSL客戶端策略才能生效。FTP的詳細配置請參見“基礎配置指導”中的“FTP”。
對安全性要求較高的環境下,建議不要為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 | 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 }
缺省情況下,SSL客戶端策略支持的加密套件為dhe_rsa_aes_128_cbc_sha、dhe_rsa_aes_256_cbc_sha、rsa_3des_ede_cbc_sha、rsa_aes_128_cbc_sha、rsa_aes_256_cbc_sha。
(5) 配置SSL客戶端策略使用的SSL協議版本。
version { ssl3.0 | tls1.0 | tls1.1 | tls1.2 }
缺省情況下,SSL客戶端策略使用的SSL協議版本為TLS 1.0。
(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 { ssl3.0 | tls1.0 | tls1.1 | tls1.2 } * disable
缺省情況下,允許SSL 服務器使用SSL3.0、TLS1.0、TLS1.1和TLS1.2版本的協商功能。
(3) 進入SSL服務器端策略視圖。
ssl server-policy policy-name
(4) 禁止SSL服務器使用指定的SSL版本進行SSL協商。
version { ssl3.0 | tls1.0 | tls1.1 | tls1.2 } * disable
缺省情況下,SSL服務器采用的SSL協商版本與全局采用的SSL協商版本一致。
關閉SSL重協商是指,不允許複用已有的SSL會話進行SSL快速協商,每次SSL協商必須進行完整的SSL握手過程。關閉SSL重協商會導致係統付出更多的計算開銷,但可以避免潛在的風險,安全性更高。
通常情況下,不建議關閉SSL重協商。本命令僅用於用戶明確要求關閉重協商的場景。
(1) 進入係統視圖。
system-view
(2) 配置SSL服務器端關閉SSL重協商。
ssl renegotiation disable
缺省情況下,允許SSL重協商。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後SSL的運行情況,通過查看顯示信息驗證配置的效果。
表1-1 SSL顯示和維護
操作 |
命令 |
顯示SSL客戶端策略的信息 |
display ssl client-policy [ policy-name ] |
顯示SSL服務器端策略的信息 |
display ssl server-policy [ policy-name ] |
用戶可以通過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 ~ 2048).
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申請證書。
在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登錄設備”。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!