现代认证 (AEAD) 加密

A widely recognized collection for machine learning tasks.
Post Reply
sakib42
Posts: 5
Joined: Sat Dec 21, 2024 7:20 am

现代认证 (AEAD) 加密

Post by sakib42 »

OpenPGP 是定义如何使用PGP(最广泛使用的电子邮件加密格式)对消息进行加密和签名的标准,该标准进行了重大升级,引入了各种安全改进和更现代的加密算法。

自 20 世纪 90 年代以来,PGP 一直被用来保护电子 丹麦电报数据库 50 万套餐 邮件消息的安全。 25年来,该标准已多次更新。然而,密码学的进步继续推动隐私和安全的界限向前发展。自 2016 年我们开始维护OpenPGP.js以来(新窗口)是世界上使用最广泛的开源电子邮件加密库之一,我们致力于实现 PGP 的现代化,同时保留其主要资产之一——互操作性。这使我们能够将最好的现代加密技术引入 Proton Mail,同时确保 Proton Mail 不是一个有围墙的花园。

标准化确保了未来的互操作性,Proton 还积极参与互联网工程任务组 (IETF) 的 OpenPGP 工作组的标准化进程。其结果是“加密刷新(新窗口)被称为“OpenPGP 标准”的“OpenPGP 标准”带来了现代认证加密、更安全的曲线、内存硬密码散列等等。

通过标准化这些改进而不是使用专有协议,我们为整个电子邮件生态系统变得更加安全并确保加密电子邮件保持互操作性铺平了道路。

安全改进
以下概述了 PGP 加密刷新中最大的安全改进。

现代加密应该能够抵抗意外的篡改。无法访问您的密钥的攻击者应该无法在不被发现的情况下修改您的消息。具有此属性的加密称为“认证加密”。

OpenPGP 长期以来一直使用一种称为“修改检测代码”(MDC) 的机制来进行身份验证加密。虽然这可以完成工作,但现代的身份验证加密方案通过一种集成算法实现了保密和身份验证。这种被称为 AEAD 算法的加密模式可以在相同的安全级别下提供更高的性能。

新标准包括 GCM,这是 Web 加密 API 中提供的 AEAD 算法,它为 Web 应用程序提供加密原语的本机实现,并提供改进的性能和安全性。因此,我们很快就会开始在所有 Proton 产品中使用此模式。

Image

更安全的曲线
加密刷新规范中的新增功能是一组公钥算法,它们使用 Curve25519 和 Curve448 进行加密和解密(X25519 和 X448)以及签名和验证(Ed25519 和 Ed448)。 Proton 社区的成员可能知道我们已经使用 Curve25519 多年。然而,这将是第一次正式指定。

我们还建议将 Curve25519 和 Curve448 添加到 Web 加密 API(新窗口)。一些浏览器,例如 Chrome 和 Safari,已经开始实现 Curve25519。我们计划在 OpenPGP.js 中使用它,以进一步提高我们的 Web 应用程序的性能和安全性。

内存硬密码哈希函数
OpenPGP 具有内置的密码哈希函数,称为“字符串到密钥 (S2K) 算法”。然而,在加密货币刷新之前,它们都相当弱。最强大的算法“迭代加盐 S2K”对密码进行加盐处理,然后使用 SHA-2 等加密哈希函数重复对盐和密码进行哈希处理,以实现可配置的迭代次数,但哈希值的上限为 62 MiB数据。由于 SHA-2 散列变得非常快速且廉价,因此这不再足以安全地对密码进行散列。因此,Proton 长期以来一直使用额外的密码哈希函数 bcrypt,在使用密码加密 OpenPGP 消息或密钥之前对密码进行哈希处理。

OpenPGP 将过渡到Argon2(新窗口),密码哈希竞赛的获胜者。这个函数是“内存难”的(新窗口)”,这意味着需要大量内存来散列密码。这使得攻击者更难以使用专用硬件(例如专用集成电路)来优化密码猜测过程(新窗口),因为哈希速度将仍然受到内存速度的限制。随着 OpenPGP 标准的更新,我们也将在 Proton 切换到 Argon2。

弃用遗留算法
加密刷新弃用了旧的加密原语和算法,包括哈希算法 MD5、SHA1 和 RipeMD,对称算法 IDEA、3DES 和 CAST5,以及小于 3072 位的公钥算法 ElGamal、DSA 和 RSA 密钥(安全级别与 Curve25519 相当)。这些都被认为不如现代替代方案安全,因此不适合在新数据中使用,甚至在某些情况下不适合使用现有数据。 Proton默认的早就是Curve25519,安全性更高。

防止密钥覆盖攻击
Proton Crypto 团队研究的一个领域是密钥覆盖攻击,我们在 2022 年发表了一篇研究论文(新窗口)与苏黎世联邦理工学院的肯尼思·帕特森教授一起讨论了这个话题。这项研究还在 2022 年 11 月于洛杉矶举行的 ACM 计算机和通信安全会议上进行了展示。虽然我们为 OpenPGP.js 和GopenPGP添加了安全补丁(新窗口)一旦我们发现这些问题,最新的 OpenPGP 规范就会以更有效的方式解决这些漏洞。

针对未来漏洞的鲁棒性
虽然加密刷新中的大多数更改旨在修复已知漏洞或使所使用的加密原语现代化,但有些更改旨在防止将来可能发现的加密原语中的潜在漏洞影响 OpenPGP。

特别是,签名现在已加盐 - 换句话说,在签名消息或文档之前对随机值进行哈希处理。这使得执行冲突攻击变得更加困难,攻击者将给定文档的签名与共享相同前缀的不同文档的签名交换,因为该签名可能已使用不同的盐进行散列,这意味着前缀不匹配。

这意味着如果诸如SHattered之类的攻击(新窗口)(这证明了 SHA1 中的冲突)与当前的哈希算法(例如 SHA2)相比,OpenPGP 不会受到太大影响。

即将进行的改进
在 OpenPGP 标准的加密更新发布后,我们计划继续与 OpenPGP 工作组合作,为 PGP 带来更先进的加密技术和附加功能,例如:

安全改进

后量子密码学(我们已经在研究的一个主题。我们很快就会发布一篇关于它的单独的博客文章。)
前向保密(即使明天密钥被泄露,也能保护今天发送的消息)
用于签名和/或加密的域分离
促进新功能

使用代理重新加密自动转发
持久对称密钥,用于长期存储对称密钥材料、对称加密消息和对称证明
指定撤销者取代已弃用的撤销密钥机制
证明签名以促进第一方证明的第三方认证 (1PA3PC)。
被取代的密钥以方便过渡到新密钥
无状态 OpenPGP 接口 (SOP)
RFC 3156的扩展(新窗口)(PGP/MIME)
基于网络的密钥发现机制的规范和改进

HTTP 密钥服务器协议 (HKP)
Web 密钥目录 (WKD)
您可以在此处找到有关建议主题的更多详细信息(新窗口)。

规范和实施
OpenPGP 标准的“加密刷新”更新目前正在接受 IETF 安全领域总监的审查。一旦该文件通过审核,它将作为新标准发布。
Post Reply