洋蔥服務是只能夠透過洋蔥路由來存取的網路服務。
營運洋蔥服務讓您的用戶享有 HTTPS 所有安全再加上 Tor 瀏覽器的隱私好處。
為何需要洋蔥服務?
洋蔥服務可以為使用者提供多種安全性與私密性的保護機制。
所在位置隱藏
洋蔥服務的 IP 地址受到保護。
洋蔥服務是 TCP/IP 上層的覆蓋網路,因此某程度而言 IP 地址對洋蔥服務沒什麼意義: 洋蔥協議甚至沒用到 IP。
端對端驗證
當使用者造訪某個洋蔥服務時,可以確定他們所看到的內容全都是從該特定的洋蔥站台所取得的。
在這裡假冒為造是不可能做到的。
通常當您連上普通的網站時,是無法確定沒有中間人將您的連線流量重導至其他位址的(例如DNS攻擊)。
端對端加密
洋蔥服務的所有連線,在客戶端與洋蔥主機端間都是全程加密的。
就好像是強化版的SSL/HTTPS連線傳輸通道。
NAT穿透
您所使用的網路有被過濾且無法在防火牆開通特定連接埠號嗎?
若您是身處於大學校園、辦公室、機場等類似場所的話,這種情形很有可能發生。
洋蔥服務並不需要開通特定連接埠號,因為它本身只會發起對外連線,因此可以穿透NAT網路閘道。
洋蔥服務通訊協定:概覽
所以問題是在於 需要什麼樣的通訊協定才能滿足這樣的特性?
通常人們只是連接上某個IP位址就可以建立連線,但是若本身連IP位址都沒有的話,是要怎麼建立連線呢?
例如洋蔥服務的地址類似這樣: vww6ybal4bd7szmgncyruucpgfkqahzddi37ktceo3ah7ngmcopnpyyd.onion
它看起來怪異且隨機,因為這是洋蔥服務的 公鑰身份識別。
這是我們能夠達成上述安全保護機制的原因之一。
洋蔥服務協議使用 Tor 網路,讓客戶端可以向服務介紹自己,然後通過 Tor 網路與服務建立會合點。
底下是整個流程的詳細分解說明:
第 1幕: 洋蔥服務設定介紹點
讓我們想像您的地方新聞報決定要設置SecureDrop)洋蔥服務以接收匿名消息。
協議的第一步,洋蔥服務將聯繫一群 Tor 中繼,要求它們作為其 引入點 來建立長期迴路。
這幾條迴路都是匿名化的迴路,因此引見節點不會知道該主機的實際位址。
Onion 服務僅透過三個介紹點連線,並經由三跳 Tor 電路存取,藉此在 Tor 網路後隱藏並保護自身。

第 2幕: 洋蔥服務發佈它的描述符
此時引見節點已經設立完成,接下來就需要提供客戶端程式可以找到這些節點的方式。
為此,洋蔥服務組成一個 洋蔥服務描述符 ,其中包含其介紹點列表(和“驗證密鑰”),並使用洋蔥服務的 身份私鑰 對該描述符進行簽名。
身份識別私鑰 在此作為 洋蔥服務地址公鑰裏頭的私密部份。
洋蔥服務上傳簽名的描述符到 Tor 網路中的 分佈式進雜湊表,好讓客戶也可取得它。
它在上傳時也是透過匿名化的洋蔥路由迴路來進行,因此它的真實位址並不會被揭露。

第 3幕: 客戶訪問洋蔥服務
比如說您掌握到一份企業逃漏稅的機密資料,想要透過SecureDrop暗中送交給當地的報社進行爆料。
而您透過公開網站搜尋或者朋友介紹,找到了這家報社的SecureDrop的洋蔥位址。

第 4幕: 客戶向洋蔥服務介紹自己
前述步驟是為了設定洋蔥服務,以便讓訪客來訪問。
現在我們就來說明,當某個客戶端程式要造訪該洋蔥服務時的情境。
此時客戶端程式已經取得該SecureDrop的洋蔥位址,並要透過洋蔥路由瀏覽器與它連上線。
現在接下來需要做的是客戶端到步驟 2 中的 分佈式雜湊表 並請求 SecureDrop 洋蔥服務的簽名描述符。

第5階段:客戶端程式驗證洋蔥位址的數位簽章
當客戶端取得該簽署過的描述子後,會利用包含在該洋蔥位址裡的公開金鑰來驗證其數位簽章。
它提供 端對端驗證 安全性能,所以可確保此描述符是由洋蔥服務所產生而非它人建立。
在此描述符中,有一個介紹點可讓客戶自我介紹給 SecureDrop 的洋蔥服務。

第6階段:客戶端程式設立一個會見節點
在開始進行引見程序之前,客戶端程式(就是指您的電腦)會先自行挑選一個洋蔥路由中繼節點,並與它建立一條迴路。
客戶端程式會請求該節點扮演引見節點的角色,並且同時提交一份「一次性機密碼」給它,以便在後續的會見程序可以使用。

第 7幕: 洋蔥服務與客戶的會合
介紹點會遽送您的詳細資料(祕密字串與會合地址)到洋蔥服務,而洋蔥服務會進行多重驗證來決定是否可信任您。

第8階段:會見節點驗證客戶端的機密碼
洋蔥服務(透由匿名迴路)連接到會合點並對它發送一次性密語。
此時會見節點會進行最後階段驗證,也就是去比對您與該服務所提交的機密碼字串是否完全相符(來自服務的機密碼當然也是您送交給服務主機的,但是是透過其他迴路轉送的)。
然後會見節點所扮演的角色,就是將客戶端程式與服務主機間的資料(已被端對端加密)來回轉送。

第 9幕: 洋蔥服務與客戶的會合
通常客戶端和洋蔥服務之間的完整連接由 6 個中繼組成:3 個由客戶端挑選,其中第 3 個中繼為會合點,另外 3 個由洋蔥服務挑選。
這樣的機制可以讓整個連線過程保持 位址隱藏 狀態。
最後使用會合點, 它是客戶與新聞媒體的 SecureDrop 洋蔥服務之間所構成的 Tor 迴路。

更進一步的資源
這只是 Tor 洋蔥服務協定的高階概論。
若您想要更深入的了解的話,可以參閱底下這些資源: