「译」PGP的问题(下)

答案

Posted by UlyC on September 7, 2022

「译」PGP的问题(下)– 答案

原文链接 ,原作者为 Latacora,一个国外安全团队。

答案

说服人们停止使用PGP的挑战之一是没有一种东西可以取代它,也不应该有。

你应该用什么来取代它,取决于你要做什么。

与人交流

译注: 我不太认同作者这部分的观点,Signal并不是什么更好的选择(WhatsApp更不是 。 首先你能期待一个必须要手机号才能使用的软件给你什么安全? (cue一下Telegram 。
更多不推荐的理由,可以参考sourcehut创始人 Drew DeVault的文章 I don’t trust Signal

使用Signal。或者Wire,或者WhatsApp,或者其他基于Signal协议的安全通信软件。

现代安全即时通讯是围绕着信息传递而建立的。它们使用保护隐私的认证握手、可拒绝的信息、在每个信息交换中重新加密的加密棘轮,当然还有现代的加密原语。

即时通讯软件的使用非常简单,而且不需要为密钥和子密钥而大费周章。

如果你使用Signal,你会得到更多:你会得到一个对将私人元数据保存在服务器上如此偏执的系统,它对Giphy搜索进行隧道化处理以避免流量分析攻击,而且直到最近还不支持用户配置文件。

加密电子邮件

不。

电子邮件不安全。即使使用 PGP,它也是默认明文,这意味着即使您做对了所有事情,您邮寄的某个完全可信的人,做完全合理的事情,总是会将您加密消息的引用明文抄送给其他人(我们不知道没有看到这种情况发生的 PGP 电子邮件用户)。PGP 电子邮件是转发不安全的。包括主题(字面意思是消息内容)在内的电子邮件元数据始终是纯文本的。

如果您需要其他理由,请阅读 Efail 论文对Efail的披露处理不当的 GnuPG 社区对这项研究进行了大量讨论,但它被 Usenix Security(顶级学术软件安全活动之一)和 Black Hat USA(顶级行业软件安全活动)承认,是过去 5 年中最好的加密攻击之一,是对 PGP 生态系统的毁灭性指控。 正如您将从论文中看到的那样,S/MIME 并不好。

这不可能被修复。要制作真正安全的电子邮件,你必须在电子邮件上建立另一种协议的隧道 (您仍然会承受流量分析攻击)。都这样了,又何必去伪装呢?

加密电子邮件是自寻祸患。

向有风险的用户推荐电子邮件加密是一种不当行为。 任何告诉您通过 PGP 加密的电子邮件进行通信是安全的人都将他们奇怪的偏好置于您的安全之上。

发送文件

使用Magic Wormhole

虫洞客户端使用一次性密码验证密钥交换 (PAKE) 将文件加密给收件人。

这很容易(至少对于Nerd们来说)、安全且有趣:我们还没有把虫洞介绍过给任何没有像我们一样立即开始欣喜地使用虫洞的人。

有人马上发布了 Go 或 Rust 实现的 Magic Wormhole 的 Windows 安装程序, 它太棒了,我不允许还有人没装!

如果您与律师而不是与技术人员合作,Signal 在保护文件传输方面做得非常好。 在您的安全页面上放置一个 Signal 账户以接收错误赏金报告,而不是 PGP 密钥。

译注,Magic Wormhole是一个命令行的文件传输工具。 推荐一个web版的,更易用一些的文件传输工具,名字也很像,叫 Wormhole源码

加密备份

使用 Tarsnap。Colin 可以告诉您有关 Tarsnap 如何优化以保护备份的所有信息。 或者说真的,使用许多其他人使用的任何其他加密备份工具; 它们不会像 Tarsnap 那样棒,但它们肯定都会比 PGP 做得更好。

需要离线备份?使用加密的磁盘image;它们内置于现代 Windows、Linux 和 macOS 中。 全盘加密不是很好,但它适用于这个用例,而且比 PGP 更容易、更安全。

签署包

使用 Signify/Minisign。ed Unangst 会告诉你一切

这是 OpenBSD 用来对包进行签名的东西。它非常简单并使用现代签名。

Minisign ,ibsodium 的专家Frank Denis写的 ,为 Windows 和 macOS 带来了相同的设计;Go、Rust、Python、Javascript 和 .NET 都有相关的包;它甚至与 Signify 兼容。

加密App的数据

libsodium

它可以在任何地方构建,具有设计为难以误用的界面,并且您不必掏出一个二进制文件来使用它。

加密文件

这确实是个问题。

如果你不是在做备份,也不是在为长期存储而离线存档,也不是为了安全地将文件发送给别人而加密,也不是为了完成工作而挂载/卸载的虚拟驱动器。

那么现在没有一个好的工具可以做到这一点。Filippo Valsorda 正在研究这些用例的Age,我对此非常乐观,但它还没有完成。

更新,2020 年 2 月

Filippo的age已经公布。 这是一个可靠的设计,在 Go 和 Rust 中具有简单、易于审计的实现。

您可以为每个主流平台构建二进制文件。

age当然比 PGP 年轻得多。但我会用我口袋里的所有钱来和你所有的钱打赌,在Age发现新的漏洞之前,PGP这个庞然大物就会被发现(新的漏洞)。看age的了!

希望大家能明白这是一个相当狭隘的用例。 我们从事软件安全工作并处理敏感数据,包括Bug Bounty报告(另一个超级常见的“我们需要 PGP!”用例),但我们几乎永远都不用碰 PGP!

译后注

在今天,PGP俨然已经成为一种亚文化,很多独立博客作者,安全研究员,键政人都愿意在自己的个人资料里附上自己的PGP指纹。

它作为密码学的象征, 对于开源和自由运动与集权抗争的象征意义,已经大于它的实际作用。

复杂的用法并不会减损它的魅力,忽视诸多安全问题而给人虚假的安全感才是最致命的。(虽然99%的人只是用来装逼,不会也找不到人去用

我的建议就是,咱继续用它装逼就好,如果做高风险的事还是别用它了😂

像原作者说的那样,用专业的工具去做专业的事。

前面说过我并不推荐作者强推的Signal,并给出了一些理由。那我们应该用什么呢?

一个很好的替代品是Matrix,一个「去中心化」的「端到端加密」的即时通讯软件。

「去中心化」意味着很难被墙,「端到端加密」意味着安全。

想必你也不会想去教八十岁的奶奶使用OMEMO XMPP,或者给朋友推荐一圈某 T字头全宇宙最好的聊天软体结果因为需要翻墙没人愿意折腾,最后就自己和自己安全地聊天吧。

如果你也不想妥协继续使用微信,用Matrix!


知识共享许可协议
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。