Skip to content

安全分析

cert-skills 的安全分析能力回答一个问题:这个站点(或这张证书)的 TLS 配置有多安全?

能力一览

命令作用在线/离线
analyze <target>0-100 综合安全评分在线域名 / 离线文件
batch-analyze -t a,b,c批量评分(≤50)在线
scan-cert-security <target>18 项证书检查 CERT-001~018在线域名 / 离线文件
scan-vulns <target>11 项 TLS 漏洞扫描在线
expiry-monitor -t a,b,c到期监控分级在线

0-100 安全评分

bash
cert-skills analyze google.com
cert-skills analyze ./server.pem        # 离线
cert-skills analyze example.com -o json

评分从 100 起扣,按问题严重度阶梯:

严重度扣分(在线)扣分(离线)
Critical−30−25
High−20−15
Medium−10−5
Low−5−2

离线扣分更保守

离线拿不到协议层信息(漏洞、HSTS、OCSP staple 等),所以扣分更宽容、同等证书离线分通常更高。对比两次扫描结果时务必确认是否同模式。详见 安全评分算法

等级映射

扣分项包括:证书过期(Critical)、≤30 天将过期(High)、MD5/SHA1 弱签名(High)、自签(Medium)、RSA<2048 弱密钥(High)、链无效(High)、非 TLS1.2/1.3(High)、RC4/DES/3DES 弱套件(High)、缺 OCSP Stapling(Low)、缺 HSTS(Medium)等。

analyze 一条命令背后做了什么:

18 项证书安全检查

bash
cert-skills scan-cert-security example.com

逐项检查 CERT-001 ~ CERT-018,每项返回 Passed/Failed + 详情。前 12 项纯证书层(可离线),后 6 项需要 TLS 连接状态:

每项检查的算法细节见 18 项证书检查

11 项 TLS 漏洞扫描

bash
cert-skills scan-vulns example.com

覆盖经典 TLS 漏洞:

漏洞CVE探测原理(简)
HeartbleedCVE-2014-0160发畸形 Heartbeat,看是否回吐内存
POODLECVE-2014-3566能否协商 SSLv3
ROBOTCVE-2017-13098能否用 RSA 静态密钥交换套件
CCS InjectionCVE-2014-0224握手未完成偷发 ChangeCipherSpec
FREAK能否协商 export 级 RSA
Logjam能否协商 export DHE
Sweet32能否协商 3DES/Blowfish(64-bit 分组)
BEASTTLS1.0 + CBC 套件
CRIMECVE-2012-4929ServerHello compression_method 非 0
DROWNSSLv2 暴露
不安全重协商renegotiation_info 扩展缺失

这些探测全部手搓 raw TLS 报文,不走 Go 标准库——因为标准库无法构造非法 padding、畸形 Heartbeat 这类攻击报文。详见 TLS 漏洞探测

批量分析与到期监控

bash
# 批量评分,CSV 输出适合做组织级安全态势报告
cert-skills batch-analyze -t google.com,github.com,cloudflare.com -o csv > report.csv

# 到期监控:分 Expired / Critical(≤7d) / Warning(≤30d) / Healthy
cert-skills expiry-monitor -t google.com,github.com -o csv

batch-analyze 内部用 worker pool + 信号量限并发到 10,并算出平均分。expiry-monitor 按剩余天数分桶,适合定期巡检告警。

什么时候用哪个

下一步