2. 安全基础概念:对称加密与非对称加密、哈希函数与消息认证码、数字证书与公钥基础设施
好,我们正式开始拆解 Matter 安全架构的「地基」。这一章的内容,说白了就是密码学里的几块核心积木。你如果不把它们搞清楚,后面看 Matter 的认证、会话建立、消息加密,会一头雾水。
我个人习惯,讲安全基础从来不从数学公式开始。咱们从「场景」出发。你想想看,两个设备在智能家居网络里第一次见面,它们要解决什么问题?
- 你是谁? —— 身份认证
- 你说的话被人篡改过吗? —— 完整性
- 你说的话被别人偷听了吗? —— 机密性
- 你事后不认账怎么办? —— 不可否认性
这四大问题,就是靠下面这几类密码学工具来解决的。咱们一个一个过。
2.1 对称加密:一把钥匙开一把锁
对称加密,顾名思义,加密和解密用的是同一把密钥。就像你用一把钥匙锁门,也用同一把钥匙开门。
在 Matter 里,对称加密主要用于设备配网后的单播通信。一旦设备建立了安全通道,后续的控制指令、状态上报,都是用对称加密来保护的。为什么?因为它快,非常快。硬件加速后,加解密一个数据包几乎不消耗时间。
常用的算法,Matter 里指定的是 AES-CCM。这是一种「认证加密」模式,它同时提供了机密性和完整性校验。我在项目中遇到过,有些工程师把 AES 和 AES-CCM 搞混,以为只要用了 AES 就安全了。其实不然,AES 只是分组加密算法,CCM 模式才定义了如何用 AES 来同时加密和做消息认证。
核心要点:对称加密的瓶颈在于密钥分发。配网阶段,设备怎么安全地拿到这把共享密钥?这就是非对称加密要解决的问题。
| 特性 | 对称加密 | 非对称加密 |
|---|---|---|
| 密钥数量 | 1 个(共享密钥) | 2 个(公钥 + 私钥) |
| 计算速度 | 快(硬件加速后极快) | 慢(比对称加密慢 100-1000 倍) |
| 典型用途 | 批量数据加密 | 密钥交换、数字签名 |
| Matter 应用 | 单播通信(AES-CCM) | 配网认证(ECDH + ECDSA) |
2.2 非对称加密:公钥放出去,私钥藏起来
非对称加密,有一对密钥:公钥和私钥。公钥可以公开,谁都可以知道;私钥只有自己知道。用公钥加密的数据,只能用对应的私钥解密。反过来,用私钥签名的数据,可以用公钥验证。
在 Matter 的配网流程里,非对称加密扮演了关键角色。设备第一次和手机(或网关)交互时,它们之间还没有共享密钥。这时候,它们会通过 ECDH(椭圆曲线 Diffie-Hellman) 密钥交换协议,在不安全的信道上协商出一个只有它们俩知道的共享密钥。这个过程,就是靠非对称加密来保证的。
我记得有一次调试一个 Matter 设备,配网总是失败。抓包一看,发现是 ECDH 的公钥格式不对。Matter 要求使用 SECP256R1 曲线,但设备固件里写死了 SECP256K1(比特币用的那条曲线)。嗯,这里要注意,曲线选错,密钥交换直接失败,没有任何商量余地。
避坑指南:我曾经在项目里看到有人把非对称加密的私钥直接硬编码在固件里。这是绝对禁止的。私钥必须在设备生产时,由安全芯片生成并存储在安全存储区,永远不能以明文形式出现在固件镜像中。
2.3 哈希函数与消息认证码:防篡改的利器
哈希函数,能把任意长度的数据,压缩成一个固定长度的「指纹」。这个指纹是唯一的,哪怕原文只改了一个比特,哈希值也会变得面目全非。Matter 里用的哈希算法是 SHA-256。
但光有哈希还不够。你想想看,如果攻击者篡改了消息,然后重新计算了哈希值附在后面,接收方怎么知道这个哈希是原始的还是伪造的?
这时候就需要 消息认证码(MAC) 了。MAC 是带密钥的哈希。只有知道密钥的人,才能计算出正确的 MAC。Matter 里用的就是前面提到的 AES-CCM 模式,它内部就集成了 MAC 计算。发送方用密钥加密数据并生成 MAC,接收方用同样的密钥解密并验证 MAC。MAC 对不上,直接丢弃数据包。
小提示:哈希函数还有一个重要用途——证书指纹。数字证书本身是一段 DER 编码的二进制数据,我们通常用 SHA-256 计算它的哈希值,作为证书的唯一标识。在 Matter 的证书链验证中,这个指纹经常被用来快速查找和比对证书。
2.4 数字证书与公钥基础设施:信任的锚点
好,现在问题来了。非对称加密里,公钥是公开的。但你怎么确定你拿到的公钥,真的是那个设备的公钥,而不是攻击者伪造的?
这就是数字证书要解决的问题。数字证书,本质上是一个数字身份证。它把公钥和持有者的身份信息绑定在一起,然后由一个大家都信任的第三方——证书颁发机构(CA)——进行数字签名。
Matter 的整个安全体系,就是建立在这个 公钥基础设施(PKI) 之上的。Matter 定义了一套严格的证书层级:
- 根 CA(PAA):Matter 联盟控制的顶级 CA,是所有信任的起点。
- 中间 CA(PAI):由根 CA 签发,每个设备制造商可以有自己的中间 CA。
- 设备证书(DAC):由中间 CA 签发,每个设备出厂时烧录的唯一身份证书。
配网时,设备会把自己的 DAC 和 PAI 证书发给手机。手机端会做两件事:第一,验证证书链,从 DAC 一路追溯到根 CA,确保证书没有被篡改;第二,用 DAC 里的公钥验证设备的签名,证明设备确实拥有对应的私钥。
我建议你在设计 Matter 产品时,一定要把证书的生命周期管理考虑进去。证书有有效期,过期了怎么办?设备需要支持 OTA 更新证书吗?这些都是在产品规划阶段就要想清楚的问题。
2.5 把这些概念串起来:Matter 配网中的一次握手
光讲概念太抽象。咱们用 Matter 配网的一个简化流程,把这些工具串起来看看。
- 设备广播:设备上电后,通过 BLE 或 Wi-Fi 广播自己的存在。
- 手机发起配网:手机扫描到设备,发起配网请求。
- 证书交换:设备把自己的 DAC 和 PAI 证书发给手机。手机验证证书链。
- 密钥交换:手机和设备通过 ECDH 协商出一个临时共享密钥。这一步,双方用各自的私钥对交换的数据进行签名,用对方的公钥验证签名。这就是「签名 + 验证」的过程。
- 派生会话密钥:协商出的共享密钥,通过 HKDF(基于 HMAC 的密钥派生函数)派生出后续通信用的对称加密密钥。
- 安全通信:后续所有指令,都用 AES-CCM 进行加密和完整性保护。
你看,整个流程里,非对称加密(ECDH + ECDSA)用来解决「信任建立」和「密钥分发」的问题,对称加密(AES-CCM)用来解决「高效通信」的问题,哈希函数(SHA-256)和数字证书用来解决「身份认证」和「防篡改」的问题。缺一个都不行。
一句话总结:非对称加密是「慢但安全」的握手,对称加密是「快且高效」的对话。数字证书是「身份证」,PKI 是「公安局」。Matter 把这套组合拳打得非常漂亮。