黑客已经使用了十多年已知的OpenPGP协议功能。
我们告诉您本质是什么以及为什么他们无法关闭它。
/不溅水/ 朱春雷网络问题
6月中旬,未知
人员 攻击了基于OpenPGP协议构建的
SKS Keyserver加密密钥
服务器网络。 这是IETF标准(
RFC 4880 ),用于加密电子邮件和其他消息。 SKS网络是三十年前创建的,用于分发公共证书。 已连接诸如
GnuPG之类的用于加密数据和创建电子数字签名的工具。
黑客破坏了两个GnuPG项目维护者-Robert Hansen和Daniel Gillmor的证书。 从服务器下载损坏的证书会导致GnuPG崩溃-系统只是死机。 有理由相信,攻击者不会止步于此,受到破坏的证书的数量只会增加。 目前,问题的严重程度仍然未知。
攻击的实质
黑客利用了OpenPGP协议中的漏洞。 几十年来,它已为社区所熟知。 即使在GitHub上,
您也可以找到适当的漏洞利用。 但是到目前为止,没有人声称有责任填补“漏洞”(我们将在下面详细讨论原因)。
我们在Habré博客上的一些选择:
根据OpenPGP规范,任何人都可以在证书中添加数字签名以确认其所有权。 而且,签名的最大数量不受任何限制。 这就产生了一个问题-SKS网络允许您为一个证书放置多达15万个签名,但是GnuPG不支持这样的数字。 因此,在加载证书时,GnuPG(以及其他OpenPGP实现)会挂起。
其中一位用户
进行了一项实验 -导入证书花费了他大约10分钟的时间。 该证书有超过5.4万个签名,其重量为17 MB:
$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6 gpg: key F20691179038E5C6: 4 duplicate signatures removed gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys gpg: key F20691179038E5C6: 4 signatures reordered gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <dkg@fifthhorseman.net>" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 $ ls -lh pubring.gpg -rw-r--r-- 1 filippo staff 17M 2 Jul 16:30 pubring.gpg
带有OpenPGP的密钥服务器不会删除证书信息的事实加剧了这种情况。 这样做是为了使您可以跟踪带有证书的所有操作的链,并防止它们被替换。 因此,不可能消除受损的要素。
实际上,SKS网络是一个大型“文件服务器”,任何人都可以在其上写入数据。 为了说明问题,去年,GitHub居民
创建了一个文件系统 ,
该文件系统将文档存储在加密密钥服务器网络上。
为什么漏洞未关闭
没有理由关闭该漏洞。 以前,它不是用来进行黑客攻击的。 尽管IT社区
长期以来一直要求 SKS和OpenPGP开发人员注意该问题。
公平地讲,值得注意的是,他们在6月份仍
启动了实验性
keys.openpgp.org密钥
服务器 。 它实现了针对这些类型攻击的保护。 但是,其数据库是从头开始填充的,服务器本身不是SKS的一部分。 因此,时间会过去才能使用。
/不飞溅/ 鲁本·巴格斯对于原始系统中的错误,复杂的同步机制无法修复它。 密钥服务器网络最初由Yaron Minsky撰写,旨在作为概念证明来捍卫博士论文。 此外,还选择了一种相当特殊的OCaml语言进行工作。 维护者Robert Hansen认为,理解代码很困难,因此仅需对其进行一些更正。 要修改SKS体系结构,您将不得不从头开始重写它。
无论如何,GnuPG都不相信该网络将是固定的。 在GitHub上的一篇文章中,开发人员甚至写道,他们不建议使用SKS Keyserver。 实际上,这是他们启动向新keys.openpgp.org服务过渡的主要原因之一。 我们只能观看事件的进一步发展。
我们公司博客中的一些资料: