ProtonMail 安全问题

信息安全 加密 密码 电子邮件 不对称 质子邮件
2021-09-07 16:15:01

这个 TED 演讲把我带到了这里。首先,对于那些创建 ProtonMail 的人:干得好!!。不管人们怎么说,对于绝大多数互联网用户来说,这绝对是从 Hotmail、Gmail 或 Yahoo 邮件等传统选项迈出的一大步。

但是,我确实对它的安全承诺有些担忧。特别是邮箱密码的安全性

根据这个答案由 ProtonMail 开发人员使用用户的邮箱密码加密用户的私钥(使用下面提到的 AES256),并将加密的形式存储在服务器上。开发人员还指出,服务器不存储邮箱密码。但是,服务器必须存储某种形式的邮箱密码,以便用户可以通过身份验证。如果服务器上发生安全漏洞,确定真正的邮箱密码不只是时间问题吗?一旦邮箱密码暴露,私钥同样暴露,或者,如果用户' s 帐户现在可以免费访问了吗?那么还剩下什么安全措施呢?由于银行、医疗保健提供商和大型零售商的互联网安全漏洞已经是一个熟悉的新闻标题,这似乎确实是一个真正的问题。ProtonMail 在多大程度上不受此类违规的影响?

此外,对于普通用户来说,这并不是真正关心的问题,但由于 Protonmail 在其网站上的黄金位置列为其“基于瑞士”的优势之一:我假设服务器必须保留用户活动日志,其中必须包含用户的 IP 地址。如果瑞士政府决定追捕或帮助其他政府追捕某人,向 ProtonMail 询问所需的 IP 地址不是很容易吗?当然,在法律上更方便的情况下,政府也可以要求提供上述密码,即使是加密的。

编辑:

抱歉,如果我不够清楚,但我的意思是,如果发生安全漏洞,甚至不需要解决 AES256。一旦黑客计算出邮箱密码,私钥将是明文。没有透露使用什么机制来保护存储的邮箱密码,但如果它像 LinkedIn(谷歌黑客破解了 60 多个被破坏的LinkedIn密码),那么它绝对是致命弱点。当然,发现冲突与找到真正的密码是不一样的。但鉴于密码长度相对较短,冲突应该非常少。

编辑2:

由于缺乏活动,我将结束此线程。但是,问题仍然存在:ProtonMail 保护私钥(使用邮箱密码)的方式似乎削弱了它的安全性,可能在很大程度上削弱了它的安全性(参见我上面提到的 LinkedIn 示例)。它确实在 PGP 的安全但用户不友好的极端和传统电子邮件服务的不安全但用户友好的极端之间找到了一个中间地带,但它在安全尺度上的确切位置仍然存在疑问。

3个回答

但是,服务器必须存储某种形式的邮箱密码,以便用户可以通过身份验证。如果服务器上发生安全漏洞,确定真正的邮箱密码不只是时间问题吗?

安全是关于权衡的。有时有人说,唯一安全的计算机是拔掉任何电源、锁在保险箱中、用混凝土密封、位于马里亚纳海沟底部的计算机。我可能会补充一点,它必须没有能够存储任何信息的设备。这样的计算机将是(相对)安全的,但它不会非常用户友好、易于使用或对任何现实世界的目的特别有用。任何比这更有用的东西都必须以某种程度的安全性来换取它的可用性。

现在,话虽如此,但问题仍然存在:我们能否减轻合理的威胁?事实证明,是的,我们实际上可以。

现代密码算法(原语)对攻击具有很强的抵抗力。 即使是 SHA1,由于比预期的弱(也来自谷歌) ,目前已被淘汰,对于大多数用例来说仍然足够强大;它正在日落,因为它没有像我们认为的那样强大,因为它适用于这个特定的特定用例。这并不意味着 SHA-1 坏了;它只是意味着我们有理由转向更强大的东西。

至少在公众中,我们目前不知道我们将如何成功地攻击 AES-256(假设它被正确实施),只给定一个密文/明文对(“密钥恢复”或“暴力”攻击)。Wikipedia以 2^254.4 的复杂性给出了最广为人知的 AES-256 密钥恢复攻击,即便如此,可用的数据量也很荒谬。这将时间减少了大约三分之一到三分之二(2^-0.6 ~ 0.6596, 2^-1.6 ~ 0.3299;请记住,平均而言,通过暴力破解一个 n 位密钥的工作因数是 2^(n- 1)因为使用随机选择的密钥,您平均会在搜索一半密钥空间后找到它,可能性范围从第一次尝试找到它到在测试密钥空间中的每个密钥后找到它),这意味着我们认为应该完全完全完全完全地以指数方式进行攻击的时间比现在,宇宙的生命周期只需要比宇宙的生命周期几乎完全成倍地长。0.6 甚至 1.6 位的安全性差异在实践中完全是微不足道的,并且可能被会话中随机数生成或持久密钥生成阶段中的任何问题所掩盖我们甚至无法在合理的时间内实际到 2^128,更不用说对计数值做任何有用的事情了,2^256 的难度又是 2^128倍。

即使试图破解加密的实体可以访问量子计算机,Grover 的算法也只会将搜索时间(就基本操作而言)从大约 O(2^(n-1)) 减少到大约 O(2^(n /2)),这意味着 256 位密钥为您提供对抗量子能力对手的有效安全性,就像 128 位密钥为您提供对抗经典攻击者一样。这实际上已成为对称密码学中 256 位密钥的主要论据;对抗经典攻击者,出于所有实际目的,如图所示,128 位足以提供相当好的安全级别,但如果量子计算机在更大范围内变得可行,使用 256 位密钥提供了一个安全网。(请注意,这是关于对称密码学,而不是密钥交换!许多非对称加密算法,包括 RSA,在面对可行的、大规模的、通用的量子计算机时会被 Shor 算法彻底摧毁。)这是朝着被称为后量子的工作主要驱动力密码学

您使用提供接近 256 位熵的密码的概率基本上为零作为比较,您需要一个 20 字的正确生成的Diceware密码来获得 258 位的熵,对应于 100 次完美公平的六面骰子;如果它是正确生成的 Diceware 密码并且不为公众所知(它,可能它的每一个排列,现在几乎可以肯定在地球上的每个密码字典中),正确的马电池主食只会给你 52 位熵,它在每秒一万亿次猜测(大约 2^40 次猜测/秒)将持续 2^11 到 2^12 秒或大约一小时. 这对攻击者来说只不过是一个小小的不便。但是,没有什么可以阻止您使用高熵密码。ProtonMail 似乎没有对密码长度施加任何任意限制,因此,如果您愿意,您可以自由生成和使用 20-25 字的 Diceware 密码短语进行安全匹配,理论上可以通过 AES-256 获得。

正如 Lucas通过合并XKCD 漫画“Security”所指出的那样,攻击者很可能不会攻击加密原语;他们会追求别的东西。它不必涉及用扳手打你;可能是远程闯入您的计算机闯入您的家(可能是安装物理键盘记录器,或尝试获取有助于他们绕过加密的信息,例如未受保护的副本或书面-密码),或让他们亲自为您发货,并与他们一起做一些您不同意的有趣事情,或在正常操作期间远程监听您的计算机造成的排放,或通过某种形式的勒索或其他权力姿态迫使您合作。因为让我们明确一点:如果政府是专门针对的,并且不会因为采取行动表明这一点而烦恼,那么他们就会找到一种方法来提取他们需要的东西。在某种程度上,可取之处在于,大多数人并没有被专门针对和/或不值得暴露在那种程度,而只是被拉网监视所困. (尽管如果政府级别的对手后来确实意识到他们对你特别感兴趣,那确实会让他们更容易回去查看旧的通信,也可能在那里找到有罪的东西。当你不知道是否或者您是否被针对,或者如果他们稍后选择针对您,他们可能会拥有什么,这将成为一个问题。)

还有一些方法可以确保某人知道密码,而实际上没有以任何可恢复的形式存储密码。加密哈希 ( HMAC ) 部分基于密码、零知识证明,或者只是在给定的随机明文上计算加密哈希并仅存储加密的明文和哈希(如果加密密钥与密码相关,则两者只有在密码正确的情况下才能恢复为匹配对),都是可以实现的方法。

有一些方法可以减缓攻击者的速度。像Blowfish这样的加密算法通过复杂(且缓慢)的密钥调度来实现这一点,或者我们可以使用运行缓慢的密钥派生函数,例如经过适当调整的PBKDF2bcryptscrypt其他具有不太复杂密钥调度的算法(例如 AES )。这里的想法是使攻击(相对低熵)密码几乎与直接攻击加密密钥一样困难,同时保持从密码到加密密钥的转换的性能损失足够小,不会打扰正在使用的人服务。如果 KDF 一直转动最多 11 个,这可以使攻击合理熵密码变得非常不切实际,而不会给人类用户带来太多不便。(登录时您可能基本上不会注意到 500-1000 毫秒的延迟,但是如果每个尝试的密码通常需要半秒,即使使用高度优化的实现或大量强大的硬件,这也会大大减少可以输入多少密码即使在给定的时间段内进行离线攻击也可以尝试。)

虽然这些都不一定ProtonMail如何具体解决问题的,但我希望通过上面的说明,虽然问题在理论上存在,但在实践中也是一个非常可以完美解决的问题任何有能力编写的密码软件都将混合使用这些技术以及其他技术。

您是对的,但是请注意,没有迹象表明 AES256 已被破解(通常也不会很快出现)。考虑到 AES256 的强度,它将需要数百万年(即使使用量子计算机作为最著名的理论攻击是 Grover 的量子搜索算法。这使我们能够搜索未排序的操作n条目数据库sqrt(n)。在 AES256 的情况下,它变得同样强大就像现在的 AES128 一样(仍然被认为足够强大))。如果您想匿名,请使用像 Tor 这样掩盖您真实来源的网络(尽管有人猜测如果政府控制了足够多的节点,则可以绕过 Tor)。

也不要生活在一个蓬松的世界里,如果政府想要访问你的数据,你认为加密可以保护你:

在此处输入图像描述
XKCD 538

您质疑邮箱密码的理念是正确的,因为它实际上可能会破坏 ProtonMail 管理其公钥基础设施 (PKI) 和安全模型的方式。

是的,在这种情况下,邮箱密码 = 私钥,这是 PKI 中最重要的一个方面。换句话说,他们(有意或无意地)使私钥与用户在注册过程中设置的密码一样弱。此外,他们还使该私钥在用户控制或拥有之外可用。对我来说,这增加了所涉及的安全风险。

您可能会问,但这不比该用户桌面上的普通私钥更好吗?好吧,答案是视情况而定。在“用户桌面”的情况下,必须直接从该用户自己的计算机获取私钥。攻击面必须更加具体和有针对性,因为攻击者需要更多地了解他们的受害者。当然,如果您使用 VPN 访问 ProtonMail,那么攻击者更难进入您的个人设备或计算机。

但是,当私钥位于“其他地方”时,即使已加密,并且该密码很弱,风险也会成倍增加。
现在想象一下,如果该私钥实际上驻留在用户自己口袋里的 USB 密钥上?风险突然降低了很多。

让我们来看看一些重要的事实:

  • 大多数用户密码都不强,这在过去 20 年中得到了统计证明,而不仅仅是广泛或毫无根据的说法。这确实增加了许多私钥在加密私钥受到字典攻击后可用的机会。
  • 我们在这里并没有通过任何方式破坏 AES(无论数字),我们只是通过经过验证的方法(例如字典攻击)或通过具有特殊规则的字典攻击来攻击密码本身。我们可以保证,如果 ProtonMail 移交该数据库,这些加密私钥中的大量可能会突然变成普通私钥。它给人一种错误的安全感,认为它们可能永远受到保护,但实际上,我会再重复一遍,它们实际上就像用户的邮箱密码一样脆弱。

所以,是的,在一个应该基于 PKI 基础设施的系统后面使用 2 个密码(登录和邮箱密码)是非常令人担忧的。

你也可以参考这个问题,也可以关注一下: ProtonMail:如果每个用户都有自己的私钥不是更好吗?