教程

你的笔记是怎么加密的

手机电脑同步插件 · ·使用教程

最重要的一句话

你写的每一个字、贴的每一张图,是在你自己的电脑或手机上就先被锁起来的,之后才传到云端。

云端只看得到一堆乱码,连我们自己也解不开。能解开的,只有你设备里那把密钥——这把密钥从生成那一刻起,从来没有离开过你的设备

下面把这个事情拆开讲清楚。

一、加密强度是什么档次

和保护比特币用的密码学,是同一档强度。

通俗讲:比特币能放心地把价值几千上万美元的钱存在一段公开可见的「地址」后面,靠的就是「密钥被别人猜中」这件事在现实世界里几乎不可能发生——

全世界把所有已知的电脑加在一起,用宇宙到今天这么长的时间去算,也算不出来。

我们对你笔记内容做的加密,用的就是同一个量级的算法(业内叫 AES-256,是各国政府、银行、军队都在用的国际标准)。也就是说,只要你的密钥没有泄露,你的笔记内容在云端就是不可能被解开的。

插件代码是开源的,谁都可以下载下来发给 AI 做一次安全审计。

二、密钥是怎么生成的?保存在哪?

生成

第一次创建笔记库时,插件在你这台设备本机随机生成一把全新的密钥

  • 整个过程不联网,服务器完全不参与。
  • 由你这台设备本地安全地生成一把高强度的密钥。
  • 服务器从一开始就不知道你的密钥长什么样

保存

这把密钥保存在你设备的本机存储里(Obsidian 插件的数据目录),跟你笔记本身一样,只有你这台设备上的程序看得到

我们强烈建议你把密钥导出来备份一份——存到密码管理器、记事本、纸条上都行,但请务必备份。后面讲为什么。

怎么导出?参考 常见问题 Q2

三、那服务器拿到的是什么?

服务器只拿到两样东西:

  1. 加密之后的笔记内容——一段没有密钥谁都解不开的乱码;真有那么大算力想搞破解的,不如直接去破比特币。
  2. 一个用来验证密钥的「校验值」——它的作用是让你在另一台设备上输入密钥时,能判断密钥对不对。

第 2 项很关键:这个「校验值」是单向的——通俗讲就是「能从密钥算出校验值,但不能反过来从校验值反推出密钥」。这是数学上保证的,不是程序设计选择。

四、换设备 / 多设备同步时,密钥怎么过去?

不通过云端中转。

两台设备之间走「端到端配对」,过程大致是这样:

  1. 两台设备各自生成一对临时的「配对密钥」。
  2. 通过云端只交换其中公开的一半(业内叫「公钥」,本身没有加密价值)。
  3. 两端各自在自己本机独立算出一个共同的「会话密钥」——这一步是数学魔法,关键就是这个「会话密钥」从未在网络上传输过,云端只能看到两个公开的「半把钥匙」,但拼不出真正的那一把。
  4. 用这个会话密钥把你的笔记密钥加密,传到新设备,新设备本地解开,保存到自己的存储里。

整个过程里,云端看到的,永远只是「加密之后」的东西

五、所以这意味着什么

✅ 好处

  • 即使服务器被攻破、磁盘被偷、被勒索软件加密,攻击者拿到的也只是乱码。
  • 我们的员工、运维、第三方云服务商,任何人都看不到你的笔记。

⚠️ 代价

  • 如果你把密钥弄丢了——没有备份、也没有任何老设备能用——那云端这份数据也就永远没人能解开了。我们也没办法帮你恢复。

    这正是「我们也解不开」的另一面。要是有谁声称能帮你「重置密码」把笔记捞回来——那他直接去破解比特币就赚翻了。

    所以请一定备份你的密钥

六、再具体一点(给技术专家)

如果你想知道更多技术细节,下面这些公开信息可以让你或者你认识的安全专家做独立判断:

部件用的算法
笔记内容加密AES-256-GCM(每次加密都用一次性随机 IV + 16 字节防篡改标签)
笔记路径与文件名加密AES-SIV(RFC 5297,确定性加密,让云端能识别同一文件但看不到名字)
密码模式下的密钥派生scrypt,参数 N=2¹⁷ r=8 p=1,对齐 OWASP 当前最强档(比 Obsidian 官方 Sync 还多一档算力门槛)
跨设备配对X25519 ECDH(Curve25519,业界端到端加密通讯的标准曲线)+ 短认证码 SAS
随机数源操作系统密码学随机(crypto.getRandomValues),不依赖任何伪随机
算法实现库全部用 @noble/ciphers@noble/hashes 纯 JS 实现

这些算法都不是我们发明的,是国际密码学界几十年验证过的标准(IETF RFC、NIST SP 等公开文档),任何懂行的人都可以审计。我们只是把它们正确地组装在一起。

一个公开的对照:上面这套算法组合,跟 Signal、WhatsApp 等以「端到端加密」著称的通讯软件用的密码学原语属于同一家族;算法选型经得起独立审计。