使用WAF提升客户端访问域名的通道安全
应用场景
HTTPS协议是由TLS(Transport Layer Security,传输层安全性协议)+HTTP协议构建的可进行加密传输、身份认证的网络协议。当域名接入WAF时,如果客户端采用HTTPS协议请求访问服务器,即防护域名的“对外协议”配置为“HTTPS”时,您可以通过为域名配置最低TLS版本和加密套件来确保网站安全,详细说明如下:
- 最低TLS版本
最低TLS版本是客户端通过TLS访问网站时,被允许访问网站的最低TLS版本。配置最低TLS版本后,只有满足最低TLS版本的请求,才能正常访问网站,可以满足行业网站的安全需求。
- 截止目前,TLS已发布了三个版本(TLS v1.0、TLS v1.1、TLS v1.2),TLS v1.0和TLS v1.1版本由于发布时间久远,某些加密算法(如SHA1、RC4算法)很容易被黑客攻击,且在性能上,TLS v1.0和TLS v1.1已经无法满足呈几何级增长的数据传输加密,存在安全隐患。同时,为了保障通信协议的安全,满足支付卡行业数据安全标准(PCI DSS),支付卡行业安全标准委员会(PCI SSC)规定,TLS v1.0安全通信协议于2018年6月30日不再生效。火狐、Safari、Chrome、Edge等主流浏览器厂商也声明将于2020年全面停止支持TLS v1.0和TLS v1.1。
- 您可以通过查看网站TLS版本,检测网站支持的TLS版本。
- 加密套件
资源与成本规划
资源 |
资源说明 |
每月费用 |
---|---|---|
Web应用防火墙 |
云模式-标准版:
|
具体的计费方式及标准请参考计费说明。 |
支持配置的最低TLS版本说明
WAF默认配置的最低TLS版本为“TLS v1.0”,为了确保网站安全,建议您根据业务实际需求进行配置,支持配置的最低TLS版本如表2所示。
支持配置的加密套件说明
WAF默认配置的加密套件为“加密套件1”,可以满足浏览器兼容性和安全性,各加密套件相关说明如表3所示。
加密套件名称 |
支持的加密算法 |
不支持的加密算法 |
说明 |
---|---|---|---|
默认加密套件
说明:
WAF默认给网站配置的是“加密套件1”,但是如果请求信息不携带sni信息,WAF就会选择缺省的“默认加密套件”。 |
|
|
|
加密套件1 |
|
|
推荐配置。
|
加密套件2 |
|
- |
|
加密套件3 |
|
|
|
加密套件4 |
|
|
|
加密套件5 |
|
|
仅支持RSA-AES-CBC算法。 |
加密套件6 |
|
- |
|
WAF提供的加密套件对于高版本的浏览器及客户端都可以兼容,不能兼容部分老版本的浏览器。TLS版本不同,加密套件的浏览器或客户端兼容情况也不同。以TLS v1.0协议为例,加密套件的浏览器及客户端兼容性说明如表4所示。
建议您以实际客户端环境测试的兼容情况为准,避免影响现网业务。
浏览器/客户端 |
默认加密套件 |
加密套件1 |
加密套件2 |
加密套件3 |
加密套件4 |
加密套件5 |
加密套件6 |
---|---|---|---|---|---|---|---|
Google Chrome 63 /macOS High Sierra 10.13.2 |
× |
√ |
√ |
√ |
× |
√ |
√ |
Google Chrome 49/ Windows XP SP3 |
× |
× |
× |
× |
× |
√ |
√ |
Internet Explorer 6/Windows XP |
× |
× |
× |
× |
× |
× |
× |
Internet Explorer 8/Windows XP |
× |
× |
× |
× |
× |
× |
× |
Safari 6/iOS 6.0.1 |
√ |
√ |
× |
√ |
√ |
√ |
√ |
Safari 7/iOS 7.1 |
√ |
√ |
× |
√ |
√ |
√ |
√ |
Safari 7/OS X 10.9 |
√ |
√ |
× |
√ |
√ |
√ |
√ |
Safari 8/iOS 8.4 |
√ |
√ |
× |
√ |
√ |
√ |
√ |
Safari 8/OS X 10.10 |
√ |
√ |
× |
√ |
√ |
√ |
√ |
Internet Explorer 7/Windows Vista |
√ |
√ |
× |
√ |
√ |
× |
√ |
Internet Explorer 8~10/Windows 7 |
√ |
√ |
× |
√ |
√ |
× |
√ |
Internet Explorer 10/Windows Phone 8.0 |
√ |
√ |
× |
√ |
√ |
× |
√ |
Java 7u25 |
√ |
√ |
× |
√ |
√ |
× |
√ |
OpenSSL 0.9.8y |
× |
× |
× |
× |
× |
× |
× |
Safari 5.1.9/OS X 10.6.8 |
√ |
√ |
× |
√ |
√ |
× |
√ |
Safari 6.0.4/OS X 10.8.4 |
√ |
√ |
× |
√ |
√ |
× |
√ |
配置TLS最低版本和加密套件
以下介绍如何配置TLS最低版本为“TLS v1.2”,加密套件为“加密套件1”,以及如何验证配置效果。
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在目标网站所在行的“域名”列中,单击目标网站,进入网站基本信息页面。
- 在“TLS配置”所在行,单击。
图1 修改TLS配置
WAF支持一键开启PCI DSS和PCI 3DS合规认证功能,开启合规认证后,可以满足PCI DSS和PCI 3DS合规认证要求。
- PCI DSS
- 开启PCI DSS合规认证后,不能修改TLS最低版本和加密套件,且最低TLS版本将设置为“TLS v1.2”,加密套件设置为EECDH+AESGCM:EDH+AESGCM。
- 开启PCI DSS合规认证后,如果您需要修改TLS最低版本和加密套件,请关闭该认证。
- PCI 3DS
- 开启PCI 3DS合规认证后,不能修改TLS最低版本,且最低TLS版本将设置为“TLS v1.2”。
- 开启PCI 3DS合规认证后,您将不能关闭该认证,请根据业务实际需求进行操作。
- PCI DSS
- 在弹出的“TLS配置”对话框中,选择最低TLS版本“TLS v1.2”和“加密套件1”。
图2 “TLS配置”对话框
- 单击“确认”,TLS配置完成。
效果验证
假定“最低TLS版本”配置为“TLS v1.2”,验证TLS v1.2协议可以正常访问网站,验证TLS v1.1及以下协议不能正常访问网站。
您可以在本地通过命令行方式,验证TLS是否配置成功。在验证前,请确保您本地已安装openssl。
- 复制防护域名的CNAME值,用于获取WAF的接入IP。
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在目标网站所在行的“域名”列中,单击目标网站,进入域名基本信息页面。
- 在“CNAME”信息行,单击,复制“CNAME”值。
图3 复制CNAME
- 获取WAF的接入IP。
- 云模式
在Windows操作系统的命令行窗口,执行以下命令,获取WAF的接入IP。
ping CNAME值
在界面回显信息中获取WAF接入IP,如图4所示。 - 独享模式
- 在左侧导航树中,选择 ,进入独享引擎实例列表页面。
- 在独享引擎列表的“IP地址”栏,获取所有创建的独享引擎对应的子网IP地址,即独享引擎实例对应的接入IP。
- 云模式
- 执行以下命令,验证“TLS v1.2”协议可以访问目标网站。
openssl s_client -connect WAF接入IP -servername "防护域名" -tls1_2
- 执行以下命令,验证“TLS v1.1”协议不能访问目标网站。
openssl s_client -connect WAF接入IP -servername "防护域名" -tls1_1