h4nzs/nyx-chat

GitHub: h4nzs/nyx-chat

一款基于 Signal 协议的军事级零知识端到端加密匿名即时通讯系统,无需任何个人身份信息即可使用。

Stars: 2 | Forks: 0

# NYX:零知识信使

NYX Logo

NYX - Zero-Knowledge Messenger

![Version](https://img.shields.io/badge/version-2.4.4-blue?style=for-the-badge) ![License](https://img.shields.io/badge/License-AGPLv3-red?style=for-the-badge) ![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white) ![React](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB) ![Tailwind](https://img.shields.io/badge/Tailwind_v4-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white) ![pnpm](https://img.shields.io/badge/pnpm-F69220?style=for-the-badge&logo=pnpm&logoColor=white) NYX 是一场关于**纯粹匿名**和**零知识架构**的激进实验。与传统信使不同,NYX **不需要**电话号码、电子邮件地址或任何个人身份信息 (PII)。它将你的数字身份与物理身份解耦,在严格的“谁也别信”(TNO) 模型下运行,在该模型中,服务器在数学上无法阅读你的消息或知晓你是谁。 ## 🏴‍☠️ 核心理念:纯粹匿名 1. **不存储 PII:** 我们不存储电子邮件、电话号码、IP 地址或明文用户名。 2. **盲索引:** 你的用户名在客户端进行哈希处理 (Argon2id)。服务器只能看到一个随机哈希值 (`usernameHash`),并且无法逆向还原。 3. **幽灵档案:** 你的姓名、简介和头像使用对称 `ProfileKey` 在本地加密。此密钥*仅*通过 Double Ratchet 头部与受信任的联系人共享。对服务器而言,你的档案只是一个无法破译的数据块。 4. **本地优先主权:** 你的聊天记录**独占**存在于你设备的 IndexedDB 中。我们绝不会将明文历史记录同步到云端。 ## 🛡️ 安全架构 ### 密码学 (Signal 协议实现) NYX 完全在专用的 **Web Worker** 中使用 WebAssembly 运行其加密引擎,确保在繁重的加密周期中主 UI 线程永不被阻塞。 * **密钥交换:** X3DH (Extended Triple Diffie-Hellman),用于异步密钥协商。 * **消息加密:** Double Ratchet 算法,提供完美前向保密 (PFS) 和泄露后安全性 (PCS)。 * **原语:** * **Cipher:** XChaCha20-Poly1305 (IETF),通过 `libsodium` 实现。 * **哈希:** SHA-256 & Argon2。 * **KDF:** HKDF (基于 HMAC 的密钥派生函数)。 * **签名:** Ed25519。 ### 信任层级系统 (反垃圾信息) 为了在不收集电话号码的情况下防止机器人 swarm 攻击,我们采用了**人性证明**系统: 1. **沙盒模式 (默认):** 新账户受到速率限制和约束。 2. **VIP 状态 (已验证):** 通过 WebAuthn (生物识别/FIDO2) 或解决客户端加密谜题 (工作量证明) 解锁。 ## ⚡ 2026 技术栈 (全面重构) 我们最近进行了核级别的依赖项升级,以确保 NYX 在未来十年内保持领先。 ### 前端 (Client) * **框架:** React 19 Ready + Vite 7 (TypeScript) * **状态管理:** Zustand v5 (严格模式 + Persist 中间件) * **样式:** Tailwind CSS v4 (Rust 驱动的 Lightning CSS 引擎) * **加密引擎:** `libsodium-wrappers` (固定在 v0.8.x 以保证向后兼容性) * **存储:** IndexedDB (`idb-keyval`),用于 "The Shadow Vault" ### 后端 (Server) * **运行时:** Node.js (Express) * **数据库:** PostgreSQL 通过 **Prisma ORM v7** (无 Rust,原生 ESM,使用 `@prisma/adapter-pg`) * **实时通信:** Socket.IO v4.8+ (Redis Adapter 用于集群) * **对象存储:** Cloudflare R2 (仅限加密二进制 blobs) ## 🚀 部署与基础设施 NYX 专为高安全性、零信任部署而设计。 **零入站策略:** 我们的生产参考架构完全禁用入站防火墙端口(SSH 除外)。所有流量均通过 **Cloudflare Tunnels** 安全路由直接至 localhost 端口(3000 用于 PWA,4000 用于 API/Socket)。 ### 本地开发快速入门 *前置条件:Node.js 20+, `pnpm`, PostgreSQL, Redis.* ``` git clone https://github.com/your-username/nyx-chat.git cd nyx-chat pnpm install # Installs dependencies for the workspace ``` **环境变量 (`server/.env`):** ``` DATABASE_URL="postgresql://user:pass@localhost:5432/nyx_db" REDIS_URL="redis://localhost:6379" JWT_SECRET="super-long-random-string-min-32-chars" # Cloudflare R2 配置... ``` **运行开发环境:** ``` cd server && npx prisma db push pnpm dev # (Assuming you set up a root script, or run individually in /web and /server) ``` ## 💾 "NYX Vault" 与设备迁移 因为我们不同步历史记录到云端,**你**拥有你的数据: 1. **Vault 导出:** 导出一个包含你密钥和元数据的加密 `.nyxvault` 文件。 2. **设备迁移通道:** 换新手机?NYX 会在你的旧设备和新设备之间打开一个直接的、E2EE WebSocket 通道,通过二维码传输你的历史记录。服务器仅作为盲中继。 ## 🤝 贡献 NYX 是一个开源堡垒,我们欢迎特工们来检查城墙。 * **严格规则:** 不要更新或触碰 `libsodium-wrappers`。加密向后兼容性是我们的最高优先级。 * **Linting:** 我们严格执行 ESLint v10 (Flat Config)。在开启 PR 之前,请确保 `pnpm run build` 以零警告通过。 请查看 `CONTRIBUTING.md` 并使用提供的 PR 模板。 ## ⚖️ 许可证与商业用途 NYX 基于 **[AGPL-3.0 许可证](LICENSE)** 发布。 这保证了 NYX 对社区保持免费和开源。但是,本软件的网络使用 (SaaS) 要求你开源你的整个项目。 **这意味着什么:** 你可以自由使用、修改和分发本软件。但是,如果你修改 NYX 并将其作为公共服务 (SaaS) 运行,你**必须**根据相同的 AGPLv3 许可证向你的用户发布修改后的源代码。 **🏢 正在构建闭源 SaaS?** 如果你是希望将 NYX 集成到专有产品中且不愿承担 AGPL-3.0 义务的公司、初创公司或企业,你必须获取商业许可证。 👉 **[在此阅读商业许可指南](COMMERCIAL.md)**。 ## 🦉 品牌与反冒充政策 虽然 "NYX" 一词可能在各种语境中被广泛使用,但**特定的视觉标识、自定义 Logo(包括猫头鹰徽章)以及此特定仓库的直接声誉**均属于核心维护者的知识产权。 AGPL-3.0 许可证授予你使用、修改和分发源代码的自由。但是,它**不**授予你冒充此官方项目的权利。 如果你 Fork 此仓库以创建自己的 SaaS、企业工具或公共部署,你必须: 1. **更改视觉标识:** 替换 `web/public/` 中发现的所有官方 Logo、图标和特定图形资产。 2. **防止混淆:** 明确声明你的部署是一个修改版的 Fork,*不*隶属于原 NYX Command 仓库,也未得到其官方认可。
标签:AGPLv3, AI工具, Argon2id, cryptography, Double Ratchet, E2EE, HTTP工具, IndexedDB, MITM代理, React, Signal 协议, Syscalls, Tailwind CSS, TNO 模型, TypeScript, WebAssembly, 军事级加密, 匿名聊天, 即时通讯, 去中心化身份, 哈希匿名化, 安全插件, 安全通讯, 抗审查, 搜索引擎查询, 无 PII, 本地优先, 测试用例, 盲索引, 端侧加密, 端到端加密, 网络安全, 网络安全, 自动化攻击, 隐私保护, 隐私保护, 隐私计算, 零知识架构