Skip to content

Commit

Permalink
📄 Docs: Updated.
Browse files Browse the repository at this point in the history
  • Loading branch information
Dynesshely committed Mar 3, 2024
1 parent 068ea77 commit 7efcfd8
Showing 1 changed file with 8 additions and 15 deletions.
23 changes: 8 additions & 15 deletions docs/rules/entire/kitx-encryption-ring.md
Original file line number Diff line number Diff line change
Expand Up @@ -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. 之后新的设备和加密环中任何一个设备配对, 都将自动开始与其他加密环中所有设备交换密钥

## 密钥交换过程

Expand All @@ -35,18 +38,8 @@ flowchart TB
end
subgraph Client.A
A(生成临时六位密码) --> |AES| B(用临时密码加密密钥)
A(生成临时八位密码) --> |AES| B(用临时密码加密密钥)
B --> |KWC| D
B --> C(将临时密码显示在屏幕中<br>提示用户在目标设备上输入这串密码)
end
```

## 加密通信

对于已交换密钥的设备, 在 KWC 报文中设置 `IsEncrypted` 字段为 `True` 即可标记该报文启用了加密通信
并需随报文附带 `EncryptionKeyId` 字段以便目标设备能使用正确的密钥解密报文

`EncryptionKeyId` 由密钥提供方提供, 且在密钥交换过程中已经交换, 其值为密钥的 SHA256 哈希值



0 comments on commit 7efcfd8

Please sign in to comment.