关于 performing-ssl-tls-inspection-configuration
面向网络安全人员的 SSL/TLS 流量检查配置技能,说明如何部署信任 CA、设置解密策略和例外,并验证配置,同时考虑隐私与合规要求。
主要功能
- 01配置出站与入站检查
- 02部署内部 CA 证书
- 03为证书固定应用设置例外
- 04验证解密结果
- 05考虑性能、隐私与合规
适用场景
- 01配置防火墙或安全 Web 网关的 TLS 检查
- 02为终端部署受信任的 CA 证书
- 03排查证书固定应用的连接问题
- 04制定流量解密的隐私例外
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill performing-ssl-tls-inspection-configuration安装后在 Claude Code 中输入/performing-ssl-tls-inspection-configuration确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
执行 SSL/TLS 检查配置
概述
SSL/TLS 检查(也称为 SSL 解密、HTTPS 检查或 TLS 中断检查)会拦截客户端与服务器之间的加密流量,以检查明文内容中的恶意软件、数据外泄、策略违规以及命令与控制通信。检查设备充当受信任的中间人,终止来自客户端的 TLS 会话,检查明文内容,并与目标服务器建立新的 TLS 会话。如今超过 95% 的 Web 流量已加密,未部署 TLS 检查的组织将面临巨大的盲区。本技能涵盖在下一代防火墙上的 TLS 检查配置、受信任 CA 证书的部署、证书固定应用的豁免管理,以及确保符合隐私法规。
何时使用
- 在进行涉及执行 ssl tls 检查配置的安全评估时
- 在遵循相关安全事件的事件响应流程时
- 在执行定期安全测试或审计活动时
- 在通过动手测试验证安全控制时
前提条件
- 具备 TLS 检查能力的下一代防火墙或安全 Web 网关
- 用于签发检查证书的内部证书颁发机构(CA)
- 端点证书管理(GPO、MDM 或手动部署)
- 针对 TLS 检查范围的隐私与法律审查
- 了解 PKI、X.509 证书和 TLS 握手
核心概念
SSL/TLS 检查模式
| 模式 | 方向 | 描述 |
|---|---|---|
| SSL 正向代理 | 出站 | 拦截客户端到互联网的 HTTPS 连接 |
| SSL 入站检查 | 入站 | 解密发往内部服务器的流量 |
| SSH 代理 | 双向 | 检查 SSH 隧道流量 |
正向代理流程
Client Firewall/Proxy Web Server
│ │ │
│──TLS ClientHello──────→│ │
│ │──TLS ClientHello───────→│
│ │←─TLS ServerHello────────│
│ │ (real server cert) │
│ │ │
│ │ [Validates server cert] │
│ │ [Generates proxy cert │
│ │ signed by internal CA] │
│ │ │
│←─TLS ServerHello───────│ │
│ (proxy-signed cert) │ │
│ │ │
│──Encrypted data────────→│ [Decrypt, Inspect] │
│ │──Encrypted data────────→│
│←─Encrypted data─────────│ [Decrypt, Inspect] │
│ │←─Encrypted data─────────│
证书信任链
Enterprise Root CA
└── Subordinate CA (SSL Inspection)
└── Dynamically Generated Server Certificates
(CN matches requested server)
工作流
步骤 1:为 SSL 检查生成内部 CA
# Create private key for SSL Inspection CA
openssl genrsa -aes256 -out ssl-inspect-ca.key 4096
# Create CA certificate (5 year validity)
openssl req -new -x509 -key ssl-inspect-ca.key \
-sha256 -days 1825 \
-out ssl-inspect-ca.crt \
-subj "/C=US/ST=California/O=Corp Inc/OU=Network Security/CN=Corp SSL Inspection CA" \
-extensions v3_ca \
-config <(cat <<EOF
[req]
distinguished_name = req_dn
x509_extensions = v3_ca
[req_dn]
[v3_ca]
basicConstraints = critical,CA:TRUE,pathlen:0
keyUsage = critical,digitalSignature,keyCertSign,cRLSign
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always
EOF
)
# Verify certificate
openssl x509 -in ssl-inspect-ca.crt -text -noout
步骤 2:将 CA 证书部署到端点
Windows(组策略):
# Import CA cert to trusted root store via GPO
# Computer Configuration > Policies > Windows Settings >
# Security Settings > Public Key Policies > Trusted Root CAs
# Or deploy via PowerShell
Import-Certificate -FilePath "\\server\share\ssl-inspect-ca.crt" `
-CertStoreLocation "Cert:\LocalMachine\Root"
# Verify deployment
Get-ChildItem Cert:\LocalMachine\Root | Where-Object {
$_.Subject -like "*SSL Inspection CA*"
}
macOS(MDM 描述文件或手动):
# Install via command line
sudo security add-trusted-cert -d -r trustRoot \
-k /Library/Keychains/System.keychain ssl-inspect-ca.crt
Linux:
# Ubuntu/Debian
sudo cp ssl-inspect-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
# RHEL/CentOS
sudo cp ssl-inspect-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
步骤 3:配置 Palo Alto SSL 正向代理
# Import CA certificate to firewall
# Device > Certificate Management > Certificates > Import
# Set as Forward Trust CA
set shared certificate SSL-Inspect-CA forward-trust-certificate yes
# Create Decryption Profile
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-expired-certificate yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-untrusted-issuer yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy block-unknown-cert yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy restrict-cert-exts yes
set profiles decryption Corporate-Decrypt ssl-forward-proxy strip-alpn no
# Minimum TLS version
set profiles decryption Corporate-Decrypt ssl-protocol-settings min-version tls1-2
set profiles decryption Corporate-Decrypt ssl-protocol-settings max-version max
# Decryption policy - decrypt outbound HTTPS
set rulebase decryption rules Decrypt-Outbound from Trust to Untrust
set rulebase decryption rules Decrypt-Outbound source any
set rulebase decryption rules Decrypt-Outbound destination any
set rulebase decryption rules Decrypt-Outbound service any
set rulebase decryption rules Decrypt-Outbound action decrypt
set rulebase decryption rules Decrypt-Outbound type ssl-forward-proxy
set rulebase decryption rules Decrypt-Outbound profile Corporate-Decrypt
步骤 4:配置豁免
某些应用和类别必须排除在 TLS 检查之外:
# Exempt certificate-pinned applications
set rulebase decryption rules No-Decrypt-Pinned from Trust to Untrust
set rulebase decryption rules No-Decrypt-Pinned application [ apple-update microsoft-update dropbox-base ]
set rulebase decryption rules No-Decrypt-Pinned action no-decrypt
# Exempt privacy-sensitive categories
set rulebase decryption rules No-Decrypt-Privacy from Trust to Untrust
set rulebase decryption rules No-Decrypt-Privacy category [ health-and-medicine financial-services ]
set rulebase decryption rules No-Decrypt-Privacy action no-decrypt
# Exempt specific high-trust domains
set rulebase decryption rules No-Decrypt-Trusted from Trust to Untrust
set rulebase decryption rules No-Decrypt-Trusted destination [ bank-of-america.com chase.com healthcare.gov ]
set rulebase decryption rules No-Decrypt-Trusted action no-decrypt
步骤 5:为内部服务器配置入站检查
# Import server certificate and private key
# Device > Certificate Management > Certificates > Import
# Inbound inspection policy
set rulebase decryption rules Inspect-WebServers from Untrust to DMZ
set rulebase decryption rules Inspect-WebServers destination [ 10.0.20.10 10.0.20.11 ]
set rulebase decryption rules Inspect-WebServers service service-https
set rulebase decryption rules Inspect-WebServers action decrypt
set rulebase decryption rules Inspect-WebServers type ssl-inbound-inspection
set rulebase decryption rules Inspect-WebServers profile Corporate-Decrypt
步骤 6:验证 SSL 检查
# Test from client - verify certificate issuer is internal CA
openssl s_client -connect www.google.com:443 -servername www.google.com 2>/dev/null | \
openssl x509 -noout -issuer -subject
# Expected output (with inspection active):
# issuer= /C=US/O=Corp Inc/OU=Network Security/CN=Corp SSL Inspection CA
# subject= /CN=www.google.com
# Verify no certificate errors in browser
# Check firewall decryption logs for errors
# Test with curl
curl -v https://www.example.com 2>&1 | grep "issuer"
# Check decryption statistics on firewall
show system setting ssl-decrypt memory
show system setting ssl-decrypt certificate-cache
show counter global filter category ssl
性能考量
| 因素 | 影响 | 缓解措施 |
|---|---|---|
| CPU 开销 | 每个会话增加 50-80% | 硬件 SSL 加速、专用解密设备 |
| 吞吐量下降 | 通常 40-60% | 按峰值加密流量为解密硬件选型 |
| 延迟增加 | 增加 1-5ms | 将检查设备部署在靠近用户的位置 |
| TLS 1.3 0-RTT | 无法检查 0-RTT 数据 | 阻止 0-RTT 或接受风险 |
| 证书固定 | 检查失败 | 添加到豁免列表 |
| QUIC/HTTP3 | 绕过传统代理 | 阻止 QUIC,强制使用 HTTP/2 |
合规与隐私
- 员工告知 - 告知用户网络流量会受到检查
- 隐私豁免 - 排除医疗、金融和受法律特权保护的流量
- 数据处理 - 检查后的明文不得被不必要地记录或存储
- GDPR 合规 - 记录处理加密个人数据的合法依据
- 证书固定 - 为使用 HPKP 或内置固定的应用维护豁免列表
最佳实践
- 从日志记录开始 - 先以仅检测模式部署,以识别使用证书固定的应用程序
- 维护豁免列表 - 保留一份需要绕过解密的应用程序精选列表
- 阻止 QUIC - 阻止 UDP/443,以强制 HTTP/2 通过 TLS 检查
- 监控证书错误 - 在防火墙日志中跟踪解密错误
- 最低 TLS 1.2 - 强制最低版本为 TLS 1.2;阻止 SSLv3 和 TLS 1.0/1.1
- 密钥保护 - 在生产环境中将检查 CA 私钥存储在 HSM 中
- 定期轮换 CA - 在到期前规划 CA 证书轮换
参考资料
评论
支持 Markdown