第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过滤(不解密) - 图示

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过滤策略优先级

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进行视频会议时出现频繁卡顿和画面冻结。

排查步骤:

  1. 检查HTTPS过滤日志
display urlfilter log recent | include zoom
display urlfilter log recent | include teams

发现Zoom和Teams的部分域名被错误分类为"流媒体",触发了限速策略。

  1. 检查应用分类
display application statistics
display application list zoom
display application list teams

Zoom的媒体服务器域名(*.zoom.us)和Teams的部分CDN域名被归类为"视频流媒体"类别。

  1. 解决方案
# 方案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过滤策略,用户仍可通过浏览器访问到被屏蔽的娱乐网站。

排查步骤:

  1. 抓包分析用户流量
# 在防火墙上抓取用户流量
packet-capture interface GEI_0/0/1 start

发现用户使用Cloudflare DoH(1.1.1.1)解析域名,防火墙的DNS过滤失效。

  1. 分析原因 用户浏览器配置了DNS-over-HTTPS(DoH),域名解析请求通过HTTPS加密发送到1.1.1.1,防火墙无法拦截明文DNS查询。虽然SNI过滤能拦截目标域名,但部分应用使用IP直连而非域名。

  2. 解决方案

# 方案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过滤可能涉及隐私法规

思考

  1. SNI即将被ECH(Encrypted Client Hello)取代,当SNI也被加密后,防火墙如何进行HTTPS过滤?
  2. DNS-over-HTTPS(DoH)对传统DNS过滤造成了什么影响?企业应如何应对?
  3. 如何设计HTTPS过滤策略才能在管控力度和用户体验之间取得平衡?

下篇预告:第233篇:TCP 劫持与序列号预测攻击