tessera

端对端加密

服务器存着但读不到的分享。默认关

加密的分享在离开上传者的电脑之前就封好了,所以这台机器存着、发出去的,是它没有密钥的字节。打开它这件事在收件人的电脑上发生。

默认关。打开 features.encryption 才会收。再关掉的话,新的不收,旧的照样拿得到。

它防的是谁

运维,以及任何拿到运维手上东西的人。 数据库的 dump、bucket 的副本、一个会去读客户对象的存储供应商:他们看到的全部是封起来的字节。

所以它值得开在一台帮不认识的人跑的机器上。在你只给自己用的机器上,它唯一挡得住的人是你。

挡不住一个说谎的页面

在浏览器里,负责封装的代码是同一台服务器刚发来的 JavaScript。想拿到密钥的运维可以发一个把密钥传回去的页面,而任何网页应用都没办法从里面排除这件事。它排除的是存着的数据之后被读走。命令行没有这个缺口,因为它的代码不是从它在讲话的那台服务器来的。

用密钥把内容封起来 发送封好的字节 给链接,密钥在链接的片段里 拿封好的字节 封好的字节 用密钥打开 上传者 服务器 收件人

密钥放哪的两种方式

放在链接里。 密钥写在分享网址的 # 后面。浏览器从来不会把那段发给服务器,所以拿到整条链接的人打得开,只拿到取件码的人打不开。

从密码来。 密钥是从一组密码推出来的,所以取件码加密码就够了,两个都能用电话念。

从密码来的密钥有两个代价

拿到存着的字节的人可以离线猜密码,所以密码至少要 12 个字,客户端在上传之前就会挡掉更短的。而且因为密钥是从它来的,这种分享的密码永远不能改,也不能拿掉。

藏住的,和没藏住的

藏住的没藏住的
内容每个文件多大
文件名和类型有几个文件
标题什么时候建的、什么时候过期
文本分享的语言被拿了几次、从哪里拿的

右边那栏是这台机器执行配额、期限和次数限制要用到的。

不一样的地方

  • 好几个文件会一个一个来,不会打包。压缩包要从服务器读不到的内容组出来。
  • 链接预览只写它是端对端加密的,以及大小。
  • 扫毒会跳过它。 扫毒软件什么都读不到。见扫毒。
  • 文本不能从纯文本链接直接开,要先由客户端解密。

用命令行

tess 也能发送和下载加密的分享。

tess send --encrypt holiday/
tess send --encrypt --password report.pdf
tess get 'https://files.example.com/s/0ZPQ4M7K#…'

只加 --encrypt 时,密钥放在链接的 # 后面。加上 --password,密钥改从密码算出来,密码至少要 12 个字符,收件人要同时有链接和密码。tess get 会问密码,或读 TESSERA_PASSWORD。

接下来

本页内容