← 返回列表

嵌入式组件证书吊销缺陷:作废凭证仍可通过认证

2026-10-28 · SCA奥航智能 · 来源:SCA 安全通信联盟 · 阅读 0

嵌入式组件证书吊销缺陷:作废凭证仍可通过认证

撤掉一台设备的凭证,本该是最干脆的安全动作。但这台设备的管理服务把撤销名单读进了内存,却从来没拿它去比对。

一、事件背景:一个缺失的校验开关

10 月 26 日,一家安全研究机构公布了对某款小型嵌入式 Web 服务的审计结果。这款服务不面向普通消费者,它被设备厂商编译进固件,用来承载路由器、打印机、防火墙、工业控制器与管理网关的网页后台——厂商称其运行在数亿台设备上。

研究机构在其 OpenSSL 后端里发现:管理员可以配置一份证书吊销列表(CRL,一份写明"这些证书已作废"的名单)。固件启动时会把这个文件读入证书库,读成功了,也不报错,但代码始终没有设置那一个让 OpenSSL 真正去核对名单的标志位。结果就是每次握手都返回成功,名单从未被翻过。

研究者用 6.1.0 版本配合某个 OpenSSL 版本做了实测:一张已被吊销、但确由受信任机构签发的客户端证书,在"开启签发者校验"的配置下,完整走完了双向认证握手。

二、关键事实梳理

2.1 一次发布,三个后端三种毛病

同一批披露涉及三个 TLS 后端,各有各的问题:

其一,OpenSSL 后端(默认),影响 3.4.5 至 6.1.0,吊销名单不生效,厂商自评 9.1。其二,LibreSSL 旧版验证器(3.2.x、3.3.2 至 3.3.6),客户端证书被要求、但签发者校验关闭时,一条 17 级证书链可以越过服务端 10 级的深度上限,直接进入受保护资源,自评 7.4。其三,Mbed TLS 后端(4.0.2 至 6.1.0),一处长度笔误把 2048 位密钥交换参数当成了单字节发送,服务端在握手时只报出 255 这个模数——共享密钥只剩八种可能,抓过流量的人离线试几次就能解开,自评 5.9,未获编号。

研究机构同时给出按后端识别设备的指纹工具,但指纹识别的是编译方式,不等于"这台设备一定有洞"。

2.2 修复早在八月,交付才是难点

6.1.1 在 8 月 2 日就已交给设备厂商,10 月 12 日公开发布,官方称可直接替换 6.1.0。同批共关闭 11 项通告,三项为严重级:除上述吊销缺陷,还有一处登录绕过——只要用户名存在、口令以新版哈希格式存储,任意口令都能登录,而表单登录正是内置管理页的默认方式。

但上游修完不等于设备修完。哪个后端、哪些校验开关,都是固件编译时定下的,用户从外部看不出来。截至 10 月 27 日,没有任何一家厂商公开说明自己是否已经发布重编后的固件,也无人报告在野利用。

还需留意:该项目已转入维护模式,新项目被导向另一套设备代理;团队同时承认,发布后仍有 174 项中低风险问题处于"接受风险"状态。

2.3 被击穿的是"撤销"本身

双向认证在设备侧并不稀奇:设备拿证书证明身份,服务器核对签发机构后放行。这套设计有个隐含前提——作废的凭证会被挡住。

吊销就是执行这个前提的手段。设备丢失、密钥被读出、退租、报废、被克隆,运维能做的是在名单上加一行。可在受影响的设备上,加了等于没加:拿到旧证书的人,权限和撤单前一模一样。

默认构建不启用双向认证、也不配名单,暴露面是"刻意加固过的部署"——这恰是最麻烦处:会去配名单的,都是真有安全要求的场景。

三、对厂商、用户与行业的影响

对设备厂商:拿别人的库,就是自己的责任。 一个编译选项决定设备是否受影响,用户却无法自查。厂商要回答三个问题:哪些在售型号用了受影响后端?能不能重编?老型号还发不发固件?答不上来,等于把风险留给客户。

对用户与运维方:撤得回来的撤单才算撤单。 三条动作:盘点哪些后台用证书登录、名单是否真生效(可做一次作废证书的握手验证);已停更型号按"凭证无法撤回"处理,移出网络边缘或加隔离;退租、返修、报废设备,别只做恢复出厂就交出去。

对行业:加固反而制造了盲区。 不做配置就不会中招,做了配置才踩坑——这种激励方向是错的。它也提示一件事:安全能力写在功能列表里没用,得能被验证。

四、标准视角的专业判断

撤销是鉴别能力的一部分,不是运维可选项。 GB/T 40349-2021 第 6.4.2.2 条要求模块具备与外部通信的鉴别能力、鉴别信息安全存储;6.4.2.3 条要求保密性、完整性与防重放,会话前完成密钥协商、密钥不少于 128 位、禁止明文保存。名单读了不生效,作废凭证面前这条"鉴别能力"就形同虚设。

密钥交换参数不得被削弱。 同一条款对会话密钥有明确底线。那处笔误把模数降到 255,强度只剩个位数比特——这是能用"抓包即可解密"验证出的硬伤,不是理论风险。

暴露在所有端口前也要能自保。 本组织牵头制定的 BSI-CC-PP-0110 说得很直接:即使端口与服务全部暴露、没有防火墙,安全通信模块也必须维持最低安全基线。管理后台正是被推到公网的组件,取舍点不能只是"能不能连上"。

身份不可克隆,撤销才有意义。 BSI-CC-PP-0109 要求安全芯片提供不可克隆的信任锚点、密钥不可经逻辑手段读出。吊销之所以是最后一道闸,是因为它假定别人手里那份钥匙打不开你的门;密钥一旦能复制,撤销就成了唯一防线,而它已经证明会失守。

固件更新必须验来源。 GB/T 40349-2021 6.4.2.7 条要求升级包做完整性校验与来源验证、失败保持原固件可用;GB/T 41789-2022 第 6.7 条要求更新通道防中间人、启动自检完整性。上游补丁能否落到设备,取决于这两条是否被认真执行。

五、趋势预判

第一,退出支持的基础组件会成为新的风险带。 维护模式意味着"只修不改",而依赖它的存量设备还要服役十年以上。"174 项接受风险"这种做法,会在下一轮审计里被逐项翻出来。

第二,审计重心会从"有没有加密"转向"加密的开关对不对"。 本轮三处问题没有一处不加密:握手都成功了,错在把该拦的放了过去。这类缺陷靠配置清单发现不了,只能靠作废凭证、超长证书链、弱参数这类反向测试去撞。

第三,证书生命周期会成为独立议题。 传统企业网络靠名单与在线查询,而大量边缘设备没有存储、没有稳定带宽、没有时钟同步。行业正转向短有效期证书——到期即失效,无须分发名单。但这考验设备的轮换能力与离线容忍度,也可能把"续不上证书"变成新的停机原因。

第四,采购口径会加上一句"提供者承担多久"。 设备里有多少第三方与开源组件,厂商未必说得清;但能否在支持期内把上游修复重编分发,可以写进合同。这一条比任何功能描述都更能说明安全水位。

**