[IT-Security-2] 匿名通訊 Anonymous Communication
Anonymous Communication
Notes from RWTH Aachen University course
“IT security 2” Wintersemester 2019/20
professor: Meyer, Ulrike Michaela
Different notions of Privacy
- Anonymity
- 隱藏 誰 執行action
- 通常用一個 set 做匿名紀錄 action
- Untraceability
- 讓執行的actions難以identify是同一個使用者
- Unlinkability
- 難以連結人跟行為
- Unobservability
- 隱藏items
- Pseudonymity
- 用pseudonymity代替真的identity
Broadcast
- 達到 receiver anonymity 和 Unobservability
- 對訊息 加密,只有要傳遞的的 receiver 能解開
但使用者必須對所有訊息解密才知道是否傳給自己
Mixes
- Idea
- “Untraceable electronic mail, return addresses, and digital pseudonyms”
- Mix 是一個網路節點
- 接受encrypted訊息
- Decrypt訊息
- 是否接收過
- 得到new address
- 蒐集訊息
- 達到threshold數量
- 或時間到
- 送出訊息
- 隨意的順序給new address
訊息只被最多一個 mix 處理
- 保障
- Sender是anonymous (receiver只看到mix)
- 攻擊者可以竊聽,但不能link sender/receiver
- random number確保不能replay
若能replay則攻擊者要link sender/receiver且receiver出現兩次
- 缺點
- 攻擊者若能 加入traffic,則可以link sender/receiver
- 攻擊者知道自己傳/收哪些訊息
- Mix Cascades
- 加入多個mix
- 即使攻擊者控制一個mix,還有一個mix就可以保證anonymity
- 越多Mixes,performance越低
- 3個通常最好(在performance跟security之間)
- 如果3個都被攻擊者控制,攻擊者還是可以link
- Return addresses
- 若receiver不知道sender的身份但要回傳訊息?
- A 生成 兩對公私鑰
- \(k_2\) 給 B,加密自己的訊息給 A
- \(k_1\) 給 mix,加密回傳訊息
- Basic Mixnets的缺點
- 高度運算 (encryption/decryption)
- 高延遲 (store/forward nature)
- 挑戰: Low-latency anonymity network
- 用 public-key建立 circuit,但 circuit 間的 hops 用 symmetric keys
Onion Routing
- 定義
- 基於 mixes 的規則
- real-time/ bi-directionsl
- Initiator隨機選擇中間routers (由不同administrative控制)
- hybrid encryption
- anonymity是optional
- Main emphasis: initiator/responder 對第三方或被攻擊的onion router來說是 unlikability
- Operation
- application建立socket連線到application proxy
- application proxy跟onion proxy建立連線
- Connection Setup
- Router interconnection
- 長期的socket連線
- application layer
- 用symmetric keys
- initiator
- Onion: 連線路徑recursively
- 每個 onion router 只知道前一個跟下一個
- Alice要送訊息要經過每個router都要用router public key層層加密
- 經過每個router層層解密之後傳給Bob
Garlic Routing
- 與 Onion routing 相似
- 但一個 garlic message 可以有 multiple data (cloves)
- 和 garlic router 建立 inbound 和 outbound tunnel
可以像 onion routing一樣經過多個router
最後分散cloves給不同的receiver
同個receiver的多個cloves也可變成garlic message,經過多個router再給receiver
Dining Cryptographers
- perfectly untraceable
- Dining Cryptographers problem: 無條件 sender/recipient untraceability
- 保障 information-theoretic anonymity
- 強烈假設,對抗有無限計算資源的攻擊者
- 難以實行
- Three-person DC Protocol
- 目標: 知道NSA是否付錢,或是其他兩人是否付錢但匿名
- 解法:
- 每個人擲銅板並給下一個人看
- 每個人說自己的跟上一個人的是否相同
- 但如果有付錢,則說謊
- 基數個「相同」: NSA有付錢
偶數個「相同」: 其他人付錢
其他人如果不知道銅板內容,無法知道是誰付錢
- 證明:
- XOR
\(x_1\oplus x_2\oplus x_2\oplus x_3\oplus x_3\oplus x_1 = 0\) 如果沒有人說謊的話
- XOR
- 推廣到 \(N\) 個人
- 每個人產生一random bit
- 給下一個人
- 每個人計算自己和上一個人的bit的 XOR
- 難以執行
- 溝通需要secure
- 大量communication和randomness
- 若有人 collude 仍 robust
Tor
第二代 onion routing network
Features:
- 主要提供 sender anonymity
- directory servers (trusted nodes)
- Integrity 保障
- 建立 rendezvous point(會合點) 和 hidden service
Circuit Setup
- 從 trusted directory server 取得 onion routers 的 list
- 從 list 中隨機選3個
- 但router #1建立 symmetric key 及circuit
- 經過router #1和router #2建立 symmetric key
- router #3 是exit node
3個onion router是對performance和security的折衷
Key Establishment
- Diffie-Hellman key agreement
- TLS
- relay: 接力
Opening Streams (OP)
- Alice想建立TCP連線
- 詢問 OP (via SOCKS)
- OP 選擇 最新的 open circuit或創造一個
Management
- 多個applications可以 共用 一個circuit
- Tor router沒有root權限
- 越多TCP streams,越有匿名性
- Directory servers
- 控制 new routers 如何加入
- Sybil attack 攻擊者產生過多 routers
warning
- Tor沒有 Encrypt 和 Integrity protect
- 除非application提供
- 有些application resolve(解析) the host name to its IP address
- DNS request與Tor’s purpose相悖
- 不能阻止authorities/ network providers的censorship(審查制住)
- 使用者/ router可能被 block
- router list也可以被所有使用者知道
不影響privacy但影響 usage
- Tor沒有 Encrypt 和 Integrity protect
Directory server
- 儲存node state/ keys/ exit policies
- acts as an HTTP server
- Onion routers(ORs) 更新 signed statements給 server
- Directory server 檢查
Location Hidden Service
- 目標:
- 任何人都可連線但不知道在哪/是誰
- Resistant to Censorship
- Resistant to flooding attack/ physical attack
- Idea:
- Hidden Server 選擇 introduction points (list) ,並給directory server
- Client 從 directory server 隨機選 rendezvous point 告訴 server,並透過 introduction points 連到 rendezvous point
- 用 TOR circuit 達到 anonymity
- Creating a Location Hidden Service
- Using a Location Hidden Service
- 目標:
Attacker Types
- Routing Attack
- 利用 Tor’s preferential routing 機制
- Tor 高機率會選擇 high-bandwith, high-uptime 的 routers
- 攻擊者創造一個 “preferred routers” 使 Tor 選擇
- 即使攻擊者的 router with low-resource,還是可能成功攻擊
因為 Tor 的 information 只由 node 本身提供
攻擊者可以偽造 uptime/ bandwidth - 攻擊者可以控制 router 並取得 path 資訊
- 可以知道是entry/ middle/ exit node
- timestamp
- previous circuit ID/ onion router’s IP address/ port
- next circuit ID/ onion router’s IP address/ port
- 攻擊者傳送這些 logs 給 central authority (想要 link 這些 information 的人)
- 如果 node 收到 request 沒有在 directories list 上,則此 node 為 entrance node
- central authority 分析 sender/ receiver
- Cell Counters
- 利用entry/exit node delay cells send out
- 攻擊者若控制 entry/ exit node,可以 delay 送出資訊
- 攻擊者 flushing down 3 cells
- Fingerprinting
- 攻擊者知道從網路上下載的身分 (eg. URL)
- 可以觀察 onion proxy 的 traffic,知道前一個 fingerprinted website
- Scenario 1:
- 攻擊者分類使用者access哪個website
- Scenario 2
- 固定website分析使用者是否access
- 解法:
- Padding
- Morphing
- random ad blockers,隨機block網頁中的檔案
- 同時loading多個頁面
- Routing Attack
I2P
- Overview
- I2P = Invisible Internet Project
- message-oriented
- peer-to-peer
- 每個 user run I2P router
- inside the network
- garlic routing
- netDB
- 有 contact information
- 基於 flood-fill peers 管理的 distributed hash table
- netDB存有
- RouterInfo peer的資訊
- LeaseSet 如何找到 internal service(destination) (lease: entry points)
- Clients 透過 exploratory tunnels 連線 flood-fill peers
- Tunnel Establishment
- 決定 I2P peer 的順序
- 傳送 tunnel construction request 給第一個 peer
- 每一層加入 symmetric key 並傳給下個 peer
- 回傳回應並在經過每個 peer 時加密
- 如何決定 peer?
- 用 peer profiling 分類peers 成為 tiers
- 監測 peers的 performance
- 每30秒 profiles 被排序到 3 個tiers
- Fast tier: Client tunnnels
- High-capacity tier: exploratory tunnels
- Comparison
Tor | I2P |
---|---|
Optimized and designed for exit traffic | 需要 out-proxy for exit traffic |
SOCKS (TCP) | I2P API (TCP/UDP) |
onion routing | garlic routing |
沒有encyption | end-to-end encryption如果service在I2P裡 |
較快 | 較慢 |
Readings
§ David Chaum. ”Untraceable Electronic Mail, Return Addresses and Digital Pseudonyms”, 1981
§ David Chaum. “The dining cryptographers problem: unconditional sender and recipient
untraceability.” Journal of Cryptology, 1988
§ Reed et al. “Anonymous Connections and Onion Routing”, 1998
§ Reiter et al. “Crowds: Anonymity for Web Transactions”, 1998
§ Dingledine et al. “Tor: The Second Generation Onion Router” 2004
§ Alexis Pimenides: Holistic Confidentiality in Open Networks, 2009
§ Heiko Rossnagel: The Market Failure of Anonymity Services, WISTP, 2010
§ Ling et al: A New Cell Counter Based Attack Against Tor, 2009
§ Bauer et al: Low-Resource Routing Attacks Against Anonymous Systems, 2007
§ Herrmann et al: Website Fingerprinting: Attacking Popular Privacy Enhancing Technologies with the Multinomial Naïve-Bayes Classifier, 2009
§ Wright et al: The predecessor attack: An analysis of a threat to anonymous communications systems, 2004
§ Johnson et al: Users Get Routed: Traffic Correlation on Tor by Realistic Adversaries, 2013
§ Conrad et al: A Survey on Tor and I2P, ICIMP 2014
留言
張貼留言