Hashcash,这个真的有用吗?

信息安全 密码学 网络服务器 电子邮件 风险管理 垃圾邮件
2021-08-29 20:03:31

刚听说这个词,真的用过吗?这个概念似乎并不新鲜,它是否在当前技术中使用和/或实施?

4个回答

是的,它在许多邮件传递/过滤系统中使用。其中最受认可和广泛使用的是 spamassassin,被一些主要的 ISP 和邮件服务使用。请参阅http://hashcash.org/mail/

您可能还想阅读 hashcash 常见问题解答:http: //hashcash.org/faq/

它还用于各种其他协议和应用程序,包括打击垃圾博客。你可能听说过比特币——hashcash 是比特币中用作功函数的底层机制。

不,它没有被使用。它迫使发件人浪费大量 CPU 周期,并证明他已经这样做了,以期减少垃圾邮件。不幸的是,这不起作用。这种方法有两个严重的问题:

  • 它不会阻止垃圾邮件。垃圾邮件发送者经常使用受感染 PC 的僵尸网络。他们可以让那些受感染的 PC 执行浪费的计算并证明他们已经这样做了,然后他们的垃圾邮件将通过 hashcash 过滤器。

  • Hashcash 与邮件列表的交互很差。如果我想向一个有 1000 人的邮件列表发送一封电子邮件,我将不得不浪费一堆 CPU 周期 1000 次(每个收件人一次)。这意味着合法的发件人被阻止发送到邮件列表,或者不得不浪费大量的 CPU 来这样做。这真的不能接受。

所以,总的来说,hashcash 已经死了。没有人使用它,因为它无法阻止垃圾邮件。这是一个可爱的想法,但事实证明它并不能解决实际的现实问题。哦,好吧,就这样吧!

编辑 4/28:有关为什么 hashcash 不是垃圾邮件解决方案的更多详细信息,请阅读以下研究论文:

维基百科也对其中一些问题进行了简短的讨论

我还没有看到在大多数主要的商业电子邮件过滤器中实施(或公开讨论)这项技术。

所以 hashcash 并不是一个新想法。它至少可以追溯到2003 年我也听说过早于 2003 年就讨论过这个概念。

它基于一个简单的前提,并强制发送者花费CPU 周期来计算每条消息的哈希标签。我相信这种方法假设每条垃圾邮件的价值可能低于计算标签的成本。如果每条垃圾邮件的价值大于 CPU 周期成本,那么这种方法不会阻止垃圾邮件发送者。

使用这种技术,有效性还取决于收件人的电子邮件实施。如果收件人的邮件服务器没有强制执行或检查哈希计算的结果,那么任何发件人都可以欺骗结果或简单地创建一个假值来添加到每条外发邮件中。

阻止垃圾邮件的挑战是将发件人和收件人的控制联系在一起。当缺乏协同作用时,效果会大大降低或完全消失。想象一下,如果所有发件人都计算了 hashcash 但收件人从未检查过 has 值。这将创建一个无效的系统,发送者正在浪费 CPU 周期来计算没有价值的东西。此外,与不在标头中计算和添加 hashcash 值相比,每条消息都需要传输额外的数据,这增加了带宽和存储需求。

大多数当前的反垃圾邮件产品使用多种不同的方法来识别垃圾邮件,并且准确度很高。

(这是使用我无法以其他方式分享的数据的原始研究。)

我拥有全面的全球企业电子邮件遥测技术,尤其是来自美国和欧洲的电子邮件。

大约 0.002% 的邮件流使用Hashcash

相比之下,69.332% 的邮件使用DKIM,这涉及到服务器对电子邮件的至少几个组件进行签名,这具有计算要求(但不能保证每个收件人的基础上。另请注意,静态垃圾邮件更容易捕获而不是快速变形垃圾邮件,这需要签名服务器计算新的内容签名)。

或者考虑一下0.034% 的邮件是用PGP签名的,同样涉及计算成本,仍然是 Hashcash 的 30 多倍,而且它提供了发件人和内容的完整性

如果您是批量邮寄者,并且您可以负担额外的 CPU 周期,那么您不妨使用 Hashcash,但现在它不会给您带来太多收益。最好先确保正确设置了 DKIM 和DMARC,然后再处理像 Hashcash 这样过时的东西。

(数据是 1 年的样本,数字最后一次更新是 2019 年 6 月 5 日。2016 年的 Hashcash 百分比相同,PGP 从那时起减少了一半(尽管我只计算内联签名),DKIM 增加了 1.389 倍。)