流量分析攻击与匿名系统中的权衡
1. 网络数据包传输与加密机制
在网络通信中,除最后一个节点外,路由中的每个节点仅将接收到的数据包转发到路由中的下一个节点。当最后一个节点收到数据包时,它会用一种特殊的IP地址(虫洞IP地址)替换发送方剥离的缺失IP源地址。节点除了常规的互联网地址外,还有一个或多个虫洞IP地址,用作自由网络中路由的出口点。
为防止观察者轻易跟踪数据包并确定客户端与哪个Web服务器通信以及通过哪条路由,客户端会对发送的每个数据包进行多重加密。具体步骤如下:
1. 客户端首先使用与最后一个节点共享的密钥对整个IP数据包进行加密。
2. 然后,用与倒数第二个节点共享的密钥对加密结果再次加密,依此类推,直到使用与第一个节点共享的密钥进行加密。
3. 客户端将第一个节点的ACI(可能是某种标识)连接到加密后的消息上,然后将结果发送到路由中的第一个节点。
4. 第一个节点解密第一层加密,将数据包转发到ACI定义的节点,并为第二个节点重写ACI。这个过程在每个节点依次进行,最终IP数据包通过虫洞到达Web服务器。
5. Web服务器只能看到带有对应虫洞IP头的数据包。通过多重加密,除最后一个节点外,没有节点能查看数据包的内容,外部攻击者也无法查看。
6. 为隐藏ACI(攻击者可能利用其确定哪些节点属于特定路由),网络中节点之间的所有通信使用节点对共享的对称加密密钥进行加密,客户端与第一个节点的所有通信也进行加密。这些对称密钥通过执行临时的Diffie - Hellman密钥协商获得。
2. 简化的匿名模型
为了便于描述攻击和讨论,我们使用一个简化的匿名模型。假设有两个用户Alice和Bob,通过