把名单交给外部伙伴¶
一份三百多行的表格¶
年度申报的期限快到了,会计师要一份捐款明细。文件在你的电脑里,三百多行,每一行有姓名、电话、地址与金额。
往年的做法是直接当邮件附件发过去。那一份文件于是同时存在好几个地方:对方的邮箱、你的发件备份、两边的邮件服务器,以及任何一端的自动备份。名单本身没有加密,看得到那些邮箱的人就看得到名单。
年度申报每年都会做一次,而且不只发生在会计师身上。外包的设计、协作的研究者、共同申请项目的伙伴,都会需要你把一份名单交出去。
先抽一组密语¶
到密语与密码生成器抽一组密语。画面上会直接显示这组密语的熵有多少,也就是要猜中它大概要试多少次。
用抽的而不是自己想,理由是人想出来的东西不够随机。生日、机构的英文缩写、去年用过的那一组再加一个数字,这些在字典攻击里的排序都很前面。
加密再交出去¶
把表格拖进本机文件加密,钥匙选密语,粘贴刚才抽的那一组。
加密完页面会用同一组密语解回来比对,一致才给下载。这一步防的是密语打错或粘漏一个字,那种错误在当下完全看不出来,等对方解不开已经是几天后。
输出是 age 格式,任何装了 age 命令行工具的电脑都打得开,不需要回到这个网站。会计师如果习惯用命令行,你给的文件跟他平常收的没有差别。
密语不要跟文件走同一个渠道¶
密文用邮件发,密语就用别的方式给:当面说、打电话念、或者用另一个通讯软件。
同一封信里附上密文与密语,等于没有加密。拿得到那封信的人两样都有了。
密语要留着的话,存进你的密码管理器,跟那份密文放在一起的备注写清楚是哪一份文件。明年申报会再来一次。
加密过的文件还是要算一次哈希¶
本机文件加密防的是内容被看到,文件哈希比对确认的是内容没有变。两件事互相独立。
对加密后的文件算 SHA-256,把那一串跟密语分开给对方。对方收到之后先算一次比对,对得上再解密。
这一步买到的是分辨能力。对方解不开的时候,如果哈希是对的,问题就在密语,重念一次就好。如果哈希对不上,那是文件在搬运途中坏了或被换过,重传才有意义。少了核对哈希,两种完全不同的问题会长得一模一样。
收件人有 age 公钥就不必约密语¶
长期合作的伙伴可以请对方生成一把 age 密钥,把公钥给你。之后钥匙切到「公钥」模式,粘贴对方的公钥加密,对方用自己的私钥解开,不必再约密语。
常用的公钥可以取个名字存进收件人簿,下次选一个就填进去。收件人簿跟我的准备清单存在同一份用 passkey 加密的暂存区。
只用别人的公钥加密时,你自己这边没有东西能解回来验证。第一次合作先发一份测试文件请对方确认解得开,再发正式的。要自己也留得住,把自己的公钥也放一行。
这条路径不只用在年度申报¶
任何一份要离开机构的名单或表格都适用:
- 外包设计要的名册、贴标签用的地址清单
- 协作研究者要的问卷原始数据
- 共同申请项目时交换的参与者名单
- 活动报名表要交给场地方或保险
整条路径在你的浏览器里完成,名单没有离开设备。页面存进设备之后没有网络也能用,见离线阅读。