课题研究 PKI与证书信任安全 子课题03 · 第03页 / 共8页
03子课题 · CA信任链与证书供应链安全

CA信任链与证书供应链安全第03页:中间CA委托管控与名称约束

中间CA是信任链的执行层,也是2011-2016年几乎所有重大信任危机的发生地——委托等于信任复制,一张未申报、无约束的中间证书就是一枚"休眠核弹"。本页拆解治理与技术两类管控手段的边界:CCADB披露、审计、CT可见性与退出机制承担主力,名称约束这一"黄金技术手段"因兼容性、通配符歧义与责任错配在公网几乎缺席,唯一的规模化例外(CNNIC整改案)证明其可行但依赖根程序强制力。最后给出未申报中间CA的学术发现方法与CA运营方自查清单。

中间CA委托管控CCADB名称约束技术受限CADigiNotarCNNIC事件未申报证书研究状态:研究中
所属专题PKI与证书信任安全 › CA信任链与证书供应链安全
目标受众CA/电子认证服务机构运营者、PKI架构师、企业安全负责人、SOC与审计合规团队、安全研究人员
全文结构8页:总览 → 信任模型 → 中间CA管控 → 根程序治理 → 运营与供应链 → 事件档案 → 防御基线 → 治理路线

01 · 中间CA的功能定位与风险结构

1.1 为什么需要中间CA

中间CA的存在有充分的技术与运营理由:①根密钥保护——根离线保存,日常签发全部由在线中间CA承担,根私钥暴露面最小化;②业务分域——大型CA按品牌、地域、产品线拆分中间证书,单点失守可精准吊销;③算法过渡——新算法(如ECDSA、未来的PQC)通过新中间证书引入,无需触碰根;④技术受限子CA——为托管、企业代管等场景签发带名称约束的受限证书。换言之,中间CA是信任链的"分布式执行层",其存在本身是架构设计的必然。

1.2 风险结构:委托等于信任复制

中间CA证书在密码学能力上与根CA等价(可签发任意域名的可信证书),区别仅在"委托记录":谁批准签发、受什么约束、向谁披露。风险正来自委托记录与密码学能力的脱节——一张未申报、无约束的中间CA证书就是一枚"休眠核弹":可能沉睡多年,一旦启用即为任意钓鱼站点签发浏览器全绿的证书。CCADB披露的已申报中间CA证书数量级为数千张,而学术研究通过全网TLS全链收集持续发现未申报中间证书——申报率虽随CT强制与BR执法显著提高,历史存量与跨国CA的属地披露差异仍是盲区。

风险维度说明典型后果场景
委托失控中间证书被用于声明之外的用途(为第三方域名签发)钓鱼/监控基础设施获得批量可信身份
运营失守签发系统、RA流程或域名验证被绕过欺诈证书批量签发(Comodo 2011式)
可见性缺失未申报中间证书游离于CCADB与CT之外事件发生时才被被动发现
约束缺位无名称约束,失控即全域风险DigiNotar式全网中间人攻击

02 · 委托管控机制全景

中间CA管控是"治理手段为主、技术手段为辅"的组合体系。下表对照两类手段的机制、依据与局限:

类别机制机制说明与依据局限
治理手段强制披露(CCADB)BR要求CA将其全部下属CA证书(含交叉证书)申报至CCADB;未披露即违规,可被根程序处罚历史存量清理不彻底;跨国CA属地披露口径不一
审计覆盖WebTrust/ETSI审计与BR合规检查覆盖中间CA签发流程年度抽样性质;对"沉睡证书"的实体检查有限
CT可见性中间CA证书出现在站点证书链中即被CT日志记录——Chrome CT政策使未披露中间证书在实战中快速暴露仅覆盖"被实际使用"的证书;休眠证书仍不可见
退出机制根程序可吊销CA资格(DigiNotar破产、Symantec退场为极端案例)事后性;对国家级/大型CA动用门槛高
技术手段名称约束上级CA对下级实施dNSName空间锁定(RFC 5280 §4.2.1.10)公网部署率极低(见第04节)
路径长度约束限制下级层级数不限制签发范围
EKU收缩中间证书携带EKU限定下游用途浏览器对中间证书EKU的执行一致性曾存差异

机制演进的因果链:BR强制披露(2015年后强化)+CT强制(2018年)→ 未申报中间证书的实战存活窗口大幅缩短 → 管控重心从"发现"转向"预防与约束"。这正是"治理手段在公网替代技术手段"的现实路径——不是因为技术手段无效,而是因为技术手段的部署成本与兼容风险在多方生态中难以协调。

中间CA证书全生命周期管控环
从申请到退役的六个管控点
说明:管控环各环节时限与格式要求以BR现行版本与CCADB规范为准;本图为方法示意。

03 · 中间CA失控标志性事件

2011—2016年是中间CA失控事件的密集爆发期,六起标志性事件共同勾勒出委托管控的失败模式:

时间事件根因治理后果
2011.3Comodo欺诈证书经销商(RA)账户被盗用,绕过CA主流程签发9张google.com/yahoo.com等欺诈证书证书数小时内吊销;暴露RA链条管控缺口,浏览器开始审视RA授权模式
2012.12Turktrust误发误将本应限制用途的证书签发为具备CA能力的中间证书(2张),其中一张*.google.com证书在公开网络被观测到用于流量拦截证书吊销;引发对"中间证书误签"流程控制的全球排查
2013.12法国ANSSI事件政府网络监控体系中的中间CA为*.google.com签发证书(监控用途流出至外部网络)Google通知后吊销;引发"国家监控型CA"信任的长期讨论
2014.7印度NIC事件国家信息中心(NIC)CA签发google.com/yahoo.com/skype.com等域名证书Google宣布不再接受NIC签发的Google域名证书;Chrome对NIC实施Google域名白名单限制,Mozilla跟进处理
2015.3CNNIC中间证书事件CNNIC委托的中间证书被埃及MCS公司用于为Google域名签发未经授权证书Google/Mozilla不再信任相关中间证书;经整改协商,CNNIC其后改用带名称约束的技术受限中间证书——公网名称约束罕见的规模化实践(详见下文)
2016WoSign系列违规未授权为github.com等域名签发证书、SHA-1证书倒签规避政策、隐瞒收购StartCom等Mozilla启动不信任程序,Apple/Google分阶段移除——根程序退出机制再次执行

失败模式归纳:六起事件可归并为三类根因——①委托链条管控缺失(Comodo的RA、CNNIC的中间证书):权限下放而无持续监督;②内部流程错误(Turktrust误发、NIC签发):把"签发能力"当作普通操作处理;③治理违规(WoSign):有意规避规则。三类根因对应的防线不同:①靠披露+审计+CT,②靠签发系统强校验(如证书模板的EKU/BasicConstraints白名单),③靠退出机制威慑。

04 · 名称约束的工程局限

名称约束被普遍视为约束中间CA的"正确技术手段",但其在公网Web PKI的部署率接近于零。局限主要来自四个层面:

  • 历史兼容风险:将名称约束标记为critical后,解析失败的旧客户端会直接拒绝整条链——CA不愿为部分陈旧环境承担可用性风险;标记为non-critical又可能被部分实现忽略,约束形同虚设。
  • 通配符与匹配歧义:*.example.com与约束子树example.com的交互遵循RFC 6125规则,跨实现一致性差;国际化域名(IDNA A-label/U-label)的等价匹配进一步放大歧义。
  • 治理与商业结构:名称约束意味着上级对下级的硬控制,而Web PKI的中间证书大量存在于"同一集团内部"或"交叉签名伙伴"关系中,缺乏强约束的动机方。
  • 责任错配:约束由签发中间证书的上级设置,而出险成本由浏览器/用户承担——设置约束的成本与收益在不同主体间错配。

4.1 罕见的规模化例外:CNNIC整改案

2015年CNNIC中间证书事件后,Mozilla在与CNNIC的协商中要求:CNNIC恢复业务须改用技术受限中间证书(名称约束+EKU)——这是公网Web PKI史上罕见的、由浏览器根程序强制推动的名称约束规模化部署。该案例证明三点:①名称约束在工程上完全可行;②其落地需要根程序级别的强制力(市场支配地位作为杠杆),单靠CA自觉无法实现;③"约束+白名单监督"的组合,可作为国家级/大型CA委托管控的参考模板。其可复制性受限于地缘与商业现实,但机制本身已被验证。

4.2 未来的可能突破

近年行业讨论的新方向包括:①浏览器强制支持声明——Chrome Root Program要求新纳入根的使用场景逐步披露下属证书,为约束机制创造需求;②短寿命中间证书——与短寿命终端证书改革(SC-081v3)联动,缩短失控窗口;③企业侧先行——内部PKI(如Kubernetes服务网格、mTLS体系)已普遍使用名称约束,企业场景的工程积累可能反向推动公网采用。

4.3 未申报中间证书的量化证据(学术测量)

学术界基于全网TLS全链收集的多次测量给出量化证据:CT强制与BR披露执法之前,全网存在相当数量的未申报中间CA证书,其中相当比例为历史遗留的"沉睡证书"——长期未被使用、游离于CCADB之外,只在被意外启用时才暴露;强制披露与CT合规之后,增量问题显著收敛,但存量清理、并购带入与新兴市场申报缺口仍持续存在。对CA运营方的启示:申报完整性不是一次性工程,而是持续义务——并购整合、系统迁移与区域业务调整都会在不经意间制造新的披露缺口,需将"CCADB申报核对"纳入每次组织变更的检查单。

05 · 未申报中间CA的发现方法

即使治理完备度持续提升,"发现未申报中间证书"仍是防御方与监管方的刚需能力。可行方法组合:

  1. 全网TLS全链收集:对全网443端口发起TLS握手并收集服务端返回的完整证书链,提取链中的CA证书——这是学术界测量未申报中间证书的标准方法(多篇USENIX/IMC测量论文采用)。
  2. 与CCADB比对:将收集到的CA证书指纹与CCADB公开数据比对,不在库中即为"未申报"候选;进一步区分"历史遗留"与"新签发"。
  3. CT日志反查:站点证书的SCT与链式结构可在CT日志中回溯其签发CA;Chrome的CT政策使未申报中间证书在实战使用中被快速记录。
  4. AIA线索扩展:部分中间证书AIA扩展指向未公开的CA证书,可沿链递归发现。

组织侧简化版:一般企业无需全网测量——对自有域名,用CT日志服务(如crt.sh)检索所有证书并检查其链上级是否在CCADB;对自有终端,用MDM/EDR导出信任库比对厂商基线。这两步即可覆盖绝大多数本地风险面(详细操作见第7页防御基线)。

06 · 运营方自查基线与参考来源

6.1 中间CA运营方自查清单(签发CA视角)

#自查项依据/工具
1全部下属CA证书(含交叉证书)是否已按时限申报CCADBBR披露条款;CCADB申报接口
2是否存在BasicConstraints.cA=true但已停用未吊销的"沉睡证书"内部证书台账 + CRL状态核查
3对外委托的中间证书是否带名称约束/EKU收缩(非强制项,建议评估)RFC 5280 §4.2.1.10
4证书模板是否强制校验EKU与BasicConstraints(防Turktrust式误发)CA软件模板配置审计
5RA/经销商权限是否最小化并定期复核(防Comodo式账户盗用)BR第1.6节治理要求
6中间证书密钥是否存于HSM并启用双人授权激活WebTrust密钥管理原则;第5页

6.2 参考来源

[1]

CA/B Forum Baseline Requirements(下属CA证书披露与技术约束相关条款):cabforum.org。

[2]

Mozilla安全博客《Revoking Trust in one CNNIC Intermediate Certificate》(2015年4月)及后续政策执行记录:blog.mozilla.org/security。

[3]

Google Security Blog关于CNNIC中间证书事件的公告(2015年3月)与NIC India限制措施(2014年7月):security.googleblog.com。

[4]

CCADB(Common CA Database):ccadb.org。

[5]

IETF RFC 5280 §4.2.1.10 Name Constraints:rfc-editor.org/rfc/rfc5280#section-4.2.1.10。

[6]

Turktrust、ANSSI、WoSign等事件的公开记录(各组织事后声明与主流安全媒体报道汇编):en.wikipedia.org/wiki/Certificate_authority(含事件索引)。