第232篇:HTTPS 过滤原理与挑战
关键词:HTTPS过滤、SSL Inspection、URL过滤、应用识别、HSTS、加密应用控制
一、引言
在第231篇中,我们了解了SSL解密技术如何使防火墙获得对加密流量的检测能力。HTTPS过滤(HTTPS Filtering)正是基于SSL解密能力,对HTTPS流量中的URL、应用类型和内容进行精细化管控。
随着移动办公和云计算的普及,企业对应用级管控的需求日益迫切:禁止员工在工作时间访问娱乐网站、限制非授权云服务使用、阻断加密信道中的恶意软件通信……这些需求都依赖于HTTPS过滤能力。
二、核心概念
2.1 HTTPS过滤的层次
| 层次 | 检测对象 | 实现方式 | 精度 |
|---|---|---|---|
| L4端口 | TCP 443 | 端口匹配 | 极低 |
| SNI | 目标域名 | ClientHello解析 | 域名级 |
| H2/H3头 | HTTP/2或QUIC头部字段 | 不解密头部解析 | 域名/路径级 |
| SSL解密+URL | 完整URL | 解密后提取HTTP Host/URI | 精确URL级 |
| SSL解密+DPI | 应用特征 | 解密后深度检测 | 应用/内容级 |
2.2 HTTPS过滤的处置动作
| 动作 | 说明 | 用户可见 |
|---|---|---|
| 阻断 | 直接拒绝连接,返回阻断页面 | 可见阻断页面 |
| 重定向 | 将请求重定向到告警/阻断页面 | 可见重定向页面 |
| 限速 | 降低HTTPS流量优先级 | 延迟增加但连接正常 |
| 记录 | 仅记录日志,不阻断 | 无感知 |
| 替换 | 替换特定内容(如广告) | 页面内容被修改 |
2.3 HTTPS过滤 vs HTTP过滤
| 维度 | HTTP过滤 | HTTPS过滤 |
|---|---|---|
| 部署难度 | 简单,直接检查明文 | 复杂,需SSL解密或SNI |
| 检测精度 | 精确到URL路径和参数 | 仅SNI时到域名级 |
| 性能开销 | 低 | 解密模式下高 |
| 合规性 | 无争议 | 可能涉及隐私法规 |
| 对抗难度 | 低,用户可轻易绕过 | 高,需技术手段对抗 |
三、技术细节
3.1 基于SNI的HTTPS过滤(不解密)
SNI(Server Name Indication)是TLS扩展,客户端在ClientHello中明文发送目标域名。即使不解密,防火墙也能获知用户访问的目标域名。

SNI过滤的局限性: - 只能过滤到域名级别,无法识别域名下的具体路径 - 无法检测HTTPS中的具体应用类型(如区分网盘和云存储) - 部分浏览器支持ESNI/ECH(加密SNI),未来SNI也将被加密
3.2 HTTP/2 头部解密过滤
HTTP/2使用HPACK压缩头部,但仍以明文传输(在TLS隧道之上)。SSL解密后,防火墙可获取:
| HTTP/2头部 | 用途 |
|---|---|
| :method | 请求方法(GET/POST) |
| :path | URL路径 |
| :authority | 主机名 |
| :scheme | 协议(https) |
| content-type | 内容类型 |
| user-agent | 客户端标识 |
3.3 HTTPS过滤策略优先级

3.4 应用识别技术
| 技术 | 说明 | 适用场景 |
|---|---|---|
| SNI域名匹配 | 匹配已知应用域名 | Web应用识别 |
| 证书特征 | 证书组织/签发者信息 | 企业应用识别 |
| JA3指纹 | TLS握手特征匹配 | 加密应用/客户端识别 |
| 流量指纹 | 包大小/时序模式 | 视频流/游戏等识别 |
| SSL解密+DPI | 解密后特征匹配 | 精确应用识别 |
3.5 HTTPS过滤的绕过与对抗
| 绕过方式 | 说明 | 防御措施 |
|---|---|---|
| DNS-over-HTTPS (DoH) | 加密DNS查询绕过DNS过滤 | 阻断DoH端口/域名,部署DNS Sinkhole |
| DNS-over-TLS (DoT) | 通过TLS 853端口加密DNS | 阻断853端口,强制内网DNS |
| HTTP代理 | 通过第三方代理服务器转发流量 | 阻断非常规代理端口(8080/3128等) |
| SSH隧道 | 建立SSH动态端口转发 | 限制SSH外连,应用识别SSH隧道特征 |
| VPN客户端 | 通过商业/开源VPN绕过所有过滤 | 阻断VPN特征端口和协议(IKE/OpenVPN) |
| 浏览器插件 | 使用Proxy Switchy等插件切换代理 | 终端MDM管控浏览器插件安装 |
| 移动数据 | 关闭WiFi使用4G/5G绕过边界过滤 | MDM管控网络切换策略 |
# 防御绕过:阻断常见VPN和代理特征
security-policy
# 阻断OpenVPN
rule name Block_OpenVPN
source-zone trust
destination-zone untrust
service udp
destination-port eq 1194
action deny
quit
# 阻断IKE/IPsec VPN
rule name Block_IPsec
source-zone trust
destination-zone untrust
service isakmp
action deny
quit
# 阻断SSH隧道
rule name Block_SSH_Tunnel
source-zone trust
destination-zone untrust
service ssh
destination-address 0.0.0.0 0
action deny
quit
quit
四、实战配置/案例分析
4.1 华为USG HTTPS过滤配置
# 1. 创建URL过滤配置文件
urlfilter profile https-filter
# 域名分类策略
domain-classification policy block-pornography
domain-classification policy block-gambling
domain-classification policy block-social-media
# 自定义URL黑名单
url-list block-site
entry *youtube.com
entry *facebook.com
entry *tiktok.com
entry *.gambling-site.com
quit
# 自定义SNI白名单(允许的业务域名)
url-list allow-site
entry *office365.com
entry *teams.microsoft.com
entry *zoom.us
entry *company-cloud.com
quit
# SNI过滤策略
sni-filter action block url-list block-site
sni-filter action permit url-list allow-site
# URL过滤策略(SSL解密后生效)
url-filter action block url-list block-site
url-filter action permit url-list allow-site
quit
# 2. 创建应用控制配置文件
application-profile app-control
# 基于SNI识别应用
sni-application wechat action block
sni-application whatsapp action block
sni-application twitter action block
# 应用分类控制
application-category social-networking action block
application-category file-sharing action permit
# 例外:企业网盘允许
permit url *company-drive.com
quit
quit
# 3. 绑定到安全策略
security-policy
rule name HTTPS_Filtering
source-zone trust
destination-zone untrust
source-address office-users
service https
action permit
ssl-policy decrypt-all
urlfilter-policy https-filter
application-policy app-control
quit
quit
4.2 故障排查案例:HTTPS过滤后视频会议卡顿
故障现象:启用HTTPS过滤后,用户使用Zoom和Teams进行视频会议时出现频繁卡顿和画面冻结。
排查步骤:
- 检查HTTPS过滤日志
display urlfilter log recent | include zoom
display urlfilter log recent | include teams
发现Zoom和Teams的部分域名被错误分类为"流媒体",触发了限速策略。
- 检查应用分类
display application statistics
display application list zoom
display application list teams
Zoom的媒体服务器域名(*.zoom.us)和Teams的部分CDN域名被归类为"视频流媒体"类别。
- 解决方案
# 方案1: 在URL过滤中允许业务域名
urlfilter profile https-filter
url-list allow-business
entry *.zoom.us
entry *.zoomgov.com
entry *.teams.microsoft.com
entry *.skype.com
entry *.microsoftteams.net
quit
sni-filter action permit url-list allow-business
quit
quit
# 方案2: 在应用控制中调整分类
application-profile app-control
application-category video-conferencing action permit
application-category collaboration action permit
quit
quit
4.3 故障排查案例:用户通过DNS-over-HTTPS绕过过滤
故障现象:尽管部署了HTTPS过滤策略,用户仍可通过浏览器访问到被屏蔽的娱乐网站。
排查步骤:
- 抓包分析用户流量
# 在防火墙上抓取用户流量
packet-capture interface GEI_0/0/1 start
发现用户使用Cloudflare DoH(1.1.1.1)解析域名,防火墙的DNS过滤失效。
-
分析原因 用户浏览器配置了DNS-over-HTTPS(DoH),域名解析请求通过HTTPS加密发送到1.1.1.1,防火墙无法拦截明文DNS查询。虽然SNI过滤能拦截目标域名,但部分应用使用IP直连而非域名。
-
解决方案
# 方案1: 在防火墙上阻断DoH
security-policy
rule name Block_DoH
source-zone trust
destination-zone untrust
service https
destination-address 1.1.1.1
action deny
quit
rule name Block_DoH_Google
source-zone trust
destination-zone untrust
service https
destination-address 8.8.8.8
# Google DoH域名
destination-url *dns.google
action deny
quit
quit
# 方案2: 部署DNS Sinkhole(DNS劫持)
dns view default
domain-name blocked-site.com
ip-address 127.0.0.1
quit
quit
五、总结
| 知识点 | 要点 |
|---|---|
| HTTPS过滤层次 | 从L4端口到SSL解密+DPI,精度逐级提升 |
| SNI过滤 | 不解密即可过滤到域名级,性能开销低 |
| SSL解密过滤 | 可精确到URL路径和具体应用,但开销大 |
| 应用识别 | 域名、证书、JA3、流量指纹多方式结合 |
| 绕过对抗 | DoH/DoT、代理、VPN是常见绕过手段 |
| 策略设计 | 白名单优先、最小权限、分类管理 |
| 合规注意 | HTTPS过滤可能涉及隐私法规 |
思考
- SNI即将被ECH(Encrypted Client Hello)取代,当SNI也被加密后,防火墙如何进行HTTPS过滤?
- DNS-over-HTTPS(DoH)对传统DNS过滤造成了什么影响?企业应如何应对?
- 如何设计HTTPS过滤策略才能在管控力度和用户体验之间取得平衡?
下篇预告:第233篇:TCP 劫持与序列号预测攻击