10-SSL配置
本章节下载: 10-SSL配置 (274.10 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 3.0版本 |
ssl version ssl3.0 disable |
缺省情况下,允许使用SSL 3.0版本 |
(可选)关闭对应版本号的SSL协商功能 |
非FIPS模式下: ssl version { ssl3.0 | tls1.0 | tls1.1 } * disable FIPS模式下: ssl version { tls1.0 | tls1.1 } * disable |
缺省情况下: · 非FIPS模式下,允许使用SSL3.0、TLS1.0、TLS1.1版本的协商功能 FIPS模式下,允许使用TLS1.0、TLS1.1 版本的协商功能 |
(可选)配置SSL服务器端关闭SSL重协商 |
ssl renegotiation disable |
缺省情况下,允许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_256_cbc_sha | 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_256_cbc_sha | rsa_des_cbc_sha | rsa_rc4_128_md5 | rsa_rc4_128_sha } * FIPS模式下: ciphersuite { rsa_aes_128_cbc_sha | rsa_aes_256_cbc_sha } * |
缺省情况下,SSL服务器端策略支持所有的加密套件 |
配置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_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 | 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模式下: |
缺省情况下,SSL服务器端策略支持所有的加密套件 |
配置SSL服务器上可以缓存的最大会话数目 |
session cachesize size |
缺省情况下,SSL服务器上可以缓存的最大会话数目为500个 |
配置SSL服务器端要求对SSL客户端进行基于数字证书的身份验证 |
client-verify enable |
缺省情况下,SSL服务器端不要求对SSL客户端进行基于数字证书的身份验证 SSL服务器端在基于数字证书对SSL客户端进行身份验证时,除了对SSL客户端发送的证书链进行验证,还要检查证书链中的除根CA证书外的每个证书是否均未被吊销 |
· 目前,SSL协议版本主要有SSL2.0、SSL3.0和TLS1.0(TLS1.0对应SSL协议的版本号为3.1)。设备作为SSL服务器时,缺省情况下,可以与SSL3.0和TLS1.0版本的SSL客户端通信,还可以识别同时兼容SSL2.0和SSL3.0/TLS1.0版本的SSL客户端发送的报文,并通知该客户端采用SSL3.0/TLS1.0版本与SSL服务器通信。
· 当设备对系统安全性有较高要求时可以通过命令行关闭SSL 3.0版本。
· 目前,SSL协议版本主要有SSL2.0、SSL3.0、TLS1.0、TLS1.1和TLS1.2。设备作为SSL服务器时,缺省情况下,可以与所有版本的SSL客户端通信,还可以识别SSL2.0版本的SSL客户端发送的报文,并通知该客户端采用SSL3.0/TLS1.0/ TLS1.1/TLS1.2版本与SSL服务器通信。
· 当设备对系统安全性有较高要求时可以通过命令行关闭对应版本号的SSL协商功能。
SSL客户端策略是客户端连接SSL服务器时使用的参数。只有与应用层协议,如DDNS(Dynamic Domain Name System,动态域名系统),关联后,SSL客户端策略才能生效。DDNS的详细配置请参见“三层技术-IP业务配置指导”中的“DDNS”。
表1-3 配置SSL客户端策略
配置任务 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)关闭SSL 3.0版本 |
ssl version ssl3.0 disable |
缺省情况下,允许使用SSL 3.0版本 |
(可选)关闭对应版本号的SSL协商功能 |
非FIPS模式下: ssl version { ssl3.0 | tls1.0 | tls1.1 } * disable FIPS模式下: ssl version { tls1.0 | tls1.1 } * disable |
缺省情况下: · 非FIPS模式下,允许使用SSL3.0、TLS1.0、TLS1.1版本的协商功能 FIPS模式下,允许使用TLS1.0、TLS1.1 版本的协商功能 |
(可选)配置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_256_cbc_sha | 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_256_cbc_sha | rsa_des_cbc_sha | rsa_rc4_128_md5 | rsa_rc4_128_sha } FIPS模式下: prefer-cipher { rsa_aes_128_cbc_sha | rsa_aes_256_cbc_sha } |
非FIPS模式下: 缺省情况下,SSL客户端策略支持的加密套件为rsa_rc4_128_md5。 FIPS模式下: 缺省情况下,SSL客户端策略支持的加密套件为rsa_aes_128_cbc_sha |
配置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_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 | 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模式下: |
非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.0 | tls1.1 | tls1.2 } |
缺省情况下,SSL客户端策略使用的SSL协议版本为TLS 1.0 |
配置客户端需要对服务器端进行基于数字证书的身份验证 |
server-verify enable |
缺省情况下,SSL客户端需要对SSL服务器端进行基于数字证书的身份验证 |
· 如果在SSL客户端策略视图下,使用version命令配置SSL协议版本为TLS 1.0,客户端首先尝试使用TLS 1.0版本的协议连接服务器,若握手失败,则切换为SSL 3.0版本的协议继续尝试连接。因此,在对安全性要求较高的环境下,建议配置SSL协议版本为TLS 1.0,并在系统视图下关闭SSL3.0版本。
· 如果在SSL客户端策略视图下,使用version命令配置SSL协议版本为SSL 3.0,但在系统视图下关闭了SSL 3.0版本,则根据局部优先全局的原则,SSL客户端仍可使用SSL 3.0版本。
· 系统视图下可以关闭SSL3.0/TLS1.0/TLS1.1版本(配置命令ssl version disable)。如果使用version命令配置的SSL协议版本,在系统视图下被关闭,根据局部优先全局的原则,SSL客户端仍可使用该版本。
· 客户端首先尝试使用高版本的协议连接服务器,若握手失败,则切换为低版本的协议继续尝试连接。因此,在对安全性要求较高的环境下,建议通过version命令配置SSL协议版本为TLS 1.2/TLS1.1/TLS1.0,并在系统视图下关闭SSL3.0版本。
在完成上述配置后,在任意视图下执行display命令可以显示配置后SSL的运行情况,通过查看显示信息验证配置的效果。
表1-4 SSL显示和维护
操作 |
命令 |
显示算法库的版本号 |
display crypto version |
显示SSL服务器端策略的信息 |
display ssl server-policy [ policy-name ] |
显示SSL客户端策略的信息 |
display ssl client-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] 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。
[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
# 指定证书申请使用的密钥对,用途为通用,名称为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服务。
# 创建本地用户usera,密码为123,服务类型为https,用户角色为network-admin。
[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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!