08-04-2023, 02:19 PM
洋葱服务是只能通过 Tor 访问的服务。运行 Onion 服务可为您的用户提供 HTTPS 的所有安全性以及 Tor 浏览器的附加隐私优势。
为什么选择洋葱服务?
洋葱服务为其用户提供各种隐私和安全优势。
位置隐藏
洋葱服务的 IP 地址受到保护。洋葱服务是 TCP/IP 之上的覆盖网络,因此从某种意义上说,IP 地址对洋葱服务甚至没有意义:它们甚至不在协议中使用。
端到端身份验证
当用户访问特定洋葱时,他们知道他们所看到的内容只能来自该特定洋葱。不可能进行冒充,但通常情况并非如此。通常,到达网站并不意味着中间人没有重新路由到其他位置(例如 DNS 攻击)。
端到端加密
洋葱服务流量从客户端到洋葱主机是加密的。这就像免费获得强大的 SSL/HTTPS 一样。
NAT打孔
您的网络是否被过滤并且您无法在防火墙上打开端口?如果您在大学校园、办公室、机场或几乎任何地方,这种情况都可能发生。洋葱服务不需要开放端口,因为它们可以穿透 NAT。他们只建立传出连接。
洋葱服务协议:概述
现在的问题是需要什么样的协议来实现所有这些属性? 通常,人们连接到一个 IP 地址就完成了,但是如何连接到没有 IP 地址的东西呢?
特别是,洋葱服务的地址如下所示:
这看起来很奇怪而且随机,因为它是洋葱服务的身份公钥。这就是我们能够实现上述安全特性的原因之一。
Onion 服务协议使用 Tor 网络,以便客户端可以将自己介绍给服务,然后通过 Tor 网络与服务建立会合点。以下是这种情况如何发生的详细分析:
第 1 步:洋葱服务中心设立介绍点的地方
让我们想象一下,您当地的报纸决定建立洋葱服务(使用SecureDrop)来接收匿名提示。作为协议的第一步,洋葱服务将联系一组 Tor 中继,并要求它们通过建立长期电路来充当其引入点。这些线路是匿名线路,因此服务器不会向引入点透露服务位置。
洋葱服务将隐藏并保护自己在 Tor 网络后面,只允许通过两跳 Tor 电路连接的三个引入点进行访问。
[attachment=215]
第 2 步:洋葱服务发布其描述符的位置
现在介绍点已经设置好了,我们需要创建一种让客户能够找到它们的方法。
因此,洋葱服务组装一个洋葱服务描述符,其中包含其引入点(和“身份验证密钥”)的列表,并使用洋葱服务的身份私钥对该描述符进行签名。这里使用的身份私钥是在洋葱服务地址中编码的公钥的私有部分。
洋葱服务将该签名描述符上传到分布式哈希表(Tor 网络的一部分),以便客户端也可以获取它。它使用匿名 Tor 电路来进行上传,这样就不会泄露其位置。
[attachment=216]
第 3 步:客户想要访问 Onion Service 的地方
假设您想通过 SecureDrop 匿名向当地报纸发送一些税务欺诈数据。您可以从公共网站或朋友那里找到报纸 SecureDrop 的洋葱地址。
[attachment=217]
第 4 步:客户向 Onion Service 自我介绍
前面的所有步骤都是为洋葱服务设置的,以便客户端可以访问它。现在让我们快进到实际客户想要访问该服务的情况。
在这种情况下,客户端拥有 SecureDrop 的洋葱地址并想要访问它,因此他们使用 Tor 浏览器连接到该服务。现在接下来需要发生的事情是客户端转到步骤 2中的分布式哈希表并请求 SecureDrop 洋葱服务的签名描述符。
[attachment=218]
第 5 步:客户端验证洋葱地址签名
当客户端收到签名的描述符时,他们使用洋葱地址中编码的公钥来验证描述符的签名。这提供了端到端身份验证安全属性,因为我们现在确信该描述符只能由该洋葱服务生成,而不能由其他人生成。
在描述符内部,有一些介绍点,允许客户端向 SecureDrop 的洋葱服务介绍自己。
[attachment=219]
第 6 步:客户建立集合点
在介绍之前,客户端(在本例中为您)选择一个 Tor 中继并建立一个到它的电路。客户要求中继器成为他们的会合点,并为其提供一个“一次性秘密”,该秘密将用作会合过程的一部分。
[attachment=220]
第 7 步:洋葱服务与客户端会合的地方
引入点将您的详细信息(秘密字符串和集合地址)传递到洋葱服务,该服务运行多个验证过程来确定您是否值得信任。
[attachment=221]
第 8 步:集合点验证客户端的秘密
洋葱服务连接到集合点(通过匿名电路)并向其发送“一次性秘密”。集合点进行一次最终验证,以匹配来自您和服务的秘密字符串(后者也来自您,但已通过服务转发)。
集合点只是将消息(端到端加密)从客户端中继到服务,反之亦然。
[attachment=222]
第 9 步:洋葱服务与客户端会合的地方
一般来说,客户端和洋葱服务之间的完整连接由 6 个中继组成:其中 3 个由客户端选择,第三个是集合点,另外 3 个由洋葱服务选择。这为该连接提供了位置隐藏。
最后,使用集合点,在您和报纸的 SecureDrop Onion Service 之间形成 Tor 电路。
[attachment=223]
为什么选择洋葱服务?
洋葱服务为其用户提供各种隐私和安全优势。
位置隐藏
洋葱服务的 IP 地址受到保护。洋葱服务是 TCP/IP 之上的覆盖网络,因此从某种意义上说,IP 地址对洋葱服务甚至没有意义:它们甚至不在协议中使用。
端到端身份验证
当用户访问特定洋葱时,他们知道他们所看到的内容只能来自该特定洋葱。不可能进行冒充,但通常情况并非如此。通常,到达网站并不意味着中间人没有重新路由到其他位置(例如 DNS 攻击)。
端到端加密
洋葱服务流量从客户端到洋葱主机是加密的。这就像免费获得强大的 SSL/HTTPS 一样。
NAT打孔
您的网络是否被过滤并且您无法在防火墙上打开端口?如果您在大学校园、办公室、机场或几乎任何地方,这种情况都可能发生。洋葱服务不需要开放端口,因为它们可以穿透 NAT。他们只建立传出连接。
洋葱服务协议:概述
现在的问题是需要什么样的协议来实现所有这些属性? 通常,人们连接到一个 IP 地址就完成了,但是如何连接到没有 IP 地址的东西呢?
特别是,洋葱服务的地址如下所示:
代码:
vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion
这看起来很奇怪而且随机,因为它是洋葱服务的身份公钥。这就是我们能够实现上述安全特性的原因之一。
Onion 服务协议使用 Tor 网络,以便客户端可以将自己介绍给服务,然后通过 Tor 网络与服务建立会合点。以下是这种情况如何发生的详细分析:
第 1 步:洋葱服务中心设立介绍点的地方
让我们想象一下,您当地的报纸决定建立洋葱服务(使用SecureDrop)来接收匿名提示。作为协议的第一步,洋葱服务将联系一组 Tor 中继,并要求它们通过建立长期电路来充当其引入点。这些线路是匿名线路,因此服务器不会向引入点透露服务位置。
洋葱服务将隐藏并保护自己在 Tor 网络后面,只允许通过两跳 Tor 电路连接的三个引入点进行访问。
[attachment=215]
第 2 步:洋葱服务发布其描述符的位置
现在介绍点已经设置好了,我们需要创建一种让客户能够找到它们的方法。
因此,洋葱服务组装一个洋葱服务描述符,其中包含其引入点(和“身份验证密钥”)的列表,并使用洋葱服务的身份私钥对该描述符进行签名。这里使用的身份私钥是在洋葱服务地址中编码的公钥的私有部分。
洋葱服务将该签名描述符上传到分布式哈希表(Tor 网络的一部分),以便客户端也可以获取它。它使用匿名 Tor 电路来进行上传,这样就不会泄露其位置。
[attachment=216]
第 3 步:客户想要访问 Onion Service 的地方
假设您想通过 SecureDrop 匿名向当地报纸发送一些税务欺诈数据。您可以从公共网站或朋友那里找到报纸 SecureDrop 的洋葱地址。
[attachment=217]
第 4 步:客户向 Onion Service 自我介绍
前面的所有步骤都是为洋葱服务设置的,以便客户端可以访问它。现在让我们快进到实际客户想要访问该服务的情况。
在这种情况下,客户端拥有 SecureDrop 的洋葱地址并想要访问它,因此他们使用 Tor 浏览器连接到该服务。现在接下来需要发生的事情是客户端转到步骤 2中的分布式哈希表并请求 SecureDrop 洋葱服务的签名描述符。
[attachment=218]
第 5 步:客户端验证洋葱地址签名
当客户端收到签名的描述符时,他们使用洋葱地址中编码的公钥来验证描述符的签名。这提供了端到端身份验证安全属性,因为我们现在确信该描述符只能由该洋葱服务生成,而不能由其他人生成。
在描述符内部,有一些介绍点,允许客户端向 SecureDrop 的洋葱服务介绍自己。
[attachment=219]
第 6 步:客户建立集合点
在介绍之前,客户端(在本例中为您)选择一个 Tor 中继并建立一个到它的电路。客户要求中继器成为他们的会合点,并为其提供一个“一次性秘密”,该秘密将用作会合过程的一部分。
[attachment=220]
第 7 步:洋葱服务与客户端会合的地方
引入点将您的详细信息(秘密字符串和集合地址)传递到洋葱服务,该服务运行多个验证过程来确定您是否值得信任。
[attachment=221]
第 8 步:集合点验证客户端的秘密
洋葱服务连接到集合点(通过匿名电路)并向其发送“一次性秘密”。集合点进行一次最终验证,以匹配来自您和服务的秘密字符串(后者也来自您,但已通过服务转发)。
集合点只是将消息(端到端加密)从客户端中继到服务,反之亦然。
[attachment=222]
第 9 步:洋葱服务与客户端会合的地方
一般来说,客户端和洋葱服务之间的完整连接由 6 个中继组成:其中 3 个由客户端选择,第三个是集合点,另外 3 个由洋葱服务选择。这为该连接提供了位置隐藏。
最后,使用集合点,在您和报纸的 SecureDrop Onion Service 之间形成 Tor 电路。
[attachment=223]