陳錦雯 李世杰 劉林剛 梁海 曹春杰
摘 ? 要:近年來(lái),區(qū)塊鏈可監(jiān)管審計(jì)的需求使得可審計(jì)區(qū)塊鏈框架的研究成為了一個(gè)熱點(diǎn)。文章基于可搜索加密技術(shù)設(shè)計(jì)了一種區(qū)塊鏈上密文審計(jì)系統(tǒng)。系統(tǒng)首先通過(guò)客戶端生成數(shù)字標(biāo)簽,數(shù)字標(biāo)簽包含了用戶的行為特征。其次,在區(qū)塊鏈中選取一個(gè)審計(jì)節(jié)點(diǎn),執(zhí)行智能合約中的校驗(yàn)算法辨別數(shù)字標(biāo)簽的真?zhèn)?,?zhí)行智能合約中審計(jì)算法完成對(duì)用戶行為的審計(jì)。最終,文章提出的系統(tǒng)在保證區(qū)塊鏈用戶之間數(shù)據(jù)隱私加密的情況下,能夠?qū)崿F(xiàn)對(duì)用戶行為數(shù)據(jù)的無(wú)密鑰監(jiān)管和審計(jì)。
關(guān)鍵詞:區(qū)塊鏈;可搜索加密;數(shù)字證書(shū);智能合約;旁路監(jiān)聽(tīng)
中圖分類號(hào):TP393 ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: In recent years, the demand for blockchain auditability has made the research of auditable blockchain framework to be a hot topic. A ciphertext audit system on the blockchain based on searchable encryption technology is proposed in this paper. The system first generates digital tags through the client, and the digital tags contain the behavior characteristics of the user. Second, select an audit node in the blockchain, execute the verification algorithm in the smart contract to identify the authenticity of the digital label, and execute the audit algorithm in the smart contract to complete the audit of the user's behavior. In the end, the system proposed in this article can implement keyless supervision and audit of user behavior data while ensuring the privacy of data between blockchain users.
Key words: blockchain; searchable encryption; digital certificate; smart contract; bypass monitoring
1 引言
近年來(lái),區(qū)塊鏈的概念逐漸興起,公有區(qū)塊鏈?zhǔn)且环N基于現(xiàn)代密碼算法的分布式數(shù)據(jù)庫(kù),具有去中心化、不可篡改、可追溯、公開(kāi)透明等優(yōu)勢(shì),但是這些優(yōu)勢(shì)在現(xiàn)實(shí)應(yīng)用中因無(wú)法受到控制,從而導(dǎo)致應(yīng)用很少。目前,大部分區(qū)塊鏈應(yīng)用都是基于區(qū)塊鏈開(kāi)發(fā),區(qū)塊鏈本質(zhì)上仍然屬于一種私有鏈,有著部分去中心化、可控型較強(qiáng)、數(shù)據(jù)會(huì)在鏈內(nèi)部公開(kāi)、交易很快的特點(diǎn)[1]。由于數(shù)據(jù)會(huì)在鏈內(nèi)公開(kāi),用戶選擇將存儲(chǔ)在鏈上的數(shù)據(jù)進(jìn)行加密以保持自身數(shù)據(jù)隱私,催生出了一些不法用戶利用加密數(shù)據(jù)進(jìn)行非法操作逃脫區(qū)塊鏈監(jiān)管的現(xiàn)象,因此對(duì)區(qū)塊鏈如何對(duì)加密的數(shù)據(jù)進(jìn)行跟蹤審計(jì)且不會(huì)觸碰用戶隱私則尤為重要。
可搜索加密的概念最早出現(xiàn)在云計(jì)算領(lǐng)域,為了解決海量密文文件的搜索問(wèn)題而提出的,目前可搜索加密技術(shù)在加密類型上分為可搜索對(duì)稱加密(SSE)和可搜索非對(duì)稱加密(SAE)[2]??伤阉骷用茉谠朴?jì)算領(lǐng)域的審計(jì)作用,應(yīng)用較為廣泛,可以使得云服務(wù)提供商完成密文審計(jì)的安全需求。
在現(xiàn)有的區(qū)塊鏈審計(jì)方案中沒(méi)有一種既要實(shí)現(xiàn)對(duì)數(shù)據(jù)包進(jìn)行加密,又要完成正常的審計(jì)工作的審計(jì)方案。因此,結(jié)合上述區(qū)塊鏈和可搜索加密的密文檢索的特點(diǎn),本文設(shè)計(jì)了可以應(yīng)用于區(qū)塊鏈安全審計(jì)的基于可搜索加密數(shù)據(jù)標(biāo)簽的設(shè)計(jì)方案。
1.1 相關(guān)工作
隨著互聯(lián)網(wǎng)的快速發(fā)展,數(shù)據(jù)呈現(xiàn)出爆發(fā)式增長(zhǎng)的趨勢(shì),云計(jì)算的出現(xiàn)提供了數(shù)據(jù)存儲(chǔ)、處理和共享服務(wù)。云計(jì)算在提供給用戶便捷性的同時(shí),也帶來(lái)了數(shù)據(jù)隱私泄露的問(wèn)題。云計(jì)算領(lǐng)域發(fā)生用戶數(shù)據(jù)泄露的事故屢見(jiàn)不鮮,1996年Goldreich等人為保證服務(wù)器數(shù)據(jù)的安全,提出了隱藏用戶訪問(wèn)模式的密文搜索機(jī)制概念[3]。該方案有可證明安全、控制搜索、隱藏查詢、查詢獨(dú)立等安全性優(yōu)勢(shì),它解決了在云存儲(chǔ)領(lǐng)域存儲(chǔ)大量加密數(shù)據(jù)的檢索問(wèn)題,且云服務(wù)器在完成檢索的同時(shí)不會(huì)泄露相關(guān)密文數(shù)據(jù)內(nèi)容,保證了加密數(shù)據(jù)在云服務(wù)器上的存儲(chǔ)和檢索的可行性和安全性。
2000年,Song、Wagner、Perrig提出了一種基于對(duì)稱密碼學(xué)算法的可搜索加密方案[4]。2004年,Boneh、Crescenzo、Ostrovsky等人提出了一種基于公鑰密碼學(xué)的可搜索加密方案[5]。這兩種方案在云計(jì)算領(lǐng)域得到大量的應(yīng)用,但是由于當(dāng)時(shí)區(qū)塊鏈技術(shù)還未出現(xiàn),因此可搜索加密方案并未應(yīng)用在區(qū)塊鏈上。
Waters、Balfanz、Durfee等人提出了適用于云服務(wù)器的基于對(duì)稱加密和公鑰加密的可搜索加密數(shù)字標(biāo)簽[6]。為了保證審計(jì)證書(shū)的可信性,防止偽造,此方案的原理由可信的數(shù)據(jù)庫(kù)服務(wù)器管理員來(lái)生成可信的數(shù)字標(biāo)簽并存儲(chǔ),等待審計(jì)人員的審查[7],沒(méi)有考慮到實(shí)際生活中,數(shù)據(jù)庫(kù)系統(tǒng)審計(jì)設(shè)備均采用鏈路監(jiān)聽(tīng)的原理,在客戶端和服務(wù)器交互的同時(shí)就完成了審計(jì)操作。Ohtaki提出了基于加密倒排索引的可搜索加密數(shù)字標(biāo)簽方案[8]。Sabbaghi提出了一種基于SQL數(shù)據(jù)庫(kù)命令結(jié)構(gòu)的可搜索加密數(shù)字標(biāo)簽方案。這些方案出現(xiàn)的問(wèn)題均是如此[9]。
目前,區(qū)塊鏈技術(shù)的發(fā)展還處在初級(jí)階段,各方面的技術(shù)還在不斷發(fā)展與進(jìn)步[10]。但是在產(chǎn)業(yè)應(yīng)用上,區(qū)塊鏈技術(shù)可以適應(yīng)不同行業(yè)的要求,區(qū)塊鏈技術(shù)的發(fā)展為審計(jì)行業(yè)也提供了發(fā)展改進(jìn)的方向。2017年Andrew Sutton和Reza Samavi提出了利用區(qū)塊鏈技術(shù)創(chuàng)建防篡改審核日志[11],這個(gè)方案考慮到審計(jì)人員和參與者會(huì)產(chǎn)生合謀攻擊,而采用可信的第三方即區(qū)塊鏈技術(shù),生成審核日志,從而提供日志操作和不可否認(rèn)性的證明。這種方案解決的問(wèn)題有限,僅針對(duì)合謀攻擊做出措施,但是區(qū)塊鏈上的密文審計(jì)沒(méi)有被提及。
近些年來(lái),越來(lái)越多的研究者重視到可搜索加密和區(qū)塊鏈之間的聯(lián)系,并嘗試將這種聯(lián)系應(yīng)用到數(shù)據(jù)審計(jì)領(lǐng)域之中。2019年,翁昕耀、游林、藍(lán)婷婷提出了基于區(qū)塊鏈的結(jié)果可追蹤的可搜索加密方案[12],這個(gè)方案是將區(qū)塊鏈作為審計(jì)服務(wù)器的一部分去跟蹤云端服務(wù)器使用者的行為,而不是審計(jì)區(qū)塊鏈用戶本身,雖然是將區(qū)塊鏈和可搜索加密相結(jié)合,但是顯然不符合要求。區(qū)塊鏈和加密貨幣的需求日益增長(zhǎng),專業(yè)人士都正在采取不同的方法來(lái)促進(jìn)企業(yè)對(duì)區(qū)塊鏈領(lǐng)域興趣的增長(zhǎng)。目前,現(xiàn)有的區(qū)塊鏈技術(shù)的應(yīng)用是研究者將區(qū)塊鏈用于審計(jì)的載體,而針對(duì)區(qū)塊鏈本身的審計(jì),尤其是密文審計(jì)的問(wèn)題沒(méi)有解決。
1.2 系統(tǒng)架構(gòu)
本文針對(duì)上述的問(wèn)題提出了一種區(qū)塊鏈上基于可搜索加密的密文審計(jì)數(shù)字標(biāo)簽,數(shù)字標(biāo)簽用于對(duì)區(qū)塊鏈用戶的行為審計(jì),該系統(tǒng)利用了可搜索加密算法,解決了傳統(tǒng)區(qū)塊鏈審計(jì)中存在的密文審計(jì)困難等弊端,數(shù)字標(biāo)簽設(shè)計(jì)的實(shí)現(xiàn)可以使審計(jì)系統(tǒng)在旁路監(jiān)聽(tīng)的模式下既保證了用戶的隱私(不會(huì)獲取用戶的密鑰),也可以完成密文審計(jì)操作。安全需求部分分析了當(dāng)前區(qū)塊鏈密文審計(jì)的安全問(wèn)題,確定數(shù)字標(biāo)簽需要滿足的需求。驗(yàn)證部分分析了本算法滿足了區(qū)塊鏈上密文審計(jì)的安全需求。驗(yàn)證部分同時(shí)還測(cè)算了算法的各個(gè)部分的實(shí)行效率,證明了算法在滿足安全需求的同時(shí)還能夠保持高效運(yùn)算。本文設(shè)計(jì)了基于可搜索加密的數(shù)字標(biāo)簽,并提出了相應(yīng)的審計(jì)模型。將本模型和區(qū)塊鏈上其他的審計(jì)模型對(duì)比,剖析各個(gè)審計(jì)方案的利弊,旨在設(shè)計(jì)出一個(gè)安全性更高,系統(tǒng)穩(wěn)定的基于可搜索加密的區(qū)塊鏈數(shù)字標(biāo)簽。
1.3 本文組織
第二章介紹基于本文方案的區(qū)塊鏈審計(jì)系統(tǒng)模型及安全需求。第三章給介紹可搜索加密數(shù)字標(biāo)簽實(shí)現(xiàn)的具體方案。第四章分析可搜索加密數(shù)字標(biāo)簽設(shè)計(jì)方案的安全性及效率優(yōu)勢(shì)。第五章總結(jié)本文的主要內(nèi)容。
2 密文審計(jì)系統(tǒng)模型及安全需求
2.1 密文審計(jì)系統(tǒng)模型
密文審計(jì)系統(tǒng)模型及實(shí)體交互如圖1所示,實(shí)體包括被監(jiān)管審計(jì)的客戶端用戶、誠(chéng)實(shí)的區(qū)塊鏈服務(wù)商和好奇的第三方審計(jì)人員。
(1)客戶端用戶
客戶端會(huì)率先生成一個(gè)加密密鑰,并通過(guò)秘密渠道傳送給服務(wù)器管理員用于通訊加密,用戶根據(jù)自身的需要輸入操作指令或數(shù)據(jù),客戶端程序提取關(guān)于操作指令或數(shù)據(jù)的審計(jì)關(guān)鍵詞,并依照審計(jì)的關(guān)鍵詞執(zhí)行可搜索加密算法,生成數(shù)字標(biāo)簽。密文連同數(shù)字標(biāo)簽一同發(fā)送給區(qū)塊鏈。
(2)區(qū)塊鏈服務(wù)商
誠(chéng)實(shí)且好奇的區(qū)塊鏈服務(wù)商負(fù)責(zé)維護(hù)服務(wù)器的正常運(yùn)行,并向客戶端用戶提供其所需要的服務(wù)。與此同時(shí),區(qū)塊鏈服務(wù)商能夠正常執(zhí)行算法。區(qū)塊鏈服務(wù)商在收到客戶端發(fā)來(lái)的密文和數(shù)字標(biāo)簽后,先解密出明文,然后將明文和數(shù)字標(biāo)簽執(zhí)行校驗(yàn)算法,核實(shí)解密出的明文和數(shù)字標(biāo)簽是否一致,以防止客戶端偽造數(shù)字標(biāo)簽。只有在確認(rèn)兩者一致的情況下,區(qū)塊鏈服務(wù)商才會(huì)允許執(zhí)行操作指令或數(shù)據(jù),來(lái)獲取執(zhí)行結(jié)果。和客戶端類似的方式,將執(zhí)行結(jié)果加密,并提取審計(jì)關(guān)鍵詞,執(zhí)行可搜索加密算法,生成數(shù)字標(biāo)簽,最后將密文和數(shù)字標(biāo)簽打包發(fā)送給客戶端用戶。
(3)第三方審計(jì)人員
第三方審計(jì)設(shè)備從總交換機(jī)的鏡像端口上獲取客戶端和區(qū)塊鏈之間交互的數(shù)據(jù)包,將數(shù)據(jù)包中的數(shù)字標(biāo)簽提取出來(lái),結(jié)合第三方審計(jì)設(shè)備中帶有審計(jì)詞典,對(duì)數(shù)字標(biāo)簽進(jìn)行匹配,得到明文的審計(jì)信息,并將明文審計(jì)信息可視化處理并展示給第三方審計(jì)人員。
2.2 數(shù)字標(biāo)簽的安全需求
(1)不可篡改
由于數(shù)字標(biāo)簽中存儲(chǔ)了審計(jì)人員審計(jì)客戶端用戶行為的唯一依據(jù),數(shù)字標(biāo)簽的真實(shí)性、不可偽造性尤為重要。由于數(shù)字標(biāo)簽是在客戶端自動(dòng)生成,所以無(wú)法在客戶端上完全信任審計(jì)證書(shū)的生成,區(qū)塊鏈上的校驗(yàn)算法可以解決這一問(wèn)題。從本文的表述中不難發(fā)現(xiàn),不可偽造這一安全需求十分重要,它撐起數(shù)字標(biāo)簽可信任性,若審計(jì)人員無(wú)法確定數(shù)字標(biāo)簽是否被偽造,從而也無(wú)法判斷區(qū)塊鏈系統(tǒng)中的非法行為。這也違背了審計(jì)的初衷,增加了數(shù)據(jù)庫(kù)系統(tǒng)的安全風(fēng)險(xiǎn)。所以,不可偽造這一安全需求是可搜索加密必須滿足的安全需求。
(2)隱私保護(hù)
在密文審計(jì)模型中,沒(méi)有經(jīng)過(guò)安全加密的數(shù)字標(biāo)簽會(huì)將明文的審計(jì)信息完全對(duì)外公開(kāi),那么竊聽(tīng)鏈路的敵手會(huì)通過(guò)數(shù)字標(biāo)簽中的公開(kāi)信息完全掌握數(shù)據(jù)包有價(jià)值的信息,從而達(dá)到竊聽(tīng)的目的。帶有隱私保護(hù)的可搜索加密數(shù)字標(biāo)簽,要求加密后的數(shù)字標(biāo)簽不能泄露用戶的數(shù)據(jù)包中的信息,這樣就能保證監(jiān)聽(tīng)鏈路的敵手在獲取到數(shù)字標(biāo)簽后,也無(wú)法從數(shù)字標(biāo)簽中獲得任何有關(guān)用戶的隱私信息。在特殊的區(qū)塊鏈應(yīng)用場(chǎng)景中,例如國(guó)防領(lǐng)域、公安領(lǐng)域、法證領(lǐng)域等,不但要防止敵手竊聽(tīng),還要防止第三方審計(jì)系統(tǒng)泄露密鑰。因?yàn)?,第三方審?jì)設(shè)備同樣不能夠獲取客戶端和區(qū)塊鏈之間的通訊密鑰,所以要求審計(jì)設(shè)備要在沒(méi)有獲取雙方通信密鑰的情況下完成對(duì)密文的審計(jì)工作。
(3)旁路監(jiān)聽(tīng)
在密文審計(jì)模型中,旁路監(jiān)聽(tīng)是性能最穩(wěn)定、安全性最高、部署成本最少的部署方式,第三方審計(jì)設(shè)備只需要接入總交換機(jī)上的鏡像端口,即可完成審計(jì)工作,不會(huì)影響區(qū)塊鏈系統(tǒng)的正常交互。若采用“中間人”模式的部署方式,即數(shù)據(jù)庫(kù)審計(jì)系統(tǒng)充當(dāng)客戶端和區(qū)塊鏈的中間人,區(qū)塊鏈審計(jì)設(shè)備接受客戶端發(fā)來(lái)的數(shù)據(jù)完成審計(jì),并將數(shù)據(jù)轉(zhuǎn)發(fā)給區(qū)塊鏈,部署成本較高,不但大大影響了區(qū)塊鏈系統(tǒng)中數(shù)據(jù)的傳輸速度,而且一旦第三方審計(jì)設(shè)備出現(xiàn)故障,整個(gè)區(qū)塊鏈系統(tǒng)就會(huì)陷入癱瘓。所以,區(qū)塊鏈數(shù)字標(biāo)簽的設(shè)計(jì)方案必須遵從旁路監(jiān)聽(tīng)的部署模式,來(lái)完成部署。
3 數(shù)據(jù)標(biāo)簽的設(shè)計(jì)
根據(jù)本文描述國(guó)內(nèi)外研究的現(xiàn)狀分析,當(dāng)今的可搜索加密數(shù)據(jù)標(biāo)簽設(shè)計(jì)方案,都無(wú)法應(yīng)用于區(qū)塊鏈安全審計(jì)的這一應(yīng)用場(chǎng)景中。結(jié)合這些方案的優(yōu)勢(shì)和短板和可搜索加密技術(shù)的優(yōu)勢(shì),本文提出一種新的可用于區(qū)塊鏈審計(jì)系統(tǒng)的可搜索加密數(shù)據(jù)標(biāo)簽的方案。具有不可偽造性質(zhì)和隱私保護(hù)性質(zhì)的可搜索加密數(shù)據(jù)標(biāo)簽有算法組成。
3.1 初始化
獲取采用AES加密的密鑰和系統(tǒng)參數(shù),并選擇一種抗碰撞哈希函數(shù),其中所述抗碰撞哈希函數(shù)為輸入任意位的二進(jìn)制串,輸出為獲取的所述系統(tǒng)參數(shù)位的二進(jìn)制串。
3.2 制定審計(jì)關(guān)鍵詞組
獲取與審計(jì)有關(guān)的明文關(guān)鍵詞,結(jié)合對(duì)應(yīng)的密文,組成審計(jì)關(guān)鍵詞詞典,第三方審計(jì)人員根據(jù)審計(jì)內(nèi)容的需要確定明文審計(jì)關(guān)鍵詞集合,發(fā)送給服務(wù)器管理員,服務(wù)器管理員使用密鑰對(duì)進(jìn)行加密生成對(duì)應(yīng)的密文集合,審計(jì)關(guān)鍵詞詞典的具體結(jié)構(gòu)為,表示審計(jì)關(guān)鍵詞的明文形式,表示審計(jì)關(guān)鍵詞的密文形式。
3.3 數(shù)據(jù)標(biāo)簽生成算法
包含可搜索加密數(shù)據(jù)標(biāo)簽的數(shù)據(jù)包,客戶端程序生成包含可搜索加密數(shù)據(jù)標(biāo)簽的數(shù)據(jù)包的具體步驟為:
(1)客戶端程序使用AES算法主密鑰,將明文指令或數(shù)據(jù)加密為密文。表示使用主密鑰為的AES加密算法對(duì)進(jìn)行加密;
(2)針對(duì)用戶發(fā)送的明文指令或數(shù)據(jù),在所述審計(jì)關(guān)鍵詞詞典中的明文關(guān)鍵詞中隨機(jī)選取n個(gè)明文關(guān)鍵詞,組成審計(jì)關(guān)鍵詞集;
(3)使用密鑰對(duì)整個(gè)審計(jì)標(biāo)簽集進(jìn)行AES加密,生成密文審計(jì)標(biāo)簽集。選取所述中的第i個(gè)關(guān)鍵詞的前8個(gè)加密元素根據(jù)初始化步驟中選取的抗碰撞哈希函數(shù)計(jì)算出第一哈希值集合,并和隨機(jī)選取的一長(zhǎng)度比第i個(gè)加密元素少8個(gè)長(zhǎng)度的第一大隨機(jī)數(shù)進(jìn)行拼接求哈希,得到第二哈希值集合,第二哈希值集合中的每一個(gè)哈希的前8個(gè)加密元素再和進(jìn)行拼接,得到第一變量,得到第一變量集合,將所述與所對(duì)應(yīng)的所述逐位進(jìn)行指數(shù)運(yùn)算,生成數(shù)字標(biāo)簽。
3.4 審計(jì)算法
第三方審計(jì)人員和設(shè)備在收到數(shù)據(jù)包后,會(huì)對(duì)數(shù)據(jù)包中的審計(jì)證書(shū)進(jìn)行審計(jì)運(yùn)算,提取其中的審計(jì)信息。
(1)數(shù)據(jù)庫(kù)審計(jì)程序?qū)@取的數(shù)據(jù)包解析出審計(jì)證書(shū),程序本身含有審計(jì)關(guān)鍵詞詞典,表示審計(jì)明文,表示對(duì)應(yīng)的AES密文。并遍歷所述審計(jì)關(guān)鍵詞詞典中的密文關(guān)鍵詞的前8位元素計(jì)算出第三哈希值,遍歷所述數(shù)字標(biāo)簽中的密文集合,得到第二變量,將和進(jìn)行指數(shù)運(yùn)算,得到第三變量集合。
(2)將所述的后8位和剩余位元素分別賦值為R和L,將L和第三哈希值集合拼接并求哈希,得到第四哈希值集合,判斷所述的前8位哈希值是否與所述R相等,然后根據(jù)所述審計(jì)關(guān)鍵詞詞典中明文和密文的對(duì)應(yīng)關(guān)系得到審計(jì)明文關(guān)鍵詞,經(jīng)過(guò)可視化處理后展示。
3.5 智能合約校驗(yàn)算法
算法運(yùn)行在區(qū)塊鏈智能合約上,負(fù)責(zé)檢驗(yàn)客戶端發(fā)來(lái)的密文數(shù)據(jù)和數(shù)字標(biāo)簽的一致性。具體算法為:
(1)區(qū)塊鏈?zhǔn)盏娇蛻舳税l(fā)來(lái)的數(shù)據(jù)包后,使用密鑰對(duì)密文進(jìn)行解密,得到使用和客戶端相同的關(guān)鍵詞提取程序提取審計(jì)信息,故服務(wù)器提取的審計(jì)信息和客戶端提取出的信息是一致的;
(2)智能合約上執(zhí)行章節(jié)3.3的數(shù)據(jù)標(biāo)簽生成算法,對(duì)數(shù)據(jù)標(biāo)簽的生成過(guò)程進(jìn)行復(fù)現(xiàn)。輸出結(jié)果為新的數(shù)字標(biāo)簽;
(3)將新的數(shù)字標(biāo)簽和客戶端發(fā)來(lái)的數(shù)字標(biāo)簽進(jìn)行對(duì)比。若相同則校驗(yàn)通過(guò);若不相同,則校驗(yàn)失敗,并返回校驗(yàn)錯(cuò)誤的結(jié)果。
4 安全與效率分析
4.1 安全分析
4.1.1 不可篡改
由于方案中的可搜索加密數(shù)字標(biāo)簽是由不可信的客戶端生成的,智能合約中的校驗(yàn)算法用來(lái)校驗(yàn)客戶端發(fā)來(lái)加密數(shù)據(jù)和數(shù)字標(biāo)簽的一致性。
假設(shè)客戶端為了進(jìn)行非法操作,掩飾自身的行為軌跡,用以躲避審計(jì)人員審查,就會(huì)偽造審計(jì)證書(shū)。偽造的審計(jì)證書(shū)的特點(diǎn)就是和原文數(shù)據(jù)特征不符。區(qū)塊鏈上的校驗(yàn)算法將客戶端數(shù)字標(biāo)簽的生成過(guò)程進(jìn)行復(fù)現(xiàn)。復(fù)現(xiàn)后產(chǎn)生新的數(shù)字標(biāo)簽和數(shù)據(jù)包中的原始數(shù)字標(biāo)簽進(jìn)行對(duì)比。從而達(dá)到數(shù)字標(biāo)簽不可篡改的作用。
4.1.2 隱私保護(hù)
在方案中,無(wú)論是操作指令或數(shù)據(jù)還是數(shù)字標(biāo)簽,對(duì)密文審計(jì)系統(tǒng)之外的用戶都是保密的。在沒(méi)有主密鑰的情況下,攻擊者無(wú)法解開(kāi)密文數(shù)據(jù)獲取有用信息。在生成包含可搜索加密數(shù)字標(biāo)簽的數(shù)據(jù)包的過(guò)程中:
所以,加密數(shù)字標(biāo)簽的數(shù)據(jù)包中直接由公式(1)的計(jì)算生成,計(jì)算的第一步就是先執(zhí)行公式(2)的算法,對(duì)整個(gè)審計(jì)標(biāo)簽集進(jìn)行加密得到密文審計(jì)標(biāo)簽集,后續(xù)的算法都是在公式(2)的算法的基礎(chǔ)上進(jìn)行運(yùn)算,所以滿足隱私保護(hù)的安全需求。第三方審計(jì)人員同樣沒(méi)有獲取到主密鑰,依然無(wú)法解密操作指令或數(shù)據(jù),防止第三方審計(jì)人員和設(shè)備在特定的高機(jī)密的應(yīng)用場(chǎng)景中泄露機(jī)密數(shù)據(jù)。在制定審計(jì)關(guān)鍵詞詞典的過(guò)程中,第三方審計(jì)人員最終得到的是一個(gè)明文和密文一一對(duì)應(yīng)的審計(jì)關(guān)鍵詞詞典,因?yàn)榧用芩惴ㄊ褂玫氖茿ES對(duì)稱加密,AES算法本身分組加密的原理,密文中幾乎不含有密鑰信息,具有抵抗選擇明文攻擊的特點(diǎn),所以第三方審計(jì)人員和設(shè)備在已知審計(jì)關(guān)鍵詞詞典的情況下無(wú)法推算出主密鑰。
4.1.3 旁路監(jiān)聽(tīng)
客戶端無(wú)需和第三方審計(jì)設(shè)備有數(shù)據(jù)包或者密鑰的交換;區(qū)塊鏈和第三方審計(jì)設(shè)備在制定審計(jì)關(guān)鍵詞詞典的過(guò)程中有過(guò)交互,但不是需要轉(zhuǎn)發(fā)的數(shù)據(jù)包且制定審計(jì)關(guān)鍵詞詞典的過(guò)程只在部署的時(shí)候發(fā)生一次交互,所以這一過(guò)程可以通過(guò)數(shù)據(jù)庫(kù)系統(tǒng)之外的鏈路來(lái)完成。第三方審計(jì)設(shè)備在整個(gè)方案中只起到監(jiān)聽(tīng)的作用,所以第三方設(shè)備部署的方式就是旁路監(jiān)聽(tīng)。
4.2 效率評(píng)估
本文已經(jīng)使用python的crypto模塊實(shí)現(xiàn)了上述的可搜索加密數(shù)字標(biāo)簽的全部算法,并以執(zhí)行時(shí)間作為參照評(píng)估運(yùn)行效率。如圖2所示,為算法的執(zhí)行效率。
生成可搜索加密數(shù)字標(biāo)簽算法按照一條操作指令生成五條審計(jì)關(guān)鍵詞(包含客戶端ID、執(zhí)行時(shí)間、源IP、SQL語(yǔ)句執(zhí)行類型等)的數(shù)字標(biāo)簽的標(biāo)準(zhǔn)評(píng)估,執(zhí)行時(shí)間為:0.0014S。
在執(zhí)行區(qū)塊鏈校驗(yàn)算法時(shí),收到的數(shù)字標(biāo)簽按照一個(gè)數(shù)字標(biāo)簽包含五條審計(jì)關(guān)鍵詞的標(biāo)準(zhǔn)進(jìn)行評(píng)估,執(zhí)行時(shí)間為:0.0011S。
在執(zhí)行審計(jì)算法時(shí),收到的數(shù)字標(biāo)簽按照一個(gè)數(shù)字標(biāo)簽包含5條審計(jì)關(guān)鍵詞,審計(jì)關(guān)鍵詞詞典為50條的標(biāo)準(zhǔn)進(jìn)行評(píng)估,執(zhí)行時(shí)間為:0.0369S。
總之,無(wú)論是在客戶端、區(qū)塊鏈還是第三方審計(jì)設(shè)備上,算法的執(zhí)行時(shí)間均低于0.1S,考慮到對(duì)比現(xiàn)行的數(shù)據(jù)庫(kù)審計(jì)系統(tǒng),在安全性上有顯著提升,低于0.1S的算法執(zhí)行效率在可接受的范圍內(nèi)。
5 結(jié)束語(yǔ)
本文針對(duì)密文審計(jì)系統(tǒng)提出了在區(qū)塊鏈上基于隱私保護(hù)的可搜索加密的密文審計(jì)方案,解決了明文審計(jì)模式中的攔截與竊取風(fēng)險(xiǎn)的問(wèn)題和密文審計(jì)模式中無(wú)法使用旁路監(jiān)聽(tīng)的方式進(jìn)行審計(jì)的問(wèn)題,因?yàn)閿?shù)據(jù)標(biāo)簽本身攜帶了加密后的審計(jì)信息,審計(jì)人員可以在不獲取密文密鑰的條件下,完成審計(jì)的問(wèn)題,滿足了傳輸過(guò)程中隱私保護(hù)的需求,也可以將該方案應(yīng)用于區(qū)塊鏈安全審計(jì)的這一應(yīng)用場(chǎng)景中,解決了區(qū)塊鏈本身的密文審計(jì),具有良好的實(shí)用價(jià)值。今后會(huì)將機(jī)器學(xué)習(xí)和人工智能的算法融入進(jìn)來(lái),最終實(shí)現(xiàn)人工智能審計(jì)的效果。
基金項(xiàng)目:
1.國(guó)家自然科學(xué)基金(項(xiàng)目編號(hào):61661019);
2.國(guó)家自然科學(xué)基金聯(lián)合基金(項(xiàng)目編號(hào):U19B2044);
3.廣西重點(diǎn)研發(fā)計(jì)劃(項(xiàng)目編號(hào):AB17195025);
4.海南省高等學(xué)校教育教學(xué)改革研究重點(diǎn)資助項(xiàng)目(項(xiàng)目編號(hào):Hnjg2017ZD-1)。
參考文獻(xiàn)
[1] 陳純. 聯(lián)盟區(qū)塊鏈關(guān)鍵技術(shù)[N]. 中國(guó)信息化周報(bào),2019-11-04(007).
[2] 李穎,馬春光.可搜索加密研究進(jìn)展綜述[J].網(wǎng)絡(luò)與信息安全學(xué)報(bào),2018,4(07):13-21.
[3] Goldreich O, Ostrovsky R. Software protection and simulation on oblivious RAMs[J]. Journal of the ACM (JACM), 1996, 43(3): 431-473.
[4] Song D X, Wagner D and Perrig A. Practical techniques for searches on encrypted data[C]. IEEE Symposium on Security and Privacy, S&P 2000, Berkeley, CA, US, 2000: 44-55.
[5] Boneh D, Di Crescenzo G, Ostrovsky R, et al. Public key encryption with keyword search[C]. International conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 2004: 506-522.
[6] Waters B R ,Balfanz D,Durfee G,et al.Building an Encrypted and Searchable Audit Log[C]. Network and Distributed System Security Symposium,2004.
[7] 趙唯瑋,李強(qiáng),張愛(ài)新,等.云存儲(chǔ)系統(tǒng)中可搜索加密審計(jì)日志的設(shè)計(jì)[J].通信技術(shù),2018,51(2): 433-438.
[8] Ohtaki Y .Constructing a Searchable Enerypted Log Using Encrypted Inverted Indexes[C].International Conference on Cyberworlds. Singapore EEE,2005:132-138.
[9] Sabbaghi A,Mahmoudi F. Establishing an Efficient and Searchable Encrypted Log Using Record Authenticator[ C].International Conference on Computer Technology and Development,2009(02):206-211.
[10] 尹浩.區(qū)塊鏈技術(shù)的發(fā)展機(jī)遇與治理思路[J].人民論壇·學(xué)術(shù)前沿,2018(12):6-10.
[11] Sutton A, Samavi R. Blockchain enabled privacy audit logs[C]. International Semantic Web Conference. Springer, Cham, 2017: 645-660.
[12] 翁昕耀,游林,藍(lán)婷婷.基于區(qū)塊鏈的結(jié)果可追溯的可搜索加密方案[J].電信科學(xué),2019,35(09):98-106.