01 · 威胁模型:两条攻击路线
围绕ACME的攻击可清晰地分为两条路线,其防守体系截然不同:
| 路线 | 目标 | 前置条件 | 典型手法 |
|---|---|---|---|
| 路线A:骗取证书 | 让CA为不属于自己的域名签发证书 | 无需任何目标组织的凭据 | BGP前缀劫持/DNS路径操纵验证流量(MPIC前);DNS区域劫持/投毒;利用验证窗口内的瞬时控制;目标域名验证链上的任何薄弱环节 |
| 路线B:窃取签发能力 | 获得目标域名的持续证书签发权 | 获得组织的ACME账户密钥、DNS API凭据、DNS提供商账户或EAB | 窃取续签主机上的账户密钥;钓鱼/泄露DNS提供商API令牌;入侵DNS管理面;供应链污染ACME客户端;CI/CD凭据泄露 |
路线A的防守主战场在CA侧(MPIC、随机数、验证窗口、多视角CAA——见第3页),组织侧能做的主要是监测与CAA收敛;路线B的防守完全在组织侧,且其后果更严重——持有效凭据的签发在协议与BR层面完全合法,CT日志是唯一的发现手段(子课题02)。本页重点展开路线B。
02 · 攻击向量详解
2.1 DNS API凭据(最高优先)
DNS-01的API凭据是"域名控制权的可编程形态":泄露后即可为对应zone(乃至经委托链的更广范围)的任何域名完成验证。真实风险场景:凭据硬编码进CI流水线并被日志泄露、开发机被入侵、第三方DNS面板账号被撞库。凭据权限通常远超ACME所需(全zone写权限 vs 仅_acme-challenge TXT)——治理方案见第3页第4节(细粒度令牌/委托区域/dns-account-01前瞻)。
2.2 ACME账户密钥
账户密钥泄露使攻击者可在授权有效期内直接签发(无需重新完成挑战);即便授权过期,持密钥者也可重新发起挑战流程——只要其仍能控制验证路径。注意:账户密钥泄露的处置不仅是换密钥(keyChange),还须审计该账户历史订单与已签发证书清单,排查未经授权的签发记录。
2.3 EAB凭据与CA账户面
EAB是开户许可证:持EAB可注册任意数量账户。商业CA客户应把EAB纳入密钥台账、按集成逐一发放并定期审计账户注册记录。
2.4 验证路径劫持(路线A残余)
MPIC强制后,单一路径劫持骗取签发的难度大幅上升,但以下残余风险仍在:①域名注册账户被盗→攻击者直接控制DNS全记录(MPIC无法区分合法控制者);②DNSSEC未签名区域配合缓存投毒;③GeoDNS/分区域解析导致的验证不一致窗口;④短验证窗口内的DNS变更竞态。组织应将域名注册账户(注册商侧)纳入核心凭据治理——其安全水位低于DNS API凭据时,ACME侧全部防护失效。
2.5 客户端与流水线供应链
ACME客户端以高权限运行(能写Web根目录/DNS/证书目录),是供应链攻击的高价值目标:恶意客户端可外发账户密钥与证书私钥。治理:客户端仅从官方渠道安装并校验签名/哈希、锁定版本、以最小系统权限运行、隔离的续签执行环境。
03 · 防守架构:纵深基线
| 防线 | 基线要求 |
|---|---|
| 凭据最小权限 | DNS令牌限zone/限记录类型/限操作;ACME账户按边界拆分(第2页);EAB逐集成发放;全部入KMS并自动轮换 |
| 私钥不出域 | 私钥在目标主机/HSM内生成,禁止跨主机复制、禁止经邮件/工单传输(Trustico教训);高价值证书评估HSM/KMS托管密钥 |
| 签发侧收敛 | CAA白名单限定CA;开启DNSSEC并保证配置正确(SC-085v2后错误配置将阻断签发);域名注册账户启用锁定与2FA |
| 可观测与对账 | ACME订单日志集中留存;CT对账发现非台账内签发即告警(第4页);凭据使用异常检测(非常规时间/来源的DNS变更) |
| 暴露窗口压缩 | 短寿命证书(6天级)将"凭据泄露→被滥用"的窗口压缩一个数量级;配合replaces字段即时吊销旧证 |
红线清单:①发现账户密钥/私钥泄露时,仅"换密钥"不构成完整处置——必须列出该账户/该密钥已签发的全部证书清单并逐一吊销或换发;②私钥出现在工单系统、聊天记录、代码仓库即视为泄露,按泄露流程处置,不以"还没看到滥用"为由观望;③DNS提供商支持IP白名单的,续签凭据应绑定固定出口IP。
04 · 滥用视角:ACME与钓鱼自动化流水线
ACME与免费CA同样重塑了钓鱼基础设施经济学:域名注册→CAA探测→ACME自动签发→钓鱼站点上线可在分钟级完成;批量域名+批量证书+快速迁移成为标准流水线(子课题01量化其规模;APWG统计2024年全球记录约480万起钓鱼攻击,创历史新高)。治理分工格局日益清晰:
- CA侧防控:速率限制(Let's Encrypt公开的限制口径包括:每注册域名每周证书数上限50、完全相同域名集合的重复证书每周5张、每账户每主机名失败验证每小时5次、新订单每账户每3小时300个等——具体数值以其官方文档动态更新为准)、高风险域名模式识别、MPIC、短期证书行为分析;
- 组织侧防护:本课题前述全部基线(凭据、私钥、对账);品牌仿冒的CT监测与域名处置归子课题02;钓鱼证书IOC(签发CA、指纹、时间线)应纳入威胁情报交换格式,支撑"域名层+信任层"联动处置。
- 短寿命双刃剑:6天证书压缩钓鱼站点的证书复用周期,也压缩合法组织的缓冲期——同一机制对攻防两侧的可用性影响方向相反,是本课题持续跟踪议题(第8页)。
05 · 检测与审计要点
- ACME订单审计:账户注册、订单创建、挑战类型、签发时序的日志留存(建议不少于证书有效期+审计周期),支撑事后取证;
- CT对账检测规则:非台账签发=高危;同SPKI多域名异常聚集=批量基础设施线索;签发CA偏离CAA白名单=配置漂移或绕过;
- 凭据使用检测:DNS变更API调用的来源ASN/时间基线偏离、ACME账户的异地注册、EAB的非常规使用;
- 演练验证:红队剧本(授权范围内)模拟凭据泄露,检验"定界→吊销→换发"全链路的实际耗时(对接第5页演练体系)。
本节参考来源(本页)
以下均为真实可查的权威来源,用于支撑本页事实性表述。
IETF RFC 8555(ACME,账户密钥语义、keyChange与EAB):rfc-editor.org/rfc/rfc8555。
Let's Encrypt速率限制官方文档:letsencrypt.org/docs/rate-limits(动态更新,以最新文本为准)。
Princeton CITP关于BGP劫持骗取证书的研究(2018年USENIX Security)与CA/B Forum Ballot SC-067v3(MPIC):cabforum.org。
Trustico私钥事件(2018年):en.wikipedia.org/wiki/Trustico。
APWG钓鱼活动趋势报告(钓鱼站点HTTPS化背景):apwg.org/trendsreports;Let's Encrypt 6天短寿命证书公告(2025年1月16日)。