1. 程式人生 > >密碼朋克的社會實驗(一):開燈看暗網

密碼朋克的社會實驗(一):開燈看暗網

密碼朋克的社會實驗(一):開燈看暗網 本文作者:karmayu、murphyzhang @雲鼎實驗室     ……
2018年3月8日,某視訊網站800餘萬用戶資料在暗網銷售
2018年8月1日,某省1000萬學籍資料出現在暗網
2018年8月28日,某酒店集團5億資料疑似在暗網出售
……
    本年度最嚴重的幾次資料洩漏,都指向了同一個詞——「暗網」。在中文的語境裡,這是一個猶如「月黑風高夜」般的詞彙,透著詭祕和犯罪的氣息。而與「暗網」關係最密切的另一個詞,則非「黑客」莫屬。「黑」與「暗」的組合,意味著高超的匿名和隱身技巧,令人忍不住想揭開它精巧的面紗。
 

 

暗網是什麼     要解釋暗網,先給整個網際網路做一個簡單的分層定義,如圖:

 

<ignore_js_op> |圖片來源網路   表網(Surface Web) 通常認為,普通使用者或者搜尋引擎能直接訪問的內容屬於表網。表現形式為網頁或者 APP 提供的內容。   深網(Deep Web) 指不能被標準搜尋引擎檢索到的網路資料。通常是儲存在各公司或組織的資料庫中,需要用專有的介面查詢或乾脆不對外查詢,例如 Google 的後端資料庫。深網資料量遠大於表層網路,猶如海面和大海的關係。
  暗網(Dark Web) 需要通過特殊的加密通道訪問的網頁或資料。暗網通常具有匿名的特性,既保證訪問者的匿名,同時也保證服務提供者的匿名。因此,其中充斥著各種犯罪資訊和違法交易(槍支、毒品、色情、暴恐、黑客等)。 暗網有多個不同的實現版本,下文我們說暗網特指「Tor 網路」。  

 

網路上有些說法說暗網遠大於表層網路,其實很不嚴謹,是把深網和暗網混為一談了,真實的暗網只有一小部分人使用,遠小於大眾使用的表層網路。     誰創造了暗網    
➢ 密碼朋克   故事要從90年代的一個極小眾群體說起——「密碼朋克」。這是一個由頂尖數學家、密碼學家和程式設計師組成的群體,他們關注「匿名、自由、隱私」,其中許多人抱著自由主義和無政府主義的理念,並在美國掀起了「加密無政府主義運動」,他們以密碼學和網際網路為武器,與強權展開直接對抗。 正是這群人,創造了許多加密技術和協議,也奠定了網際網路的許多底層技術和通訊協議,從加密郵件到 HTTPS,從 RSA 到區塊鏈,等等等等。   <ignore_js_op> |圖片來源網路   ➢ 國外政府部門   花開兩朵,密碼朋克們希望保護自己的資訊和隱私不被政府獲取;而政府同樣也有這個需求,甚至更強烈得多,因為他們要保證情報的傳輸安全,同時要保護情報人員傳遞資訊時無法被網路追蹤。因此,1995年,美國海軍研究實驗室也進行了匿名網路的相關專案研究,這也就是暗網的前身。   2004年,「Tor 洋蔥網路」正式對外發布,意味著普通使用者也可以使用匿名網路技術來保證自己的匿名性。也就代表著「暗網」這個概念正式走向公眾。為什麼叫洋蔥網路,因為其中的通訊內容被三重加密,像洋蔥一樣,剝開一層還有一層。   <ignore_js_op>   Tor 網路雖然理論上比較安全,但其中的中轉節點是由志願者部署,如果掌握了其中足夠的節點,也是有概率進行完整通訊追蹤的。而且這畢竟是孵化自美國海軍的一個專案,是否有一些精心構造的安全缺陷,難以確認。  

 

暗網上的資料洩露     一個能保證訪問者和服務提供者都匿名的網路,天生就是法外之地。   因此,各路違法資訊交流充斥暗網,尤其是2011年後,由於比特幣技術的興起,暗網終於從「匿名的資訊交流」進化到了「匿名的價值交換」階段,這個顛覆性變革,隨著「Silk Road」的建立(絲綢之路:可以理解為基於比特幣的暗網淘寶),掀起了違法交易的高潮。當然,大概同時也掀起了 FBI 相關部門的加班高潮。   很巧的是,同樣是2011年底,國內發生了一輪標誌性的大規模的使用者資料洩漏事件,之後各種資料洩漏就成為了每年的常態。早期此類資料交易往往是黑客私下交易,而近年來逐漸被搬到暗網進行交易。為此,騰訊安全雲鼎實驗室對暗網的主要交易平臺進行了監測,並抽取了近幾個月針對國內使用者的資料洩漏的情況進行了統計。   <ignore_js_op>

 

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

 

暗網上的業務     暗網最大的幾個市場均在近年被 FBI 搗毀,如 Silk Road、AlphaBay,因此,2017年來暗網黑市有所收斂,並不如前幾年火爆。我們統計了目前存在的幾大市場商品分類,可以看出,毒品/藥物類還是佔據了超過50%的份額,海外使用違禁藥物的情形非常嚴峻,其次是數字商品類,並充斥著各種色情、黑客、槍支、護照、假鈔等違法內容。   <ignore_js_op>     暗網匿名原理     暗網最重要的作用是保證匿名,其匿名性體現在兩個方面:  
  • 訪問普通網站時,網站無法得知訪問者 IP 地址。
  • 提供暗網服務時,使用者無法得知伺服器 IP 地址。

 

兩個能力加起來則保障了暗網使用者訪問暗網網站時,雙方都無法得知對方 IP 地址,且中間節點也無法同時得知雙方 IP 地址。 聽起來挺科幻的,畢竟我們平時使用的 VPN 等科學上網技術只使用了一層跳板,而 Tor 技術使用了三層跳板。   關於 VPN 的原理,可以參考下圖:   <ignore_js_op> VPN 原理圖解 | 圖片來源網路

 

  下面對暗網匿名原理進行詳細解析:   ➢ 訪問普通網站   先來看一個真實訪問普通網站的跳轉情況: <ignore_js_op>   從上圖可以看到,我們使用瀏覽器訪問 google.com,但中間經過了3個節點 IP 地址,分別在匈牙利、西班牙、德國,然後再訪問到谷歌的伺服器。   Tor 使用者針對普通網站訪問流程,如下圖所示。Tor網路中的每個節點都是隨機選取,且每個節點看到的資訊不超過一跳,所以通過網路流量監控嗅探到的 Tor 流量不能同時獲取通訊兩端的 IP 資訊;且每一個節點處都是加密形式。這裡隨機選取的三個節點的功能順序是:入口節點、中間節點、出口節點;資料流方向為:客戶端、入口節點、中間節點、出口節點、WEB 伺服器。   <ignore_js_op>   Tor 網路有其特有的加密方式--三層金鑰加密。三層金鑰的建立是在網路請求的初始,當和下一個節點連線時建立一對非對稱金鑰,三個隨機節點共建立了三對金鑰並將公鑰回傳到客戶端。資料經客戶端三層金鑰加密後,進行Tor 網路的傳輸,每經過一個節點,便解開一層加密,順序依次為:入口節點解開第一層加密,中間節點解開第二層加密,出口節點解開第三層加密。通過層層加密讓流量監控無法嗅探明文資料。   ➢ 訪問匿名網站   先來看一次真實訪問匿名網站的跳轉情況:   <ignore_js_op>   從上圖可以看到,我們通過瀏覽器嘗試訪問一個奇怪的域名(uffti3lhacanefgy.onion),但和前面普通網站不一樣的是,中間經過了6個節點,其中前3個可見 IP,另外3個命名為 Relay,然後再訪問到那個奇怪的域名。   這個訪問匿名網站的流程比較複雜,在普通網際網路上,當我們知道網站域名時,通過 DNS 協議解析到 IP 地址,然後訪問。但 Tor 網路域名是 .onion 為字尾,並不是使用普通的 DNS 方式來解析,而是使用下面的方法。   <ignore_js_op>   下面我們結合 torproject.org 網站介紹的洋蔥服務協議、業界約定俗成的各個環節的名稱、及上面的原理圖進行 Tor 訪問匿名網站的原理覆盤。在原Tor網路上增加了承載暗網網址導航功能的目錄資料庫(DB),暗網伺服器選定的允許與其通訊的介紹點(Introduction point),及進行兩端資料傳輸的最終會合點(Rendezvous point)。原理圖中的每一步連線,都是建立在 Tor 網路的三跳連線之上,杜絕流量監控嗅探到明文資料。下面我們瞭解一下訪問匿名網站的過程。

 

l step 1: 暗網伺服器連入 Tor 網路,並隱匿IP資訊 這一步是通過介紹點來完成,方法是暗網伺服器選取若干節點充當介紹點,建立Tor線路;並以介紹點充當影子功能,隱匿IP資訊。   l step 2: 暗網伺服器通過向目錄資料庫註冊,公示自身的存在 這一步是通過目錄資料庫來完成,目錄資料庫收錄了各個暗網伺服器上傳的自身標識(公鑰、對應介紹點摘要等),這些標識以自身的私鑰簽名。暗網伺服器的域名(例:uffti3lhacanefgy.onion)由公鑰派生。   l Step 3: 客戶端獲取暗網網址對應的標識資訊,拿到網址對應的公鑰與介紹點 這一步是客戶端通過Tor線路訪問目錄資料庫拿到的結果,此外還進行標識的篡改驗證。   l Step 4: 客戶端隨機選取節點構建會合點,為後續與暗網伺服器傳輸資料做準備 這一步是會合點的生成,除為選取的會合點建立Tor線路外,同時會合點還會收到一次性「驗證資訊」,用來校驗暗網伺服器。   l Step 5\6: 客戶端通過介紹點,通告暗網伺服器會合點的地址和「驗證資訊」 這一步的核心是讓暗網伺服器知道會合點的存在,媒介是客戶端在目錄資料庫中獲取到的對應暗網網址的介紹點,同時傳遞了後續用來對接驗證的「驗證資訊」。   l Step 7: 暗網伺服器通過Tor線路連線會合點,最終與客戶端達成資料傳輸 這一步暗網伺服器也通過Tor線路與會合點建立連線,但兩端還未達成真正的通訊,必須進行「驗證資訊」的核實,當真正驗證成功後,才能達成真正的通路。

 

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

 

Tor 網路節點

 

從前面可以看到,暗網的匿名性基於其眾多的節點,但如果部署足夠多的節點,是否就能探測到雙方的 IP 地址和通訊資料呢?先來看看暗網節點的情況。   ➢ 節點介紹   暗網節點一共分為以下3類:   1)入口節點/中間節點 入口節點和中間節點沒有本質的差別,通常各 IDC 運營商都允許伺服器被部署為入口節點和中間節點,新節點上線只能是中間節點,當穩定性和頻寬都比較高時,才允許被升級為入口節點。   2)出口節點 出口節點從技術上看和入口節點一樣,但通常IDC 運營商是不允許伺服器部署出口節點的,因為如果引發了犯罪行為,由於無法進行往回追蹤,會導致運營商背鍋。因此,出口節點通常是學術機構、ISP、科研單位、公共圖書館等才會部署。   3)網橋 由於入口節點是公開的,因此很容易被封鎖。為了保證這些地區的人也能訪問 Tor 網路,還存在一個祕密的入口列表,稱之為網橋節點。這個祕密列表每次只可以查詢到3個入口節點,通過一些機制保證不能簡單被遍歷,以此來對抗封鎖。   ➢ 節點資料 截止當前,目前執行的 Tor 節點數量大概有7500,普通節點大約6500,網橋節點接近1000。   <ignore_js_op>   普通節點中,入口節點(Guard)大約2400,出口節點(Exit)大約800多。   <ignore_js_op>   從這個資料來看,假設我們在「入中出」三類節點中各有一臺機器,能檢測到完整資料的概率大約是 1/(3400 * 800 * 3300) = 1/8976000000。大約是九十億分之一。   其中大多數節點主要分佈在歐美國家。   <ignore_js_op>   ➢ 節點詳情   完整的公開節點列表可以在以下網址查詢到 https://torstatus.rueckgr.at/,雲廠商可以根據這個列表進行自查。   <ignore_js_op> (部分節點詳細資料)     Tor 使用者     全球每天使用 Tor 網路的使用者基本穩定在200萬人,相對於數十億的網際網路使用者,其實非常小量,而其中訪問暗網匿名網站的使用者更是其中的一小部分。   <ignore_js_op>   暗網使用者分佈國家 TOP10。   <ignore_js_op>   其它平行網路

前面說過,Tor 網路只是暗網的一個實現版本,其他的還有 Freenet 和 I2P 網路,但使用者量遠遠低於 Tor,因此僅作了解就好。   近年來由於區塊鏈技術的發展,又出現了一種基於區塊鏈技術的分散式匿名網路,其典型例子是 ZeroNet(零網)。   <ignore_js_op>   具體用法可以參見官網,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

 

(部分圖片來源網路)

 

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