ea7895d85c160307d97703039e65b11bd4da7299
WebDrop
零信任的端到端加密暂存与同步:文本、JSON、剪贴板、文件。浏览器内加密,后端节点完全不受信任,只保存和转发密文。
状态
文档是权威来源,代码以文档为准。
| 部分 | 状态 |
|---|---|
| 协议、API、威胁模型 | 已定稿(docs/) |
test-vectors/ |
已完成。由 node:crypto 独立生成,服务端(.NET)和 @webdrop/core(WebCrypto)各自复现 |
server/ |
频道与便捷分享 API 已实现;含独立的可选 WebDrop.Frontend 静态资源模块;NativeAOT 发布为 OCI 镜像 |
packages/core/ |
已完成并验证。168 个测试,含对着真实服务端的端到端 |
web/ |
前端,开发中 |
文档
| 文档 | 内容 |
|---|---|
| docs/threat-model.md | 信任边界、攻击者模型、每种模式的保证、元数据泄露、不做的事 |
| docs/e2ee-boundary-comparison.md | 当前信任边界、签名授权/事件的目标设计与分阶段路线 |
| docs/protocol.md | 密钥派生、令牌、帧格式、加密和 padding、校验算法、保留策略(协议权威文档) |
| docs/api.md | HTTP / WebSocket / SSE 接口、鉴权头、错误码 |
| docs/architecture.md | 组件、技术栈、NativeAOT 约束、存储模型、部署、阶段划分 |
| docs/ui-design.md | 前端视觉与交互:色彩、形状、blur 约束、页面、状态与诚实提示、动效 |
| docs/frontend.md | 前端工程:技术栈、分层、状态模型、传输与重连、性能与可维护性约定 |
| web/AGENTS.md | 前端契约:权威顺序、范围、必须遵守与禁止项 |
| packages/core/README.md | @webdrop/core 的接口、前端要做和不用做的事、必须注意的几点 |
| server/README.md | 服务端的结构、配置、AOT 发布、验证码(Cap)接入 |
| docs/deployment.md | Podman Quadlet 自托管部署与 Woodpecker CI |
| test-vectors/README.md | 协议测试向量的生成与使用 |
核心概念
- 频道:唯一的顶层概念,一条只追加的帧流,有自己的 id、密钥、设置和账号成员人数上限。
- 条目:频道里的一项内容(文本、JSON、文件),由若干帧组成,可复制、下载、删除。
- 成员:频道里的人是用户(账号);设备只是账号的属性,同一账号的多设备只算一人,请求凭账号会话鉴权。频道强制登录,没有未登录访客(便捷分享不受影响)。
- 所有者 / 成员:所有者持有管理密钥,成员通过频道链接加入。
- 模式:
enc(默认,浏览器端 AES-256-GCM)和raw(负载原样,服务器可见,用于公开或用户自行加密的内容)。
目录
webdrop-proj/
├─ docs/
├─ test-vectors/ 协议测试向量,所有实现共用
├─ packages/core/ @webdrop/core,TS,加解密与帧编解码(网页、将来的 CLI 共用)
├─ server/ .NET 10,NativeAOT;可将 Vite dist 嵌入 WebDrop.Frontend
└─ web/ Vite + React + TypeScript
Description
WebDrop encrypted quick sharing and channel sync
1.5 MiB
0 Stars
1 Watchers
0 Forks
Languages
TypeScript
52.2%
C#
37.4%
CSS
5.7%
JavaScript
3.6%
PowerShell
0.5%
Other
0.6%