I2P
開發者 | I2P Team |
---|---|
目前版本 | 0.9.46(2020年5月25日 | )
原始碼庫 | |
作業系統 | 跨平臺Java+原生庫 |
類型 | 大蒜路由/匿名/P2P |
授權條款 | 自由/開放原始碼 - Multiple licenses 公有領域、BSD、GNU通用公眾授權條款、MIT、Artistic license |
網站 | geti2p.net |
I2P(Invisible Internet Project即「隱形網際網路計劃」),是一項混合授權的匿名網路專案。
I2P網路是由I2P路由器以大蒜路由方式組成的覆蓋網路,建立於其上的應用程式可以安全匿名的相互通訊。它可以同時使用UDP及TCP協定,支援UPnP對映。其應用包括匿名上網、聊天、搭建暗網服務和檔案分享。
系統簡介
I2P是可伸縮性強,具有自我組織與恢復能力的基於訊息的匿名網路。其上執行有多種不同的匿名安全程式,各程式可以自行決定匿名性、延遲、流量平衡而不用考慮混淆式路由網路的具體實現。它們的資料活動可以與現有的I2P使用者的匿名資料相混合。目前的用途包括全部典型的Internet應用 - 匿名網頁瀏覽(Outproxy),匿名網站(Eepsite),匿名部落格與內容聚合(Syndie (頁面存檔備份,存於網際網路檔案館)),匿名聊天(通過IRC、Jabber、I2P-QTMessanger),匿名檔案傳輸(I2PSnark,Robert),匿名檔案分享(I2Phex, iMule),匿名電子郵件(I2PMail+susiMail),匿名新聞群組,及其他開發中的程式。與自由網或GNUnet上內容釋出網路不同,I2P所提供的服務具有更強的互動性 - 從常規的Web搜尋引擎,到論壇,部落格,資料站點再到無需安裝Tor / 自由網即可訪問其中內容的閘道器。
I2P做為訊息機制為基礎的中介軟體與這些匿名性程式協同工作 - 程式要求傳送資料給某一加密標識(目標),I2P來處理並保證資料安全匿名的到達#目標。I2P還帶有易用的流封裝庫,可將I2P匿名訊息轉換為可靠有序的資料流傳輸,提供基於TCP協定和QUIC協定(於SSU2)的擁堵控制演算法解決網路程式的寬頻延遲問題。I2P同時有簡易的SOCKS代理介面可以將現有的網路程式繫結於I2P網路中。為了方便使用,I2P為提供了一系列API,從而充分利用I2P的資源。[1]
I2P應用程式
I2P被設計為其他程式可以使用的匿名網路層。這些執行於I2P上的程式有的被捆綁在I2P的安裝套件中,有的需要自行下載。I2P路由控制台是一個Web介面,可以通過瀏覽器管理I2P路由器的執行,類似於現在大多數家用路由器的管理方式。
I2PTunnel
I2PTunnel是I2P的內建程式,它可以通過#隧道將遠端電腦上的埠對映為本地主機埠,從而允許任意TCP/IP程式通過I2P進行通訊。
SAMV3
SAM協定允許任意語言編寫的程式通過Socket介面使用I2P路由器。[2]
BOB(已廢棄)
BOB比SAM更簡單的TCP類型的橋協定。[3]
I2CP[4]
I2P 客戶端協定 (I2CP) 使客戶端應用程式能直接控制隧道數量、跳躍長度和目的地識別碼等資訊,使程式和I2P路由緊密結合。目前主要用於BiglyBT I2PHelper
BitTorrent
I2P網路中有多個客戶端支援BitTorrent功能,每種客戶端都支援Web介面的遠端控制。這些客戶端不允許下載含I2P外部Tracker的種子或連接I2P以外的使用者,也不允許I2P外部的使用者連接進來。由於匿名性的原因,目前I2P內部還沒有Tracker站點開放對公網IP的支援。[5]
I2PSnark,包含於I2P安裝套件中,是BitTorrent客戶端Snark的移植版。[6]
BiglyBT基於I2CP,提供了Tor和I2P外掛程式,支援純暗網和混合下載/做種。[7]
eDonkey iMule
iMule(隱身騾)[8]是全平台客戶端aMule的I2P移植版。
與eDonkey不同,iMule只使用Kademlia連接因此沒有伺服器。iMule自1.2.3版起攜帶內建的GCJ編譯的I2P路由器,但由於I2P的GCJ編譯版效率低下版本滯後,內建路由器被I2P開發者叫停。[9]
Gnutella I2Phex
I2Phex是Gnutella客戶端Phex的I2P移植版。
I2P-Messanger
通過I2P進行匿名通訊的無伺服器即時聊天程式。[10][11]
MuWire[12]
MuWire 是一個匿名檔案分享程式。它使用 I2P進行所有通訊,使您的 IP位址和活動保持私密。
- 搜尋檔案:您可以搜尋其他 MuWire 使用者共享的檔案。
- 共享檔案:您可以與其他MuWire使用者共享您自己的檔案,通過多種方式:
- 您可以將檔案釋出為 自動提要 ,例如部落格。
- 您可以評論共享檔案。
- 您可以為您共享的檔案頒發憑證 ,以向其他人證明您擁有該檔案。
- 訊息和聊天:您可以其他 MuWire使用者交流通過訊息和即時聊天。
- 信任:您可以選擇 信任或不信任 其他 MuWire 使用者。
Susimail
I2P免費的假名Email服務,由'Postman'維護。郵件傳輸伺服器為pop.mail.i2p(POP3)及smtp.mail.i2p(SMTP)。可以通過I2PTunnel利用普通的Email客戶端訪問。
Susimail被編寫來處理隱私問題,普通的Email客戶端可能在與SMTP伺服器的通訊中傳送使用者的主機名。Susimail是Web介面的Email客戶端,最初被設計來與配合Postman的郵件服務,設計中考慮到匿名性與安全性,是I2P預設安裝套件的一部分。可以通過I2P路由控制台訪問。(注意SusiMail僅僅被設計來進行郵件的讀寫,郵件帳戶的管理需要訪問www.mail.i2p。)
Syndie
Syndie是I2P的部落格程式可以同時使用Tor網路,目前開發停滯仍處於Alpa階段。[13]
I2P術語
I2P使用者在I2P的網站及路由介面中會遇到如下術語:
I2P匿名站點
I2P匿名站點(eepsite)是I2P網路內的網站。I2P站點的名稱以.i2p結尾,例如ugha.i2p或forum.i2p. I2P代理(eepProxy)可以通過I2P資料夾下hosts.txt中的加密辨識金鑰找到這些站點。通常,必須通過I2P才能訪問這些站點。對於使用加密賃集的I2P匿名網站/出口代理只有持有該站點金鑰的路由器才能訪問。
I2P代理
I2P代理(eepProxy)程式處理瀏覽器與#I2P匿名站點間的所有通訊。它以HTTP代理伺服器的形式工作,適於絕大多數瀏覽器。[14]
.i2p是一個虛擬的頂級域名(eppsite),只在I2P表層網路內有效。.i2p域名由瀏覽器提交給eepProxy進行解析,eepProxy查詢到I2P使用者金鑰後處理資料的傳輸,從而使瀏覽器可以透明瀏覽I2P網路。[15]
使用者/節點
使用者/節點(Peer),I2P網路中的其他電腦。I2P網路中的每台電腦都會共享頻寬對拆分後加密的封包進行路由及中轉。
隧道
每10分鐘,使用者的I2P路由就會與新的節點建立連接,將本機封包與其他I2P節點中轉的封包一併通過這些隧道中轉傳遞,令封包最終到達最終的#目標。
目標
I2P中將可到達的匿名端點(EndPoint)稱為目標(Destination)在I2PTunnel中體現為主機+埠,每個I2P程式都可以建立自己的目標與其他目標間進行通訊。
對比其他的匿名網路
Tor /洋蔥路由
Tor和I2P之間的兩個主要區別 是威脅模型和外代理設計(雖然 Tor也支援隱藏服務)。此外,Tor採用基於目錄的方法-提供一個中心化的目錄伺服器,以收集和報告統計資料,而不是I2P的分散式網路資料庫和對等選擇 。 Tor 確實有一些針對某些攻擊者的重大弱點 - 一旦通訊離開網路,全球對手可以更輕鬆地進行流量分析。此外,出口節點可以訪問明文雙向傳輸的資料,以及很容易被濫用。[16]
然而,很多人不必擔心這些情況,因為這超出了他們的威脅模型。這也在 I2P 的(正式)功能範圍之外(你當然可以構建出口代理,但I2P並不為此而生)。
Tor 和 I2P 術語的比較
雖然 Tor 和 I2P 在很多方面都很相似,但大部分術語是不同的。
Tor | I2P |
---|---|
Cell | 訊息 |
客戶 | 路由或客戶端 |
鏈路 | 隧道 |
目錄 | 網路資料庫 |
目錄伺服器 | 洪泛節點 |
守衛節點 | 快速節點 |
入口節點 | 入站代理 |
出口節點 | 出口代理 |
隱身服務 | 隱身服務, I2P Site or Destination,eppsite |
隱身服務描述符 | 賃集 |
介紹點 | 入站閘道器 |
節點 | 路由器 |
洋蔥代理 | I2PTunnel 客戶端(或多或少) |
洋蔥服務 | 隱身服務, I2P Site or Destination |
中繼 | 路由器 |
集合點 | 有點像入站閘道器 + 出站端點 |
路由器描述符 | 路由器資訊 |
伺服器 | 路由器 |
Tor 相對 I2P 的優勢
- 大許多的使用者群;在學術和駭客群體中得到較多關注; 基於正式研究的匿名性、抵抗性和效能優勢;有一個非匿名的,來自大學的領導者
- 解決了一些 I2P 尚未解決的規模問題(但現在I2P至少擁有3萬以上的活躍節點和一萬八千左右的公網IP,Tor擁有6000左右的中繼和2000左右的網橋)
- 有可觀的資金
- 有更多的開發者,其中有些是全職的
- 由於具有基於 TLS 的傳輸和網橋,對國家級封鎖有更強的抵抗
- 為出口流量設計和最佳化,有大量的出口節點
- 更好的文件,擁有正式檔案和規範, 更美觀的網頁,多許多的翻譯
- 主記憶體使用更高效(試試I2Pd?)
- Tor 客戶端節點的頻寬開銷非常低,在Tor中,客戶端節點不需要太多頻寬,他們沒有完全參與網路。
- 集中控制降低了每個節點的複雜性,並能有效應對 Sybil 攻擊
- 高容量節點提供更高的吞吐量和更低的延遲
- C,而不是Java
I2P 相對 Tor 的優勢
- 專為隱藏服務設計和最佳化,在這方面比Tor快許多
- 完全分散式和自組織
- 通過不斷分析和比較效能,而不是根據目錄聲稱的頻寬來選擇節點
- 洪泛節點(「目錄伺服器」)是持續變化並且不被信任的, 而不是寫死寫入
- 足夠小以至於它還沒有被大量(或者根本沒有)封鎖或阻斷服務
- P2P 友好
- 訊息交換而不是線路交換
- 訊息的隱式透明負載平衡跨越多個對等點,而不是單一路徑
- 單向隧道而不是雙向隧道線路,使對等點必須的節點數量增加一倍以獲得相同的資訊。
- 防止檢測客戶端活動,甚至當攻擊者參與隧道時,如隧道不僅僅在終點結束訊息(例如 netDb、隧道管理、 隧道測試)
- I2P 中的隧道是短暫的,減少了攻擊者可以用來掛載的樣本,不像 Tor 中的線路,它們通常長壽。
- I2P API 專為匿名和安全性,而 SOCKS 是為功能而設計的。
- 基本上所有節點都參與為其他人的路由
- 使用TCP和UDP傳輸
- Java,而不是C(I2Pd使用C++)
自由網(Freenet)
Freenet是一個完全分散式的P2P匿名釋出網路,提供安全的資料儲存方式,以及一些試圖解決洪泛負載的方法。雖然Freenet的設計目的是分散式的資料儲存,但是人們也在Freenet之上建立了一些應用程式,使得更通用的匿名通訊成為可能,如靜態網站和留言板等。[17]
相比於I2P,Freenet提供了一些實質性的好處——它是一個分散式資料儲存,而I2P並不是,Freenet允許使用者檢索即便內容的釋出者已經離線了的已釋出內容。此外,Freenet應該能夠高效地分發熱門資料,I2P本身不提供此功能。另一方面,對於那些只想通過網站、留言板、檔案分享程式等方式匿名交流的使用者來說,兩者有重疊。I2P也進行了一些嘗試以支援分散式資料儲存(最近的是Tahoe-LAFS的移植) ,但還沒有準備好全面使用。
參考
- ^ 存档副本. [2022-10-30]. (原始內容存檔於2022-10-30).
- ^ 存档副本. [2022-10-30]. (原始內容存檔於2022-10-30).
- ^ 存档副本. [2022-10-30]. (原始內容存檔於2022-10-30).
- ^ I2CP - I2P. geti2p.net. [2022-10-30]. (原始內容存檔於2022-12-04).
- ^ I2P Bittorrent FAQ 網際網路檔案館的存檔,存檔日期2011-11-03.
- ^ The Hunting of the Snark Project - BitTorrent Application Suite. [2009-12-15]. (原始內容存檔於2010-02-12).
- ^ BiglyBT - Bittorrent Client. www.biglybt.com. [2022-10-30]. (原始內容存檔於2018-01-23) (英語).
- ^ iMule download. [2009-12-15]. (原始內容存檔於2009-11-12).
- ^ Do not use internal router![失效連結]
- ^ I2P-Messenger First Beta released. [2009-12-15]. (原始內容存檔於2012-07-08).
- ^ qt messenger in I2P, active dev[失效連結]
- ^ Zlatin Balevsky / muwire · GitLab. GitLab. [2022-10-30]. (原始內容存檔於2022-10-30) (英語).
- ^ Syndie主页. [2009-12-13]. (原始內容存檔於2009-12-12).
- ^ Web Browser Configuration - I2P. [2013-03-10]. (原始內容存檔於2013-03-17).
- ^ i2p homepage. [2009-05-20]. (原始內容存檔於2009-07-07).
- ^ I2P与Tor比较 - I2P. geti2p.net. [2022-10-30]. (原始內容存檔於2022-11-26).
- ^ I2P 相比 Freenet - I2P. geti2p.net. [2022-10-30]. (原始內容存檔於2022-10-30).
參考文獻
- I2P - Anonymity for the Masses. Linux Today. Nov 14, 2011 [2013-04-21]. (原始內容存檔於2013-04-14).