Hasty Briefsbeta

双语

Reimplementing Tor from Scratch for a Single-Hop Proxy

4 months ago
  • #VPN
  • #Tor
  • #Networking
  • 作者是一名学生,需要一款快速VPN来完成日常任务,比如在学校访问电子邮件和安装Linux软件包,而不需要Tor的匿名功能。
  • Tor的多跳路由速度太慢,促使作者探索直接连接到出口节点的方法,而Tor出于安全考虑故意禁用了此功能。
  • 作者发现Tor通过检查身份摘要来阻止客户端直接连接出口节点,以防止单跳代理的使用。
  • 通过启动一个中继节点并使用其密钥,作者绕过了Tor的限制,建立了与出口节点的直接连接,从而提高了速度。
  • 该项目涉及用C++从头重新实现Tor,以获得更好的控制和调试能力,重点关注密码学和网络功能。
  • 关键步骤包括TLS握手、版本交换、证书验证和密钥交换,以建立安全连接。
  • 作者成功将自定义实现(Kurrat)与Tor浏览器进行了基准测试,发现它更符合其需求且速度更快。
  • 该实现强调使用std::optional进行错误处理,并采用模块化设计以提高可移植性和可维护性。
  • 代码已开源,GitHub上提供了贡献指南和安装说明。