本文档详细说明 MeshKit 的三大核心功能及其安全特性。
基于 WebRTC Data Channel 的 P2P 文件传输系统,传输层加密保护,支持大文件、多文件的高速安全传输。
传输层加密 (DTLS/SRTP)
- DTLS 1.2+: 握手加密,密钥协商
- SRTP: 数据流加密,128-256位 AES-GCM
- 完美前向保密: 每次连接使用新密钥
- 中间人防护: WebRTC 内置证书验证
- 数据完整性: 防篡改、防重放攻击
注意: WebRTC 提供传输层加密,文件内容在传输过程中自动加密。未来版本将支持端到端文件加密。
- 局域网速度: 20-50 MB/s
- 广域网速度: 取决于网络带宽
- 零服务器中转: 文件直接在设备间传输
- 自动优化: 根据网络质量动态调整chunk大小
- 理论无限制: 支持 1GB+ 大文件
- 流式传输: 不占用内存,边读边发
- 智能背压: 防止缓冲区溢出
- 内存优化: 传输 1GB 文件仅占用 ~10MB 内存
- 批量传输: 一次选择多个文件
- 队列管理: 自动排队、按序传输
- 进度跟踪: 每个文件独立进度显示
- 错误处理: 单文件失败不影响其他文件
- 精确百分比: 实时显示传输进度
- 速度监控: MB/s 速度实时计算
- 剩余时间: 基于当前速度估算
- 文件信息: 文件名、大小、类型
文件选择 → 分块读取(1MB) → WebRTC DC → 分块重组 → 下载
↓
背压控制 (防止溢出)
- Chunk Size: 1MB (可配置)
- Send Delay: 1ms (背压控制)
- Timeout: 300秒 (可配置)
- Max Buffered: 64MB
- 文件快速分享
- 局域网内共享文件,无需U盘
- 手机和电脑互传照片、视频
- 会议协作
- 快速分发会议资料
- 团队文档共享
- 开发场景
- 共享代码、构建产物
- 快速部署测试文件
- Chrome/Edge (最佳体验)
- Firefox
- Safari (包括 iOS)
- Electron Desktop
- ⏳ React Native Mobile
基于 Yjs CRDT 的实时协同便签墙,WebRTC 加密传输,支持多人同时编辑,无冲突合并。
传输层加密 (WebRTC)
- DTLS 加密: 同文件传输,使用 DTLS 1.2+ 协议
- P2P 直连: 数据不经过中央服务器
- 本地存储: 数据保存在本地 IndexedDB,不上传服务器
- 隐私保护: 便签内容仅在设备间同步
注意: 便签数据使用 WebRTC 传输层加密。如需更高安全性,请使用加密聊天功能传递敏感信息。
- 多人编辑: 支持多个设备同时编辑
- 即时同步: 编辑内容实时同步到所有设备
- 无冲突合并: CRDT 算法保证数据一致性
- 离线支持: 离线编辑,上线后自动同步
- 多种颜色: 7种预设颜色
- 自由拖动: 拖拽改变位置
- 大小调整: 支持缩放(规划中)
- 富文本: 支持多行文本
- 去中心化: 无需中央服务器
- WebRTC 传输: 基于 y-webrtc
- 本地持久化: 数据保存在 IndexedDB
- 自动恢复: 刷新页面后自动恢复
Yjs.Doc → Y.Array<Note> → y-webrtc → Sync
↓
IndexedDB (持久化)interface Note {
id: string;
content: string;
color: string;
position: { x: number; y: number };
timestamp: number;
author: string;
}- 头脑风暴
- 团队创意收集
- 思维整理
- 任务管理
- 看板式任务跟踪
- 待办事项列表
- 教学场景
- 课堂互动
- 学生笔记共享
- 会议记录
- 实时记录要点
- 多人协作整理
- All browsers with IndexedDB
- Electron Desktop
- ⏳ React Native Mobile
端到端加密 (E2EE) 的即时通讯,基于 libsodium (NaCl) 军事级加密库,256位密钥保证通讯绝对隐私。
加密算法栈
- 密钥交换: ECDH (Curve25519) - 椭圆曲线 Diffie-Hellman
- 对称加密: Salsa20 流密码 (256位密钥)
- 消息认证: Poly1305-AES MAC
- 组合模式: NaCl crypto_box (XSalsa20 + Poly1305)
安全特性
- 端到端加密 (E2EE): 只有通信双方能解密
- 完美前向保密 (PFS): 每次连接生成新密钥
- 防篡改: Poly1305 消息认证码
- 防重放: Nonce 随机数保护
- 零服务器存储: 消息不经过服务器,不持久化
密钥强度
密钥长度: 256 位 (32 字节)
密钥空间: 2^256 ≈ 1.16 × 10^77 种可能
破解时间: 以目前算力,破解需要数十亿年
技术细节
// 密钥生成
Curve25519: 高性能椭圆曲线加密
密钥对生成: crypto_box_keypair()
共享密钥: crypto_box_beforenm(peerPublicKey, secretKey)
// 消息加密
算法: XSalsa20 流密码
密钥长度: 256 位
Nonce: 192 位随机数 (防重放)
认证: Poly1305-AES (防篡改)- NaCl 加密库: 使用 libsodium (NaCl) 工业级加密实现
- XSalsa20 流密码: 256位密钥,高速加密
- Poly1305 认证: 防止消息篡改和伪造
- 军事级强度: 与 Signal、WhatsApp 同级别加密
- 完全私密: 消息仅在设备间传输,服务器无法窃听
- ECDH 算法: Elliptic Curve Diffie-Hellman 密钥协商
- Curve25519: 高性能椭圆曲线,抗侧信道攻击
- 会话密钥: 每次连接生成全新密钥对
- 完美前向保密: 密钥泄露不影响历史消息安全
- 自动交换: 建立连接时自动完成密钥协商
- WebRTC DC: 基于 Data Channel
- 低延迟: <50ms (局域网)
- 可靠传输: 有序、可靠的消息传递
- 连接状态: 实时显示在线/离线
明文消息 → libsodium加密 → 密文 → WebRTC → 解密 → 明文
↑ ↓
共享密钥 ← ECDH密钥交换 → 共享密钥
// 生成密钥对
const keyPair = sodium.crypto_box_keypair();
// 交换公钥 (通过 WebRTC)
send(publicKey);
receive(peerPublicKey);
// 计算共享密钥
const sharedKey = sodium.crypto_box_beforenm(
peerPublicKey,
secretKey
);
// 加密消息
const encrypted = sodium.crypto_box_easy(
message,
nonce,
peerPublicKey,
secretKey
);- 窃听保护: 端到端加密,256位密钥
- 篡改保护: Poly1305 消息认证码
- 重放攻击: 192位 Nonce 随机数
- 密钥安全: Curve25519 椭圆曲线,抗侧信道攻击
- 前向保密: 每次连接新密钥,历史消息不受影响
- ️ 中间人攻击: 密钥指纹验证(规划中)
- 加密强度: 军事级 (与 Signal、WhatsApp 同级)
- 密钥长度: 256 位 (当前无法破解)
- 认证强度: Poly1305 (2^106 安全边界)
- 随机性: 192 位 Nonce (2^192 组合)
- ️ 本地安全: 不加密本地存储(消息不持久化,刷新即清空)
- ️ 身份验证: 当前无公钥指纹验证机制
- ️ 群聊: 暂不支持多人加密群聊
- ️ 元数据: 连接信息(IP、时间)未加密
- 企业通讯
- 内部保密沟通
- 敏感信息传递
- 隐私聊天
- 个人隐私保护
- 安全的即时通讯
- 团队协作
- 项目讨论
- 技术交流
- All browsers with WebCrypto
- Electron Desktop
- ⏳ React Native Mobile
| 功能 | 文件传输 | 便签墙 | 加密聊天 |
|---|---|---|---|
| 技术栈 | WebRTC DC | Yjs CRDT + WebRTC | libsodium + WebRTC |
| 加密方式 | DTLS/SRTP 传输层 | DTLS 传输层 | E2EE 端到端 |
| 加密算法 | AES-GCM (128-256位) | DTLS 1.2+ | XSalsa20+Poly1305 (256位) |
| 密钥管理 | 每次连接新密钥 (PFS) | 每次连接新密钥 (PFS) | ECDH 自动交换 (PFS) |
| 隐私级别 | 传输加密 | 传输加密 | 端到端加密 |
| 持久化 | IndexedDB (本地) | IndexedDB (本地) | 不持久化 (内存) |
| 多人协作 | 一对一 | 多人实时 | 一对一 |
| 离线支持 | 需在线 | 离线可用 | 需在线 |
| 实时性 | 高 (20-50 MB/s) | 高 (<100ms) | 极高 (<50ms) |
| 数据大小 | 无限 (1GB+) | 适中 (<10MB) | 小 (<1MB) |
| 安全威胁防护 | 中间人、窃听 | 窃听 | 窃听、篡改、重放 |
- ⏳ 断点续传
- ⏳ 文件加密传输
- ⏳ 文件夹传输
- ⏳ 二维码扫描接收
- ⏳ 便签大小调整
- ⏳ 图片便签
- ⏳ 便签分组
- ⏳ 导出/导入
- ⏳ 消息历史(加密存储)
- ⏳ 文件加密传输
- ⏳ 语音消息
- ⏳ 视频通话
- ⏳ 群聊支持
- ⏳ 公钥指纹验证