吳榮珍
(福建農(nóng)業(yè)職業(yè)技術學院 信息工程學院,福州 353123)
隨著大數(shù)據(jù)技術的不斷發(fā)展,數(shù)據(jù)存儲的安全問題不容忽視.在大多數(shù)的分布式數(shù)據(jù)庫系統(tǒng)中,系統(tǒng)管理員可以訪問所有數(shù)據(jù).數(shù)據(jù)庫系統(tǒng)的內(nèi)部威脅或在向第三方傳輸數(shù)據(jù)的過程中均有可能泄露數(shù)據(jù)庫數(shù)據(jù)的隱私.差分隱私算法[1-2]和聚類算法[3-4]是用于隱私保護的常用方法,但是這些方法均無法處理如此大量的數(shù)據(jù).對此,本研究基于區(qū)塊鏈的技術,提出了一個面向大數(shù)據(jù)的數(shù)據(jù)庫隱私保護模型.
區(qū)塊鏈網(wǎng)絡中的所有節(jié)點都應該同步整個數(shù)據(jù)庫,以確保在用戶賬本的一致性.但是,當區(qū)塊鏈系統(tǒng)擁有大量用戶時,數(shù)據(jù)庫可能會超過1 TB.用戶本地硬盤的空間通常會小于1TB,因此將賬本同步到本地將影響用戶計算機的性能.假設用戶u的空閑空間是φu,并且在時間t加入了網(wǎng)絡系統(tǒng).在時間T內(nèi)產(chǎn)生的總信息記為ψ.假設網(wǎng)絡規(guī)模足夠大,對于任何時間t的用戶u,數(shù)據(jù)管理策略都會為用戶分配一個數(shù)據(jù)文件.文件的大小是確定的,且不會改變.用戶u在加入網(wǎng)絡時只同步固定數(shù)量的數(shù)據(jù),數(shù)據(jù)文件大小取決于u的系統(tǒng)容量和加入時間t,數(shù)據(jù)的大小為:
(1)
由此可知,數(shù)據(jù)管理策略僅占用用戶u可用硬盤空間的百分之一,不應影響設備正常運行.Lu代表保存在用戶u中的賬本.事務是指數(shù)據(jù)文件中不可分割的元素,其中包括事務的哈希信息、用戶ID、時間戳、用戶行為和行為類型.分配存儲空間后,需要決定寫入ξu的數(shù)據(jù)部分.為了保證有足夠的備份文件,設計了一個標準來分割數(shù)據(jù)文件.用戶u在加入社交鏈時將使用我們的同步算法同步ξu數(shù)據(jù).每個數(shù)據(jù)塊在同步到用戶時都會被標記,數(shù)據(jù)管理策略將標記次數(shù)較少的數(shù)據(jù)發(fā)送給用戶.數(shù)據(jù)同步的過程如算法1所示.算法1中,uid為hash加密后的用戶ID,numMarked記錄了的交易i的標記數(shù).算法將標記次數(shù)較少的數(shù)據(jù)分配給用戶u,并標記分配的事務.
算法1 數(shù)據(jù)分配算法輸入:ξu、uid輸出:Lu1:numMarked ← getMarked2:idx← 03:for i = 1 , i < d.length () , i + + do4: idx[i]←min(d)5: Del(numMarked[i])6: Lu ← wirte (get(i))7: marked(get(i), uid)8:ξu ← ξu - size(get(i))9: ifξu < = 0 then10: break
假設用戶u在時間T0生成交易tu,并將其存儲在Lu1中.在時間T1,假設Lu1因未知原因被破壞或被修改.數(shù)據(jù)管理策略必須確保對Lu1的修改不會成功,并確保在節(jié)點u丟失時社交鏈的性能.與傳統(tǒng)區(qū)塊鏈系統(tǒng)不同,數(shù)據(jù)管理策略中的用戶并不擁有整個賬本.因此,設計了一個搜索算法以允許用戶u查詢自己的交易.首先,搜索算法向加入社交鏈的每個節(jié)點廣播查詢請求.為了避免暴露用戶的隱私信息,設計了一個請求包,其內(nèi)容包括加密后的用戶IDuid、用戶網(wǎng)絡地址、行為類型和時間戳.由于時間戳的存在,即使請求在傳輸過程中被攔截,攻擊者也無法更改請求.此外,使用單向散列對用戶ID進行加密,攻擊者永遠不會知道用戶u的真實身份.一旦請求被廣播,所有節(jié)點都會將請求包中的uid與它們擁有的uid進行比較.如果節(jié)點為uid存儲數(shù)據(jù),它會檢查匹配交易的行為類型.所有節(jié)點將它們的搜索結(jié)果和時間戳返回給用戶u.由于交易是加密的,幾乎不可能泄露用戶的隱私.
數(shù)據(jù)的日益增長為數(shù)據(jù)庫帶來巨大的壓力,尤其是在整個區(qū)塊鏈中存儲如此多的數(shù)據(jù)會影響普通用戶設備的性能,因此數(shù)據(jù)管理策略只需要存儲敏感的數(shù)據(jù).敏感數(shù)據(jù)類型主要有用戶聊天記錄、用戶瀏覽記錄、用戶位置和用戶個人信息,將非敏感數(shù)據(jù)存儲在傳統(tǒng)的分布式數(shù)據(jù)庫中.
共識協(xié)議可以在最短的時間內(nèi)驗證交易,是區(qū)塊鏈的核心.對此,提出了通信證明的共識協(xié)議(如算法2所示),該協(xié)議在大多數(shù)情況下具有良好的拜占庭容錯能力.使用基于時間的塊生成方法[5],提出的協(xié)議需要確保一次只能將一個區(qū)塊添加到共識鏈中.選舉宣言是一個二元元組<時間戳,uid>,其中時間戳是用戶決定選擇區(qū)塊的時間.假設塊b是在時間t生成的,活躍用戶可以根據(jù)其系統(tǒng)在時間t的性能來競爭成為記賬者.對于從t-Δt到t生成的賬本Lt,控制區(qū)塊后計算能力不會受到影響的用戶將成為Lt記賬者的候選人.如果用戶u是候選人,那么用戶u將發(fā)送一份選舉宣言.Lt會將用戶u的uid與交易中記錄的uid進行比較,并在收到用戶u的宣言后計算其uid出現(xiàn)的次數(shù).其他候選者將關注計數(shù)最高的用戶u′,并根據(jù)惡意用戶檢測方法檢查該用戶u′是否為真正的朋友.如果一半以上的用戶接受用戶u′,則u′將控制Lt并生成塊b.
算法2 共識協(xié)議算法輸入:時間戳、uid、Lt輸出:b1:c = 0 , cnt[uid] = 02:for j = 1 ; j≤ len(uid) ; j++ do3: while i ≤ len(Lt) do4: ifLt.uid[i] == ujid then5: cnt[ j]++6:FC ← uargmaxjcnt[j]id9:for k = 1 ; k ≤ j; k++ do10:uk.fol(FC)11: f =uk.chk(FC)13: if f == true then14: c++15:ifc/j > 0.5 then16: b = geneBlock (FC)19:else20:uk.del(FC)
由于每個數(shù)據(jù)包都包含其所有者的ID,因此數(shù)據(jù)包的所有者可以直接訪問該數(shù)據(jù)包,而其他用戶則需要獲得授權(quán)后才可以訪問數(shù)據(jù).所有者授予訪問者訪問權(quán)限,本模型可以幫助所有者檢查其身份.
假設數(shù)據(jù)包所有者A決定授予訪問者B訪問權(quán)限,本模型將檢查訪問者B擁有的塊數(shù).如果B擁有大量區(qū)塊,可以知道B不是攻擊者,因此敏感數(shù)據(jù)對B是可見的.相反,如果B沒有足夠的塊,本模型會讓A重新確認其操作,隨后B可以獲取A的所有敏感數(shù)據(jù).
除此以外,如果訪問者B想要訪問A的敏感信息,本模型將首先檢查B的身份.如果B沒有同步所有數(shù)據(jù)或沒有大量區(qū)塊,那么可以認為B的目標是分析A的行為.因此,本模型將拒絕B的訪問請求.本模型然后將評估B的安全性和聲譽.基于這兩個指標,本模型將決定是否讓B訪問A的數(shù)據(jù).如果B試圖訪問A的動態(tài)個人信息,B的聲譽就會降低.如果用戶C從B獲取A的數(shù)據(jù),那么B的安全性將大大降低.如果B的安全性或聲譽低于閾值,則B的請求將被拒絕.
使用了順序的時間戳,即塊N的時間戳必須早于塊N + 1的時間戳.因此,當攻擊者想要偽造區(qū)塊,它必須修改大量的區(qū)塊,而這在實踐中是不可能的.
由于區(qū)塊鏈網(wǎng)絡中的每個節(jié)點都可以查看系統(tǒng)的總賬本,因此區(qū)塊鏈無法確保用戶的隱私.如果攻擊者入侵了區(qū)塊鏈用戶的設備,則所有帳本都將可見.為了在基于區(qū)塊鏈的框架中保護隱私,應該對用戶行為進行加密.如果用戶Alice向用戶Bob發(fā)送消息m,則用戶交互的過程如下:Alice使用簽名算法對內(nèi)容進行簽名;Alice將密文c發(fā)送給Bob;Bob收到c并用他的私鑰解密,得到消息m.
(2)
使用了社交網(wǎng)絡的用戶行為數(shù)據(jù)來評估本模型的性能.表1展示了模型在不同加密方式下的數(shù)據(jù)查詢性能.使用y2=x3+ax+b(a和b是兩個128位的數(shù)字)作為橢圓曲線.由表可知,在搜索查詢方面,提出的模型性能均優(yōu)于其他方法.RSA加密和全同態(tài)加密在數(shù)據(jù)量非常大的情況下會消耗大量的時間.
表1 數(shù)據(jù)搜索時間對比
圖1展示了存儲相同數(shù)據(jù)量時不同模型的硬盤空間占用情況,由該結(jié)果可知,本模型可節(jié)省大量的存儲空間.
圖1 硬盤空間占用
圖2 CPU利用率
評估了不同共識協(xié)議在不同區(qū)塊競爭者數(shù)量下的CPU利用率,結(jié)果如圖2所示.提出共識協(xié)議能夠占用最少的CPU資源,具有最佳的性能.
本文提出了基于區(qū)塊鏈的數(shù)據(jù)庫隱私保護模型,以確保大數(shù)據(jù)環(huán)境中分布式存儲的隱私信息不被泄露.所提出的數(shù)據(jù)管理策略根據(jù)用戶設備的性能為用戶同步部分數(shù)據(jù)庫數(shù)據(jù),以確保設備性能不被影響.提出的共識協(xié)議能夠快速地驗證交易,更適用于大數(shù)據(jù)環(huán)境.實驗結(jié)果表明,本模型能夠有效降低同步數(shù)據(jù)對用戶設備的性能影響,減少了數(shù)據(jù)庫搜索的時間.