reyzzzl/Hyperion-CLI
GitHub: reyzzzl/Hyperion-CLI
Hyperion-CLI 是一个基于后量子密码学和Tor网络的点对点加密通信工具,用于在量子计算时代保障通信安全。
Stars: 2 | Forks: 0
# Hyperion 后量子密码学





**后量子加密通信器 — 基于CLI,支持Tor,具备抗量子特性**
## 📌 这是什么?
**Hyperion** 是一个点对点加密通信器,其核心理念是:*你的对话只属于你自己。* 它采用**后量子密码学** —— 即使面对未来的量子计算机也能保持安全 —— 结合**Tor洋葱路由**,为你提供一个技术强大且理念纯粹的私密通道。
Hyperion v2.0.0 已完全重构为一个全模块化的Python包,具备交互式CLI终端界面、加密的本地持久化数据库、离线消息队列以及多因素密钥派生架构。
本项目在 **GPL-3.0** 许可下完全开源。你可以阅读、运行、审计、分叉、破解和改进它。
## ⚡ v2.0.0 新功能与创新
### 1. 完整的后量子密码学(PQC)栈
Hyperion 通过 `liboqs` 使用双重量子安全生态系统,以抵御经典攻击和未来的量子解密向量(Shor算法和Grover算法)。
| 组件 | 旧框架 | Hyperion v2.0.0 (当前) | 抗量子性 |
| :--- | :--- | :--- | :--- |
| **密钥交换** | 经典 ECDH | **Kyber-512** (NIST ML-KEM) | ✅ 是 |
| **签名** | 经典 Ed25519 | **Dilithium5** (NIST ML-DSA) | ✅ 是 |
### 2. 多因素密钥派生(MultiKDF)
为防止主密码在静态存储时被暴力破解,Hyperion 实现了一个混合多因素提取系统,通过XOR操作级联映射3个不同的KDF函数:
```
Final Key = Argon2id XOR Scrypt XOR PBKDF2
```
* **Argon2id:** 内存硬参数分析,以中和ASIC加速。
* **Scrypt:** 内存硬参数分析,旨在抵抗大规模GPU阵列。
* **PBKDF2:** CPU硬函数,配置高迭代次数以减慢顺序CPU扩展。
* *优势:* 破解存储数据库要求攻击者同时成功攻破三个数学上截然不同的密码学算法。
### 3. 持久化会话管理
与临时的P2P链接不同,Hyperion v2.0.0 引入了由本地数据库架构支持的结构性会话持久化。
| 功能 | 技术描述 |
|---|---|
| **多会话布局** | 允许在多个不同对等节点间进行并发的、解耦的聊天交互。 |
| **SQLite持久化** | 会话令牌被安全地缓存到磁盘,允许在应用重启后立即恢复,无需执行新的握手序列。 |
| **加密存储** | 活动对话行在静态存储时使用 **AES-256-GCM** 进行严密保护。 |
| **随机盐映射** | 每个独立的本地存储文件都配置了隔离的、唯一的加密盐层。 |
### 4. 离线消息队列
```
Peer Offline ──> Payload Cached in Local SQLite Queue ──> Sent Automatically Upon Reconnection
```
### 5. 自动化后台重握手
为最大化完美前向保密性,密钥轮换通过严格的结构边界在后台异步执行,极大限制了消息暴露窗口:
| 触发向量 | 阈值屏障 |
|---|---|
| **消息量** | 每发送/接收 **100条消息** 自动触发。 |
| **持续时间** | 每活跃运行 **10分钟** 自动触发。 |
| **手动覆盖** | 通过运行 /rekey 命令立即执行。 |
### 6. 无死锁的双棘轮
底层的双棘轮核心引擎现在集成了一个 threading.RLock()(可重入锁)架构。此补丁消除了当多个自动触发器尝试并发启动后台重握手时的竞态条件和潜在线程死锁问题。
## 🛠️ 密码学栈与安全说明
| 基元/协议 | 角色 | 详情与背景 |
|---|---|---|
| **CRYSTALS-Kyber (Kyber-512)** | 密钥封装(KEM) | 基于模块化带错误学习(MLWE)。标准化为 **FIPS 203**。通过liboqs实现。 |
| **双棘轮** | 对称密钥管理 | 受Signal协议启发。每条消息后使用SHA3-256向前哈希链密钥,防止反向重构。 |
| **AES-256-GCM** | 认证加密 | 提供机密性和完整性。认证标签在解密 *之前* 验证以防篡改。 |
| **Ed25519** | 身份签名 | 对握手载荷进行签名以防中间人(MitM)攻击。快速、紧凑且受信任。 |
| **MultiKDF (Argon2 / Scrypt / PBKDF2)** | 主密钥派生 | 通过XOR映射(Argon2id ^ Scrypt ^ PBKDF2)级联三个加固函数,以加密静态存储的数据库头。 |
| **SQLite3 (AES-256-GCM层)** | 加密本地存储 | 加密磁盘上的事务历史记录行(hyperion_messages.db)和会话行(hyperion_sessions.db)。 |
* 所有消息均使用 **AES-256-GCM** 进行端到端加密。
* 通过 **双棘轮** 算法严格执行完美前向保密性。
* 身份密钥以 **Scrypt + AES-256-GCM** 包装器加密存储。
* 紧急按钮可立即覆盖RAM中的密钥并粉碎磁盘上的本地数据库。
* **无中央服务器** —— 通过Tor或直接环回IP进行纯点对点部署。
## 💻 支持的环境
* **VPS(Ubuntu/Debian):** 推荐的部署目标。原生支持后台Tor服务。
* **Termux (Android):** 无需root。完全功能的后量子终端环境。
* **本地 Linux / macOS / Windows (WSL):** 快速测试、结构审计和开发的理想环境。
## 📥 安装与部署
### 1. 从源码原生构建
你需要 **Python 3.9** 或更高版本。
```
sudo apt update && sudo apt install -y build-essential cmake libssl-dev git tor python3 python3-pip
```
### 克隆此仓库
```
git clone https://github.com/reyzzzl/Hyperion-CLI.git
```
```
cd Hyperion-CLI
```
### 安装需求库
```
pip install -r requirements.txt
```
### 安装 hyperion
```
pip install .
```
*(注意:编译 liboqs-python 可能需要大约3-5分钟,因为它从源码编译原生密码学结构)。*
### 2. 通过Docker部署(推荐)
```
docker build -t hyperion:latest .
```
### 创建宿主机Docker
```
docker run -it --rm -p 9999:9999 hyperion:latest host
```
### 连接Docker到客户端
```
docker run -it --rm hyperion:latest connect 127.0.0.1:9999
```
### 清理Docker客户端
```
docker run -it --rm --network host hyperion:latest host
```
## 🔑 设置密码学身份(首次运行)
首次启动Hyperion时,系统会提示通过终端提示设置两个主密码:
```
python main.py host
```
1. **身份密码:** 保护你的Ed25519私钥配置文件(保存在 ~/.hyperion/hyperion_identity.json 中)。
2. **存储密码:** 生成密码学MultiKDF屏障,以锁定静态存储的消息历史数据库行。
## 📡 操作连接示例
### 方法 A:本地主机环回测试(双终端实例)
* **终端 1 – 主机节点:**
```
python main.py host
```
* **终端 2 – 客户端链接:**
```
python main.py connect 127.0.0.1:9999
```
### 方法 B:通过Tor隐藏电路进行匿名通信
* **终端 1 – 隐藏服务主机(先运行Tor,然后运行主机):**
```
tor --ControlPort 9051 --SOCKSPort 9050 &
```
```
python main.py host
```
*分享视口上显示的临时 .onion 地址。*
* **终端 2 – 客户端连接实例(先运行Tor,然后连接):**
```
tor --ControlPort 9051 --SOCKSPort 9050 &
```
```
python main.py connect xyz123abc456example.onion
```
## 🛠️ 聊天Shell控制指令
一旦安全的握手将你带入实时对话循环,输入到提示符中的原始字符串将被自动封装在活动棘轮中并发送。以前斜杠 (/) 为前缀的输入序列会触发操作系统模块:
| 终端命令 | 动作描述 |
|---|---|
| /sessions | 检查所有在磁盘上缓存的会话结构。 |
| /switch | 将当前输入显示焦点热切换到不同的对等地址。 |
| /contacts | 提取联系人数据库,显示别名和已验证的信任签名。 |
| /alias | 为复杂的网络地址目标分配一个人类可读的名称字符串。 |
| /trust | 手动将一个对等联系人签名作为显式受信任节点。 |
| /history [n] | 解密并输出存储的数据库消息记录,最多 n 行(默认:50)。 |
| /send-file | 分块、加密并通过活动的PQC通道传输目标文件。 |
| /fingerprint | 打印本地和远程的Ed25519身份验证哈希字符串。 |
| /rekey | 立即强制对主要根密钥数组执行显式轮换步骤。 |
| /panic | 紧急擦除 —— 删除所有密码学密钥、数据库并退出应用。 |
| /quit 或 /exit | 优雅地断开活动套接字通道并退出应用程序窗口。 |
### 发送文件
```
/send-file /path/to/document.pdf
```
### 紧急擦除
```
/panic
```
*输入 'WIPE' 以确认。*
## 🛑 已知限制
* **文件传输阈值:** 文件传输通过固定的512 KB分段进行。
* **载荷约束:** 最大硬编码的数据包消息缓冲区边界设置为50 MB。
* **Tor传播延迟:** 临时隐藏服务生成钩子大约需要5-10秒才能发布到Tor网络电路。
* **构建编译要求:** 首次运行需要全局C编译器设置以构建原生liboqs封装层(耗时3-5分钟)。
## 📊 功能对比矩阵
| 应用功能 | Signal Messenger | WhatsApp | Telegram | Hyperion PQC v2.0.0 |
|---|---|---|---|---|
| **后量子密码学** | ❌ 经典 | ❌ 经典 | ❌ 经典 | ✅ **Kyber-512 + Dilithium5** |
| **多会话视图** | ✅ 是 | ✅ 是 | ✅ 是 | ✅ **是** |
| **离线消息队列** | ✅ 是 | ✅ 是 | ✅ 是 | ✅ **是** |
| **加密数据库历史** | ✅ 是 | ✅ 是 | ❌ 否 | ✅ **是 (AES-256-GCM层)** |
| **原生存储紧急按钮** | ❌ 否 | ❌ 否 | ❌ 否 | ✅ **是 (内存+磁盘擦除)** |
## 🔍 故障排除
* **"Connection refused"(连接被拒绝)** ──> 确保主机节点实例当前处于活动、监听状态,并且你的网络接口绑定地址参数输入正确。
* **"Peer verification failed"(对等验证失败)** ──> 检测到潜在的活跃中间人(MITM)劫持尝试。立即断开电路,并通过带外通信通道验证身份指纹。
* **"liboqs not found"(未找到liboqs)** ──> Python绑定未能链接到原生工作区组件。手动执行 pip install liboqs-python 或等待编译器完成跟踪操作。
* **消息无法发送 / 状态不同步** ──> 完全清除本地运行时跟踪痕迹,并在两个通信端点重启节点循环:
```
rm -rf ~/.hyperion/
```
## 📚 参考与延伸阅读
这些资源是Hyperion的架构基础:
* [NIST FIPS 203 — ML-KEM 标准](https://csrc.nist.gov/pubs/fips/203/ipd)
* [Open Quantum Safe (OQS) 项目](https://openquantumsafe.org/)
* [Signal 协议规范](https://signal.org/docs/)
* [RFC 5869 — HKDF 规范](https://datatracker.ietf.org/doc/html/rfc5869)
* [Tor 项目文档](https://community.torproject.org/onion-services/)
* [应用密码学研究生课程](https://toc.cryptobook.us/)
## 📝 许可证
在 **GNU 通用公共许可证 v3.0** 下分发。请查看LICENSE容器文本文件以了解完整的操作分发和编译规则。
## 📞 Hyperion 团队联系方式
[联系我](mailto:Hyperionteam@proton.me)
标签:Dilithium算法, Kyber算法, Python, Tor 网络, 加密通信, 匿名通信, 去中心化, 后量子密码, 命令行界面, 多会话持久化, 多因素密钥派生, 安全聊天, 开源, 无后门, 本地数据保护, 消息加密, 点对点加密, 离线消息队列, 紧急恐慌按钮, 网络安全, 网络安全, 请求拦截, 逆向工具, 量子安全, 量子抵抗, 隐私保护, 隐私保护