作者:karmayu、murphyzhang @云鼎實驗室
公眾號:https://mp.weixin.qq.com/s/Dhe1k1spN2zVIjycc3HbRw
相關閱讀:密碼學幼稚園 | 密碼朋克的社會實驗(二)

…… 2018年3月8日,某視頻網站800余萬用戶數據在暗網銷售 2018年8月1日,某省1000萬學籍數據出現在暗網 2018年8月28日,某酒店集團5億數據疑似在暗網出售 ……

本年度最嚴重的幾次數據泄漏,都指向了同一個詞——「暗網」。在中文的語境里,這是一個猶如「月黑風高夜」般的詞匯,透著詭秘和犯罪的氣息。而與「暗網」關系最密切的另一個詞,則非「黑客」莫屬。「黑」與「暗」的組合,意味著高超的匿名和隱身技巧,令人忍不住想揭開它精巧的面紗。

暗網是什么

要解釋暗網,先給整個互聯網做一個簡單的分層定義,如圖:

圖片來源網絡

表網(Surface Web)

通常認為,普通用戶或者搜索引擎能直接訪問的內容屬于表網。表現形式為網頁或者 APP 提供的內容。

深網(Deep Web)

指不能被標準搜索引擎檢索到的網絡數據。通常是存儲在各公司或組織的數據庫中,需要用專有的接口查詢或干脆不對外查詢,例如 Google 的后端數據庫。深網數據量遠大于表層網絡,猶如海面和大海的關系。

暗網(Dark Web)

需要通過特殊的加密通道訪問的網頁或數據。暗網通常具有匿名的特性,既保證訪問者的匿名,同時也保證服務提供者的匿名。因此,其中充斥著各種犯罪信息和違法交易(槍支、毒品、色情、暴恐、黑客等)。

暗網有多個不同的實現版本,下文我們說暗網特指「Tor 網絡」。

網絡上有些說法說暗網遠大于表層網絡,其實很不嚴謹,是把深網和暗網混為一談了,真實的暗網只有一小部分人使用,遠小于大眾使用的表層網絡。

誰創造了暗網

密碼朋克

故事要從90年代的一個極小眾群體說起——「密碼朋克」。這是一個由頂尖數學家、密碼學家和程序員組成的群體,他們關注「匿名、自由、隱私」,其中許多人抱著自由主義和無政府主義的理念,并在美國掀起了「加密無政府主義運動」,他們以密碼學和互聯網為武器,與強權展開直接對抗。

正是這群人,創造了許多加密技術和協議,也奠定了互聯網的許多底層技術和通信協議,從加密郵件到 HTTPS,從 RSA 到區塊鏈,等等等等。

圖片來源網絡

國外政府部門

花開兩朵,密碼朋克們希望保護自己的信息和隱私不被政府獲取;而政府同樣也有這個需求,甚至更強烈得多,因為他們要保證情報的傳輸安全,同時要保護情報人員傳遞信息時無法被網絡追蹤。因此,1995年,美國海軍研究實驗室也進行了匿名網絡的相關項目研究,這也就是暗網的前身。

2004年,「Tor 洋蔥網絡」正式對外發布,意味著普通用戶也可以使用匿名網絡技術來保證自己的匿名性。也就代表著「暗網」這個概念正式走向公眾。為什么叫洋蔥網絡,因為其中的通信內容被三重加密,像洋蔥一樣,剝開一層還有一層。

Tor 網絡雖然理論上比較安全,但其中的中轉節點是由志愿者部署,如果掌握了其中足夠的節點,也是有概率進行完整通信追蹤的。而且這畢竟是孵化自美國海軍的一個項目,是否有一些精心構造的安全缺陷,難以確認。

暗網上的數據泄露

一個能保證訪問者和服務提供者都匿名的網絡,天生就是法外之地。

因此,各路違法信息交流充斥暗網,尤其是2011年后,由于比特幣技術的興起,暗網終于從「匿名的信息交流」進化到了「匿名的價值交換」階段,這個顛覆性變革,隨著「Silk Road」的建立(絲綢之路:可以理解為基于比特幣的暗網淘寶),掀起了違法交易的高潮。當然,大概同時也掀起了 FBI 相關部門的加班高潮。

很巧的是,同樣是2011年底,國內發生了一輪標志性的大規模的用戶數據泄漏事件,之后各種數據泄漏就成為了每年的常態。早期此類數據交易往往是黑客私下交易,而近年來逐漸被搬到暗網進行交易。為此,騰訊安全云鼎實驗室對暗網的主要交易平臺進行了監測,并抽取了近幾個月針對國內用戶的數據泄漏的情況進行了統計。

可以看到,近期泄漏數據,主要以網購/物流/身份證/酒店/社交帳號數據為主。

暗網上的業務

暗網最大的幾個市場均在近年被 FBI 搗毀,如 Silk Road、AlphaBay,因此,2017年來暗網黑市有所收斂,并不如前幾年火爆。我們統計了目前存在的幾大市場商品分類,可以看出,毒品/藥物類還是占據了超過50%的份額,海外使用違禁藥物的情形非常嚴峻,其次是數字商品類,并充斥著各種色情、黑客、槍支、護照、假鈔等違法內容。

暗網匿名原理

暗網最重要的作用是保證匿名,其匿名性體現在兩個方面:

  • 訪問普通網站時,網站無法得知訪問者 IP 地址。
  • 提供暗網服務時,用戶無法得知服務器 IP 地址。

兩個能力加起來則保障了暗網用戶訪問暗網網站時,雙方都無法得知對方 IP 地址,且中間節點也無法同時得知雙方 IP 地址。

聽起來挺科幻的,畢竟我們平時使用的 VPN 等科學上網技術只使用了一層跳板,而 Tor 技術使用了三層跳板。

關于 VPN 的原理,可以參考下圖:

VPN 原理圖解 | 圖片來源網絡

下面對暗網匿名原理進行詳細解析:

訪問普通網站

先來看一個真實訪問普通網站的跳轉情況:

從上圖可以看到,我們使用瀏覽器訪問 google.com,但中間經過了3個節點 IP 地址,分別在匈牙利、西班牙、德國,然后再訪問到谷歌的服務器。

Tor 用戶針對普通網站訪問流程,如下圖所示。Tor網絡中的每個節點都是隨機選取,且每個節點看到的信息不超過一跳,所以通過網絡流量監控嗅探到的 Tor 流量不能同時獲取通信兩端的IP信息;且每一個節點處都是加密形式。這里隨機選取的三個節點的功能順序是:入口節點、中間節點、出口節點;數據流方向為:客戶端、入口節點、中間節點、出口節點、WEB服務器。

Tor 網絡有其特有的加密方式--三層密鑰加密。三層密鑰的建立是在網絡請求的初始,當和下一個節點連接時創建一對非對稱密鑰,三個隨機節點共創建了三對密鑰并將公鑰回傳到客戶端。數據經客戶端三層密鑰加密后,進行Tor 網絡的傳輸,每經過一個節點,便解開一層加密,順序依次為:入口節點解開第一層加密,中間節點解開第二層加密,出口節點解開第三層加密。通過層層加密讓流量監控無法嗅探明文數據。

訪問匿名網站

先來看一次真實訪問匿名網站的跳轉情況:

從上圖可以看到,我們通過瀏覽器嘗試訪問一個奇怪的域名(uffti3lhacanefgy.onion),但和前面普通網站不一樣的是,中間經過了6個節點,其中前3個可見 IP,另外3個命名為 Relay,然后再訪問到那個奇怪的域名。

這個訪問匿名網站的流程比較復雜,在普通互聯網上,當我們知道網站域名時,通過 DNS 協議解析到 IP 地址,然后訪問。但 Tor 網絡域名是 .onion 為后綴,并不是使用普通的 DNS 方式來解析,而是使用下面的方法。

下面我們結合 torproject.org 網站介紹的洋蔥服務協議、業界約定俗成的各個環節的名稱、及上面的原理圖進行 Tor 訪問匿名網站的原理復盤。在原Tor網絡上增加了承載暗網網址導航功能的目錄數據庫(DB),暗網服務器選定的允許與其通信的介紹點(Introduction point),及進行兩端數據傳輸的最終會合點(Rendezvous point)。原理圖中的每一步連接,都是建立在 Tor 網絡的三跳連接之上,杜絕流量監控嗅探到明文數據。下面我們了解一下訪問匿名網站的過程。

  • step 1: 暗網服務器連入 Tor 網絡,并隱匿IP信息

這一步是通過介紹點來完成,方法是暗網服務器選取若干節點充當介紹點,建立Tor線路;并以介紹點充當影子功能,隱匿IP信息。

  • step 2: 暗網服務器通過向目錄數據庫注冊,公示自身的存在

這一步是通過目錄數據庫來完成,目錄數據庫收錄了各個暗網服務器上傳的自身標識(公鑰、對應介紹點摘要等),這些標識以自身的私鑰簽名。暗網服務器的域名(例:uffti3lhacanefgy.onion)由公鑰派生。

  • step 3: 客戶端獲取暗網網址對應的標識信息,拿到網址對應的公鑰與介紹點

這一步是客戶端通過Tor線路訪問目錄數據庫拿到的結果,此外還進行標識的篡改驗證。

  • step 4: 客戶端隨機選取節點構建會合點,為后續與暗網服務器傳輸數據做準備

這一步是會合點的生成,除為選取的會合點創建Tor線路外,同時會合點還會收到一次性「驗證信息」,用來校驗暗網服務器。

  • step 5\6: 客戶端通過介紹點,通告暗網服務器會合點的地址和「驗證信息」

這一步的核心是讓暗網服務器知道會合點的存在,媒介是客戶端在目錄數據庫中獲取到的對應暗網網址的介紹點,同時傳遞了后續用來對接驗證的「驗證信息」。

  • step 7: 暗網服務器通過Tor線路連接會合點,最終與客戶端達成數據傳輸

這一步暗網服務器也通過Tor線路與會合點建立連接,但兩端還未達成真正的通信,必須進行「驗證信息」的核實,當真正驗證成功后,才能達成真正的通路。

經過以上復雜流程,客戶端和暗網服務器建立通信成功,形成一個上面截圖的六跳連接,并成功保證了雙方的匿名性。

Tor 網絡節點

從前面可以看到,暗網的匿名性基于其眾多的節點,但如果部署足夠多的節點,是否就能探測到雙方的 IP 地址和通信數據呢?先來看看暗網節點的情況。

節點介紹

暗網節點一共分為以下3類:

  • 入口節點/中間節點

入口節點和中間節點沒有本質的差別,通常各 IDC 運營商都允許服務器被部署為入口節點和中間節點,新節點上線只能是中間節點,當穩定性和帶寬都比較高時,才允許被升級為入口節點。

  • 出口節點

出口節點從技術上看和入口節點一樣,但通常 IDC 運營商是不允許服務器部署出口節點的,因為如果引發了犯罪行為,由于無法進行往回追蹤,會導致運營商背鍋。因此,出口節點通常是學術機構、ISP、科研單位、公共圖書館等才會部署。

  • 網橋

由于入口節點是公開的,因此很容易被封鎖。為了保證這些地區的人也能訪問 Tor 網絡,還存在一個秘密的入口列表,稱之為網橋節點。這個秘密列表每次只可以查詢到3個入口節點,通過一些機制保證不能簡單被遍歷,以此來對抗封鎖。

節點數據

截止當前,目前運行的 Tor 節點數量大概有7500,普通節點大約6500,網橋節點接近1000。

普通節點中,入口節點(Guard)大約2400,出口節點(Exit)大約800多。

從這個數據來看,假設我們在「入中出」三類節點中各有一臺機器,能檢測到完整數據的概率大約是 1/(3400 * 800 * 3300) = 1/8976000000。大約是九十億分之一。

其中大多數節點主要分布在歐美國家。

節點詳情

完整的公開節點列表可以在以下網址查詢到 https://torstatus.rueckgr.at/,云廠商可以根據這個列表進行自查。

部分節點詳細數據

Tor 用戶

全球每天使用 Tor 網絡的用戶基本穩定在200萬人,相對于數十億的互聯網用戶,其實非常小量,而其中訪問暗網匿名網站的用戶更是其中的一小部分。

暗網用戶分布國家 TOP10。

其它平行網絡

前面說過,Tor 網絡只是暗網的一個實現版本,其他的還有 Freenet 和 I2P 網絡,但用戶量遠遠低于 Tor,因此僅作了解就好。

近年來由于區塊鏈技術的發展,又出現了一種基于區塊鏈技術的分布式匿名網絡,其典型例子是 ZeroNet(零網)。

具體用法可以參見官網,https://zeronet.io,用來搭建自己的網站,不但匿名,甚至無需服務器。

寫在最后:

技術本身是中立的,尤其是在密碼學的領域,一方面保障著整個互聯網的安全和信任基礎,一方面也包庇了暗網下的種種犯罪。Tor 網絡也一樣,一方面為大眾提供了一種安全的匿名方案,一方面也為非法交易提供了溫床。陰陽總是交融地存在,所幸黑色領域終究是少數,如何將黑色領域盡量壓縮,道阻且長。

揭開了暗網的面紗,本系列下一篇,將用最科普的方式,繼續講述暗網背后的密碼學原理。

參考資料:

[1] Tor: Overview
https://www.torproject.org/about/overview.html.en

[2] Tor: Onion Service Protocol
https://www.torproject.org/docs/onion-services

[3] Tor: Relays and bridges
https://metrics.torproject.org/networksize.html

[4] Tor: Relays by relay flag
https://metrics.torproject.org/relayflags.html

(部分圖片來源網絡)

騰訊安全云鼎實驗室 關注云主機與云內流量的安全研究和安全運營。利用機器學習與大數據技術實時監控并分析各類風險信息,幫助客戶抵御高級可持續攻擊;聯合騰訊所有安全實驗室進行安全漏洞的研究,確保云計算平臺整體的安全性。相關能力通過騰訊云開放出來,為用戶提供黑客入侵檢測和漏洞風險預警等服務,幫助企業解決服務器安全問題。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/762/