PGP的现代替代品

2021-03-04 03:20:16

您最后的Yubikey刚刚休息吗?也许您忘记了离线备份密码。也许您只是厌倦了像间谍一样生活并且从不使用智能手机。无论是什么,您都在这里,您终于准备放弃PGP。太好了!

无论如何,没有人向您发送加密的电子邮件,因此非常容易。但是,PGP的最广泛使用是面向机器的,以满足诸如程序包签名和本地文件加密之类的需求。最近,我在提到过时的GoPG OpenPGP软件包的线程中再次遇到了这个问题,人们总是问同样的问题:如果不是PGP,那又是什么?

问题是,PGP不可能有直接的现代替代方案。它是一种万事俱备的设计,早于现代密码工程,而且效果还不错。 "现代替代品"是针对您的问题使用更具体,更不易配置的解决方案。

最初的需求:Linux发行版和许多其他软件更新机制使用PGP签名来防止恶意镜像或网络攻击者更改其软件包的内容。

现代替代方案:像OpenBSD的signify或minisign这样的轻量级签名工具,您都可以使用x / crypto / ed25519在Go中快速构建这两种工具。我上个月写了一个聚会技巧–不到200行代码,其中包括一些愚蠢的键解析技巧。

这些工具极其简单和健壮,因为它们仅支持一种算法,缺少状态或任何密钥环概念,并且通常与复杂的消息传递格式(应与签名密码学分开考虑)脱钩。另外,它们几乎彼此兼容,因为密钥都是EdDSA密钥。我什至需要提到EdDSA比RSA快很多吗?

如果您是自助包装基础架构的维护者,或者有其他更复杂的需求,则应该查看TUF。它是一种现代工具包,旨在抵御PGP签名根本无法解决的所有与更新相关的攻击。有关如何在实践中工作的想法,请查看Python软件包基础结构(PEP 458,PEP 480)的设计。公证项目是经过生产和审核的实施。

原始需求:您希望存储单个数据,而又不让系统上的其他任何人访问它们的内容。由于某种原因,它尚未内置在操作系统中,因此pass等程序使用PGP。

现代替代方案:nacl / box和nacl / secretbox。这些是用于加密任何类型数据的通用替代品。它们分别支持公共密钥和秘密密钥加密,并且都使用安全的现代模式和密码。

Keybase进行了非常扎实的尝试,以saltpack来以可存储的消息格式指定nacl,使用上面的x / crypto软件包可以很好地执行Go的实现。在您使用ASCII装甲的PGP数据时,它几乎可以作为替代品。

原始需求:您有要发送给其他人的文件,但不希望数据在传输过程中可见或存储在云中。为此,人们经常将加密的ZIP文件附加到电子邮件中。

现代替代方案:魔术虫洞。如果您需要安全地将文件发送给其他人,请使用此功能。它基于称为PAKE的现代加密技术,基本上意味着它可以确保您的数据安全传输,同时使攻击者没有机会破解密码。它会为您生成这些密码,它们是三个英语单词的简短,一次性使用的组合-您的接收者所需要做的就是输入单词。长期而言,没有什么可记住的,没有因数据泄露而丢失任何帐户信息。 Wormhole还可以通过防火墙工作,并且可以选择支持Tor。

您对PGP挥之不去的用例是什么?在Twitter上打我,或给我发送电子邮件,让我们讨论一下永久摆脱PGP的问题。