Anonymous Communication👀
约 2258 个字 预计阅读时间 8 分钟
对于 Internet 中交流的双方 ip1 和 ip2, 如果有一个 attacker snooping on the communication, 尽管它可能不知道两个用户的身份,也无法知道他们被加密的通信内容。但它起码可以使用他们的 ip
Because, for users to communicate via internet, their devices assigned with IP addresses, which are usually fixed within a communication session or more;
This can be used to infer critical privacy of users
Communication anonymity & privacy:
- who is communicating?
- who are you talking to?
- what type of activities?
- what type of information?
1) Why wanted?
- Unmonitored access to health and medical information
- Preservation of democracy: anonymous election/jury
- Censorship circumvention: anonymous access to otherwise restricted information
Misbehaviors without getting caught: Terrorism, Darknet, Spam, Pirate…
2) how to?
通过加密(如 HTTPS)可以保护访问的内容;
But even if we don’t know what you communicated, knowing with whom you communicated leaks a lot of information as well
Thus, we can hide destination address
But here comes another question:
- According to routing, need to specify the ip address of destination to ensure packets being directed toward it,
- Then how to deliver packets to destination? \(\rightarrow\) RELAY!
Relay
- Relay (中继) 常指一种网络设备或服务,可以用于 转发 数据包或信息, 以帮助连接不同的子网或网络。
- 中继可以帮助解决网络通信中的距离限制和协议转换问题,进而扩大网络的覆盖范围和功能。
- 中继可以分为物理中继和逻辑中继两种类型。
- 物理中继是指一种网络设备或链路,它用于将数据包从一个物理网络转发到另一个物理网络。比如,网络交换机、路由器、网关等设备。
- 逻辑中继是指一种软件或服务,它用于将数据包从一个逻辑网络转发到另一个逻辑网络。比如,代理服务器、VPN 网关、DNS 中继等服务。
Here comes Overlay Communication
Overlay Communication👀
Overlay Communication
- Overlay Communication(覆盖通信)是一种在网络中添加虚拟网络层的技术,用于改进网络性能和扩展网络功能。
- 通过覆盖通信,可以在现有的网络架构上增加一个虚拟的网络层,这个虚拟层与底层网络相互独立,可以实现更高效、更安全和更灵活的通信方式。
其中 ip3 是一个 relay node
Overlay Network👀
覆盖通信的主要思想是,在应用层和传输层之间添加一个 中间层,这个中间层可以通过使用不同的协议、路由和拓扑结构来优化网络通信。
在覆盖通信中,应用程序会将数据包发送到覆盖网络中,然后由覆盖网络负责将数据包传输到目标地址,从而实现更快速、更可靠的通信。
Threat Model
这里定义攻击模型:Insider Byzantine Attacker
- Insider 表示攻击者本身是网络的一部分(ASes, 攻击者可能控制不止一个 ASes)但攻击者没有能力知道整个网络 (limited view of network)
- Byzantine 表示一种攻击模式,攻击者的的攻击行为是不稳定的(长期、一致的攻击会容易被发现,因此攻击者采取间断式的、不同方式的攻击,就比较难被检测到了)
攻击者的目标是:在目的 IP 信息隐藏在数据包中的情况下,得知数据包的最终目的地。
由此提出两种攻击行为:
- Traceforward Attack
- passive attacker
- traces messages from sender, thwarts receiver anonymity
- 被动攻击者跟踪数据包信息
- Marking Attack
- active attacker
- marks messages, discovers marked msg elsewhere
- 攻击者比较厉害,可以改经过它的数据包,那可以加个标记,然后在其他地方发现就知道是发过来了
Anonyminzing Proxy👀
- intermediary between sender & receiver
- Sender relays all traffic through proxy
- Encrypt destination and payload
- Asymmetric technique: receiver not involved (or informed of) anonymity
k: shared key of sender and proxy
- 如果攻击者在 sender 和 proxy 之间监听,那么 sender 丧失了匿名性
- 如果攻击者在 proxy 和 receiver 之间监听,那么 receiver 丧失了匿名性
- 如果有两个攻击者,一个在 sender 和 proxy 之间,一个在 proxy 和 receiver 之间,两者串通比对 ingress 和 egress 的流量,则 sender 和 receiver 都丧失了匿名性
- 如果 proxy 本身是恶意的,那么 sender 和 receiver 都丧失了匿名性
what if receiver is attacker👀
需要保护发送者的匿名性
优缺点👀
- Advantages:
- Easy to configure
- Require no active participation of receiver, which need not be aware of anonymity service
- Have been widely deployed on Internet
- Disadvantages:
- Require trusted third party proxy may release logs, or sell them, or blackmail sender
- Anonymity largely depends on the (likely unknown) location of attacker
How to evade attackers?👀
dynamic proxy location
Here comes Crowds Algorithm
- Basic idea: get lost in a crowd
- Jump from one crowd to another
- Members of a crowd called Jondos
- Algorithm:
- Relay message to random jondo
- With probability p, jondo forwards message to another jondo
- With probability 1-p, jondo delivers message to its intended destination
How to evade untrusted proxies?👀
proxy ++
多弄一些 proxy, 用于混淆攻击者的视线
Its hard for an attacker to simultaneously control too many proxies
Other methods:
Source Routing👀
Abstract
- specify on-path routers by source
- allows a sender of a packet to partially or completely specify the route the packet takes through the network.
- In contrast, in conventional routing, routers in the network determine the path incrementally based on the packet’s destination
Source Routing / Path Addressing 允许发送者指定一个包的部分或者全部路由
源路由技术中,数据包的路由路径是在数据包的头部中指定的,这意味着发送方可以选择数据包的路由路径,而不是让网络中的路由器根据它们的路由表来自动选择。
POF-based Source Routing👀
POF: Protocol Oblivious Forwarding
传统的网络协议中,router 需要根据特定的协议来解析数据包的头部,然后根据协议的规则来转发数据包。而 POF 采用了新的转发机制(从数据包的源头开始指定全部或部分路由),即不需要了解任何特定协议,只需要根据指定路径进行转发。
匿名性问题:泄漏了 port sequence
隐藏非 neighbor 的 port sequence
为了隐藏非 neighbor 的 port sequence, 可以使用 Onion Routing
Onion Routing👀
Use onion router called Tor
在洋葱网络中,信息被封装在加密层。
- 类似于洋葱一样,加密数据通过一系列 “Tor node” 路由器节点传输,每个节点只能解密一层,然后将数据传递给下一个节点。
- 当最后一个节点解密数据时,它将数据传递给目标地址,这样就实现了端到端的匿名通信。
- 由此,sender 保持了匿名性, receiver 也保持了匿名性。每个中继节点只知道紧邻的节点
source-routing based anonymous overlay communication
- 向 directory node 获取节点列表,随机选择节点形成一条 chain
- 从 directory node 获取公钥,与 A (Tor entry) 协商密钥;
- A 与下一节点 B 协商密钥
- …
- 最后节点 (假如是 C) 与目标地址 (D) 协商密钥,建立整条链的连接
- 发送 \(\{\{\{\{\text{msg}\}_D ~, D\}_C ~, C\}_B ~, B\}_A\), 这样逐层解密才能发送到目标地址
- reply 的时候使用同一条反向即可
解密出的数据除了信息外,还包括要 forward 的下一跳地址
application: Darknet
- Portions of the Internet purposefully not open to public view or hidden networks whose architecture is superimposed on that of Internet.
- Install Tor
- Access darknet.onion through it
how to deanonymize?👀
有四种思考策略:
- tor nodes 互相串通
- 强行破解密钥
- Passive monitoring
- Active attraction:
- deploy a Tor router;
- attract Tor traffic;
- perform traffic analysis and correlation;
Path Selection Attack👀
- Tor path selection algorithm:
- weight nodes by selfreported bandwidth; | 通过自报带宽来对节点加权
- select each node using weighted | 使用权重选择每个节点
- probability distribution; | 概率分布
- Attack:
- malicious relay reports very high bw to increase selection probability; | 恶意中继节点虚报非常高的带宽以增加被选中概率
- if it controls the first hop, de-sender; | 如果控制了第一个 hop, 则 sender 丧失匿名性
- if it controls the last hop, de-receiver; | 如果控制了最后一个 hop, 则 receiver 丧失匿名性
Counting Attack👀
- Correlate incoming and outgoing flows by counting the number of packets | 通过计算数据包的数量来对入站和出站流量进行关联
在检测时间段,有可能有之前停留在其中的 packert, 所以 dest 会多一些也可能有些正在 process, 所以 dest 会少一些
- 一种抵御策略是:将流量较小的进行扩大,将流量较大的进行缩小,使得流量差异变小
- 但攻击者仍然可以通过采样包之间的时间间隔来进行分析
Low Latency Attack👀
- Tor router assigns each anonymous circuit its own queue | Tor 路由器为每个匿名电路分配一个队列
- Dequeue one packet from each queue in round-robin fashion | 以轮询方式从每个队列中出队一个数据包
节点越多,队列越长,轮询时间越长,延迟越大。
Attack Example
- A 要攻击 Init, intends to infer Init’s activity
- 假设只有 Init 和 A 一起在占用 T2
- 那么 A 循环给 T2 发包并测试延迟,如果延迟变大,则说明 Init Traffic,即 Init 在活动
Cross Site Attack👀
Crawling:
- Deploy Tor routers
- Access darknet
- Crawl transaction information
- Extract Bitcoin accounts of interest
Correlation:
- Search the accounts on public websites