能谈论密码学总是件好事。尤其是在我们即将淘汰 Tor 中最古老、最重要的加密算法之一,并用一种名为反伽罗瓦洋葱(Counter Galois Onion)的、有研究支持的新设计取而代之的时候。 IMp免费翻墙网
此次全面改革将保护用户免受更广泛的在线攻击者(如下所述)的攻击,并为未来开展更多加密工作奠定基础。 IMp免费翻墙网
我们这里讨论的是哪种密码学?
这里提到的算法是 Tor 的 中继加密算法。虽然 Tor 使用标准的 TLS 协议进行中继之间以及客户端与中继之间的通信,但它需要一种专门的算法来加密用户数据在电路中经过多个中继时产生的 信号。 IMp免费翻墙网
这就是中继加密算法。客户端与其电路中的每个中继共享一个对称密钥,并使用这些密钥加密发送出去的消息,即“中继单元”。每个中继可以移除一层加密,直到客户端的单元到达出口中继。 IMp免费翻墙网
当然,我们需要确保数据在从客户端传输的过程中不被篡改。为此,我们在数据单元中包含一个加密摘要。该摘要不仅包含当前数据单元,还包含 之前通过该电路发送的所有数据单元 (以防止数据顺序被更改)以及另一个共享的秘密密钥(以确保摘要的不可预测性)。 IMp免费翻墙网
因此,加上摘要后,客户端的行为如下:它们计算并设置摘要,然后多次使用流密码(在 Tor 的情况下是 AES-128-CTR)对每个中继的单元格进行加密。 IMp免费翻墙网
如果进行 大量 简化,那么继电器单元看起来有点像这样: IMp免费翻墙网
场地
宽度
零
2 字节
消化
4 字节
其他东西
...
“零”字段的存在是为了让出口节点以外的节点可以避免检查摘要:如果一个中继节点收到一个值不为零的单元格,那么它就可以知道自己不是该单元格的接收者,因此不需要检查摘要:它只需解密该单元格并将其转发给下一个中继节点。 IMp免费翻墙网
我们在设计这个算法时没有给它命名。现在我们要替换它,最好有个识别方法,所以我们把它叫做“tor1”。 IMp免费翻墙网
图 1. tor1 加密算法,用作中间层。
输入是消息 M。计数器 CTR 通过伪随机函数(PRF,使用 AES-128-CTR 实现)扩展,生成字节流。这些字节与 M 进行异或运算,生成密文 C。 IMp免费翻墙网
图 2:tor1 加密算法,用于发起消息。
将消息 M 与哈希状态 HS 混合,并将摘要的一部分附加到消息上。然后将整个结果与伪随机函数 (AES-128-CTR) 进行异或运算,生成密文 C。 IMp免费翻墙网
等等,这个设计看起来好滑稽!
是啊,现在肯定不会那样建了,对吧?所以我们才要把它换掉。 IMp免费翻墙网
在如今 高质量在线课程 和 优秀入门资料 层出不穷的时代,人们很容易忘记Tor 项目 初期 密码学资源的 匮乏程度 。当时 AES 算法刚刚问世 , 认证 加密 作为一个独立的 学科领域 也才刚刚兴起。 IMp免费翻墙网
现有的设计并不适合 Tor 的需求。最初的 洋葱路由论文 并没有明确提出身份验证机制。像 Mixmaster 和 Mixminion这样的设计针对较大的消息体进行了优化,并且需要为每 一层 加密都生成一个完整的摘要。(例如,Mixmaster 最多支持 20 个转发器,因此 每条消息 都必须预留空间来存储 20 个摘要(以及其他内容) 。) IMp免费翻墙网
当前 tor1 设计中的一些“奇怪之处”虽然过时,但并不 糟糕 ;而另一些奇怪之处则更值得解决。 IMp免费翻墙网
那么, tor1 设计 存在哪些问题?
有几个。首先是最重要的一个: IMp免费翻墙网
问题 1:标签攻击
标记攻击使攻击者能够通过在网络中的某个位置修改流量,并观察另一个位置的可预测变化来追踪流量。即使标记攻击未能立即成功,其副作用也会为攻击者提供越来越多的重试机会。 IMp免费翻墙网
这是我们正在用CGO解决的最重要的攻击。即使不考虑下面提到的其他问题,单是这个问题本身就值得修复。 IMp免费翻墙网
这种攻击的主要版本出现的原因在于 tor1 使用 AES-CTR 加密,且没有逐跳认证,这意味着中继加密是 可塑的 。由于 计数器模式 通过将密钥流 S 与明文 P 进行异或运算来生成密文 C (C = S ⊕ P),因此,攻击者如果能够将自己的模式 M 异或到密文中,就能得到 C' = (S ⊕ P) ⊕ M = S ⊕ (P ⊕ M)——也就是说,(P ⊕ M) 的一个有效加密。 IMp免费翻墙网
攻击者可以利用这种攻击来确保控制电路的两端。他们将一个模式与电路一端的单元格进行异或运算,然后移除该模式,观察另一端是否有乱码单元格恢复清晰。任何具有诚实端点的电路都会失败(且不会被去匿名化),但客户端会不断重试,直到最终选择恶意端点为止。 IMp免费翻墙网
如果攻击者选择中继单元中已知的明文部分作为其标记(例如报头或零空间),那么他们就可以通过在末端检索该标记来利用它通过电路传递标识符: IMp免费翻墙网
M = (P ⊕ M) ⊕ P.
然后可以使用 M 来传输用户的 IP 地址或唯一标识符。 IMp免费翻墙网
与概率流量相关性相比,这种攻击可以立即提供明确的结果,并且强度更高:它还允许攻击者确保他们成功传输的所有流量在电路用于任何应用程序流量之前都完全去匿名化。 IMp免费翻墙网
对攻击者而言,不利之处在于客户端可以检测到由此导致的电路故障率。目前,当电路故障率过高时,Tor 客户端会发出日志通知和警告。然而,正如一些细心的用户所发现的那样,当针对 Tor 的 DDoS 攻击变得严重时,这些检测器会发出误报。 IMp免费翻墙网
这类攻击(攻击者能够滥用 Tor 协议,在应用程序活动 之前在 中继节点之间传输信息)被称为 内部隐蔽信道攻击 。Tor 正在更新 其威胁模型, 以明确涵盖这些攻击途径以及 其他两类 攻击途径。 IMp免费翻墙网
问题2:前向保密性始于电路闭合之时
这次攻击和之后的那次攻击远没有上面提到的标记攻击那么严重;我们提到它们只是为了完整性。 IMp免费翻墙网
在许多现代在线协议中,包括 Signal 等即时通讯应用,用于解密消息的密钥会在消息解密后立即销毁,以防止密钥被窃取并用于后续用途。但 Tor 的旧加密算法 (tor1) 并不具备这种特性:在整个通信链路的生命周期内,密钥始终保持不变。这意味着,如果在链路仍在运行时密钥被窃取,则链路上的所有先前通信内容都可能被解密。 IMp免费翻墙网
如果电路的寿命只有几分钟,那倒也还好,但有些电路会持续存在好几天。(此外,寿命更长的电路可能更有利于匿名性,尤其是在用户需要保持持久身份的情况下,因此增强电路的安全性是明智之举。) IMp免费翻墙网
虽然与标签问题相比,这次攻击微不足道,但我们不妨在更新加密技术的同时,也把它解决掉。 IMp免费翻墙网
问题 3:4 字节的身份验证器?真的吗?
是的,这不太好。仅仅使用 4 字节的摘要意味着伪造单元格而不被发现的概率只有四十亿分之一。 IMp免费翻墙网
实际上,这种攻击效果并不好:如果攻击者 的猜测 没有成功,那么他们发送的无效消息会导致电路故障,除非客户端通过他们建立另一个电路,否则他们无法再次尝试。虽然用于抵抗标记攻击的 路径偏差 机制在这里也有效,但最好还是不要用到它们。 IMp免费翻墙网
(另外,它使用的是 SHA-1 算法,这至少可以说已经过时了 ) IMp免费翻墙网
那么,过去我们是如何考虑替换它的呢?
我们曾多次想替换这个算法,但一直被设计和效率问题所困扰。 IMp免费翻墙网
我们绝对不想效仿邮件转发器的设计,为每一层加密都添加一个身份验证器:那样会造成巨大的开销。如果我们在洋葱服务中尝试类似的方法,大约 15% 的带宽都将用于身份验证器字段。 IMp免费翻墙网
宽块密码 是一种很有前途的设计元素 :这种密码(或密码的使用模式)将整个消息加密成一个不透明的块:密文的任何变化都会使整个消息变得混乱,就像普通分组密码中的单个块一样。 IMp免费翻墙网
(严格来说,如果要抵御标记攻击, 这需要是一种“ 强伪随机排列”(SPRP)。) IMp免费翻墙网
你可以通过将明文的一部分保留为已知值(例如,16 字节的零)来将宽块密码变成认证密码。 IMp免费翻墙网
但大多数宽块密码设计都比较昂贵。几乎所有强密码(例如 BEARESS、LIONESS 、 biIGE 和 HHFHFH )都需要对数据进行两次完整加密和两次哈希运算。像 HCTR2 这样的新模式只需要一次加密,但仍然需要两次哈希运算。(相比之下,tor1 在 3 跳电路上对一个单元进行加密需要 3 次加密和 1 次哈希运算,而上述设计之一则需要大约 6 次加密和 6 次哈希运算。) IMp免费翻墙网
我们愿意为改进加密技术付出 一些 CPU 成本(而且我们应该预料到会付出一些成本,因为身份验证不是免费的),但我们需要将成本控制在最低限度。 IMp免费翻墙网
现在,任何宽块设计都需要多次迭代:可以证明,除非至少迭代两次,否则无法确保更改任何一位都可能导致其他所有位发生混乱。但我们希望尽可能降低这些迭代的成本! IMp免费翻墙网
此外,还有一些从零开始构建的宽块设计(而不是基于底层密码的设计,例如 AEZ )也取得了卓越的成果。 IMp免费翻墙网
我们最终决定采用哪种方案?
多年来,密码学家们一直在寻找这方面的好解决方案。 IMp免费翻墙网
Jean Paul Degabriele 、 Alessandro Melloni 、 Jean-Pierre Münch 和 Martijn Stam 设计了一种名为“反伽罗瓦洋葱”( Counter Galois Onion ,简称 CGO)的方案。它基于一种名为“稳健伪随机置换”( Rugged Pseudorandom Permutation ,简称 RPRP)的结构:本质上,它是一种宽块密码设计,能够抵抗单向延展性(加密操作如此,解密操作则不然)。如果我们部署时客户端始终解密,而中继始终加密,那么我们就能 以比完整 SPRP 更低的成本获得一种抗标记的 IMp免费翻墙网
作者使用他们称之为 UIV+ 的 RPRP(参见 论文 ),实现了我们所有的目标(抗标记性、即时前向保密性、更长的认证标签、有限的带宽开销、相对高效的操作和现代化的密码学)。 IMp免费翻墙网
(就在这篇博文发布前不久,他们修改了论文并发布了新的 安全证明 。) IMp免费翻墙网
我们编写了一份 规范 ,与他们的论文和参考实现相符。 IMp免费翻墙网
它是如何运作的?
CGO 的工作原理是,如果有人篡改了您加密数据的任何部分,整个消息以及所有未来的消息都将无法恢复。以下是具体原理! IMp免费翻墙网
(如果您不喜欢阅读密码图,可以跳过本节。如果您 非常 喜欢阅读密码图,建议您查看 规范 和 论文 !) IMp免费翻墙网
下图展示了 UIV+ 构建模块,并说明了如何使用它来构建 CGO 加密。 IMp免费翻墙网
图 3:UIV+ 加密
输入 X 被分成两部分:较短的 X_L 和较长的 X_R。X_R 和一个“微调”值 H 本身作为微调参数传递给一个可调分组密码 E_T(使用 LRW2 实例化),然后 E_T 用于加密 X_L。此加密的输出作为伪随机函数 (PRF) 的种子,该伪随机函数与 X_R 进行异或运算以对其进行加密。 IMp免费翻墙网
图 4:中间层 CGO 加密。
CGO 将每条消息视为一个 16 字节的标签 T 和一个 493 字节的密文 C。它们分别作为 X_L 和 X_R 传递给上述 UIV+ 加密算法。调整值(UIV+ 中的 H)在这里被称为 T':每个单元格加密后的“T”值将作为下一个单元格的 T' 值。 IMp免费翻墙网
图 5:发起 CGO 消息
在消息生成时,CGO 会将消息标签初始化为随机数 N。消息加密过程中,N 值和加密密钥都会使用“更新”算法进行转换。新的 N 值和新的加密密钥将用于加密下一个单元格。 IMp免费翻墙网
好吧,但是所有这些密码学技术是如何解决我们最初提出的问题呢? IMp免费翻墙网
首先(也是最重要的),防止 标签攻击 主要受以下两个因素控制: IMp免费翻墙网
进行加密时 ,消息被转换为宽块结构,因此对输入的任何更改都会导致整个输出无法恢复。
T' 和 N 值的链接意味着消息的加密取决于 所有先前的消息 ,因此如果一条消息被篡改,所有后续消息都将无法恢复。
其次,通过图 5 中的 Update 构造实现 前向保密性。 每次生成或接收新单元时,用于生成或接收该单元的密钥都会发生不可恢复的转换,因此加密器/解密器不再持有解密先前单元所需的密钥。 IMp免费翻墙网
第三, 截断的摘要 现在被替换为一个较长的 16 字节身份验证器,就像明智的人使用的那样。 IMp免费翻墙网
题外话:如果我们错了呢?
CGO 是一个相当新的设计,因此我们有理由质疑它是否存在一些弱点,导致其安全性低于预期。我的回答是:确实有可能!攻击手段只会随着时间的推移而不断改进,尽管 CGO 背后的密码学家们技艺精湛、备受推崇,但即使是最优秀的密码学家也会犯错。目前确实存在 一个 安全 证明 ,但它出现的时间较短,尚未经过深入的审查。随着时间的推移,当更多密码学家关注 CGO 时,我们(希望)会对其安全性更有信心。(如果我们最终决定需要替换它,我们之前为将其添加到 Arti 和 C Tor 实现中所做的工作,将使日后迁移到其他系统变得更加容易。) IMp免费翻墙网
但我们 相当 肯定的是,CGO 不太可能存在任何使其 比 tor1 更差的弱点。 IMp免费翻墙网
我们的实施进展如何?
开始了! IMp免费翻墙网
我们已经实现了 Arti(Rust 版 Tor 实现)的加密算法。我们也用 C 语言实现了它,因为如果中继服务器不支持 C 语言,它就毫无用处,而 Arti 中继项目目前仍在开发中。 IMp免费翻墙网
为了实现这个功能,我们不得不重构大量代码,修改其原有的假设:例如,我们修改了所有关于中继单元布局的假设,以及所有关于中继加密只有一种方式的假设。这些修改将有助于我们未来对中继单元格式和加密方式进行其他更改。 IMp免费翻墙网
接下来的步骤是: IMp免费翻墙网
在 Arti 中默认启用 CGO。(由于其某些依赖项,目前被标记为实验性功能。) IMp免费翻墙网
为洋葱服务实现 CGO 协商。(由于其复杂性,此功能可能仅适用于 Arti。) IMp免费翻墙网
针对现代 CPU 优化性能。(CGO 的作者们在其优化实现中取得了令人印象深刻的成果,但他们使用的一些技巧如果不进行大规模重构,很难在 C Tor 实现中实现。幸运的是,我们目前有一些容易优化的方面。) IMp免费翻墙网
感谢您的帮助!
感谢多年来为这项工作做出贡献的所有密码学家、程序员、研究人员和密码朋克。还要感谢所有推动这项工作和现代密码学发展现状的研究人员;我们今天所取得的成就都建立在他们的工作基础之上。 IMp免费翻墙网
感谢 Mike Perry 帮助我撰写本文,并确保威胁模型的各个部分正确无误。 IMp免费翻墙网
最后,感谢多年来所有为 Tor 捐款的人!我们的大部分工作都得益于 民主、人权和劳工局的 资助,但许多关键部分(包括多年来的基础工作以及所有与洋葱服务相关的部分)都来自我们的非限定性资金,而这些资金又依赖于像您这样的捐助者。感谢您相信我们的使命,感谢您帮助 Tor 变得更好! <3IMp免费翻墙网
IMp免费翻墙网 IMp免费翻墙网
1 /2 1 2 下一页 尾页