DemigodDSK/aegis
GitHub: DemigodDSK/aegis
一款基于 NIST 标准后量子密码学的开源 iOS 即时通讯应用,附带沙盒密码学实验室供研究者试验新型算法。
Stars: 2 | Forks: 0
# Aegis
Aegis 是一款 iOS 即时通讯应用,默认使用 NIST 标准化的后量子
密码学,并将每一行密码学代码以
开源形式发布。它专为那些希望*了解*其
所信任工具的安全性——而不是仅仅被告知它很安全——的人而构建。
这是一款不同寻常的通讯应用。我们会告诉你我们无法
防范什么(参见 [THREAT-MODEL.md](THREAT-MODEL.md))。我们会
告诉你何时其他工具更适合你的情况
(在引导过程中)。我们将发布我们的安全审计、
治理决策以及每月的搜查令金丝雀。这里的信任是
通过透明度赢来的,而不是凭空宣称的。
## 状态
本项目处于早期开发阶段。当前版本:**pre-0.1**
(仅包含库——尚无可安装的应用)。
| 里程碑 | 状态 |
|---|---|
| 基础文档 | ✅ [`v0.0.1-foundation`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.1-foundation) |
| 维护者 PGP 身份 + 签名的搜查令金丝雀 | ✅ [`v0.0.2.2-pgp`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.2.2-pgp) |
| 密码学核心:AES-256-GCM | ✅ [`v0.0.2-sprint-1`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.2-sprint-1) |
| 密码学核心:PQ 混合 KEM (X-Wing / ML-KEM-768 + X25519) | ✅ [`v0.0.3-sprint-2`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.3-sprint-2) |
| 密码学核心:PQ 签名 (ML-DSA-65) | ✅ [`v0.0.4-sprint-3`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.4-sprint-3) |
| PQXDH 密钥交换 + 安全号码 | ✅ [`v0.0.5-sprint-4`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.5-sprint-4) |
| 前向保密 / Double Ratchet | ✅ [`v0.0.6-sprint-5`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.6-sprint-5) |
| iOS 应用外壳 + Keychain 身份 (macOS 演示现已可运行) | ✅ [`v0.0.7-sprint-6`](https://github.com/DemigodDSK/aegis/releases/tag/v0.0.7-sprint-6) |
| iOS 分发 (Xcode 项目 + IPA + TestFlight) | 📋 Sprint 7 |
| 持久化 + 本地对话 | 📋 Sprint 8 |
| 网络 | 📋 Sprint 9 |
| v0.1 alpha (外部测试人员) | 📋 Sprint 10 |
| 外部安全审计 | 📋 v1.0 |
| 首届安全委员会 | 🚧 招募中 (参见 [GOVERNANCE.md](GOVERNANCE.md)) |
详细的每个 Sprint 路线图:[docs/STAGES.md](docs/STAGES.md)。
## 用一段话概述 Aegis 是什么
一款原生 iOS 即时通讯应用,使用与 X25519 混合的 ML-KEM-768(后量子密钥
封装)进行密钥交换,
AES-256-GCM 确保消息机密性,并使用 ML-DSA-65 进行
身份签名。所有密码学原语均为 NIST 或
IETF 标准。一个独立的沙盒层 ("Aegis Lab") 允许
研究人员和学生贡献和研究新算法,
并明确标记为未经审计且从不默认使用。
## Aegis 不是什么
它不是面向大众的 Signal 或 iMessage 替代品。我们没有
在十亿用户规模上获胜的资源。我们是一个可靠的
小众工具——面向记者、律师、学者、安全
研究人员和注重隐私的个人——而不是一款大众市场
应用。完整声明请参见 [MISSION.md](MISSION.md)。
## 贡献前必读文档
按顺序:
1. [MISSION.md](MISSION.md) — 我们的目标是什么
2. [THREAT-MODEL.md](THREAT-MODEL.md) — 我们防范什么以及不防范什么
3. [GOVERNANCE.md](GOVERNANCE.md) — 谁决定什么,以及如何决定
4. [ALGORITHM-SUBMISSION.md](ALGORITHM-SUBMISSION.md) — 新的密码学技术如何加入 Aegis
5. [CONTRIBUTING.md](CONTRIBUTING.md) — 代码、文档和流程
6. [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) — 社区标准
7. [CLA.md](CLA.md) — 代码贡献所必需
8. [SECURITY.md](SECURITY.md) — 如何报告漏洞
## 构建与运行
`AegisCrypto`(原语 + 协议)加上 `AegisStorage`
(Keychain 包装器)再加上 `AegisApp`(SwiftUI 视图)目前可以通过
标准的 SwiftPM 进行构建和测试。一个微小的 macOS 可执行目标
承载了 SwiftUI 界面,因此您现在就可以运行该应用。
```
# Library + 测试 — 目前可运行。
swift build
swift test
# 预计在 v0.0.7-sprint-6 达到:224 个测试通过,3 个跳过,0 个失败。
# 在 macOS 上启动 SwiftUI 演示 — 目前可运行。
swift run aegis-demo
# Onboarding 流程 → 身份设置 → 加密/解密演示 +
# 设置 → 安全(包含实时 capability 表)。
# iOS 分发(Xcode 项目、IPA、TestFlight)落地于
# Sprint 7。AegisApp 中的 SwiftUI 视图已为 iOS 准备就绪;
# Sprint 7 只需添加 .xcodeproj 包装器和签名。
```
要求在 macOS 26 上使用 Xcode 26 / Swift 6.2+——Apple 原生的
后量子 CryptoKit 原语(`MLKEM768`、`MLKEM1024`、
`MLDSA65`、`XWingMLKEM768X25519`)受 `@available(iOS 26.0,
macOS 26.0, ...)` 限制,因此 SwiftPM 平台下限遵循它们。
### 在 iOS 上运行
iOS 应用目标以 `Aegis.xcodeproj` 的形式包含在此仓库中
(通过 [XcodeGen](https://github.com/yonaskolb/XcodeGen) 从 `project.yml` 生成)。
使用免费的 Apple ID 在 iOS 模拟器或连接的 iPhone 上运行它——
完整的分步说明请参见 [docs/IOS-RUNBOOK.md](docs/IOS-RUNBOOK.md)。
```
open Aegis.xcodeproj
# 在 Xcode 中:选择 Aegis scheme → 选择 iPhone 模拟器
# 或你的实体 iPhone → ⌘R
```
关于 iOS 分发 / TestFlight 方面
(Apple Developer Program 注册、App Store Connect 记录、
签名证书、归档 + 上传),请参见
[docs/IOS-DISTRIBUTION-RUNBOOK.md](docs/IOS-DISTRIBUTION-RUNBOOK.md)。
## 许可证
Aegis 采用 [AGPL v3](LICENSE) 许可。密码学核心
库在作为单独的子包提取时(计划在
第 2 年进行),将额外提供 Apache 2.0 许可,以便
嵌入到其他应用程序中。
"Aegis" 名称和项目标志是项目
维护者 Datta Sai Krishna N 代表项目持有的商标。
复刻项目必须使用不同的名称。
## 维护者
**Datta Sai Krishna N**
([@DemigodDSK](https://github.com/DemigodDSK))
安全委员会正在第 1 年期间招募——请参见
[GOVERNANCE.md](GOVERNANCE.md)。如果您具备应用密码学
或安全系统工程经验,并愿意
任职,请打开一个带有 `council-interest` 标签的 Issue。
## 资金
Aegis 是独立开发的。我们未从
任何政府、公司或其他组织获得资金。
如果我们将来获得资金,其来源和金额将
公开披露。资金不会影响项目的
使命、治理或安全承诺。
## 关于 Signal 的说明
如果您的安全、自由或生命取决于通信的
隐私,**请使用 Signal**,而不是 Aegis。Signal 更成熟,
经过更多审计,并且比 Aegis 目前
保护更多的元数据。我们将在应用的引导过程中告诉您 Aegis 何时
准备好用于高风险场景。我们预计这至少在 v2.0
及之后、且至少经过一次外部审计之后才会实现。在此之前,
我们不会假装情况并非如此。
标签:AES-256-GCM, Apple Keychain, Double Ratchet, E2EE, iOS, JSONLines, Messenger, ML-DSA-65, ML-KEM-768, NIST标准, PGP, PQC, PQXDH, Swift, TestFlight, X25519, X-Wing, 前向保密, 加密算法, 即时通讯, 后量子密码学, 威胁模型, 安全透明, 密码学沙盒, 密钥交换, 应用程序安全, 开源, 目录枚举, 移动安全, 端到端加密, 网络安全, 通信安全, 隐私保护, 零信任