当前稳定版本:V2.3 | 适用于 Windows / Linux / macOS
⬇️ 下载 release.zip解压后运行 python run_server.py 启动服务端,python run_client.py 启动客户端
KaleidoTalk = Kaleidoscope(万花筒)+ Talk(对话) —— 这是一个为隐私而生的名字,每一个字母都藏着我们对端到端加密的理解。
—— 你的每一次对话,都只属于你自己。 ——
Ed25519身份密钥 + X25519密钥交换,消息仅收发双方可解密。服务器只存储密文,无法读取任何通信内容。
所有数据包固定为 2048 字节,真实数据填充随机字节;心跳包以随机间隔(3.3~6.7 秒)持续发送,有效防御基于包长度和时间间隔的流量分析。
自签名证书 + TOFU 信任模型,首次连接通过 BIP39 单词核对证书指纹,防止中间人攻击。
可选择将私钥加密存放于服务器(多设备登录),或仅本地存储,私钥永不离开本机。
公钥指纹转换为 6 个英文单词(BIP39 词表),便于通过电话、当面等安全渠道核对身份。
好友离线时自动缓存消息,上线后立即送达,不错过任何重要对话。
支持邀请码注册机制,IP/用户封禁,注册/登录限流,管理员可远程管理黑白名单。
基于 CustomTkinter 的现代图形界面,支持系统托盘、消息闪烁提醒,开箱即用。
| 组件 | 算法 | 用途 |
|---|---|---|
| 身份密钥 | Ed25519 | 数字签名,验证消息发送者身份 |
| 密钥交换 | X25519 (ECDH) | 协商临时共享密钥 |
| 对称加密 + 认证 | AES-256-GCM | 消息加密和完整性校验 |
| 密钥派生 | HKDF-SHA256 | 从 ECDH 共享密钥派生 AES key 与 nonce |
| 密码存储 | PBKDF2-SHA256 (600k 迭代) | 服务端存储密码哈希,抵抗暴力攻击 |
| 传输层加密 | TLS 1.2+ (RSA 2048) | 保护客户端‑服务器通信(自签名证书 + TOFU) |
📬 消息加密流程: 临时X25519密钥对 → ECDH交换 → HKDF派生密钥 → AES-256-GCM加密 → Ed25519签名 → 接收方验证签名并解密。
💡 这正是 KaleidoTalk 名字的“变幻”含义:每条消息的临时密钥都是全新的,加密图案永不重复。
cryptography , pystray , Pillow , customtkinterpip install cryptography pystray Pillow customtkinter
python run_server.py
首次启动需要设置管理员密码,用于保护服务器密钥(自动生成在 server_keys/)。
python run_client.py
默认连接 127.0.0.1:5555,可手动修改服务器地址。注册、登录后即可与在线用户端到端加密通信。
# 生成邀请码
python admin.py invites add --count 5 --uses 1 --length 8
# 设定注册需要邀请码
python admin.py invites set-require true
# 封禁IP / 用户
python admin.py ban ip 192.168.1.10 --duration 3600
python admin.py ban user alice
python admin.py list-bans
首次连接时核对服务器 TLS 证书指纹(BIP39 单词),通过后自动记录。后续连接自动比对,防止中间人攻击。服务器 Ed25519 公钥通过 TLS 通道安全下发,无需用户额外确认。
双方通信前可通过安全渠道(当面/电话)比对指纹单词(如 "apple zebra ..."),验证通过后自动信任,后续消息解密显示。
信任记录使用 HMAC-SHA256 完整性保护,防止恶意篡改。
KaleidoTalk 是自由软件,采用 GNU General Public License v3.0 授权。
你可以在遵守 GPLv3 条款的前提下自由使用、修改和分发。
KaleidoTalk Copyright (C) 2026 Bangze Han
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
🎓 第三方库致谢 (详见 NOTICE 及 licenses/ 目录):
cryptography (Apache 2.0) , pystray (LGPLv3) , Pillow (HPND) , customtkinter (MIT)
欢迎提交 Issue、Pull Request 或 ⭐ Star 支持项目。
项目目前处于稳定开发状态,所有功能已在 Python 3.10+ 测试通过。