信任网络是一个图,其中顶点是 GPG 用户(实际上是他们的密钥),边是交叉签名。如果我们将所有者信任问题放在一边,并假设所有参与者仅在检查密钥指纹后才签名,那么我可以信任在我和信任图中的密钥之间有一条路径的密钥。
如果我给信任网络中的某个人写一封电子邮件,我可以因此对消息进行加密并保持电子邮件内容的私密性。但是,我无法隐藏邮件的元数据:窃听者仍然会发现我何时发送邮件以及发送给谁。元数据讲述了很多关于人的信息,在用电话元数据以高概率猜测人们的性别、性取向、收入等方面已经取得了惊人的(不是说是可怕的)成就。(我不知道是否已经对电子邮件元数据进行了研究,但我希望得到类似的结果)
问题是:即使在客户端加密的电子邮件中,我们如何才能隐藏元数据?
受 Tor 的启发,我在 GPG 之上提出了以下协议:
- 我想给查理发一封电子邮件。
- 我寻找一条从我到他的信任网络的路径,最小长度,例如 3。假设它通过 Alice 和 Bob。
- 现在是多重加密步骤:
- 我用查理的密钥加密邮件。
- 然后我用 Bob 的密钥加密已经加密的邮件和Charlie 的地址。
- 然后我用 Alice 的密钥加密所有这些和Bob 的地址。
- 发送以相反的顺序展开所有内容:
- 我将我从最后一个加密步骤中获得的所有内容发送给 Alice。
- Alice 解密,看到 Bob 的地址并将她解密的所有内容发送给 Bob。
- Bob 再次解密并将所有内容发送给 Charlie。
- 最后,查理最后一次解密。
如果我没有任何问题,它具有以下属性:
- 只有我和查理知道邮件的内容。
- 只有我、查理和鲍勃知道邮件的最终收件人。
- 只有我、查理和爱丽丝知道邮件的发件人。
这管用吗?可行吗?为什么我们不那样发送电子邮件?
一些可能的缺点可能是:
- 链中的某个人可能不在线。然后沿着多条路径发送消息可能是聪明的。
- 网络流量增加。如果窃听者仔细分析我、Alice、Bob 和 Charlie 发送的每封电子邮件,他们可能会注意到 Alice 在我给她写信后不久就向 Bob 发送了一封电子邮件,依此类推,将邮件追踪到 Charlie。这还需要多少资源?将电子邮件延迟一小段时间(比如几分钟)是一种有效且可接受的对策吗?