您可能已经听说过,在过去的几年中,某些洋葱服务一直遇到拒绝服务(DoS)攻击的问题。
这些攻击利用了洋葱服务集合协议固有的不对称特性,这使其难以防御。在集合协议期间,恶意客户端可以向服务发送一条小消息,而服务必须对此进行大量昂贵的工作。这种不对称性使该协议容易受到DoS攻击,并且我们网络的匿名性质使将好客户与坏客户过滤开来极具挑战性。
在过去的两年中,我们一直为洋葱服务运营商提供更多扩展选项,支持更敏捷的电路管理,并保护网络和服务主机免受CPU耗尽的困扰。尽管这些方法不能解决根本问题,但它们为洋葱服务运营商提供了一个框架,以构建自己的DoS检测和处理基础结构。
尽管为洋葱服务运营商提供的可用防御工具箱已经增长,但DoS攻击的威胁仍然隐约可见。虽然仍然有一堆的smaller- 规模 的改进是可以做到,我们认为,这是不是那种问题,一个参数的调整或小的代码变化将使其消失。问题的固有性质使我们相信,我们需要做出根本性的改变来解决它。
在本文中,我们向您介绍两个选项,我们认为它们可以长期解决该问题,同时保持洋葱服务的可用性和安全性。
考虑这些设计时要记住的直觉是,我们需要能够提供不同的公平概念。在当今的洋葱服务中,每个连接请求都与所有其他请求是无法区分的(毕竟这是一个匿名系统),因此唯一可用的公平策略是对每个请求进行同等对待-这意味着提出更多请求的人会固有地受到更多关注。我们在这里描述的替代方案使用两个原则来改变余额:(1)客户应该可以选择在其请求中包含一些新信息,洋葱服务可以使用这些新信息来更智能地确定其响应的优先级;(2)而不是一直存在静态需求,我们应该让洋葱服务根据当前负载扩展防御能力,默认是回答所有问题。
基于匿名令牌的防御
匿名令牌最近很热,它们像手套一样适合Tor。您可以将匿名令牌视为票证或奖励给好客户的通行证。在这种特定情况下,当发生拒绝服务攻击时,我们可以使用匿名令牌作为优先顺序,将好客户端优先于恶意客户端。
这里的一个主要问题是好的客户如何获得这种代币。通常,令牌分发是使用DoS攻击者没有的稀缺资源进行的:验证码,资金,电话号码,IP地址,商誉。当然,我们网络的匿名性质限制了我们在这里的选择。同样,在DoS问题的背景下,如果恶意客户端获取一些令牌并不是什么大问题,但是重要的是,他们不能获取足够的令牌来承受DoS攻击。
引导令牌系统的一种合理方法是设置一个CAPTCHA服务器(也许使用hCaptcha),该服务器用盲令牌奖励用户。或者,洋葱服务本身可以用令牌奖励可信任的用户,这些令牌以后可以用来重新获得访问权限。我们还可以向Tor项目的每次捐赠都向用户提供令牌。我们可以使用许多不同类型的令牌,并且可以支持不同的用户工作流程。关于这些令牌如何相互交互,它们可以提供哪些额外的好处以及“钱包”的外观(包括Tor浏览器集成),我们有很多想法。
基于令牌的方法的另一个好处是,它将在未来为Tor提供更多的用例。例如,将来可以使用令牌通过垃圾邮件和自动化工具来限制对Tor出口节点的恶意使用,从而通过集中式服务来减少出口节点的审查。令牌也可以用于为洋葱服务注册让人难忘的名称。它们还可以用于获取专用网桥和出口节点,以提高安全性。许多细节需要解决,但是匿名令牌似乎非常适合我们的未来工作。
在加密方面,基本形式的匿名令牌是一种匿名证书,并使用与PrivacyPass类似的技术和UX 。但是,我们不能按原样使用PrivacyPass,因为我们希望能够让一方签发令牌,而另一方对令牌进行验证-PrivacyPass当前不支持该功能。例如,我们希望能够在一些单独或独立的网站上设置令牌发行服务器,并且仍然具有洋葱服务(或它们的引入点)能够验证该服务器发行的令牌。
当然,当大多数技术人员在2020年听到“令牌”一词时,他们的想法就直接跳到了区块链上。尽管我们非常感兴趣地监视着区块链空间,但我们在选择区块链解决方案时也保持谨慎。尤其是,鉴于Tor的私有性质,很难找到满足我们的隐私要求并仍为我们提供实现所有未来目标所需的灵活性的区块链。我们仍然充满希望。
基于工作量证明的防御
特别是,洋葱服务可以要求客户在允许进入之前解决工作量证明难题。有了正确的工作量证明算法和难题难度,这可以使攻击者无法淹没该服务,同时仍然使普通客户端仅需很小的延迟就可以访问该服务。还针对TLS 提出了类似的设计。
我们已经开始在该系统上编写提案(在朋友和志愿者的大力帮助下),并且我们有足够的信心相信现有的工作量证明算法可以满足我们的用例,同时提供适当的保护级别。考虑到系统的复杂性,仍然需要在参数调整以及Tor引入调度程序的调整上进行工作,但是初步分析似乎很有成果。
这种方法的最大好处是,所提出的PoW系统是动态的,并会根据攻击该服务的恶意活动的数量自动调整其难度。因此,当攻击波很大时,难度会增加,但是当攻击波通过时,难度也会自动降低。此外,如果我们选择工作量证明系统,在其中进行更多的工作可以提供更好的证据,那么有动力的客户可以通过花时间创建额外的证据来“吸引”注意力,这将使洋葱服务优先于洋葱服务。其他要求。这种方法将不对称性转化为我们的优势:好的客户建立了少量连接,他们需要一种在冒充很多客户的攻击者中脱颖而出的方法。
结论
我们认为,以上两个方案提供了一个具体的框架,将从根本上增强洋葱服务的弹性。
这两个建议可以一起应用,并且彼此互补。值得指出的是,这两个建议在技术和密码上都很繁重,并且都有各自的缺点和局限性。没有人想要一个充满验证码或禁止移动PoW拼图的Tor网络。参数调整和精心设计在这里至关重要。毕竟,DoS抵御能力是一场经济博弈:目标不是完美无缺;目的是提高标准,以使攻击者维持攻击的财务成本高于所获得的收益。换句话说,我们想要达到的稳定状态是您通常不需要出示验证码或令牌就可以访问洋葱服务,原因是没有人在攻击他们,因为攻击没有用。
希望我们的帖子激发您思考我们的想法,并提出您自己的攻击和改进措施。这不是我们一天可以解决的问题,我们感谢所有研究和获得的帮助。请保持联系!