S/Kademlia2007 翻譯

S/Kademlia:實現安全Key路由的可行方法node

 

摘要git

 

安全性是徹底分散式P2P系統中的常見問題。 儘管關於如何建立一個安全的基於Key的路由協議存在幾點建議,但一個可行的方法仍然無人蔘與。 在本文中,咱們介紹一種基於Kademlia的安全Key路由協議,該協議經過在多條不相交的路徑上使用並行查找來抵抗常見攻擊,用隱式密碼來限制自由節點ID生成,並引入可靠的兄弟廣播。 後者須要以安全複製的方式存儲數據。 咱們分析評估了咱們提出的Kademlia協議擴展的安全性,並模擬了對抗節點影響下多個不相交路徑對查找成功的影響。github

1介紹

長期以來,像Chord [18]或Pastry [14]這樣的結構化P2P網絡只引發了研究界的興趣,但並未普遍應用於實際網絡。 如今,隨着分佈式文件共享應用程序的成功,Internet的狀況發生了顯著的變化。 並且大型多人在線遊戲的新興領域也引發了人們對使用結構化P2P網絡構建可擴展存儲和通訊服務的興趣。算法

 

徹底分散的P2P系統的一個主要問題是安全問題。 已經發現了幾起針對結構化P2P網絡的常見攻擊[3,16,17]。 雖然理論上存在不少如何處理此類攻擊的建議,但在構建切實可行的安全P2P網絡方面幾乎沒有實踐。api

 

目前在互聯網上使用的全部普遍部署的結構化覆蓋網絡(即BitTorrent,OverNet和eMule)都基於Kademlia [11]協議,容易受到多種攻擊[5]的影響。 在本文中,咱們分析了對Kademlia網絡的攻擊並提出了幾種可行的對策。緩存

 

本文的其他部分組織以下:在第2節中,咱們提供了一些關於結構化P2P網絡的背景知識,並介紹了Kademlia協議。 在第3節中,咱們將概述對Kademlia的常見攻擊。 咱們的Kademlia安全擴展的詳細設計在第4節中介紹。在第5節中,咱們經過模擬來評估咱們的設計。 最後,第6節涵蓋相關工做,第7節結束。安全

 

2背景

在本節中,咱們將提供關於結構化P2P系統的一些背景信息,並描述Kademlia協議的一些屬性。全部結構化的P2P網絡提供的通用服務是基於Key的路由層(KBR)[6]。該層爲來自大標識符空間(稱爲Key的標識符)提供有效路由(典型地,n比特整數模 ,n = 128或160)。疊加層中的每一個參與節點都從相同的id空間中選擇惟一的nodeId,並在覆蓋拓撲中維護具備nodeIds和鄰居IP地址的路由表。根據覆蓋協議,拓撲結構相似於環,超立方體或Bruijn圖。每一個節點都負責標識符空間的特定範圍,一般用於ID空間中接近其nodeId的全部鍵。經過這種方式,經過將消息連續轉發到具備更接近目的Key的節點ID的覆蓋鄰居,KBR可用於有效地將消息路由到任意key。這個KBR層能夠用做分佈式存儲服務等更復雜任務的構建塊。網絡

 

儘管像Chord,Pastry或Kademlia這樣的結構化P2P系統提供了相似的KBR服務,但它們在路由表大小和平均查找路徑長度等屬性方面有所不一樣。 在下文中,咱們將重點放在Kademlia [11]協議上,由於它已經不易受幾種常見攻擊的影響,同時易於實現。app

 

 

圖1. Kademlia中的路由表,其中nodeId前綴爲0011的節點框架

 

2.1. Kademlia 

Kademlia [11]是一個結構化的點對點系統,與Chord [18]這樣的協議相比,它具備幾個優勢,做爲在標識符空間中使用新的XOR度量標準點間距的結果。 因爲XOR是一種對稱操做,Kademlia節點接收來自一樣在本地路由表中的同一節點的查找查詢。 這對於節點能從查找查詢中學習有用的路由信息並更新其路由表很重要。 相比之下,因爲覆蓋拓撲的不對稱特性,Chord須要專用的穩定協議。XOR度量也是單向的:對於任何常數x,存在剛好一個y,其距離爲d(x,y)。 這確保了對相同Key的查找沿着相同的路徑收斂,而不依賴於始發,這是緩存機制的重要屬性。

 

在Kademlia中,每一個節點選擇一個隨機的160位nodeId並維護一個由多達160個k-buckets組成的路由表。 每一個k-buckets最多包含k個其餘節點的三元組。 參數k是一個冗餘因子,經過跨越覆蓋節點之間的幾條不相交路徑,使路由更加健壯。 存儲區按二叉樹排列,根據節點標識符的最短惟一前綴將節點分配給存儲區。 一個nodeId前綴爲0011的節點的示例路由表如圖1所示。最初,一個節點的路由表由一個覆蓋整個ID空間的bucket組成。 當節點U得知新的聯繫人C時,節點U根據C的nodeId的前綴將C插入適當的bucket中。 若是這個bucket已經包含k個節點而且bucket的範圍包括U本身的nodeId,則buckets被分紅兩個新的buckets。 不然,新聯繫人將被丟棄。

 

若是節點ID不均勻分佈,則會出現問題。 在這種狀況下,標準bucket拆分算法會致使節點不知道它們的完整k鄰域。 圖2給出了一個例子。該圖顯示了nodeId前綴爲00的節點U的路由表。根據上面給出的拆分規則,對於前綴01,只有一個存儲bucket有k個條目, 不會再分裂。 在這種狀況下,與節點U最接近的節點前綴爲010的節點可能會丟失,致使鄰域不完整。 爲了不這種狀況,Kademlia的做者在這些狀況下提出也將節點U的nodeId不包含在內的分裂bucket分裂,致使U的nodeIdbucket旁邊出現不規則的子樹。 bucket分裂算法的這個例外使協議更加複雜,所以咱們在4.2節中提出了一種替代方法。

 

 

 

圖2.高度不平衡樹中Kademlia路由表的不規則性

3. 攻擊Kademlia

在這一節中,咱們描述了對Kademlia的基於Key的路由和數據存儲的可能攻擊的分類。此外,咱們提出了一個理論估計的查詢成功率在一個Kademlia網絡與對手節點的一小部分。

 

3.1. 攻擊底層網絡

咱們假設底層網絡層不爲覆蓋層提供任何安全屬性。 所以攻擊者可能可以偷聽或修改任意數據包。此外,咱們假設節點能夠欺騙IP地址,而且底層中沒有數據包的認證。 所以,對底層的攻擊可能會致使對覆蓋層的拒絕服務攻擊。

3.2.攻擊覆蓋路由

 

除了底層攻擊以外,還有許多攻擊會影響覆蓋層路由。 本節總結了目前已知的覆蓋穩定性攻擊。

 

日蝕攻擊:這種攻擊嘗試在網絡中放置敵對節點,從而將一個或多個節點與其隔離,即全部消息都經過至少一個敵對節點進行路由。 這使攻擊者能夠控制覆蓋網絡的一部分。 所以,日蝕攻擊能夠從覆蓋網絡「隱藏」一些節點。 首先,若是一個節點不能自由選擇其節點ID,其次,當它很難影響其餘節點的路由表時,能夠避免這種狀況。 因爲Kademlia青睞K-BUCKETS中的長生命節點,而且只添加節點,若是一個bucket還沒有滿,只要網絡啓動,後者就很容易實現。

 

女巫攻擊:在徹底分散的系統中,不存在控制攻擊者能夠獲取的nodeIds數量的實例。 所以,攻擊者能夠用大量nodeIds加入網絡,直到他控制網絡中全部節點的一小部分爲止。Douceur [8]證實,這種攻擊是沒法預防的,但只能阻止。 在集中式系統中,可讓節點用金錢支付來加入網絡,並將該節點綁定到特定的天然人。 在徹底分散的系統中,節點只能經過系統資源(帶寬,CPU功率等)進行受權才能「付費」。

 

客戶流失攻擊:若是攻擊者擁有一些節點,他可能會在網絡中引起高流失,直到網絡穩定失敗。 因爲建議Kademlia節點在其路由表中保留長期聯繫人,所以這種攻擊對Kademlia覆蓋拓撲沒有太大影響。

 

敵對路由:當路由表既不響應路由信息也不路由任何分組時,簡單地從路由表中刪除節點,影響網絡路由的惟一方式是返回敵對路由信息。 例如,敵對節點可能只是返回更接近查詢Key的其餘協做節點。 這樣一種敵對節點將數據包路由到其協做者的子網中,而且查找到的和給定Key的最近節點都不會被找到。 這能夠經過使用考慮多個不相交路徑的查找算法來防止。 當一條路徑沒有敵對節點時,查找成功。 所以,假設m是對抗節點的分數,d是不相交路徑的數量,(hi)路徑長度分佈,則查找成功的機率由下式給出:

 

這代表,特別是對於中等數量的敵對節點,查找算法能夠顯着受益於不相交路徑以及低平均路徑長度。

3.3. 其餘攻擊

拒絕服務:敵對方可能試圖欺騙受害者以消耗其全部資源,即內存,帶寬,計算能力。 所以,協議須要有機制以安全的方式分配資源。 本文不考慮物理攻擊,如干擾或邊帶攻擊。

 

對數據存儲的攻擊: 基於Key的路由協議一般用做構建塊以實現用於數據存儲的分佈式散列表(DHT)。 爲了使對抗節點更難以修改存儲的數據項,相同的數據項被複制到多個相鄰節點上。 儘管本文不考慮對數據存儲的攻擊,但基於Key的路由層必須爲給定的Key提供安全鄰域。

4. 設計

在本節中,咱們提出一個切實可行的安全Kademlia協議。 在第4.1節中,咱們介紹一種以安全方式分配nodeIds的方法。 進一步提出了一種可靠的兄弟廣播,其以安全的方式存儲複製的數據。 最後咱們解釋如何保護路由表維護。

4.1. 安全的nodeId分配

從3.2節可知,攻擊者很難產生大量的nodeIds(Sybil攻擊),也不能自由選擇nodeId(Eclipse攻擊)。此外,nodeId應該認證節點,即沒有其餘節點應該可以竊取或僞造nodeId。後者能夠經過如下兩種方法之一來實現:在IP地址和端口上使用散列值或經過散列公鑰。第一種解決方案有一個明顯的缺點,由於動態分配IP地址後,nodeId將會改變。若是您要支持具備多個節點彷佛具備相同公共IP地址的NAT的網絡,那麼也不適合限制生成的nodeIds的數量。最後,沒有辦法確保與那些節點標識符交換消息的完整性。這就是爲何咱們提倡使用公鑰上的哈希來生成nodeId。使用這個公鑰能夠簽署節點交換的消息。因爲計算開銷,咱們區分了兩種簽名類型:

 

• 弱簽名:弱簽名不簽署整個消息。 它僅限於IP地址,端口和時間戳。 時間戳指定簽名有效的時間。 若是使用動態IP地址,這將防止重放攻擊。 對於同步問題,時間戳可能以很是粗糙的方式選擇。 弱簽名主要用於FIND NODE和PING消息,其中整個消息的完整性是無關緊要的。

 

• 強有力的簽名:強有力的簽名在郵件的所有內容上簽名。 這確保了消息的完整性和抵禦中間人攻擊的彈性。RPC消息內的隨機數能夠防止重放攻擊。

 

這兩種簽名類型能夠對節點進行身份驗證並確保消息的完整性。 咱們如今須要阻止女巫攻擊和日蝕攻擊。這是經過使用加密謎題或來自中央證書頒發機構的簽名完成的,所以咱們須要將上述簽名類型與如下某個簽名類型結合使用:

 

• 受監督簽名:若是簽名的公鑰另外由可信的證書頒發機構簽名,則該簽名被稱爲受監督簽名。這個簽名是必要的,以阻止SybIL攻擊在網絡的引導階段,其中只有少數節點存在於網絡中。可使用網絡大小估計來決定是否須要該簽名。

 

• 加密拼圖簽名:在沒有可信權威的狀況下,咱們須要用加密拼圖來阻止日蝕和女巫攻擊。 在[3]中使用加密謎題來生成nodeId是由於它們不能被用來徹底阻止攻擊。 可是,在咱們看來,它們是在徹底分散的環境中沒有可信權威的分佈式nodeId生成的最有效的方法,所以應該用於在這樣的網絡中儘量地進行攻擊。

 

出於這個緣由,咱們引入了兩個加密謎題,如圖3所示。一個靜態謎題阻礙了NodeId的自由選擇和一個動態謎題,以確保生成大量nodeIds的複雜性。H表示密碼安全散列函數,⊕是異或運算, 表示加密難題複雜度。 很明顯,的增長減小了可能的公鑰的空間,所以公鑰的大小必須隨後增長。被認爲是一個常數。 一旦生成了nodeId,它就保持固定必定的值。 當計算資源變得更便宜時,能夠隨着時間的推移而被修改或擴展。

 

圖3. 用於nodeId生成的靜態(左)和動態(右)加密難題

 

若是一個節點收到一個簽名的消息,它如今能夠首先驗證它的簽名,而後檢查密碼拼圖是否被解決。 兩個操做對於恆定公鑰大小都具備O(1) 複雜性,而加密難題建立具備O(2c1 + 2c2)複雜性。

4.2. 可靠兄弟廣播

兄弟是負責須要存儲在DHT中的某個鍵值對的節點。 在Kademlia的狀況下,這些鍵值對被複制到k個最接近的節點上(咱們記得:k是bucket大小)。 在本文中,咱們但願獨立於bucket大小k考慮這個數量的節點,並引入兄弟數量做爲參數s。 這頗有意義,由於存儲區大小一般定義了覆蓋鏈接的冗餘度,而不是DHT須要存儲的副本數量。

 

一個常見的安全問題是兄弟信息的可靠性,當複製的信息須要存儲在使用多數決定來補償敵對節點的DHT中時產生。 因爲Kademlia的原始協議收斂到兄弟列表中,分析和證實兄弟信息的一致性是很複雜的。 出於這個緣由,咱們引入一個大小爲每一個節點η · s的兄弟列表,這確保了每一個節點至少在節點的兄弟範圍內以高几率知道兄弟的一個ID。 咱們如今必須肯定η並證實約束具備很高的機率。Gai和Viennot在他們關於Broose DHT的論文中已經完成了這項工做[10],其中兄弟名單以相同的方式構建。 因爲這個證實沒必要要地使用了Chernoff邊界,咱們在這裏回顧證實:

 

 

表1.不完整的兄弟列表的機率

 

如前所述,XOR度量是單向的,這意味着對於一個固定的x和每一個,只有一個y存在。 考慮隨機選擇兩個節點ID,則一個節點ID小於節點ID的機率由(n是節點ID的位數)給出。 令N爲網絡中節點的數量,則兩個相鄰節點之間XOR度量的平均距離爲.。 如今考慮距離

  

兩個節點與nodeId x和y,那麼x和y之間的指望節點數N(x, y)爲E[N(x, y)] = µ,節點放置在x和y之間的機率爲由給出。 因爲nodeIds是隨機選擇的,所以x和y之間的實際節點數量與指望值μ有所不一樣。 所以,在距離(cs)處x和y之間少於s個節點的機率由下式給出:

 

對於小s> 0,這個機率是可計算的,由於如下是必須的:

 

 

 

因此使用Chernoff邊界是沒有必要的。 這使得該解更精確,而且能夠如表1所示計算具備N =  的上限網絡大小的依賴於c和s的如下機率。

 

其他的證實以下[10]。 有趣的事實是,顯示η ≥ (2·c) ≥ 5的值足以知足咱們須要的約束w.h.p.

 

所以,在S/Kademlia中,路由表由包含具備距離d且具備≤d < ,  0≤i≤n的節點的k個bucket的列表組成,大小η · s。 因爲新引入的同級列表,第2.1節中介紹的特殊子樹處理能夠省略。 因爲Kademlia中的路由表經過傳入的查找請求隱式刷新,而且咱們兄弟表中的許多節點必須存儲在Kademlia的k-bucket中,所以維護兄弟表的額外通訊開銷很小。

4.3. 路由表維護

Kademlia使用反應式方法來維護路由表。因爲XOR度量確保全部迭代查找沿着同一路徑收斂,Kademlia能夠從傳入的RPCs中瞭解新節點的存在。爲了確保S/Kademlia中的路由表維護,咱們將信令消息分類爲如下類:傳入簽名的RPC請求、響應或未簽名消息。這些消息中的每個都包含發送者地址。若是消息弱或強簽名,則此地址不能僞造或與另外一個nodeId關聯(見第4.1節)。若是發送方地址有效而且來自RPC響應,則若是消息被簽名並有效,則調用發送方地址有效。Kademlia使用那些發送者地址來維護他們的路由表。

 

當活動有效的發件人地址未滿時,會當即將其添加到相應的存儲區中。 若是nodeId前綴在適當的位數χ中不一樣(例如,χ > 32),則有效的發件人地址只能添加到存儲bucket中。 這是必要的,由於攻擊者能夠很容易地生成與受害者nodeId共享前綴並溢出他的bucket的nodeId,由於靠近本身的nodeId的bucket只在Kademlia中稀疏填充。 來自未簽名消息的發件人地址將被忽略。 若是消息包含有關其餘節點的更多信息,則能夠經過調用它們上的ping RPC來添加每一個節點。 若是一個節點已經存在於路由表中,它將在bucket的尾部移動。

 

4.4. 經過不相交的路徑進行查找

在3.2節中,咱們展現了使用多條不相交路徑來查找具備對抗節點的網絡中的Key的重要性。 原始的Kademlia查找迭代地查詢具備FIND NODE RPC的α節點,以找到與目標Key最近的k個節點。α是系統範圍的冗餘參數,例如2.在每一個步驟中,未來自先前RPC的返回節點合併到排序列表中,從中選擇下一個α節點。 這種方法的一個主要缺點是,只要查詢單個敵對節點,查找就會失敗。

 

咱們將該算法推廣到使用D不相交路徑,從而提升了具備對抗節點的網絡中的查找成功率。發起方經過從本地路由表中獲取K個最接近節點到目標Key並將其分配到與D無關的查找桶開始查找。從那裏節點繼續與傳統的KMDELLA查找類似的D並行查找。查找是獨立的,除了重要的事實,每一個節點只在整個查找過程當中使用一次,以確保所產生的路徑真的不相交。經過使用來自第4.2節的兄弟列表,查找不會在單個節點上收斂,而是在鄰居關閉的D上結束,全部鄰居都知道目標Key的完整S兄弟。所以,即便k近鄰的1是對立的,查找仍然是成功的。

  

圖4.具備固定bucket大小k = 16的成功節點查找的分數

 

 

5. 評估

在本節中,咱們用OverSim [2]來評估S/Kademlia,這是一個用於疊加模擬的靈活框架。 咱們描述了仿真設置和程序,並最終描述了咱們的仿真結果。

5.1.  模擬假設 

咱們用如下假設模擬敵對節點:敵對節點在最壞狀況下返回損害網絡的數據。 所以,在FIND NODE RPC的狀況下,最差的行爲只會返回其餘更接近目標nodeId的協做節點。 對手還會收穫其餘現有的有效nodeIds,以便將它們映射到虛假的傳輸地址。 這是最壞的狀況,由於能夠檢測到諸如空結果或無效數據之類的其餘反應,而且將該節點從網絡中移除,即該節點將被視爲陳舊聯繫人。

 

圖5.具備自適應bucket大小k = 2d的成功節點查找的分數

 

另外一方面,咱們假設良好行爲的節點以平均分佈的方式返回對抗節點信息。 這個假設在第4節中獲得證明,由於敵對節點幾乎不可能影響其餘節點的路由表。

 

經過這些假設,咱們預計若是沒有對抗節點位於負責節點的一條路徑上,則節點或兄弟節點的查找是成功的。 在多條路徑上進行並行查找的狀況下,咱們只需中止追蹤遇到敵對節點的每條路徑,而且只有一條路徑沒有任何敵對節點時,纔會將查找視爲成功。

 

5.2. 仿真程序

爲了保持仿真效率,咱們首先建立一個靜態Kademlia覆蓋網絡,其中包含N個徹底穩定的節點。 而後咱們繼續處理N個節點查找並評估成功查詢的比例。 隨着對抗節點增長5%重複該過程,直到90%的節點是對抗的。 因爲咱們不評估流失,全部仿真都是在α= 1的參數下完成的,而且咱們假定網絡在引導階段後保持穩定狀態,可是在對抗節點的影響下。

5.3. 結果

咱們使用d ∈ {1, 2, 4, 8} 不相交的路徑模擬了網絡規模爲N = 10000個節點,s = 16個兄弟的兩個設置。 在圖4中,咱們展現了取決於固定存儲區大小k = 16的對抗節點數的成功查找部分。對於d = 1,查找過程與標準Kademlia查找類似。 該圖清楚地代表,經過增長並行不相交路徑的數量d,成功查找的比例能夠大大提升。 在這種狀況下,通訊開銷隨着d線性增長。 咱們還能夠看到,當k = 16時,k-buckets中有足夠的冗餘來實際建立不相交的路徑。

 

在第二種設置中,咱們將k = 2 · d調整爲不相交路徑的數量,以保持路由表中的最小冗餘度,並所以減小通訊開銷。 圖5中的結果顯示,與圖4相比,較小的k致使成功查找的一小部分。其緣由是因爲路徑表中較小的路由表增長了平均路徑長度,如路徑長度分佈圖中所示。

 

咱們得出結論,d = 4..8,k = 8..16對S/Kademlia來講是個不錯的選擇。 較高的d和k值彷佛不值得額外的通訊成本。 較大的k值也會增長很大一部分bucket長時間不滿的機率。 這沒必要要地使路由表更容易受到日蝕攻擊。

 

因爲咱們僅提供了N = 10000個節點的模擬,有人可能會認爲這是一個至關少的節點,並不能與大型網絡相媲美。 事實上,路徑長度與成功查找的比例高度相關。 另外一方面,網絡拓撲結構能夠很容易地調整爲具備較小的直徑,所以較短的平均路徑長度。 這一般經過在每一個步驟中考慮nodeId的多個位b來完成。 所以,能夠將網絡調整到不一樣狀況下所需的安全級別。

6. 相關工做

Castro等人[3]研究對結構化點對點覆蓋中消息路由的攻擊。 他們提出了一些防護措施來確保加入過程,路由表維護和消息轉發。 將nodeIds的安全分配委託給中央信任的證書頒發機構。

 

Sit和Morris [16]在Chord,CAN和Pastry的基礎上提出了針對點對點分佈式哈希表的攻擊分類。 他們表示,防護這些攻擊的重要步驟是經過定義可驗證的系統不變量進行檢測。 例如,節點能夠經過驗證查找是否「接近」目標Key來檢測不正確的查找路由。

 

Srivatsa和Liu [17]研究了基於DHT的P2P系統中的三種安全威脅。 首先,他們對路由方案提出攻擊,其中單個敵對節點能夠在沒有備用路徑的狀況下阻止全部查找請求。 所以,他們強調了幾種備選最佳路徑的重要性,以及檢測不正確查找結果的可行性。 此外,他們對數據放置方案提出了攻擊,並代表單靠複製不足以容忍敵對節點的攻擊,但必須與密碼技術相結合纔能有效。 最後,他們顯示必須限制nodeId選擇過程,以防止敵對節點破壞特定的數據項。

 

Awerbuch和Scheideler [1]提出了一種理論上的DHT,它能夠抵抗對抗式加入假以及插入式查找攻擊。DHT的設計是高層次的,它是一個開放的問題,將它們的想法轉化爲可行的協議是多麼困難。 另外一個能夠處理加入- 離開攻擊的DHT是SChord [9],但它僅限於線性數量的對抗加入請求。

 

Cerri等人[4]重點關注無限選擇nodeIds引發的攻擊,並用Kademlia協議舉例說明其發現。 他們建議經過散列函數將IP地址和端口耦合到nodeId來限制空閒的nodeId選擇。 爲了使敵對節點難以攻擊特定的數據項,他們建議將數據項存儲在一個臨時Key中,該Key會按期輪換。 這是經過用一些暫時信息對數據項的Key進行散列來計算臨時Key來完成的,

 

有幾篇論文提出了針對女巫攻擊的對策:在[13] Rowaihy 等。 爲結構化的同行P2P系統提供准入控制系統。 這些系統構建了協做接納控制節點的樹狀分層結構,從中加入節點必須得到接納。 另外一種限制女巫攻擊的方法是將參與節點的IP地址存儲在安全的DHT中。 經過這種方式,每一個IP地址的nodeIds數量能夠經過查詢DHT來限制,若是新節點想要加入。

 

Singh等人[15]研究Eclipse攻擊對結構化覆蓋網絡的影響,並提出經過讓節點互相審計鏈接來抵禦這種攻擊。 這個想法是,一個掛載Eclipse攻擊的節點的節點度高於平均值。

 

Nielson等人[12]認爲理性攻擊的類別。 他們認爲P2P系統中很大一部分節點是自私的,並試圖最大限度地消耗系統資源,同時儘可能減小本身的使用。

7. 結論

在本文中,咱們提出了一個基於Kademlia的基於安全Key的路由協議。 儘管優雅的路由表維護使得Kademlia已經不易受到某些攻擊,但咱們已經代表,存在多個易受攻擊節點控制網絡的漏洞。

 

咱們提出幾個切實可行的解決方案,使Kademlia更具彈性。 首先,咱們建議經過結合公鑰密碼術使用加密謎題來限制免費的nodeId生成。 此外,咱們經過兄弟列表擴展Kademlia路由表。 這下降了bucket分裂算法的複雜性,並容許DHT以安全複製的方式存儲數據。 最後,咱們提出了一種查找算法,該算法使用多條不相交路徑來提升查找成功率。

 

S/Kademlia在仿真框架OverSim中的評估代表,即便使用20%的對抗節點,若是使用不相交路徑,全部查找的99%仍然是成功的。咱們相信,建議的Kademlia協議的擴展是實用的,能夠用來方便地安全現有的Kademlia網絡。

認可

這項研究獲得了德國聯邦教育與研究部的支持,做爲ScaleNet項目01BU567的一部分,以及做爲SpoVNet項目一部分的BW-FIT支持計劃。

參考

 [1] B. Awerbuch and C. Scheideler. Towards a scalable and robust dht. In SPAA ’06: Proceedings of the eighteenth annual ACM symposium on Parallelism in algorithms and architectures, pages 318–327, New York, NY, USA, 2006. ACM Press. 

[2] I. Baumgart, B. Heep, and S. Krause. OverSim: A flexible overlay network simulation framework. In Proceedings of 10th IEEE Global Internet Symposium (GI ’07) in conjunction with IEEE INFOCOM 2007, Anchorage, AK, USA, May 2007. 

[3] M. Castro, P. Druschel, A. Ganesh, A. Rowstron, and D. S. Wallach. Secure routing for structured peer-to-peer overlay networks. SIGOPS Oper. Syst. Rev., 36(SI):299–314, 2002.

[4] D. Cerri, A. Ghioni, S. Paraboschi, and S. Tiraboschi. Id mapping attacks in p2p networks. In Global Telecommunications Conference, GLOBECOM’05. IEEE, 2005. 

[5] S. A. Crosby and D. S. Wallach. An analysis of two bittorrent distributed trackers. Presentation at the South Central Information Security Symposium (SCISS ’06), 2006. 

[6] F. Dabek, B. Zhao, P. Druschel, J. Kubiatowicz, and I. Stoica. Towards a common api for structured peer-to-peer overlays. In Proceedings of the 2nd International Workshop on Peer-to-Peer Systems (IPTPS ’03), volume Volume 2735/2003, pages 33–44, 2003. 

[7] J. Dinger and H. Hartenstein. Defending the sybil attack in p2p networks: Taxonomy, challenges, and a proposal for self-registration. ares, 0:756–763, 2006. 

[8] J. R. Douceur. The sybil attack. In IPTPS ’02: Revised Papers from the First International Workshop on Peer-toPeer Systems, pages 251–260, London, UK, 2002. SpringerVerlag. 

[9] A. Fiat, J. Saia, and M. Young. Making chord robust to byzantine attacks. In ESA, Lecture Notes in Computer Science, pages 803–814. Springer, 2005. 

[10] A.-T. Gai and L. Viennot. Broose: a practical distributed hashtable based on the de-bruijn topology. In Fourth International Conference on Peer-to-Peer Computing, 2004, pages 167–174, aug 2004.

 [11] P. Maymounkov and D. Mazires. Kademlia: A peer-to-peer information system based on the xor metric. In Peer-to-Peer Systems: First InternationalWorkshop, IPTPS 2002 Cambridge, MA, USA, March 7-8, 2002. Revised Papers, volume Volume 2429/2002, pages 53–65, 2002. 

[12] S. Nielson, S. Crosby, and D. Wallach. A taxonomy of rational attacks. In 4th International Workshop on Peer-To-Peer Systems, Ithaca, New York, USA, February 2005.

[13] H. Rowaihy, W. Enck, P. Mcdaniel, and T. La-Porta. Limiting sybil attacks in structured peer-to-peer networks. Technical Report NAS-TR-0017-2005, Network and Security Research Center, Department of Computer Science and Engineering, Pennsylvania StateUniversity, University Park, PA, USA, 2005. 

[14] A. Rowstron and P. Druschel. Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems. In Middleware 2001 : IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg, Germany, November 12-16, 2001. Proceedings, volume Volume 2218/2001, pages 329+, 2001. 

[15] A. Singh, T.-W. J. Ngan, P. Druschel, and D. Wallach. Eclipse attacks on overlay networks: Threats and defenses. In In Proceedings of INFOCOM 06, Barcelona, Spain. April 2006, 2006. 

[16] E. Sit and R. Morris. Security considerations for peer-topeer distributed hash tables. In IPTPS ’02: Revised Papers from the First International Workshop on Peer-to-Peer Systems, pages 261–269, London, UK, 2002. Springer-Verlag. 

[17] M. Srivatsa and L. Liu. Vulnerabilities and security threats in structured overlay networks: A quantitative analysis. In ACSAC ’04: Proceedings of the 20th Annual Computer Security Applications Conference (ACSAC’04), pages 252–261, Washington, DC, USA, 2004. IEEE Computer Society. 

[18] I. Stoica, R. Morris, D. Liben-Nowell, D. Karger, M. Kaashoek, F. Dabek, and H. Balakrishnan. Chord: a scalable peer-to-peer lookup protocol for internet applications. IEEE/ACM Transactions on Networking, 11(1):17–32, feb 2003.

 

若是有關於區塊鏈學習的交流,能夠經過下面的方式聯繫我:

 

 wechat:omnigeeker

telegram: @omnigeeker
twitter: @omnigeeker
zhihu:@Omnigeeker
相關文章
相關標籤/搜索