端对端加密
服务器存着但读不到的分享。默认关
加密的分享在离开上传者的电脑之前就封好了,所以这台机器存着、发出去的,是它没有密钥的字节。打开它这件事在收件人的电脑上发生。
默认关。打开 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。