1、PKI体系基础与设备身份信任模型

聊设备注册,绕不开PKI。说白了,公钥基础设施就是一套“发身份证、验身份证”的机制。我做了这么多年嵌入式安全,见过太多团队在证书链上栽跟头——要么是根证书没烧进去,要么是中间证书过期了没人管。嗯,咱们先把地基打牢。

1.1 核心概念:CA、证书、信任链

PKI里有三个角色,你得先搞清楚:

  • CA(Certificate Authority)——发证机关。它负责签发证书,也负责吊销证书。我习惯把CA比作“户籍科”。
  • 证书——就是数字身份证。里面绑定了公钥和身份信息,还有CA的签名。
  • 信任链——从设备证书一路追溯到根CA的路径。每一级都由上一级签名。

举个例子。你买了个智能电表,电表里烧录了设备证书。这个证书是谁签的?可能是中间CA1签的。中间CA1又是谁签的?根CA签的。根CA的证书是自签名的,也就是自己证明自己。你想想看,如果根CA都不靠谱,整条链就全废了。

关键认知:信任不是凭空产生的,它是沿着证书链一级一级传递下来的。设备信任根CA,CA信任中间CA,中间CA信任设备。这就是“信任传递”。

1.2 设备注册场景下的信任模型

设备注册,说白了就是设备第一次跟服务器打招呼,互相验明正身。这个场景下,常见的信任模型有三种:

信任模型 描述 我见过的坑
层次模型 单根CA,下面挂多级中间CA。结构清晰,管理方便。 根CA私钥泄露,整棵树都得重建。我曾经遇到过一个客户,根CA的HSM没锁好,被人读了私钥……
网状模型 多个CA互相交叉签名。灵活性高,但验证路径复杂。 验证时可能有多条路径,选哪条?我建议尽量别用,除非你团队有专职PKI工程师。
桥CA模型 用一个桥CA连接不同PKI域。常用于跨企业、跨组织的场景。 桥CA的策略映射容易出问题。我记得有一次,两个公司的证书策略字段不兼容,折腾了两周。

我个人习惯,在设备注册场景里优先选层次模型。为什么?因为嵌入式设备的资源有限,验证路径越短越好,层次模型最可控。

1.3 证书链验证的核心流程

设备注册时,服务器会收到设备发来的证书链。验证流程大致如下:

  1. 拆链——把收到的证书链拆成单个证书:设备证书、中间CA证书、根CA证书。
  2. 验签——从设备证书开始,用上一级证书的公钥验下一级证书的签名。一级一级往上推。
  3. 查有效期——每个证书的“有效期”字段都得检查。过期证书直接拒掉。
  4. 查吊销——通过CRL或OCSP检查证书是否被吊销。这一步很多人会忘,但很重要。
  5. 信任锚匹配——最后一级证书(根CA证书)必须跟本地预置的信任锚一致。

避坑指南:我曾经遇到一个项目,设备注册总是失败。查了半天,发现是设备证书链的顺序发反了——设备把自己证书放最后,根证书放最前面。服务器一拆链,全乱了。记住:证书链的顺序是从设备证书开始,逐级往上,根证书在最后。

1.4 信任锚的预置方式

信任锚,就是设备或服务器本地预置的根CA证书。没有它,你没法验证任何证书。预置方式主要有三种:

  • 烧录在固件里——最常见。生产时把根CA证书写进Flash或ROM。优点是简单,缺点是更新麻烦。
  • 存储在安全元件(SE)中——安全性最高。SE有防篡改能力,私钥和证书都出不来。我建议对安全要求高的设备用这种方式。
  • 通过带外通道注入——比如用NFC、二维码等方式在首次激活时注入。灵活性高,但需要额外的安全措施。

注意:信任锚一旦被篡改,整个信任体系就崩塌了。我曾经见过一个案例,攻击者通过固件升级替换了设备的信任锚,然后用自己的假CA签了个假证书,成功冒充了合法设备。所以,信任锚的存储区域一定要做写保护。

1.5 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你可以把它当作一个“思维导图”来看。

PKI体系与设备身份信任模型 PKI体系与设备身份信任模型 PKI 核心 CA(发证机关) 证书(数字身份证) 信任链(传递信任) 信任模型 验证流程 信任锚预置 层次模型 网状模型 桥CA模型 拆链 验签 查有效期 查吊销 信任锚匹配 固件烧录 安全元件 带外注入

这张图把PKI的核心拆成了三块:CA、证书、信任链。下面又挂了信任模型、验证流程和信任锚预置。你顺着箭头看,就能理解整个体系是怎么串起来的。