話說一個星期前試著在自己家裏的桌機作成一個TOR Relay,讓它可以成為匿名洋蔥網路裏小小的一處志願節點,提供給有需要使用TOR匿名上網的用戶作為其中的一個跳板節點。這期間收到一些網友的回應,有人告訴我,TOR名氣雖大但在中國的使用情況並不理想,一方面速度慢一方面有傳聞說國家機器為指染偽裝成中繼,造成更大的問題等等。也有國外網友提醒我最好小心不要在自家裝中繼,因為很可能讓警察找上門。。。。這些回饋對於一個技術白丁,都指引著我如何了解這些陌生的「工具」,讓我可以摸索地找到一個看清問題解決問題的方向,這些幫助和提醍先放在心裏感謝。

這篇文章,則是繼續完成了TOR中繼的安裝後,如何測量、理解這個新生的中繼在匿名洋蔥網路當中的表現與角色,做探討。其實也說不上「探討」,只是我個人先從這篇The lifecycle of a new relay為基礎,試著再把它用比較白話的中文寫出來。若有理解錯誤失當之處,當由本人自負文責,還請各方高手鞭小力一點予以指正。

照說一個TOR 新設的中繼,都會經歷以下四個階段的「成長過程」(看完之後一整個有一種角色養成的電玩遊戲之感)

1. 第一階段新生期 在這個階段(0~3天左右),新的中繼還不會被洋蔥網路列入可使用的名單。

繼然新中繼不會被洋蔥網路列為可用的節點,也不會把它的「貢獻」的網路流量給計算進去。這時候只能靠「業主」自行來做頻寬測試,所以它會建造四個迴路 circuits 傳送到洋蔥網路內然後再傳回給自己,再向每一個迴路送出 125KB的流量,以導入洋蔥網路被動式的計算系統。這個所謂「洋蔥網路被動式的計算系統」是以十秒鐘為單位來計算中繼可以提供的最大頻寬。

如果沒問題,按照這樣的計算法,新中繼的流量應是 4*125K/10 = 50KB/s,這個數據可以在自己機器上的檔案relay descriptor找到。

**bandwidth-authority(bwauths)**則是洋蔥網路內評估一個中繼的頻寬效能的「權量單位」。

consensus number,代表的則是頻寬上傳與下載之間所同意的「頻寛權量」 bwauths,這個值也會考慮你與其它相近規模中繼表現比較再做調整。

2. 第二階段(第3天到第8天) 流量漸增

接下來 bwauths 會來比較你和其它新類似中繼之間的表現, 慢慢地提高讓更多用戶透中你這個中繼來建立傳輸迴路的比重與流量。

洋蔥網路為世人熟知的三點式跳接匿名傳送,通常會把第一個接入點稱作為 guard relay,當然 Tor 用戶要挑選穩定又可靠的中繼來當作其進入匿名網路的第一個跳點。所以第一個跳點的重要性與特殊性仍在於這是匿名網路的入口,也很容易遭到對手的攻擊,故其防御更顯重要。所謂的攻擊,可能是敵對者也來安裝中繼,引誘用戶使用他們所搭建的中繼,那不是自投羅網嘛?所以在 TOR的設計上,則希望guard relay的數目不能太多,讓用戶能選擇這些為數有限的第一個節點進入,這樣就算封包不慎進入了對手所提供旳第一個節點造成了一些遺失,但如果其它封包運氣好沒出錯,則用戶接下來的迴路依然是安全的狀態。

講了這麼多的意思是說,這個我搭建的、存活了4、5天的中繼,它的作用就是在洋蔥網路當中作為第二個跳接的節點。

3. 第三階段 加速讓中繼升為guard relay (第8天之後的二個月間)但流量可以會先降後昇

中繼要被授予 guard flag 才能成為 guard relay。而洋蔥網路在評估是否給中繼守門標誌的考量點有三:

  • “頻寛要足” (they need to have a large enough consensus weight),
  • “weighted fractional uptime 中繼可以維持上線的工作時間” (最好是能全年無休不關機的運行中繼),
  • “time known 加入時間” (為了提高對手的攻擊成本,TOR 不會把新搭建加入的中繼冒然列為入口節點)

另外一個概念是 guard rotation period 輪值期

對於TOR使用者他們只會挑選授有 guard flag 的中繼做為入門的接入節點,但這也意謂著這個背著守護者旗誌的中繼不會被使用者當作第二個跳接的節點,因為它們假設此中繼要負責許多接入者的流量,為了避免其負荷過大,在考量把資源作出最佳配置尤其是稀少資源的節省,就不會把guard relay作為第二個中間的節點。

對於需要使用TOR匿名網路的用戶,他們通常每4-8週會調整一次其入口節點的挑選,一方面是因為新加入成為guard relay 的被利用數量少所以要做點流量上的調配(尤其是新用戶通常會初被分配到剛授予入口資格的中繼),另一方面也是考量避免讓那些運作了許多的入門守護中繼會發生過多用戶流量不斷涌入長期負擔過大的問題。

4.熟成期, 中繼可以晉昇為 guard relay (第68天之後).

一但中繼「晉昇」為 guard relay (這段成長時間多少通常也視Tor 版本而異,似乎越晚期的新版Tor 所要花的時間也更長),這個中繼也進入了一個穩定狀態

後記

看完這篇介紹,我大概可以揣摸猜想作為守護者入口節點中繼的重要性,但更好奇文中完全沒提:那麼作為跳出洋蔥匿名網路的最後一個節點,它既然要扮演出口看守後門與外界連結,那不是一樣有高度被攻擊的風險嘛??

上週安裝成功後,就把它放在一旁沒在管它,今天檢查這一週來的活動記錄檔案,結果才知道似乎電腦的端口設定有問題,所以一直未能連結進入洋蔥網路。

(當然我把自己的IP在上述檔案中以x.xxx..xxx.xx隱藏起來)

看來不但沒解決問題,還製造了更多問題。所以應該繼續有第三篇可以寫Σ( ° △ °|||)︴