yclgkd/ZeroLink
GitHub: yclgkd/ZeroLink
一款零知识、端到端加密的一次性秘密分享工具,确保服务器永远无法获取明文内容。
Stars: 1 | Forks: 0
# ZeroLink
**🌟 在线演示**: [zerolink.dev](https://zerolink.dev)
## 概述
ZeroLink 是一个安全至上的秘密分享工具,具有以下特性:
- **零知识架构**:服务器从不存储明文或任何私钥
- **端到端加密**:只有接收者才能解密内容
- **双创建模式**:快速分享 (密码) / 安全分享 (Passkey)
- **WebAuthn 管理**:安全分享使用系统/硬件密钥实现不可导出的管理权限
- **TOFU 保护**:URL Fragment + Lock Challenge 防止竞态条件的锁劫持
- **密文长度保护**:填充机制减少基于长度的信息泄露
- **当前产品模式**:仅限快速分享 / 安全分享
## 核心流程
```
1. Sender → Create (Quick Share password mode / Secure Share Passkey mode)
→ Share link: /s/:uuid#k=[&af=]
2. Receiver → Lock (enter password → generate RSA keypair → store locally)
→ Display Safety Code (Emoji/Color)
3. Sender → Verify Safety Code (out-of-band)
→ Deliver (hybrid encryption + Padding → deliver ciphertext)
4. Receiver → Enter password → Decrypt and view
```
## 文档
### 入门指南
- [快速入门指南](./docs/QUICK_START.md) - 从零开始搭建运行开发环境
- [部署指南](./docs/DEPLOYMENT.md) - 手动部署到 Cloudflare Workers
- [自托管部署指南](./docs/SELF_HOSTED_DEPLOYMENT.md) - 运行已发布的 Docker Compose 栈或本地构建覆盖
- [技术栈规范](./docs/TECH_STACK.md) - 完整的技术栈与工具链
### 设计文档
- [完整 PRD v3.0](./docs/PRD.md) - 产品需求文档
- [架构概述](./docs/ARCHITECTURE.md) - 技术架构与核心协议
- [安全模型](./docs/SECURITY.md) - 威胁模型与安全保障
### 导航
- [文档索引](./docs/INDEX.md) - AI 助手与开发者快速导航
## 技术栈
### 前端
- React 19 + Vite 7 + React Router
- Tailwind CSS v4 + shadcn/ui (基于 Radix 原语)
- Zustand + Zod
- Web Crypto API (AES-GCM, RSA-OAEP, SHA-256)
- WebAuthn (FIDO2)
- Argon2id (KDF)
### 后端
- Cloudflare Workers + Durable Objects (提供免费套餐,支持 SQLite 后端)
- 可选:通过已发布的 GHCR 镜像或本地构建覆盖实现 Docker Compose 自托管栈
## 浏览器兼容性
| 浏览器 | 最低版本 | 发布日期 |
|---------|-----------------|--------------|
| Chrome / Edge | 93+ | 2021 年 9 月 |
| Firefox | 92+ | 2021 年 9 月 |
| Safari | 15.4+ | 2022 年 3 月 |
**注意**:
- WebAuthn (硬件密钥) 需要 HTTPS;本地开发时可使用 `localhost`
- Ed25519 签名验证:Chrome 113+ / Safari 16.4+ 使用原生 WebCrypto;旧版本自动回退到纯 JS 实现 (`@noble/ed25519`)
- 不提供 polyfills;不支持 Internet Explorer
## 安全特性
### v3.0 当前重点
1. **Lock Secret (URL Fragment)**:防止预加载爬虫劫持锁
2. **填充 (4KB 块)**:减少基于密文长度的信息泄露
3. **强制 Argon2id**:接收者私钥包装 (目标耗时 250-500ms)
4. **双创建模式**:快速分享 (密码) / 安全分享 (Passkey)
5. **可验证的发布链**:签名 Manifest + 运行时哈希验证
### 安全保障
- 服务器零知识
- 端到端机密性
- 更新/销毁操作不可伪造 (WebAuthn 或 ECDSA)
- 防重放/重排/并发覆盖 (DO 原子性)
- 最小化的元数据泄露
- 前端完整性可验证 (CSP + 签名 Manifest)
- 安全分享管理私钥不可导出 (WebAuthn);快速分享管理密钥编码在管理链接中
## 部署
ZeroLink 支持两种部署路径:
- Cloudflare Workers 手动部署,详见 [部署指南](./docs/DEPLOYMENT.md)
- Docker Compose 自托管,详见 [自托管部署指南](./docs/SELF_HOSTED_DEPLOYMENT.md)
### Cloudflare 部署前置条件
- Cloudflare 账户 (免费套餐即可;支持 Durable Objects 免费额度)
- Node.js 22+ · pnpm 9+ · Wrangler CLI 4+
完整的逐步流程请参阅 [部署指南](./docs/DEPLOYMENT.md)。使用 Docker Compose 进行自托管不需要 Cloudflare 工具链。
### 自托管快速开始
使用已发布的镜像标签,以确保下载的 Compose 文件和拉取的镜像保持一致:
```
export ZEROLINK_VERSION=YOUR_RELEASE_VERSION
mkdir zerolink-selfhost
cd zerolink-selfhost
curl -fsSLO "https://raw.githubusercontent.com/yclgkd/ZeroLink/v${ZEROLINK_VERSION}/deploy/selfhost/docker-compose.yml"
curl -fsSLO "https://raw.githubusercontent.com/yclgkd/ZeroLink/v${ZEROLINK_VERSION}/deploy/selfhost/garage.toml"
curl -fsSLO "https://raw.githubusercontent.com/yclgkd/ZeroLink/v${ZEROLINK_VERSION}/deploy/selfhost/garage-init.sh"
curl -fsSLo .env.example "https://raw.githubusercontent.com/yclgkd/ZeroLink/v${ZEROLINK_VERSION}/deploy/selfhost/.env.example"
cp .env.example .env
sed -i.bak "s/^ZEROLINK_IMAGE_TAG=.*/ZEROLINK_IMAGE_TAG=${ZEROLINK_VERSION}/" .env && rm .env.bak
docker compose --profile storage up -d
```
默认栈会拉取 `${ZEROLINK_IMAGE_REPOSITORY:-ghcr.io/yclgkd}/zerolink-api` 和
`${ZEROLINK_IMAGE_REPOSITORY:-ghcr.io/yclgkd}/zerolink-web`。
当使用来自 fork 或组织镜像的图像时,请在 `.env` 中设置 `ZEROLINK_IMAGE_REPOSITORY`,
或使用 [自托管部署指南](./docs/SELF_HOSTED_DEPLOYMENT.md) 进行本地构建覆盖。
## 快速开始 (本地开发)
```
git clone https://github.com/yclgkd/ZeroLink.git
cd ZeroLink
pnpm install
pnpm dev
```
## 安全
ZeroLink 是一个高度重视安全的项目。如果您发现漏洞,**请不要公开提交 issue**。请参阅我们的 [安全政策](./SECURITY.md) 了解负责任的披露说明。
有关技术安全模型和威胁分析,请参阅 [安全模型](./docs/SECURITY.md)。
## 许可证
本项目基于 GNU Affero General Public License v3.0 (AGPL-3.0) 授权。有关详细信息,请参阅 [LICENSE](./LICENSE)。
标签:Cryptography, Docker, Docker Compose, FIDO2, IP 地址批量处理, Passkey, RSA加密, TOFU, WebAuthn, 加密通信, 安全防御评估, 开源, 无密码认证, 机密分享, 混合加密, 版权保护, 程序员工具, 端到端加密, 网络安全, 网络安全, 自动化攻击, 自托管, 蓝队防御, 赛博安全, 防中间人攻击, 防御绕过, 隐私保护, 隐私保护, 零知识架构, 零知识证明