v2.0: 新增 ChaosCryptChat 端到端加密聊天系统 + 更新文档

This commit is contained in:
dvs
2026-08-26 16:02:23 +08:00
parent 79f4ad8b78
commit 124b511d5f
5 changed files with 4765 additions and 6 deletions
+67
View File
@@ -765,4 +765,71 @@ DeriveKey(K\_user, K\_short, n) 包含:
================================================================================
================================================================================
十、ChaosCryptChat 聊天模块安全分析(v2.0)
================================================================================
本部分分析 ChaosCryptChat(端到端加密聊天系统)的安全模型。
10.1 威胁模型
假设:
- 中央服务器可被攻击者完全控制(最坏情况)
- 网络传输可被监听、篡改、重放
- 客户端本地文件可信(不讨论端侧木马)
10.2 端到端加密
消息路径:
明文 → 混沌加密(群密钥 + nonce 派生消息密钥)→ 密文 → 网络 → 密文 → 混沌解密 → 明文
关键属性:
- 群密钥只存在于客户端本地,永不上传服务器
- 服务器仅中继密文,无法解密任何消息
- 每条消息使用独立 nonce 派生消息密钥,避免重放
- HMAC-SHA256 完整性校验:密文被篡改将导致解密失败
10.3 中央服务器模型
服务器职责:用户认证 + 群成员管理 + 消息中继
服务器不持有:
- 群密钥(session key)
- 消息明文
- 每用户密钥(user key,经服务器持有密钥加密后下发)
服务器被攻陷的影响:
- 无法解密历史或实时聊天内容
- 可能泄露:用户名、登录时间、中继日志、群成员关系
- 可实施:拒绝服务、成员关系观察(元数据泄露)
10.4 身份认证
用户密码:PBKDF2-HMAC-SHA256,120,000 次迭代 + 随机盐
每用户密钥:加入群时签发,用于 HMAC 签名,防止成员冒充他人
群密钥认证:加入群需提供群密钥派生的认证凭据,证明是群成员
10.5 消息完整性
文本/语音/文件消息均携带 HMAC:
- 文本: HMAC(密文 + 群密钥)
- 二进制: HMAC('BIN|' + 群密钥 + nonce + 密文)
篡改检测:接收方重算 HMAC 不匹配 → 拒绝消息
10.6 已知限制
1. 端到端(P2P)模式下,群主主机既是聊天者又是服务器,若群主被攻陷则群聊失守
2. 服务器虽无法解密内容,但能观察到元数据(谁和谁在何时通信)
3. 群密钥通过群主手动分享,存在被截获的风险(需可信渠道传递)
4. 语音播放/录音依赖第三方库(pygame/sounddevice),其安全性不在本系统保证范围
5. 消息撤回仅做本地标记 + 服务器广播,已离线成员仍可能看到撤回前的消息
10.7 结论
ChaosCryptChat 提供端到端加密 + 完整性校验 + 身份认证,服务器无法解密内容。
其安全边界符合"服务器不可信"模型,适合对隐私有要求但不涉及合规认证的通信场景。
元数据泄露与密钥分享渠道仍需用户自行权衡与管理。
================================================================================