• 沒有找到結果。

Information Pool

3.5 模組實作

3.5.5 Information Pool

儲存各種 Table 與節點資訊如 表格 3-1所示:只能允許給 Message

設定檔 功能與用途

serv.list 儲存Static Subscribe Server 資訊,預設有固定三台 node.list 儲存Common Node 節點資訊

tunnel.list 儲存 Tunnel 與 Key Number 資訊

SN.key 儲存與其他Common Node 的共同 Secret Key 加密金 鑰,一檔案存一組Key,檔名為 Serial Number

表格 3-2: Information Pool 中的 Table 列表

如 表格 3-3 所示,serv.list中儲存預設的固定三台Static Subscribe Server的資 訊,在系統剛啟動的時候會去找第一台做註冊,若無回應則換下一台。

經過Message Handler交換節點資訊後,離開的節點則在該筆資料前加上一個 # 記號,標記其節點目前為不可使用的狀態。

140.113.166.24 1089 10 140.113.166.25 1089 10

#140.113.166.31 1089 10 140.113.179.205 1089 10 140.113.179.206 1090 10 140.113.179.207 1091 10

表格 3-4: 設定檔 node.list

3.6 執行流程

從系統啟動開始,逐步介紹匿名網路系統的各個步驟與其目的:

1. 取得本機資訊

取得本機IP Address,經由設定檔socks.conf得知以後要由哪個Port交換資 訊,並且執行Benchmark函數,計算本機端的運算能力,送出一筆如 表格 3-4 所 示的node.list中的一筆資料。

2. 節點註冊與交換訊息

經由前個步驟所得到本機相關資訊,向記錄在設定檔 serv.list 中的 Static Subscribe Server 註冊,而 Static Subscribe Server 會在接受註冊的節點群中,

依據IP Address 與運算能力數值決定出一台 Dynamic Subscribe Server,爾後則 由該節點向旗下各Common Node 做訊息交換,例如其他節點的連線資訊、是否 目前還可以使用(儲存於node.list 中)。

3. 啟動本機軟體

啟動Socks Server,供本機端應用軟體透過 SOCKS 通訊協定做匿名通訊傳 送封包,詳細的使用方式如 附錄 所介紹;接著啟動 Onion Handler,供其他節 點轉傳封包使用。而其他固定週期時間執行的程式則交由系統crontable 來自動 執行,例如向 Dynamic Subscribe Server 要求更新節點資訊的程式,還有之後 4.3 節會提到的 Log 上傳程式。

4. 建立 Tunnel 清單

跟選定的各個節點交換共同的加密金鑰(Secret Key),將 Tunnel 資訊儲存在 tunnel.list 中。

5. 傳送資料

當 Socks Server 收到來自本機端的連線請求時,會從前個步驟建立好的 Tunnel 清單中取出一條來,加上連線請求的目的端節點,以各自對應的金鑰層 層加密成一個 Onion 傳送到第一站去。Onion 的實際格式如 錯誤! 找不到參照 來源。 所示。

6. 轉傳資料

當Onion Handler接收到由其他節點傳送過來的Onion時,會用自己對應的 加密金鑰先解密,如 圖 3-8 所示,若下一站的IP Address不是自己,則幫忙傳 往下一站去。

第4章 管理設計與連線分析

4.1 管理目的與 Trade off

雖然匿名通訊的主要目標是隱藏通訊雙方之身份,但是如同電話網路的狀 況一樣,當有不法人士例如綁架勒贖的歹徒,利用電話向受害者家屬勒索贖金,

此時檢警單位也會利用相關機制去追蹤發話端位址,以期更進一步得知歹徒的行 蹤與可能藏匿的地點。類似情形也可能發生在網路世界裡,所以我們的匿名網路 系統必須提供一個能夠顧及使用者隱私,同時供檢警單位偵訊與辦案相關線索之 管理機制。

為達到上述目標,我們採取分散通訊記錄策略,每個節點各自記錄該站的 傳輸或是幫忙轉傳的記錄,像是前一站與下一站資訊,或者是該事件發生時間。

如果不法人士攻破某個節點或是獲得該點資訊,只要沒有獲得一定數量以上節 點,則無法完整的還原當初連線全部內容,如此一來便可以相當程度保護匿名通 訊記錄。

舉例來說,若某個相近時間區間內,有兩個人A 與 B 正在做匿名通訊,而 他們傳輸的路徑為A → W → X → Y → Z → B,依照前面所介紹分散通訊記錄策 略,每個節點只會記錄前一站與下一站資訊,例如節點W 只會記錄 A → W → X 的關係。如此一來若攻擊者所掌握的資訊在此路徑上必須中斷的點數低於兩個節 點才有可能正確的還原當時的情況。舉例來說,若攻擊者已經攻破W 跟 Z 兩個

整個正確資訊。

而在只缺少一個節點的情況下如 圖 4-1所示,當缺少的那個節點是交會的 部份,如圖中的X節點,則攻擊者也無法正確知道究竟該路徑是A → X → B或者 是C → X → B,當經過X的連線有n條,則攻擊者猜對正確路徑的機率也變成 1/n。

4-1: 匿名傳通訊節點交會範例

相關文件