diff --git a/docs/rules/entire/kitx-encryption-ring.md b/docs/rules/entire/kitx-encryption-ring.md index 784f3b05..45f1f26c 100644 --- a/docs/rules/entire/kitx-encryption-ring.md +++ b/docs/rules/entire/kitx-encryption-ring.md @@ -6,10 +6,13 @@ description: 本页有关 KitX 加密环的运作原理 # KitX 加密环运作原理 -1. 每个客户端在启用 "加密环" 时生成一对 RSA 密钥对存储在本地 -2. 用户启用 "加密环" 后, 可手动添加要加密通信的目标设备 (目标设备也需启用 "加密环") -3. 若目标设备启用了 "加密环", 则开始密钥交换过程 -4. 若目标设备未启用 "加密环", 则弹窗提示用户目标设备未启用 "加密环" +1. 每个客户端在初次启动时生成一对 RSA 密钥对存储在本地 +2. 用户需在设备页面选择新设备选择开始密钥交换过程来交换密钥 +3. 本机 (A) 会弹窗显示一个临时的八位数字密码, 密钥信息使用 AES 加密后发送给目标设备 (B) +4. 目标设备 (B) 收到密钥信息后, 会弹窗提示用户输入临时密码, 输入正确后解密密钥信息并存储在本地 +5. 目标设备 (B) 成功解密后, 会将自己的密钥信息使用相同的临时密码加密后发送给本机 (A) +6. 结束密钥交换过程 +7. 之后新的设备和加密环中任何一个设备配对, 都将自动开始与其他加密环中所有设备交换密钥 ## 密钥交换过程 @@ -35,18 +38,8 @@ flowchart TB end subgraph Client.A - A(生成临时六位密码) --> |AES| B(用临时密码加密密钥) + A(生成临时八位密码) --> |AES| B(用临时密码加密密钥) B --> |KWC| D B --> C(将临时密码显示在屏幕中
提示用户在目标设备上输入这串密码) end ``` - -## 加密通信 - -对于已交换密钥的设备, 在 KWC 报文中设置 `IsEncrypted` 字段为 `True` 即可标记该报文启用了加密通信 -并需随报文附带 `EncryptionKeyId` 字段以便目标设备能使用正确的密钥解密报文 - -`EncryptionKeyId` 由密钥提供方提供, 且在密钥交换过程中已经交换, 其值为密钥的 SHA256 哈希值 - - -