⚠️ 法律提示及免责声明KaleidoTalk 是一个开源的端到端加密聊天软件仅供技术学习和合法用途。作者不运营任何公开的 KaleidoTalk 服务器。如果您计划在公网部署本软件请自行确保符合所在地法律法规。详细的合规声明请参阅 COMPLIANCE.md。✨ V3.0 新增亮点基于真实代码对比特性V2.2基线V3.0新增强传输加密明文 TCP JSON 长度头TLS 1.2 自签名证书 TOFU 信任密钥轮换固定 X25519 密钥生命周期内不变X25519 密钥每24 小时自动轮换支持多版本共存账户冻结无不可逆冻结凭恢复密钥被盗后永久锁定流量混淆固定大小 JSON 包长度头所有包固定2048 字节 随机填充 随机心跳3.3–6.7sGUI 界面传统 Ctk 文本框聊天现代气泡聊天 UI头像、未读红点、深色主题、托盘闪烁配置管理硬编码参数服务端config.json 客户端持久化配置管理员工具admin.py邀请码/封禁新增freeze_account.py独立冻结工具测试覆盖无集成测试包含端到端集成测试密钥轮换、冻结流程注意V2.2 已具备Ed25519X25519AES-GCM 加密、双模式私钥存储服务器托管 / 本地、BIP39 指纹单词验证、离线消息、DoS 防护和邀请码注册这些基础能力在 V3.0 中保留并增强。 功能概览V3.0功能说明端到端加密Ed25519 X25519 AES-256-GCM消息仅收发双方可解密密钥自动轮换每天生成新的 X25519 密钥历史消息不受未来密钥泄露影响不可逆账户冻结注册时生成恢复密钥账户被盗后可永久冻结任何人无法解冻双模式私钥存储服务器加密托管跨设备登录或完全本地存储永不离开设备TLS TOFU 信任传输层 TLS 加密首次连接时显示 BIP39 单词验证证书指纹无 CA 依赖流量混淆固定包长 随机填充 随机心跳抵抗流量分析用户指纹验证通过 BIP39 单词核对好友身份防止中间人攻击离线消息队列用户上线后自动接收离线期间的消息IP / 用户封禁管理员可封禁恶意 IP 或用户支持临时 / 永久DoS 防护注册 / 登录频率限制自动封禁异常 IP现代 GUI基于 CustomTkinter 的气泡聊天界面支持深色主题、系统托盘、任务栏闪烁 核心加密协议V3.0 增强V3.0 在原有加密体系上加入了密钥轮换和TLS组件算法用途身份密钥Ed25519数字签名验证消息发送者身份密钥交换X25519ECDH 协商共享密钥支持多版本对称加密AES-256-GCM消息加密同时提供认证密钥派生HKDF-SHA256从 ECDH 共享密钥派生 AES key 和 nonce密码存储PBKDF2-SHA256 (600k 迭代)服务端存储密码哈希传输层TLS 1.2自签名证书保护客户端与服务器之间的通信防止窃听消息加密流程V3.0发送方生成临时 X25519 密钥对ECDH 与接收方最新公钥根据key_id选择协商共享密钥HKDF 派生 AES key 和 nonceAES-256-GCM 加密消息使用发送方的 Ed25519 私钥对临时公钥 密文 tag签名将加密包携带key_id通过 TLS 发送给服务器服务器转发给接收方TLS 加密通道接收方根据key_id找到对应的历史 X25519 私钥验证签名并解密密钥轮换机制客户端启动后检查上次轮换时间若超过 24 小时则自动生成新 X25519 密钥对。新密钥加密后上传服务器并用 Ed25519 签名认证。服务器保留最近多个密钥版本确保旧消息仍可解密。轮换过程对用户完全透明。账户冻结机制注册时生成 Ed25519 恢复密钥对私钥保存在本地local_keys/username_recovery.priv。若账户被盗用户可使用恢复密钥签名一条冻结指令发送给服务器。服务器验证签名后将账户标记为frozen并强制踢出所有在线会话。该操作不可逆服务器管理员也无法解冻。️ 工程实现与架构解析V3.0整体架构仍采用经典的 C/S 模型但 V3.0 增加了TLS 传输加密和覆盖流量模块[客户端A] --TLS 固定包-- [服务器] --TLS 固定包-- [客户端B]服务器用户认证、消息转发、离线存储无法解密消息内容客户端密钥管理、加密/解密、信任库、自动轮换模块划分V3.0 新增KaleidoTalk/ ├── run_client.py # 客户端入口 ├── run_server.py # 服务端入口 ├── admin.py # 管理员脚本邀请码、封禁 ├── freeze_account.py # 独立账户冻结工具 ← 新增 ├── reset.bat # 重置脚本 ├── src/ │ ├── client/ │ │ ├── chat_client.py # 客户端核心逻辑含轮换、冻结 │ │ └── chat_gui.py # 现代气泡 UI │ ├── server/ │ │ ├── config.py # 配置文件加载 ← 新增 │ │ ├── server.py # 服务器主循环TLS 覆盖流量 │ │ ├── server_commands.py # 命令处理含 rotate_key, freeze_account │ │ ├── server_session.py # 会话管理、DoS │ │ └── server_storage.py # 数据持久化 │ ├── common/ │ │ ├── crypto_utils.py # 加密原语 │ │ ├── padding.py # 固定包协议分片、重组、心跳← 新增 │ │ └── network.py # 旧版长度头协议兼容 ├── test/ # 集成测试 ← 新增 └── requirements.txt通信协议V3.0 升级覆盖流量V3.0 引入padding.py所有数据包封装为2048 字节固定长度包格式[1字节类型][2字节长度][2字节序号][2字节总数][变长数据][随机填充]分片与重组支持大数据分片发送和接收端重组心跳每隔 3.3~6.7 秒发送纯填充包保持流量模式恒定目的有效抵抗基于包大小和发送时序的流量分析服务端新增特性TLS 自签名证书启动时自动生成TOFU 信任模型配置文件config.json可设置主机、端口、安全参数、日志级别等密钥轮换支持处理rotate_key命令存储多版本密钥账户冻结处理freeze_account命令验证恢复签名并冻结客户端新增特性自动密钥轮换定时任务检查并执行轮换恢复密钥保存注册时生成.priv文件并提示备份现代 GUI气泡消息、头像、未读红点、右键菜单、托盘闪烁 快速上手指南V3.0环境要求Python 3.8依赖cryptography,pystray,Pillow,customtkinter下载与安装git clone https://github.com/hbzsoft/KaleidoTalk.git cd KaleidoTalk pip install -r requirements.txt启动服务器python run_server.py首次启动设置管理员密码用于保护服务器私钥。启动后TLS 证书自动生成日志显示服务器指纹。启动客户端python run_client.py点击「连接」输入服务器地址默认127.0.0.1:5555首次连接会弹出TLS 证书的 6 个 BIP39 单词请通过安全渠道与管理员确认然后「信任」注册账号用户名 3-20 位字母数字密码至少 8 位含字母数字注册成功后系统提示保存恢复密钥重要登录后即可与在线用户聊天管理员命令V3.0# 邀请码管理 python admin.py invites add --count 5 --uses 1 --length 8 python admin.py invites set-require true python admin.py invites list # 封禁管理 python admin.py ban ip 192.168.1.10 --duration 3600 python admin.py unban ip 192.168.1.10 python admin.py ban user alice python admin.py list-bans # 用户管理 python admin.py users list python admin.py users delete alice紧急冻结账户python freeze_account.py --server 127.0.0.1:5555 --username alice --recovery-key local_keys/alice_recovery.priv警告此操作不可逆请确认后再执行。 技术亮点V3.0传输加密 覆盖流量TLS 保护信道固定包和心跳掩盖元数据密钥生命周期管理自动轮换多版本共存降低泄露影响用户自救机制不可逆冻结为极端情况提供最后防线去中心化信任TOFU BIP39 单词无需 CA工程完备性配置文件、集成测试、独立冻结工具、完整文档 未来计划文件传输分块加密群聊组密钥分发音视频通话WebRTC移动端客户端 许可证与致谢KaleidoTalk 采用GNU General Public License v3.0开源。
端到端加密项目 KaleidoTalk V3.0:你的聊天记录,只有你能看见
发布时间:2026/7/7 9:14:55
⚠️ 法律提示及免责声明KaleidoTalk 是一个开源的端到端加密聊天软件仅供技术学习和合法用途。作者不运营任何公开的 KaleidoTalk 服务器。如果您计划在公网部署本软件请自行确保符合所在地法律法规。详细的合规声明请参阅 COMPLIANCE.md。✨ V3.0 新增亮点基于真实代码对比特性V2.2基线V3.0新增强传输加密明文 TCP JSON 长度头TLS 1.2 自签名证书 TOFU 信任密钥轮换固定 X25519 密钥生命周期内不变X25519 密钥每24 小时自动轮换支持多版本共存账户冻结无不可逆冻结凭恢复密钥被盗后永久锁定流量混淆固定大小 JSON 包长度头所有包固定2048 字节 随机填充 随机心跳3.3–6.7sGUI 界面传统 Ctk 文本框聊天现代气泡聊天 UI头像、未读红点、深色主题、托盘闪烁配置管理硬编码参数服务端config.json 客户端持久化配置管理员工具admin.py邀请码/封禁新增freeze_account.py独立冻结工具测试覆盖无集成测试包含端到端集成测试密钥轮换、冻结流程注意V2.2 已具备Ed25519X25519AES-GCM 加密、双模式私钥存储服务器托管 / 本地、BIP39 指纹单词验证、离线消息、DoS 防护和邀请码注册这些基础能力在 V3.0 中保留并增强。 功能概览V3.0功能说明端到端加密Ed25519 X25519 AES-256-GCM消息仅收发双方可解密密钥自动轮换每天生成新的 X25519 密钥历史消息不受未来密钥泄露影响不可逆账户冻结注册时生成恢复密钥账户被盗后可永久冻结任何人无法解冻双模式私钥存储服务器加密托管跨设备登录或完全本地存储永不离开设备TLS TOFU 信任传输层 TLS 加密首次连接时显示 BIP39 单词验证证书指纹无 CA 依赖流量混淆固定包长 随机填充 随机心跳抵抗流量分析用户指纹验证通过 BIP39 单词核对好友身份防止中间人攻击离线消息队列用户上线后自动接收离线期间的消息IP / 用户封禁管理员可封禁恶意 IP 或用户支持临时 / 永久DoS 防护注册 / 登录频率限制自动封禁异常 IP现代 GUI基于 CustomTkinter 的气泡聊天界面支持深色主题、系统托盘、任务栏闪烁 核心加密协议V3.0 增强V3.0 在原有加密体系上加入了密钥轮换和TLS组件算法用途身份密钥Ed25519数字签名验证消息发送者身份密钥交换X25519ECDH 协商共享密钥支持多版本对称加密AES-256-GCM消息加密同时提供认证密钥派生HKDF-SHA256从 ECDH 共享密钥派生 AES key 和 nonce密码存储PBKDF2-SHA256 (600k 迭代)服务端存储密码哈希传输层TLS 1.2自签名证书保护客户端与服务器之间的通信防止窃听消息加密流程V3.0发送方生成临时 X25519 密钥对ECDH 与接收方最新公钥根据key_id选择协商共享密钥HKDF 派生 AES key 和 nonceAES-256-GCM 加密消息使用发送方的 Ed25519 私钥对临时公钥 密文 tag签名将加密包携带key_id通过 TLS 发送给服务器服务器转发给接收方TLS 加密通道接收方根据key_id找到对应的历史 X25519 私钥验证签名并解密密钥轮换机制客户端启动后检查上次轮换时间若超过 24 小时则自动生成新 X25519 密钥对。新密钥加密后上传服务器并用 Ed25519 签名认证。服务器保留最近多个密钥版本确保旧消息仍可解密。轮换过程对用户完全透明。账户冻结机制注册时生成 Ed25519 恢复密钥对私钥保存在本地local_keys/username_recovery.priv。若账户被盗用户可使用恢复密钥签名一条冻结指令发送给服务器。服务器验证签名后将账户标记为frozen并强制踢出所有在线会话。该操作不可逆服务器管理员也无法解冻。️ 工程实现与架构解析V3.0整体架构仍采用经典的 C/S 模型但 V3.0 增加了TLS 传输加密和覆盖流量模块[客户端A] --TLS 固定包-- [服务器] --TLS 固定包-- [客户端B]服务器用户认证、消息转发、离线存储无法解密消息内容客户端密钥管理、加密/解密、信任库、自动轮换模块划分V3.0 新增KaleidoTalk/ ├── run_client.py # 客户端入口 ├── run_server.py # 服务端入口 ├── admin.py # 管理员脚本邀请码、封禁 ├── freeze_account.py # 独立账户冻结工具 ← 新增 ├── reset.bat # 重置脚本 ├── src/ │ ├── client/ │ │ ├── chat_client.py # 客户端核心逻辑含轮换、冻结 │ │ └── chat_gui.py # 现代气泡 UI │ ├── server/ │ │ ├── config.py # 配置文件加载 ← 新增 │ │ ├── server.py # 服务器主循环TLS 覆盖流量 │ │ ├── server_commands.py # 命令处理含 rotate_key, freeze_account │ │ ├── server_session.py # 会话管理、DoS │ │ └── server_storage.py # 数据持久化 │ ├── common/ │ │ ├── crypto_utils.py # 加密原语 │ │ ├── padding.py # 固定包协议分片、重组、心跳← 新增 │ │ └── network.py # 旧版长度头协议兼容 ├── test/ # 集成测试 ← 新增 └── requirements.txt通信协议V3.0 升级覆盖流量V3.0 引入padding.py所有数据包封装为2048 字节固定长度包格式[1字节类型][2字节长度][2字节序号][2字节总数][变长数据][随机填充]分片与重组支持大数据分片发送和接收端重组心跳每隔 3.3~6.7 秒发送纯填充包保持流量模式恒定目的有效抵抗基于包大小和发送时序的流量分析服务端新增特性TLS 自签名证书启动时自动生成TOFU 信任模型配置文件config.json可设置主机、端口、安全参数、日志级别等密钥轮换支持处理rotate_key命令存储多版本密钥账户冻结处理freeze_account命令验证恢复签名并冻结客户端新增特性自动密钥轮换定时任务检查并执行轮换恢复密钥保存注册时生成.priv文件并提示备份现代 GUI气泡消息、头像、未读红点、右键菜单、托盘闪烁 快速上手指南V3.0环境要求Python 3.8依赖cryptography,pystray,Pillow,customtkinter下载与安装git clone https://github.com/hbzsoft/KaleidoTalk.git cd KaleidoTalk pip install -r requirements.txt启动服务器python run_server.py首次启动设置管理员密码用于保护服务器私钥。启动后TLS 证书自动生成日志显示服务器指纹。启动客户端python run_client.py点击「连接」输入服务器地址默认127.0.0.1:5555首次连接会弹出TLS 证书的 6 个 BIP39 单词请通过安全渠道与管理员确认然后「信任」注册账号用户名 3-20 位字母数字密码至少 8 位含字母数字注册成功后系统提示保存恢复密钥重要登录后即可与在线用户聊天管理员命令V3.0# 邀请码管理 python admin.py invites add --count 5 --uses 1 --length 8 python admin.py invites set-require true python admin.py invites list # 封禁管理 python admin.py ban ip 192.168.1.10 --duration 3600 python admin.py unban ip 192.168.1.10 python admin.py ban user alice python admin.py list-bans # 用户管理 python admin.py users list python admin.py users delete alice紧急冻结账户python freeze_account.py --server 127.0.0.1:5555 --username alice --recovery-key local_keys/alice_recovery.priv警告此操作不可逆请确认后再执行。 技术亮点V3.0传输加密 覆盖流量TLS 保护信道固定包和心跳掩盖元数据密钥生命周期管理自动轮换多版本共存降低泄露影响用户自救机制不可逆冻结为极端情况提供最后防线去中心化信任TOFU BIP39 单词无需 CA工程完备性配置文件、集成测试、独立冻结工具、完整文档 未来计划文件传输分块加密群聊组密钥分发音视频通话WebRTC移动端客户端 许可证与致谢KaleidoTalk 采用GNU General Public License v3.0开源。