最新论文笔记(+13):Hardening Distributed and Encrypted Keyword Search via Blockchain / PAC2017
Hardening Distributed and Encrypted Keyword Search via Blockchain(通過區(qū)塊鏈進(jìn)行分布式加密關(guān)鍵字搜索)
鑒于前面好幾篇都是可搜索加密與區(qū)塊鏈結(jié)合相關(guān)的論文,可以發(fā)現(xiàn)結(jié)合的點大致差不多,故從此篇開始,我會精簡論文筆記內(nèi)容,抓主要部分或可能有用的地方記錄,以便節(jié)約閱讀時間和減少工作量。
與前面不同的是,本篇論文提出了一種與分布式網(wǎng)絡(luò)中加密搜索無縫結(jié)合的協(xié)議,來解決分布式場景中實際的威脅設(shè)想(如惡意節(jié)點破壞搜索結(jié)果等),以及增強整個系統(tǒng)的魯棒性。并且,在節(jié)點加入網(wǎng)絡(luò)開始就對其進(jìn)行監(jiān)控管理,它將通過可驗證的搜索查詢得到證明和持續(xù)監(jiān)控,且每個證明的結(jié)果通過標(biāo)準(zhǔn)的基于quorum的投票協(xié)議確定(重點)。最后,記錄在區(qū)塊鏈上作為可信節(jié)點的共識視圖。
- 原文鏈接:Hardening Distributed and Encrypted Keyword Search via Blockchain
主要貢獻(xiàn):
- 1)提出了一種分布式加密搜索協(xié)議,該協(xié)議保證了在明文分布式關(guān)鍵字搜索中數(shù)據(jù)和查詢的保密性,又保證了vertical partition的效率。
- 2)設(shè)計了一種新系統(tǒng)的魯棒性協(xié)議,允許新節(jié)點從加入系統(tǒng)的那一刻起到被驗證和持續(xù)監(jiān)控。通過謹(jǐn)慎的利用可驗證的加密搜索查詢,它在區(qū)塊鏈上維護(hù)一個可信節(jié)點列表和現(xiàn)成的基于quorum的投票協(xié)議。
- 3)最后對該協(xié)議進(jìn)行評估,包括隱私性和魯棒性了,評估展示了加密搜索的效率,并報告了不同規(guī)模分布式網(wǎng)絡(luò)的區(qū)塊鏈開銷。
一、寫作背景
| Hardening Distributed and Encrypted Keyword Search via Blockchain | Chengjun Cai et.al (City University of Hong Kong) | IEEE Symposium on Privacy-Aware Computing | 2017 | 本文提出了一種與分布式網(wǎng)絡(luò)結(jié)合的加密搜索協(xié)議,且能杜絕惡意節(jié)點破壞搜索結(jié)果、增強系統(tǒng)的魯棒性等優(yōu)勢。 |
從本文可知,在完全的分布式存儲數(shù)據(jù)系統(tǒng)中,通過分布式哈希表、可搜索加密和關(guān)鍵字搜索集成的協(xié)議允許網(wǎng)絡(luò)中的節(jié)點搜索加密分布式的數(shù)據(jù),但是該協(xié)議沒有解決實際的威脅設(shè)想。例如,惡意節(jié)點會破壞搜索結(jié)果,他們可能會返回部分或虛假的結(jié)果,以節(jié)省它們的資源消耗,且隨著網(wǎng)絡(luò)的增長很容易滲透到系統(tǒng)中,即使用MAC和可驗證數(shù)據(jù)結(jié)構(gòu)等原語也很難保證整個系統(tǒng)的魯棒性。另外,一個關(guān)鍵字匹配的文件列表可能被分到不同區(qū)域的節(jié)點,搜索請求將轉(zhuǎn)發(fā)到多個不同的節(jié)點,而客戶端可能會進(jìn)一步參與跟蹤每個關(guān)鍵字的分區(qū)索引位置,故這些所有的開銷也都可能削弱分布式系統(tǒng)的性能。
因此,作者考慮使用區(qū)塊鏈為一組分布式節(jié)點提供驗證新節(jié)點的能力,并以確定的方式標(biāo)記鏈上的損壞節(jié)點。通過驗證來自客戶端和該節(jié)點的搜索令牌、結(jié)果和證明,從其他節(jié)點收集到的大多數(shù)投票決定了該節(jié)點的可信度。誠實的節(jié)點被記錄在鏈上,此前可以信任的惡意節(jié)點將在鏈上標(biāo)記為無效。(本篇論文并不是將密文數(shù)據(jù)和索引上鏈,而是用區(qū)塊鏈存儲每個節(jié)點的可信度或是信譽值等信息)
二、 主要內(nèi)容
如下圖,作者提出的一種沒有中央控制的存儲平臺,由多個分布式的節(jié)點構(gòu)成。
這些節(jié)點通過低成本為用戶提供加密存儲和關(guān)鍵字搜索服務(wù),以保證數(shù)據(jù)的隱私和功能。首先,客戶端建立一個加密文件的索引,將其上傳至網(wǎng)絡(luò)。為了之后的節(jié)點認(rèn)證和監(jiān)控,它與單個關(guān)鍵字令牌的搜索結(jié)果的承諾也被附加到索引分區(qū),其中加密索引是基于一個標(biāo)準(zhǔn)的分布式哈希表(Distributed Hash Table,DHT)進(jìn)行分區(qū),該表表示每個節(jié)點加密的關(guān)鍵字令牌的范圍。然后,客戶端根據(jù)查詢關(guān)鍵字生成搜索令牌,并通過DHT表轉(zhuǎn)發(fā)到目標(biāo)節(jié)點,目標(biāo)節(jié)點在加密索引分區(qū)上處理這個令牌,并返回結(jié)果,即匹配文件的id。此過程的節(jié)點對關(guān)鍵字和文件的內(nèi)容一無所知。
進(jìn)一步,通過區(qū)塊鏈建立可信節(jié)點共識視圖的協(xié)議。從節(jié)點加入系統(tǒng)開始,它將通過基于quorum的投票協(xié)議[1]進(jìn)行驗證,并通過可驗證的搜索查詢進(jìn)行持續(xù)監(jiān)控。
[1] 基于quorum的投票協(xié)議原理:在分布式系統(tǒng)中,每個節(jié)點都有可能保存一份數(shù)據(jù)副本,并給每個數(shù)據(jù)副本都賦予一票。假設(shè)系統(tǒng)一共有VVV個數(shù)據(jù)副本,則總票數(shù)為VVV。每個讀和寫操作必須要獲得讀票數(shù)(完成讀操作所需讀取的最小副本數(shù),read quorum,V(r)V(r)V(r))或寫票數(shù)(完成寫操作所需要讀取的最小副本數(shù)write quorum,V(w)V(w)V(w))才能對數(shù)據(jù)進(jìn)行讀或寫。且票數(shù)需要遵循以下規(guī)則:
- Vr+Vw>VV_r+V_w > VVr?+Vw?>V
- Vw>V2V_w > \frac V2Vw?>2V?
第一條規(guī)則保證了一個數(shù)據(jù)不會被同時讀和寫。當(dāng)請求一個寫操作時,它需要得到V(w)V(w)V(w)讀票數(shù),而剩下的票數(shù)為V?V(w)<V(r)V-V(w) < V(r)V?V(w)<V(r),因此不再允許讀操作。請求讀操作時也同理;此外保證了強一致性,即寫操作與讀操作之間有重疊,這就保證了至少有一個讀操作可以讀到最新數(shù)據(jù)。
第二條規(guī)則保證了數(shù)據(jù)的串行化修改,即同一個數(shù)據(jù)不能同時被兩個寫操作并發(fā)修改。
因此,基于quorum的投票協(xié)議可以保證數(shù)據(jù)讀寫的正確性,以及同一時刻一份數(shù)據(jù)的多份副本只能用于讀或用于寫,而不能同時被超過兩個訪問對象并發(fā)讀寫。
引用自https://www.sczyh30.com/posts/Architecture/quorum-based-voting-for-replica-control/
可搜索加密基本原理:加密算法(encryption)、令牌生成算法(token generation)、搜索算法(search)和更新算法(update)。
- 1)加密算法:輸入密鑰KKK和文件集合FFF,輸出密文CCC和加密的搜索索引III。
- 2)令牌生成算法:輸入密鑰KKK和關(guān)鍵字,輸出搜索令牌ttt。
- 3)搜索算法:輸入搜索令牌ttt,輸出匹配的加密文件集合RRR。
- 4)更新算法:輸入密鑰KKK和新文件fff,輸出更新令牌 t′t^{'}t′和更新索引 I′I^{'}I′。(若方案有更新算法,則被稱為動態(tài)SE方案)
2.1 基本設(shè)計
本文提出了一個用于加密和分布式關(guān)鍵字搜索的基本協(xié)議,該協(xié)議對用戶透明,保護(hù)文件和查詢關(guān)鍵字的Confidentiality。
在分布式系統(tǒng)中,需要跨多個節(jié)點進(jìn)行劃分,一般有兩種分區(qū)策略,即水平分區(qū)和垂直分區(qū)。
- 水平分區(qū):索引是通過文件標(biāo)識符空間或通過索引中的倒排列表進(jìn)行平均劃分。這種策略在數(shù)據(jù)局部性上有好處,但在搜索過程中會引入大量的通信開銷。因為查詢需要發(fā)送到所有的節(jié)點,會在全球分布式系統(tǒng)中導(dǎo)致長時間的查詢延遲;
- 垂直分區(qū):通過關(guān)鍵字空間對索引進(jìn)行分區(qū),根據(jù)關(guān)鍵字在DHT中的哈希值,將關(guān)鍵字的倒排列表分配給目標(biāo)節(jié)點。該策略使網(wǎng)絡(luò)中的節(jié)點利用標(biāo)準(zhǔn)DHT路由來最小化給定查詢的通信成本,即O(log(N))O(log(N))O(log(N)),其中N是節(jié)點數(shù)。
協(xié)議:為了使節(jié)點能夠向客戶端提供加密關(guān)鍵字搜索功能,客戶端必須從文件集中構(gòu)建一個加密索引,并將索引上傳至網(wǎng)絡(luò)進(jìn)行分區(qū),如算法1所示。
2.2 區(qū)塊鏈實現(xiàn)魯棒性和加密搜索
本文提出的協(xié)議是基于可驗證的SE和基于quorum的投票機(jī)制,它確保在區(qū)塊鏈上記錄一個不可變和可跟蹤的可信節(jié)點列表,設(shè)計目標(biāo)是使分布式節(jié)點能夠共同維護(hù)區(qū)塊鏈,而區(qū)塊鏈主動提供系統(tǒng)中可信節(jié)點的共識狀態(tài)。
為此,首先對每個倒排列表預(yù)先構(gòu)建承諾,客戶端可以認(rèn)證某個節(jié)點的搜索結(jié)果是否正確。之后,包含搜索令牌、結(jié)果和承諾的消息被簽名,并從客戶端廣播到網(wǎng)絡(luò)。在返回結(jié)果和承諾之前,這樣的消息也被簽名并從上述節(jié)點廣播到網(wǎng)絡(luò)進(jìn)行認(rèn)證。為了使節(jié)點能夠共同執(zhí)行認(rèn)證,系統(tǒng)中的每個節(jié)點將會驗證來自客戶端和目標(biāo)節(jié)點的消息,并生成一個發(fā)送給礦工節(jié)點的投票。根據(jù)基于quorum的投票協(xié)議原理,該礦工節(jié)點可以生成一個表示認(rèn)證結(jié)果的區(qū)塊。如果大多數(shù)節(jié)點確認(rèn)這個節(jié)點是可信的,它將記錄在區(qū)塊鏈上,否則,它將被移除。
-
1)區(qū)塊的定義:通常,區(qū)塊包括投票信息和經(jīng)過驗證的節(jié)點信息,這些信息用于為系統(tǒng)中部署的可信節(jié)點提供共識和可跟蹤的視圖。
如下圖,定義了服務(wù)中的主體,包括區(qū)塊標(biāo)識符、時間戳、被驗證節(jié)點的名稱(即公鑰)、該節(jié)點上的操作、指定的DHT范圍、從協(xié)議收集的選票,以及該區(qū)塊的簽名。
具體而言,JOIN和REMOVE表示該區(qū)塊的使用情況,即向系統(tǒng)添加一個新節(jié)點或從系統(tǒng)中刪除一個現(xiàn)有節(jié)點。同時記錄被認(rèn)證節(jié)點的嚇一跳和DHT中指定的范圍,以便其他節(jié)點同步路由表。
如下圖,定義了每次投票的內(nèi)容,包括時間戳、對被認(rèn)證節(jié)點的相應(yīng)操作、對認(rèn)證結(jié)果的投票、被認(rèn)證節(jié)點的公鑰、投票節(jié)點簽名的投票。(另外,基于區(qū)塊鏈的數(shù)據(jù)庫系統(tǒng)[2]也采用了投票機(jī)制,但它用于數(shù)據(jù)讀寫的一致性,投票不記錄在鏈上。)
[2] The BigchainDB project, “BigchainDB,” Online at https://www.bigchaindb.com/whitepaper/bigchaindb-whitepaper.pdf.
- 2)節(jié)點認(rèn)證:核心思想是利用區(qū)塊鏈來維護(hù)所有受信任節(jié)點的共識狀態(tài)。如下圖,給出了詳細(xì)的步驟。
如下圖所示,只要系統(tǒng)中的主要節(jié)點接受操作(JOIN或REMOVE),該信息就會在區(qū)塊鏈中得到確認(rèn)。節(jié)點有動力稱為礦工節(jié)點,因為它們可以從服務(wù)費中獲得利潤。
- 3)節(jié)點加入和移除:基于該協(xié)議,可以對新加入的節(jié)點進(jìn)行驗證,同時可以將現(xiàn)有可能受到威脅的節(jié)點從網(wǎng)絡(luò)中移除。節(jié)點加入系統(tǒng)需要進(jìn)行兩個步驟,即引導(dǎo)和認(rèn)證。
- 引導(dǎo):現(xiàn)有節(jié)點向新節(jié)點發(fā)送邀請,新節(jié)點從預(yù)定義的創(chuàng)世區(qū)塊引導(dǎo)并就網(wǎng)絡(luò)最新狀態(tài)達(dá)成共識。同時,該節(jié)點為新節(jié)點指定一個臨時范圍并更新其本地DHT路由表。
- 認(rèn)證:該節(jié)點將與臨時范圍匹配的令牌轉(zhuǎn)發(fā)給新節(jié)點以啟動協(xié)議。一旦新節(jié)點通過認(rèn)證,其信息被記錄在區(qū)塊鏈上。否則,拒絕,并恢復(fù)該節(jié)點的本地路由表。在節(jié)點移除方面,可以有效檢測并踢出惡意節(jié)點。搜索令牌、結(jié)果和承諾也可以廣播以證明惡意節(jié)點,并從中刪除。
- 4)魯棒性分析:此部分考慮三種惡意攻擊,并表明了如何防御它們。
- 通過添加惡意節(jié)點進(jìn)行攻擊:攻擊者試圖插入大量惡意節(jié)點,從而破壞系統(tǒng)中的搜索協(xié)議。一方面,因為承諾標(biāo)簽和返回的結(jié)果不匹配,這些節(jié)點在協(xié)議中會失敗;另一方面,發(fā)送到新節(jié)點的查詢令牌是通過邀請進(jìn)行處理,故還未記錄在區(qū)塊鏈上,因此不會被網(wǎng)絡(luò)中的其他節(jié)點知道。
- 通過破壞現(xiàn)有節(jié)點進(jìn)行攻擊:可以通過完整性檢測和證明過程來解決被攻擊者公平的風(fēng)險,另外可以假設(shè)記錄在共識狀態(tài)上的大多數(shù)節(jié)點沒有受到損壞的情況下解決被入侵的節(jié)點返回錯誤的結(jié)果,或發(fā)送虛假投票等問題。
- 冒充攻擊:攻擊者偽裝邀請節(jié)點,試圖阻止新節(jié)點加入系統(tǒng)。由于新節(jié)點在引導(dǎo)程序中,需要從創(chuàng)世區(qū)塊驗證區(qū)塊鏈,達(dá)成共識。因此,該節(jié)點額能夠檢測邀請節(jié)點是否有效。
- 5)激勵模型:由于搜索服務(wù)需要付費,新加入節(jié)點需要交押金,這些收益都可分配給誠實執(zhí)行搜索的節(jié)點和認(rèn)證。(另外,要求用戶平均貢獻(xiàn)挖礦獎勵,這是作者未來考慮的工作,并未實現(xiàn))
2.3 實驗分析
分別對加密關(guān)鍵字搜索的開銷和區(qū)塊鏈的開銷進(jìn)行了分析,這里就不再闡述,可以看原文。
三、總結(jié)與思考
本文為加密和分布式存儲平臺提供了一種安全且魯棒性強的關(guān)鍵字搜索服務(wù)。首先,提出了一種結(jié)合SE和基于DHT的關(guān)鍵字搜索的基本協(xié)議,加密索引被垂直分區(qū),同時保持用戶透明度。為了解決可能故意返回錯誤結(jié)果的惡意節(jié)點,引入一種協(xié)議(一組節(jié)點)來證明節(jié)點,并通過搜索查詢持續(xù)監(jiān)控他們。此外,區(qū)塊鏈拉存儲證明結(jié)果,以維護(hù)可信節(jié)點的共識視圖。
本文發(fā)表于2017年,故當(dāng)時考慮用區(qū)塊鏈的是存儲對節(jié)點的可信度的一個證明結(jié)果(存證),其加密索引和原文件都還是與傳統(tǒng)存儲(分布式存儲)類似。
- 利用區(qū)塊鏈能保證這個證明結(jié)果是可信的,提高安全性,但是區(qū)塊鏈的效率還是值得考慮,作者只驗證了其區(qū)塊鏈的開銷。
- 使用區(qū)塊鏈后并未與其他方案對比效率、開銷和安全性等,無法判斷是否有優(yōu)勢?
- 本篇論文是主要考慮節(jié)點可信度存證問題,之前的論文是考慮公平支付問題,這有很大區(qū)別。
總結(jié)
以上是生活随笔為你收集整理的最新论文笔记(+13):Hardening Distributed and Encrypted Keyword Search via Blockchain / PAC2017的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis由浅入深深深深深剖析
- 下一篇: IDEA 2022.01 安装教程