安全分析
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 | 探测原理(简) |
|---|---|---|
| Heartbleed | CVE-2014-0160 | 发畸形 Heartbeat,看是否回吐内存 |
| POODLE | CVE-2014-3566 | 能否协商 SSLv3 |
| ROBOT | CVE-2017-13098 | 能否用 RSA 静态密钥交换套件 |
| CCS Injection | CVE-2014-0224 | 握手未完成偷发 ChangeCipherSpec |
| FREAK | — | 能否协商 export 级 RSA |
| Logjam | — | 能否协商 export DHE |
| Sweet32 | — | 能否协商 3DES/Blowfish(64-bit 分组) |
| BEAST | — | TLS1.0 + CBC 套件 |
| CRIME | CVE-2012-4929 | ServerHello compression_method 非 0 |
| DROWN | — | SSLv2 暴露 |
| 不安全重协商 | — | 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 csvbatch-analyze 内部用 worker pool + 信号量限并发到 10,并算出平均分。expiry-monitor 按剩余天数分桶,适合定期巡检告警。