文章目錄
論文信息
- 論文:Enemy At the Gateways:Censorship-Resilient Proxy Distribution Using Game Theory
- 會議:NDSS
- 發表時間:2019年
- 作者:Milad Nasr,Sadegh Farhang,Amir Houmansadr,Jens Grossklags
- 學校:馬薩諸塞大學阿默斯特分校,賓夕法尼亞州立大學,慕尼黑工業大學
核心思想
- 利用college admission game[1] 對代理分配機制進行建模,其中“學生”對應用戶/審查節點(client),“大學”對應代理(proxy)
- 通過延遲接受算法(deferred-acceptance algorithm)找到代理分配的最優策略
1. 背景
現有的許多匿名系統,比如Tor,通過分發中間代理的IP給用戶,用戶選取部分的代理,繞過審查並實現匿名。 這種基於代理的匿名系統存在內部攻擊的問題:審查者可以通過多個審查節點冒充普通用戶,獲取並共享系統分配的代理信息,通過這些信息來限制普通用戶的匿名訪問。現有的代理分配方法方法是基於啓發式的,很容易繞過。
本文基於博弈論框架對代理分配和審查機制進行研究,提出各方的最優策略。
2. 方法
2.1 college admission game
本文通過college admission game[1](大學招生問題)來對代理分配機制進行研究,因此首先介紹一下college admission game。講完這個博弈機制以後,自然能遷移到代理分配的問題上。
- 定義:有個學生,個大學,每個大學招生的容量是
- 志願:
- 學生根據自己的偏好對學校進行優先級排序,然後申請大學
- 學校根據偏好對申請它的學生進行排序,錄取學生
比如圖2中,有三個學生,兩所大學,他們分別根據自己的偏好對對方進行排序。學生最喜歡大學2,然後纔是大學1;學生更喜歡大學1,然後是社會大學(),也就是出來找工作… 大學1更傾向於錄取學生,然後是學生和;大學2傾向於錄取學生,然後是學生
- 目標:基於學生、學校各自的偏好排序以及學校的招生容量進行決策。找到最優的穩定分配,學生和學校都能與自己偏好 的對象相配對
穩定分配怎麼理解呢?圖3中是一個穩定分配的例子,假設學校的容量爲1。在圖3中,每個學生都進入了自己心儀的學校,每個學校也錄取了自己心儀的學生。
來看看反例。圖4中是一個不穩定分配的例子。學生i和j分別被大學1和2錄取,但是根據圖2,學生想進的學校是大學1和社會大學,大學1想錄取的是學生。因此在學生這邊就存在一個不穩定分配。
2.2 延遲接受算法
如何找到穩定分配呢?這就需要延遲接受算法啦。它的作用就是找到college admission game中最優的穩定分配策略。
流程:
- 第一輪中,所有學生根據偏好申請優先級最高的大學;學校根據其對學生的偏好、容量,錄取個學生,放入候補名單中
- 接下來的每一輪,學生被拒絕後申請次一級的大學;學校從前一輪候補名單中根據偏好選個學生,還有本輪申請的新生(可能新生是學校偏好排序中優先級較高的學生,因此要納入其中進行考慮)。再根據學校的偏好選取個學生放到候補名單中
- 重複以上步驟直到學生都在候補名單中或是被他申請的所有學校拒絕
讓我們用大學招生問題來理解一下這個算法。圖5中,根據圖2中學生以及大學各自的偏好,學生首先申請學校2,申請1,也申請1。
-
由於學校容量是1,並且學校1的偏好中,優先級大於,因此第一輪中,學校1將放入候補名單中,拒絕。學校2將放入候補名單中。
-
接下來第二輪中,被拒絕後申請學校2,對於學校2,優先級高於,因此將放入候補名單中,拒絕。
-
第三輪中,被拒後申請學校1,對於學校1,優先級高於,因此接受,拒絕
-
第四輪中,根據偏好只能申請社會大學。因此,最後的結果是學校1錄取,2錄取,3錄取。
最終根據學生和學校的偏好,學生和學校都對自己的結果滿意。
可以看出,延遲接受算法的關鍵在於學校對於中意的目標沒有立即接受,而是放進候補名單中;同時,也讓學校獲得具有更多的信息,從而做出雙方都滿意的決策。
2.3 proxy assignment game
ok,講完了大學招生問題以及延遲接受算法,接下來我們就來看一下怎麼講這個博弈機制引入到代理分配的問題上。
將college admission game應用到代理分配問題中,client (包含良性節點和審查節點)對應學生,proxy對應大學。
我們注意到前面經常提到的“偏好”,顯然在實際情況應用中,我們需要對這個偏好進行量化。怎麼量化呢?可以選取一些client和proxy的特徵,分配權重,通過效用函數計算出偏好的得分,得分高的優先級高。
client | proxy |
---|---|
client 在輪對代理的評分 | 代理在輪對client 的評分 |
可以使用的特徵包括:
client | proxy |
---|---|
代理的利用率 | 知道該代理的客戶端數量 |
客戶端未使用便被屏蔽的代理數 | 連接到該代理的用戶數 |
對新代理的請求數 | 該代理總的時間利用率 |
客戶端已知的被屏蔽的代理數 | 與客戶端的距離 |
與代理的距離 | … |
… | … |
最優代理分配策略:那麼,我們可以利用延遲接受算法得到最優的代理分配策略。並且,代理分發者代表clients和proxies在本地進行博弈;當體有client請求代理信息時,根據client的特徵分發代理信息。
這裏有個疑問,爲什麼這種分配策略能解決內部攻擊的問題呢?
我的理解:如果client是良性節點,那麼它沒必要使用代理分發者分配給其他節點的代理,因爲client得到的代理對於它自己來說已經是最優的。如果client是審查節點,雖然審查節點可以共享它們獲得的代理,但是沒有必要這樣做,因爲它們已經獲得了對於它們來說的最佳代理,而代理信息對於其他節點來說不一定會用到。
最優的審查機制:審查者可以通過收集多個審查節點得到的代理信息對代理進行限制。通過最大化審查節點(client的一種)的效用函數,使其在代理這邊的優先級更高,能夠發現更多的代理。同時,屏蔽更多的代理,衡量審查者對客戶端的影響,這部分通過計算沒法從分發者那邊獲得代理信息的受審查節點的比例進行量化。
3. 實驗
3.1 實驗設置
- 實現了代理分發模擬工具HypoTor,參數儘可能使用真實世界中匿名系統的數據
- 每個實驗模擬5年
3.2 實驗假設
- 客戶端只能從代理分發者得到代理信息
- 審查節點可以彼此溝通,審查者彙總審查節點得到的代理信息
3.3 評估標準
- 連接的客戶端:能訪問未被屏蔽代理的受審查客戶端的比例
- 未被屏蔽的代理:審查者未發現的代理的數量或比例
- 客戶端等待時間:受審查的客戶端等待多少輪才能獲得未被屏蔽的代理信息
3.4 實驗結果
- 本文得到的審查機制效果明顯:能阻攔更多的代理,使連接用戶數大大減少,後續試驗均採用該審查機制
- 本文的代理分配策略有效:在前面實驗得到的最優的審查機制下對代理分配策略進行實驗,連接用戶數相比現有的方法有顯著增加
4. 總結
代理分發是許多匿名通信系統的關鍵,本文首次利用博弈論對代理分發問題進行建模並得出目前爲止最優的代理分配機制。
優點:該博弈論框架是通用的,對於具體的場景可以設計不同的效用函數;並且客戶端、代理不需要任何的信息,博弈是在代理分發者本地進行的
侷限:文中假設客戶端只能從代理分發者獲取代理信息,沒法抵禦流量指紋分析等攻擊
思考:必須不斷有代理加入到整個匿名網絡中才能保證匿名性,現有的方法沒法做到一勞永逸
最後,文章中有理解錯誤的請指出!
參考資料
[1] D. Gale and L. S. Shapley, “College admissions and the stability of marriage,” The American Mathematical Monthly, vol. 69, no. 1, pp. 9–15, 1962.