Herkos

安全政策

Herkos 处理私钥和加密消息,因此我们认真对待安全报告,宁愿尽早而不是太晚得知问题。

报告漏洞

请不要为安全问题创建公开 issue。

请发送电子邮件至 security@herkos.email 私下报告。

建议包含以下内容:问题是什么、如何复现、你测试的平台和版本,以及攻击者能够达成什么。 提供概念验证会很有帮助。

切勿在报告中附上你自己的 nsec、私钥或 bunker 密钥。

我们力求在几天内确认收到报告。由于 Herkos 是一个小项目,请在公开披露之前给我们留出 合理的修复时间。除非你另有意愿,我们很乐意在安全公告中致谢你。

适用范围

Herkos 应用本身:密钥的处理与存储、消息的加密与解密(包括 local_packages/nostr_mail 中的 NIP-59 发件人校验和密送(Bcc)隔离)、应用锁、与中继和桥接服务的通信、附件处理, 以及构建与发布流程。对于 Herkos Drive,还包括它的协议包(packages/herkos_drive_protocol) 和打开其链接的页面(herkos.app/f/);见下文它自己的一节。

不在范围内

已知局限,直言不讳

这些是设计上的取舍,而不是漏洞。我们宁愿把它们写下来,也不愿让别人吃了亏才发现:

Herkos Local Relay:它保护什么,不保护什么

Herkos Local Relay 把你的应用的事件保存在你的设备上,私密事件也不例外(草稿、私密列表、 你收到的信封)。下面按平台说明是什么在保护它们,以及界限在哪里。中继的安全问题请按与其他 问题相同的方式报告(见上文)。

整个数据库都是加密的,连同其日志文件(SQLite3 Multiple Ciphers、AEGIS-256)。密钥是 在设备上生成的 32 个随机字节,保存在系统的安全存储中:Android 上是 Keystore,Windows 上是 DPAPI,Linux 上是密钥环(libsecret)。它不使用你的任何密码,因为中继必须能自行启动。没有 密钥,中继就不会启动,并会说明这一点:它绝不会打开或创建未加密的数据库,也绝不会删除它 无法打开的数据库。

如果… Android Windows Linux
有人复制了数据库文件(备份、同步文件夹、磁盘镜像) 受保护 受保护 受保护
设备或磁盘在关机状态下被盗 受保护:密钥在 Keystore 中 受保护,除非对方知道你的 Windows 登录密码:DPAPI 用该密码保护密钥 受保护,除非对方知道你的密钥环密码(几乎总是你的会话密码)
同一设备上的另一个用户账户 受保护 受保护:DPAPI 按用户区分 受保护:密钥环按用户区分
以你的用户身份运行的另一个应用或程序 受保护:Android 将每个应用相互隔离,Keystore 只把密钥交给中继 不受保护:DPAPI 按用户加密,而不是按应用;以你的身份运行的程序可以像中继一样请求密钥 不受保护:你会话中的密钥环不会把应用彼此隔开
已 root 的手机,或以该应用身份执行代码的工具 不受保护 — —
有人拿着已解锁的设备 只有中继的 PIN 或指纹(如果你设置了) 同上 同上
有人在中继运行时读取其内存 不受保护 不受保护 不受保护

在桌面系统上,DPAPI 和密钥环的界限与任何程序相同:它们能防范其他用户和拿走磁盘的人, 但无法防范已经以你的身份运行的恶意程序。如果你担心这种情况,能保护你的是系统盘加密 (BitLocker、LUKS),以及不运行你不信任的程序。在没有密钥环(没有 Secret Service)的 Linux 上,中继不会启动,并会说明原因:它绝不以明文保存密钥。

在设备本身上,谁能进入。 中继只在 127.0.0.1 上监听,而设备上的任何应用,或浏览器中的 网页,都能访问这个地址。因此:

在这方面,它不能防范的是:

本地网络,如果你开启它(默认关闭):

在这方面,它不能防范的是:同一网络中的任何人都能看到设备有一个开放端口,以及有多少流量 经过它,但看不到内容;如果设备有公网地址(中间没有路由器),这个端口可以从互联网上看到, 不过它仍然要求提供你列表中的密钥。

备份。 加密备份有密码(scrypt 和 XChaCha20-Poly1305):没有密码,任何人都无法打开它, 包括我们。JSONL 导出不加密,会以明文包含你的私密事件;应用会提醒你这一点。

锁定(PIN,加上指纹或 Windows Hello)会在打开应用时、离开 30 秒后,以及批准配对时要求 输入。它是一道便利性的屏障,和 Mail 中一样:它不加密任何东西。在 Android 上,设置 PIN 后 不能截屏,最近使用的应用中也不显示缩略图;而且从 Android 12 起,你使用中继时,其他应用的 窗口无法覆盖在中继的窗口之上。

Herkos Drive:它保护什么,不保护什么

Herkos Drive 把你的文件保存在 Blossom 服务器上,把你的文件和文件夹列表保存在 Nostr 中继上,两者都在你的设备上加密。 下面说明是什么在保护它们,以及界限在哪里。 完整细节见 packages/herkos_drive_protocol/ 中的 spec-drive.md 和威胁模型 amenazas-drive.md;每个中继和服务器能看到什么,见隐私政策。 Drive 的安全问题请按与其他问题相同的方式报告(见上文)。

中继和服务器做不到的事:

它不保护的:

如何检验。 对照威胁模型进行的两次内部审查(2026 年 11 月 2 日)及其修复;对每个事件和数据块所暴露内容的测试;对每个读取外部来源内容(事件、密封、清单、链接、备份)的解析器进行模糊测试。 尚无外部审计:计划在公开测试版之前进行一次,其报告将全文公布。Drive 仍在开发中。

受支持的版本

安全修复只应用于最新发布的版本。鉴于项目规模,旧版本不再维护——报告前请先更新。