什么是客户端加密

简而言之:

客户端加密,指的是上锁这件事发生在你自己的设备上,用的是你自己的处理器。服务器收到的只有加密后的结果。与之相对的是 服务端加密:你把可读的数据送上云端,由云端替你上锁,钥匙也留在它那里。

✉️ 信封的比方

设想你要把一份机密合同寄存到仓库。

  • 服务端加密,也就是常见做法: 你把合同交给管理员。他看过之后放进信封、封好口,摆上货架。他承诺不再打开,可封口是他封的,自然也能拆开。
  • 客户端加密,也就是 TaskNote 的做法: 你在自己家里把合同放进钢箱,挂上自己的锁,交出去的是已经锁好的箱子。箱子上架,管理员读不到内容,因为他从没见过它敞开,手里也没有钥匙。

⚠️ “加密”这个词常常盖住的东西

当一个应用宣传“银行级加密”或者“静态加密”时,说的多半是 服务端加密。

它能防住闯进机房的 窃贼,却防不住 保管数据的公司本身。

  • 他们的管理员能读到你写的东西。
  • 一纸法院命令下来,他们有义务解密后交出。
  • 他们的登录系统一旦被攻破,你的内容也跟着出去。

客户端加密 把信任从这道等式里拿掉。服务器被当成一个不需要去信任的储物间。

⚙️ 在浏览器里是怎么发生的

浏览器不只是用来显示网页。现在每一个浏览器都自带一套密码学引擎,也就是 Web Crypto API。

  1. 你在打字。 在 TaskNote 里写一条笔记。
  2. 处理器接手。 在保存之前,它取来你的密钥和这段文字。
  3. 上锁。 AES-256 算法在你自己的机器上跑完。
  4. 发送。 得到的一串乱码被送到我们的服务器。
客户端加密与服务端加密的对比图

这会花掉一点点电。作为交换,隐私靠的是数学,而不是一句承诺。

🛡️ 我们为什么这样做

隐私不该是一个需要你去翻找的开关。

在设备上加密带来三件事:

  1. 快。 活儿在你所在的地方干完,不用等服务器处理文字。
  2. 安全。 有人搭在你我之间的线路上,收到的只是加密后的杂音。
  3. 踏实。 没有哪个模型在拿你的私人想法做训练,因为我们这边根本没有能读它的东西。

❓ 常见问题

会耗电吗?

察觉不到。手机上有专门的硬件来做这件事,加密一条笔记比加载一张照片还省。

加密之后还能搜索吗?

能,只是搜索换了个地方。加密后的索引下载到你的设备,在内存里解开,就地检索。搜索之所以快,正因为它是本地的。

为什么不是所有应用都这么做?

因为更难做,而且会关上一些门。服务端加密简单,还能让内容继续用于广告和训练模型。客户端加密堵死了这条路,于是不少公司就悄悄绕开了。

你的想法属于你,不属于某台服务器

别再把私密的东西交给读得到它的公司。

免费使用 TaskNote