使用 Rust 的 arti-client 构建基于 Tor... 笔记

使用 Rust 的 arti-client 构建基于 Tor 的 P2P 聊天

本文详细阐述了 Anyhide 中同侪发现与会话建立的复杂性,重点聚焦于 Tor 隐藏服务。文章解释了为何隐藏服务对于用户间的相互匿名性至关重要,而常规服务器则无法实现这一点。文中通过代码和具体的实现细节,描述了将 Tor 隐藏服务 ID 转换为人类可读的 .onion 地址的过程。文章展示了 `arti` Tor 客户端库的引导(bootstrapping)过程,并突出其嵌入式特性,与独立守护进程形成对比。托管隐藏服务涉及配置以及获取用于接收连接的请求流;连接隐藏服务同样简单直接。文章讨论了一种双向连接竞跑(racing)方法,即双方同时尝试发起连接,尽管增加了复杂性,但促进了平等性和易用性。文中概述了一种三消息握手机制,用于在建立连接后协商安全会话密钥。文章阐明了 `arti` 库所提供的功能,如电路管理和隐藏服务集成,以及其当前尚不具备的功能,并指出其在安全关键应用中仍处于实验状态。作者强调保持密码学原语为同步调用,以避免取消安全性问题。下一篇文章将涵盖用户界面,包括联系人管理和连接请求处理。