大家好,最近开源了一个纯前端、零后端的端到端加密( E2EE )传输协议与工具:E2EE Clipboard Protocol (ECP)
💡 为什么做这个项目?
我们日常在不信任的通道(如第三方聊天软件、邮件、社交媒体、在线文档甚至公共剪贴板)发送敏感数据(密钥、密码、私密信息)时,往往不得不依赖中央服务器或平台的安全性。
ECP 的目标是实现完全脱离后端的 Out-of-Band 端到端安全传输:
- 本地生成密钥并与对方交换 Identity Bundle ;
- 文本/媒体加密后生成 Base64URL 字符串并复制到剪贴板;
- 通过任何渠道发送给对方,对方粘贴即可在本地解密。
🛡️ 核心密码学 Stack (NIST Level 5 PQC)
考虑到未来量子计算的 Threat Model ,协议从一开始就采用了经典密码学与后量子密码学( PQC )结合的混合架构 (Hybrid Construction):
- 混合密钥交换 (Hybrid Key Exchange): X25519 + FIPS 203 ML-KEM-1024
- 复合签名 (Composite Signatures): Ed25519 + FIPS 204 ML-DSA-87 (用于握手身份校验与防 PITM)
- 对称加密与认证: AES-256-GCM (96-bit IV)
- 后量子混合双棘轮 (Hybrid Double Ratchet): 基于 HKDF-SHA256 ,每一轮 DH 棘轮均同时注入新的 ML-KEM 共享密钥,实现后量子级别的前向安全 (Forward Secrecy) 与 破入恢复 (Break-In Recovery)
🏗️ 架构特点
- 纯前端 / 零后端 / 离线可用: 密钥对生成、会话状态与双棘轮链条全部存储在本地
IndexedDB,不依赖任何 API 服务器,彻底消除服务端攻击面。
- 严格的 AAD 绑定: 针对
INIT / RESP / MSG 等不同 Packet 构造显式的 AAD (Authenticated Additional Data),防范跨信道重放、报文篡改与身份误导。
- 轻量与可验证性: 纯 TypeScript 编写,密码学底层基于
@noble 官方库,无复杂脚手架与不透明依赖,便于源码审计。
📦 开源与 Spec
协议规范、二进制 Wire 布局文档及完整代码均已开源,欢迎试用与 Code Review:
- GitHub 仓库: https://github.com/jamesliu96/ecp
- Online Demo: https://ecp.jamesliu.info/
非常欢迎社区里对密码学、安全或 TypeScript/WebCrypto 感兴趣的朋友提出改进意见、安全假设讨论或 Issue !