专有名词
名词 | 中文解释 | 英文全称 |
---|---|---|
DCL | 分布式加密安全网络 | distributed compliance ledger |
PKI | 设备认证公钥基建 | Device Attestation Public Key Infrastructure |
PAA | 产品认证机构 | Product Attestation Authority |
PAI | 中间产品认证,由 PAA 签发 | Product Attestation Intermediat |
DAC | 设备认证证书,由 PAA 或者 PAI 签发 | Device Attestation Certification |
RCAC | 根证书 | Root Certificate Authority Certificate |
ICAC | 中间证书 | Intermediate Certificate Authority Certificate |
NOC | 节点操作证书 | Node Operational Certificate |
CD | 证书声明 | Certification Declaration |
Commissioning | 通过分配操作节点 ID 和节点操作凭据将节点引入结构的操作序列 | Sequence of operations to bring a Node into a Fabric by assigning anOperational Node ID and Node Operational credentials. |
Commissioner | 执行调试的节点的角色 | A Role of a Node that performs Commissioning. |
Commissionee | 一个被委托成为节点的实体 | An entity that is being Commissioned to become a Node. |
Fabric | 通信节点的逻辑集合,共享公共信任根和公共分布式配置状态 | A logical collection of communicating Nodes, sharing a common root of trust,and a common distributed configuration state. |
PASE | 用于Commissioning时建立首个单播安全会话,核心是利用Passcode协商出共享密钥,PASE是安全会话生命周期中的握手阶段 Passcode:用于使用PASE建立首个安全会话,通常Passcode是印在二维码上或者以NFC tag的方式通过近场通信获取到。 |
Passcode-Authenticated Session Establishment |
PAKE | 使用弱密钥参与共享密钥协商的算法 | Password-Authenticated Key Exchange |
CASE | 用于除了使用PASE以外的所有单播安全会话,CASE是安全会话生命周期中的握手阶段 | Certificate Authenticated Session Establishment |
配网
整体流程
Step1:建立 PASE 会话
预备知识
- PBKDF:是一种基于密码的密钥派生函数;由比如
20202021
这样的简单密码通过一系列转换,生成比如0s45XD2_d6@f*ads8Y92wlEsSvIjsl9
这样复杂的密码; - SPAKE2+:是 PBKDF 的其中一种非常安全的算法,它是一种基于密码协商的密钥派生算法;它基于”椭圆曲线”,或者”素数域上的加法群”。
协商对称密钥
- 首先,双方协商 PBKDF 的参数,比如 哈希函数,迭代次数,盐,密钥长度等等;
- 然后,通过带外传输的
简单密码
使用SPAKE2+
进行协商,算出对称密钥 SharedKey; - PASE 会话建立成功,使用 SharedKey 进行后续的数据交换;
Step2:设备认证(Device Attestation)
预备知识
DCL,PAA,PAI,DAC 都是为了校验设备的合法性
- DCL
- 采用区块链技术,由供应商、测试机构、CSA认证中心共同维护。
- 成员各自独立管理各自的数据中心,在 DCL 中包含设备信息,PAA 列表;
- PAA:各厂商的设备根证书;
- DAC:被 PAA 或者 PAI 签发,烧录进设备中;
认证过程:
- App 生成 nonce,发给设备请求提供认证信息;
- 设备使用 DAC 私钥为其加签,并返回给 App;
- App 根据通过 DAC 追溯到 PAA,然后到 DCL 中去查询是否合法;
Step3:NOC
NOC 格式
NOC 中包含 Fabric Id 和 NodeId(Node Operational Identifier)
流程
- 设备生成 NOC 公私钥,并将公钥发给 App;(私钥永远不会走网络,只会保存在本地)
- App 使用ICAC将NOC公钥加签;
- App 将 NOC 公钥返回给设备;
Step4:ACL
预备知识
-
ACL 可以出现在 PASE 阶段,也可以出现在 CASE 阶段;
-
在 PASE 阶段,将当前本步骤最重要的是将 App 节点加入到设备的 ACL 中,以供后续的交互;
过程
- HOLDER
到此为止,调试模式结束,PASE 通道关闭;配网完成;
后续所有的连接,都会基于 CASE 会话;
连接
CASE 会话
预备知识
- SIGMA:基于 Diffie-Hellman 算法的密钥协商协议;因为 Diffie-Hellman 在安全性上不能阻止中间人攻击,重防攻击以及 Identity Misbinding 攻击,所以 SIGMA 通过签名和消息认证 的方式的方式解决此类问题。