Tor 的第二个节点如何知道解密第二层的密钥?

Tor 的第二个节点如何知道解密第二层的密钥?

我正在观看这个视频,它解释了 Tor 的工作原理:https://youtu.be/QRYzre4bf7I

它以客户端和服务器之间的 3 个中间节点为例进行了解释。它表示每个节点只能解密一层,因此只有最后一个节点可以看到该消息。每个节点只有一个密钥来解密相应的层。我的问题是:这怎么可能呢?

除非节点 1 向节点 2 提供密钥 2,否则节点 2 怎么知道密钥 2?但如果节点 1 发送密钥,则意味着节点 1 也可以解密第二层。

答案1

如果节点一发送密钥,则意味着节点一也可以解密第二层

节点使用密钥交换协议(特别是 Diffie-Hellman)在不实际传输密钥的情况下就密钥达成一致。DH 密钥交换消息可以被其他节点看到,但不会透露足够的信息让它们猜测密钥。请参阅Tor 协议规范,特别是‘EXTEND’数据包。

相同的 DH 算法也用于 TLS(HTTPS)、SSH、IPsec、WireGuard 等中的密钥交换。

使用 DH,你仍然需要确保中间节点不会代替密钥交换消息通常使用对方已知的密钥添加数字签名。为此,TLS 使用服务器证书(通过名称+CA 验证),SSH 使用主机密钥(通过指纹验证),而 Tor 使用身份密钥在 Tor 中继目录中发布。

相关内容