安全说明

最后更新:2026 年 9 月 17 日 · 本页每一条对应现行代码或线上配置,代码变更时同步更新。
加密与解密都在你自己的电脑上完成,服务器只保存打不开的密文。所用算法全部为公开标准,安全性来自你的密码与恢复码。本页同时写明适用边界。
目录
  1. 报告安全问题
  2. 适用范围
  3. 威胁模型
  4. 加密设计
  5. 账号、设备与朋友
  6. 你电脑上的数据
  7. 防退化措施

一、报告安全问题

发现安全问题请发邮件至 voellin@yeah.net不要开公开 issue,也不要在群里公布。邮件请写清:受影响的组件与版本、复现步骤或概念验证、你认为的影响范围。加密相关的问题请附上构造的输入与预期/实际输出。

我们的承诺:

节点时限
收到确认2 个工作日内
分级与初步结论7 天内
修复上线已确认的问题 90 天内;涉及协议或密钥格式变更的,会告知具体计划
公开披露修复上线后,与报告者协商时间;报告者署名,除非你不愿意

也请你遵守:服务端不开源,测试只能打在线上的 deephub.cyou。请只用自己的账号;不访问、不修改、不留存其他用户的数据;不做压力或拒绝服务测试;不做社会工程。

In English. Please email voellin@yeah.net with a description, affected version, and reproduction steps. Do not open a public issue. We acknowledge within 2 business days, triage within 7 days, and aim to ship a fix within 90 days for confirmed issues. The server is not open source, so testing necessarily goes against the live deephub.cyou. Use your own accounts only; never access, modify, or exfiltrate other users' data; do not run denial-of-service or load tests.

二、适用范围

组件说明
DeepHub 桌面客户端Windows / macOS,安装包从本站分发
dsh-deephub-share 插件DeepSeek Harness 的第三方插件,开源。与桌面端共用同一套云端协议实现
云端 API 服务部署在 deephub.cyou
官网与更新分发deephub.cyou 及其 /updates/

不在范围内:DeepSeek、豆包等第三方模型服务,飞书 / 钉钉官方命令行工具,以及随软件捆绑的 Chromium 等第三方程序。

两个客户端的保护强度不完全一致。云端协议、传输安全、服务器能看到什么这三项两者完全一致;本机密钥的保护强度不一致,见第六节。

三、威胁模型

对手意图我们的立场
服务器运营方、被攻破的服务器、拖库者 读取你的会话、设置、分享内容 防住。服务器只保管解不开的密文,没有你的密码、主密钥、恢复码和身份私钥。但它看得到元数据,也能拒绝服务、扣住或回退你的数据
网络攻击者(中间人、恶意 Wi-Fi、伪造 DNS) 篡改请求与响应、冒充服务器、重放 防住篡改与冒充。请求由你的设备签名,响应由服务器签名,这一层与 TLS 证书无关,证书被伪造时仍然成立
其他用户(朋友或陌生人) 冒充你的朋友、往你名下写入内容、探测某个账号是否存在 短 ID 只能发起好友请求,关系须由你点同意;分享走收件箱,取回之前可直接拒绝;账号是否存在,从服务器的响应上分辨不出来
取得你电脑的人 读取本机的密钥与数据 只防到操作系统账户这一层,且两个客户端强度不同,见第六节

明确不防的:

四、加密设计

DeepHub 不自研密码算法。所用的五个原语全部为公开标准,实现一律使用 Node 内置的密码库,不引入第三方实现:

用途算法与参数说明
密码派生密钥scrypt,N=216,r=8,p=1,输出 32 字节,16 字节随机盐参数随账号保存。该档位按移动设备可承受的内存选定(约 64 MB),低于 OWASP 推荐的 N=217,以最少 10 位密码作为补偿。新账号与改密码时可提档
子密钥分叉HKDF-SHA256登录凭证与加密钥匙从同一源头分叉,互相推不出来
内容加密AES-256-GCM,12 字节随机 IV,16 字节认证标签每条内容使用独立的随机数据密钥
请求与响应签名Ed25519每台设备一把,服务器一把
朋友之间协商密钥X25519 + HKDF-SHA256用于端到端加密的分享
恢复码112 位随机熵,Crockford Base32 编码,23 位数据加 1 位校验,显示为 6 组 4 字符校验位在本机拦截误输入

密钥层次

密码 ──scrypt──▶ 中间密钥
        ├─ HKDF ─▶ 登录凭证 ──sha256──▶ 上传(服务器再加盐哈希后保存)
        └─ HKDF ─▶ 包装钥匙 ─────────────▶ 永不离开你的电脑

恢复码 ──HKDF──▶ 恢复用的包装钥匙

主密钥(32 字节随机,你的数据真正的钥匙)
   ├─ 被包装钥匙裹住 ──────▶ 存在服务器(服务器打不开)
   ├─ 被恢复用钥匙裹住 ────▶ 存在服务器(服务器打不开)
   └─ 裹住每条内容自己的数据密钥

每条内容:随机数据密钥 ──AES-256-GCM──▶ 密文

三个推论:

五、账号、设备与朋友

设备

账号恢复

忘记密码时,恢复流程需要两样东西同时具备:邮箱收到的验证码,以及你的恢复码。服务器会验证请求方确实用恢复码解开了主密钥——只拿到邮箱是不够的。

恢复成功会退出该账号的其它所有设备,并激活当前这一台。因此怀疑某台设备不在自己手上时,走一次账号恢复比改密码更彻底。

朋友与分享

六、你电脑上的数据

本节两个客户端不同,请按所安装的版本阅读。

DeepHub 桌面客户端

内容保护方式
设备签名私钥用操作系统的密钥保护接口加密(Windows 为 DPAPI,macOS 为钥匙串)。接口不可用时降级为仅当前用户可读的明文文件,并在设备信息中如实标记
主密钥缓存(用于免密启动)同上加密;接口不可用时不缓存,改为每次启动输入密码,绝不明文落盘
身份私钥缓存同上
会话、记录、设置、知识库明文 JSON,依赖系统账户隔离与磁盘加密(BitLocker / FileVault)

主密钥、恢复码与身份私钥只存在于软件主进程,不会传到界面层。唯一的例外是注册时将恢复码显示给你抄写,确认后立即清除。

dsh 插件

插件运行在 DeepSeek Harness 中,没有操作系统密钥保护接口可用。四条密钥记录存放在 dsh 自身的凭据文件里,与 dsh 的模型 API Key 同一文件、同一套文件权限:设备签名私钥、主密钥缓存、身份私钥均为明文,文件权限限制为仅当前用户可读。

与桌面端的差异:
相同:两者都挡不住以你自己的系统账户身份运行的程序——系统密钥接口本身即绑定系统账户。
不同:桌面端的密文离开这台机器或这个系统账户即无法打开;插件的凭据文件被拷走即为明文。因此在磁盘被镜像、备份外泄、机器转手、文件被跨系统账户复制这几类情况下,插件一侧没有保护——取得该文件即等同于取得主密钥,可解开该账号在服务器上的全部密文。

这是为免密启动有意接受的取舍,插件界面已标注保护级别。若你的顾虑包含「这台机器的磁盘可能落到别人手里」,请在插件中退出登录(清除主密钥与身份私钥,保留设备密钥),或只使用桌面客户端。

将来 dsh 的凭据存储接入系统钥匙串时,插件会自动受益,无需改动。

七、防退化措施

八、变更

本页如有变更,会更新顶部的「最后更新」日期。涉及加密设计或安全边界的重大变更,会在软件内提示。