郭葉斌 徐欣
摘要:為提高云存儲平臺安全性,確保用戶數(shù)據(jù)隱私,通過對比分析現(xiàn)有云平臺結構與技術,提出一種基于區(qū)塊鏈的加密云存儲平臺模型。首先,該平臺通過IPFS網(wǎng)絡實現(xiàn)數(shù)據(jù)分布式存儲,并通過加密技術保證用戶數(shù)據(jù)隱私性;然后利用區(qū)塊鏈記錄文件存儲信息,實現(xiàn)文件存儲可公開驗證;最后通過區(qū)塊鏈智能合約技術保證平臺交易公平性。相比于現(xiàn)有云平臺,該系統(tǒng)可有效規(guī)避數(shù)據(jù)僅存儲于中央服務器的缺陷,文件完整性驗證方案可脫離第三方驗證機構,有效提高用戶數(shù)據(jù)隱私性。
關鍵詞:區(qū)塊鏈;分布式存儲;智能合約;IPFS
DOI: 10. 11907/rjdk.192510
開放科學(資源服務)標識碼(OSID):
中圖分類號:TP399
文獻標識碼:A
文章編號:1672-7800(2020)001-0221-04
0 引言
計算機技術發(fā)展迅速,網(wǎng)絡流量、視頻和圖片、社交媒體產生的網(wǎng)絡數(shù)據(jù)越來越多,目前主要依靠各云數(shù)據(jù)存儲平臺進行數(shù)據(jù)處理,云計算成為互聯(lián)網(wǎng)重要課題[1]。但云數(shù)據(jù)存儲在發(fā)展中也暴露出很多問題,關于用戶數(shù)據(jù)丟失、用戶隱私數(shù)據(jù)被泄露等報道接連不斷,反映出當今中心化的云存儲平臺存在許多缺陷和漏洞.用戶急需一個能保障用戶隱私、更安全可靠的云存儲平臺。
2008年中本聰[2]提出了比特幣( Bitcoin)網(wǎng)絡。該網(wǎng)絡使用區(qū)塊鏈技術構建底層,具有去中心化、匿名性、可追溯性等特點[3-5]。區(qū)塊鏈技術自誕生以來,備受關注,對多個行業(yè)產生了深遠影響。其中基于區(qū)塊鏈的智能合約技術[6-9]可保證數(shù)字化邏輯的公開執(zhí)行,區(qū)塊鏈在云存儲上的應用成為重要的研究課題。當前基于區(qū)塊鏈的分布式存儲平臺有Storj[10]、Sia[11]、Filecoin[12]。其中Storj方案僅能由用戶自身驗證數(shù)據(jù)完整性,且平臺本身無法部署智能合約;Sia方案中云服務器端需定時提交數(shù)據(jù)存儲證明,使區(qū)塊鏈數(shù)據(jù)量激增;在Filecoin方案中,底層網(wǎng)路基于星際文件系統(tǒng)( Inter-Planetary File System,IPFS)[13]結構,然而其使用zkSNARKs[14]技術實現(xiàn)數(shù)據(jù)完整性驗證,造成運算量巨大。關于文件的完整性驗證方案,黑一鳴等[15]提出一種基于區(qū)塊鏈的可公開驗證方案,并論述了區(qū)塊鏈上的智能合約構建,該方案采用區(qū)塊鏈默爾克樹存儲數(shù)據(jù)元數(shù)據(jù),然而該方案沒有對用戶數(shù)據(jù)進行隱私性保護。
本文借鑒基于區(qū)塊鏈的云存儲系統(tǒng)架構思路,提出一種新的解決方案。首先采用IPFS形成分布式網(wǎng)絡節(jié)點,并采用文件本地加密技術,確保用戶數(shù)據(jù)隱私性;然后使用默爾克樹、哈希函數(shù)結合區(qū)塊鏈技術的方式實現(xiàn)文件完整性存儲證明;最后利用智能合約技術,在各個節(jié)點之間建立約束條件,保證平臺交易公平性。
1 背景知識
1.1 IPFS
IPFS是一種為創(chuàng)建永久且去中心化共享的網(wǎng)絡傳輸協(xié)議,擁有內容可尋址特點,是一種不同于HTTP的底層網(wǎng)絡協(xié)議。該協(xié)議具有在網(wǎng)絡端到端節(jié)點上讀取、共享、傳輸、交換文件等功能。相比于需要Internet主干網(wǎng)的HTTP協(xié)議,IPFS網(wǎng)絡可形成一個去中心化的文件存儲系統(tǒng),不依賴主干網(wǎng)。
1.1.1 IPFS工作原理
(1)網(wǎng)絡中每個文件及其中所有的塊均擁有對應的唯一指紋,且該網(wǎng)絡中指紋一致的文件將被刪除。通過計算該指紋值,可以計算出哪些文件是冗余重復的,降低冗余數(shù)據(jù)數(shù)量。
(2)在該網(wǎng)絡中,節(jié)點只會存儲它感興趣的數(shù)據(jù),包括一些索引數(shù)據(jù),有助于了解存儲對象的內容。
(3)只需通過文件指紋值即可在網(wǎng)絡中查找到文件。
(4)通過去中心化的命名系統(tǒng)(IPNS),網(wǎng)絡中每個文件均擁有一個易讀取的別名,使用者可更方便地找到目標文件。
1.1.2 IPFS優(yōu)勢
IPFS搜索方式與傳統(tǒng)HTTP協(xié)議有本質區(qū)別,用戶通過該協(xié)議可直接搜索到目標內容,無需經(jīng)過第三方節(jié)點。當用戶向IPFS請求某個Hash值時,即對應某個文件,IPFS可通過一個分布式Hash表,快速找到擁有數(shù)據(jù)的節(jié)點,然后經(jīng)過Hash值校驗,判斷查找到的數(shù)據(jù)是否為目標數(shù)據(jù)。相比于傳統(tǒng)HTTP協(xié)議,IPFS訪問和下載速率更快,數(shù)據(jù)更具安全性,隱私性更強,且可有效減少數(shù)據(jù)冗余,節(jié)省存儲空間。
1.2 區(qū)塊鏈技術
區(qū)塊鏈是比特幣的底層技術,最早出現(xiàn)在2008年由中本聰[2]發(fā)表的《比特幣:一種點對點式的電子現(xiàn)金系統(tǒng)》中,該文闡述了一種去中心化的、無需第三方機構的分布式交易系統(tǒng),且該理論實踐性已經(jīng)被2009年運行至今的比特幣證明。區(qū)塊鏈是一連串以時間順序相連接的區(qū)塊組成的數(shù)據(jù),運用了密碼學及計算機相關技術,具有去中心化、匿名性、安全可信等特點。每個區(qū)塊包含區(qū)塊頭、區(qū)塊體,區(qū)塊頭中含有上一區(qū)塊的散列值、時間戳、計算難度、隨機數(shù)、默爾克根;區(qū)塊體則包含多筆交易組成的一棵默爾克樹,使用該結構最終得到該區(qū)塊體的唯一默爾克根。每隔一段時間,區(qū)塊鏈將產生一個新的區(qū)塊,用于記錄新的交易。區(qū)塊的產生由全網(wǎng)算力和計算難度決定,新計算出的區(qū)塊節(jié)點擁有該區(qū)塊記賬權,同時也會獲得一定獎勵。
1.3 智能合約
基于區(qū)塊鏈的智能合約技術依賴于去中心化和安全可信的計算機代碼,可在計算機系統(tǒng)自動執(zhí)行程序并保證準確執(zhí)行完成任務。所有參與方就合約中內容達成一致,并簽署合約,發(fā)布于區(qū)塊鏈中,系統(tǒng)自動完成合約啟動與執(zhí)行。因此智能合約具有去中心化、自治、防抵賴等特點。智能合約不僅使區(qū)塊鏈底層數(shù)據(jù)具有可編程性,并且還可封裝區(qū)塊鏈中各種復雜的行為,為建立區(qū)塊鏈上層結構提供強大助力。由此可知,智能合約使區(qū)塊鏈的應用更加完善,應用場景更加多樣。
智能合約創(chuàng)建及執(zhí)行過程為:①多個節(jié)點一同參與簽訂智能合約;②合約通過P2P網(wǎng)絡擴散并記錄于區(qū)塊鏈中;③智能合約在區(qū)塊鏈上自動執(zhí)行。
2 系統(tǒng)框架設計
基于IPFS、區(qū)塊鏈技術,本文設計一種不基于客戶端和中心化主機之間信任的云存儲模型,該模型整體結構如圖1所示。首先,在客戶端計算機向云計算機傳輸文件前,必須對所有客戶端私有數(shù)據(jù)進行加密,然后通過IPFS網(wǎng)絡協(xié)議進行存儲與通信。平臺設計供用戶使用的接口,用戶通過該接口安全地從網(wǎng)絡上傳和下載文件,同時該接口也可幫助用戶生成用于加密的私鑰。文件被加密后,會得到文件的SHA_256[16]散列值,它既是文件唯一標識符,同時也用于文件存儲驗證。在該系統(tǒng)中,只有用戶自身擁有文件解密密鑰。因此攻擊者即使知道文件的存在,也無法驗證網(wǎng)絡文件內容。由于文件在傳輸前已加密,可抵抗中間人攻擊[17-18]。在文件被存儲完成之后,會在區(qū)塊鏈上寫入文件存儲記錄,該記錄永久存在,通過該記錄可實現(xiàn)一個脫離中心化的可信任系統(tǒng)。為保證平臺交易公正性,在系統(tǒng)中設置節(jié)點之間的智能合約,該智能合約運行于區(qū)塊鏈之上,自動執(zhí)行,通過讀取區(qū)塊鏈關于文件存儲的信息,進行相應判斷,給出公正的交易結果。
該系統(tǒng)包括服務提供方、服務消費方、IPFS網(wǎng)絡和區(qū)塊鏈網(wǎng)絡。服務提供方負責提供硬件設施,即內存空間和服務器,服務提供方可將自己的信息發(fā)布于該平臺上以提供服務;服務消費方首先在本地客戶端進行文件加密操作,加密完成之后,將文件上傳至該平臺,系統(tǒng)根據(jù)消費方存儲文件大小及存儲文件的時間,智能地分配給對應服務提供方進行存儲。參與交易的節(jié)點均需繳納一定押金,系統(tǒng)會通過數(shù)字簽名、智能合約技術在服務消費方和服務提供方之間建立制約條件,簽訂智能合約。任何一方違反合約內容,都將使合約失敗,并受到公平的處罰,若雙方均完成合約內容,則認為交易成功。合約內容由平臺自動生成并執(zhí)行,無任何第三方介入。對于該平臺,任意擁有存儲空間的節(jié)點均可申請加入,因此該平臺也起到充分利用存儲空間的作用,可有效利用空閑資源。
3 系統(tǒng)核心模塊
3.1 IPFS網(wǎng)絡文件上傳與加密
在以往的云存儲平臺中,系統(tǒng)結構往往具有中心化的特點,網(wǎng)絡結構則通常是星型拓撲結構,若中心服務器出現(xiàn)問題,用戶將無法訪問到文件。中心化的結構也容易受到攻擊者攻擊。與此同時,服務器上存儲的文件量隨著時間推移會變得非常大,容易出現(xiàn)文件冗余的情況,既造成資源浪費,又降低了文件查詢速度。本系統(tǒng)將IPFS應用于文件存儲系統(tǒng)中,利用全網(wǎng)節(jié)點組成一個共享網(wǎng)絡,得益于IPFS特點組成了一個分布式文件存儲系統(tǒng)。為了確保文件存儲隱私性,在文件上傳之前,系統(tǒng)用戶在本地通過自己的密鑰將文件進行加密,這樣,即使文件被網(wǎng)絡上的攻擊者或其他人獲取,在沒有私鑰的情況下,也無法獲取文件內容,從而起到保護文件隱私性的作用。
系統(tǒng)采用對稱加密算法AES[19-20]對文件進行加密,用戶可通過本地客戶端獲得自己的私鑰,或自定義生成私鑰。假設用戶私鑰是K,明文是M,密文是C,加密函數(shù)為E,解密函數(shù)為D,則它們之間轉換關系為C=E(M,K),M=D(C,K)。
3.2 文件存儲驗證方案
文件存儲驗證方案是服務提供者向服務消費方證明其所存數(shù)據(jù)完整性的依據(jù)。每進行一筆交易后,該筆交易信息將寫入?yún)^(qū)塊鏈中。本文方案區(qū)塊結構如圖2所示。
若將數(shù)據(jù)永久存儲在區(qū)塊鏈中,將導致區(qū)塊鏈膨脹,區(qū)塊鏈將迅速擴展到無法管理的大小。因此通過存儲一個包含數(shù)據(jù)元數(shù)據(jù)的簡單交易解決該問題,系統(tǒng)將版本號、時間戳、文件大小、文件散列值、文件在IPFS網(wǎng)絡中存儲地址、簽名信息存儲到一筆交易中。交易信息實例如表1所示。
無論上傳的文件大小如何,樣例元數(shù)據(jù)將占用大約360字節(jié)的信息,將每一筆交易都加入到區(qū)塊中去。每個區(qū)塊分為塊頭( Block Header)及塊體(Block Body),塊頭保存的是前一區(qū)塊計算得到的Hash值、時間戳、默爾克根,塊體則負責保存由交易組成的默爾克樹。根據(jù)默爾克樹及哈希函數(shù)特性可知,文件一旦經(jīng)過任意修改,得到的默爾克根將與原來的值不同,因此在該系統(tǒng)中,全網(wǎng)節(jié)點可以使用文件的Hash值在區(qū)塊鏈上完成文件有效性驗證。
3.3 智能合約
本文方案含有服務提供者Server和服務消費者User兩大角色。服務提供者需提供存儲空間,同時聲明其服務能力,包括存儲時間和空間;服務消費者上傳加密文件,并聲明其想要存儲的時間。兩者之間通過構造智能合約完成交易,保證公平性。合約包括的內容有:合約標識Flag、合約構建的時間Tbuild、服務消費者存儲服務押金Cstore、服務提供者存儲服務押金C server、服務提供的時長Tserver存儲合約押金轉賬時限Ttrans、存儲證明返回時限Tcer。其中合約邏輯偽代碼為:
4 系統(tǒng)安全性分析
(1)數(shù)據(jù)安全性。本文系統(tǒng)通過IPFS網(wǎng)絡存儲文件,用戶將文件在本地經(jīng)過私鑰加密后再上傳。因此,即使系統(tǒng)文件被攻擊者獲取,攻擊者在沒有私鑰的情況下也無法獲取文件內容。同理,即使服務提供者泄漏了文件,文件內容也不會被他人看到,該系統(tǒng)可充分保證文件隱私性。
(2)偽造存儲問題。服務提供者通過偽造其存儲能力獲取利益,因此本文系統(tǒng)對該問題設置了押金,押金與其聲明的存儲能力相對應。服務提供者對其假冒的存儲交易無法給出有效的存儲證明,并會損失相應押金,故該系統(tǒng)可預防偽造存儲的問題。
5 結語
本文探討了傳統(tǒng)云存儲的不足與缺陷,分析了區(qū)塊鏈在分布式云存儲中的應用,基于IPFS、區(qū)塊鏈技術設計了一種安全可加密的分布式云存儲系統(tǒng)。該系統(tǒng)采用IPFS技術實現(xiàn)分布式存儲網(wǎng)絡,采用用戶數(shù)據(jù)本地加密,確保數(shù)據(jù)隱私性;采用基于區(qū)塊鏈的文件存儲驗證機制,保證存儲交易可公開驗證;采用智能合約技術設置針對數(shù)據(jù)存儲的獎懲方案,保證平臺交易公平性。然而本文系統(tǒng)數(shù)據(jù)存儲受網(wǎng)絡單個節(jié)點性能限制,沒有顧及數(shù)據(jù)存儲效率和容錯性。因此,下一步將著力研究高效率和高容錯的分布式云存儲模型。
參考文獻:
[1]范運東,吳曉平,石雄.基于信任值評估的云計算訪問控制模型研究[J].信息網(wǎng)絡安全,2016(7):71-77.
[2]
NAKAMOTO S.Bitcoin:a peer-to-peer electronic cash system [EB/OL]. https: //bitcoin.org/hitcoin.pdf.
[3] 袁勇,王飛躍.區(qū)塊鏈技術發(fā)展現(xiàn)狀與展望[J].自動化學報,2016,42(4):481-494.
[4] 袁勇,倪曉春,曾帥,等.區(qū)塊鏈共識算法的發(fā)展現(xiàn)狀與展望[J].自動化學報,2018,44(11):2011-2022.
[5]沈鑫,裴慶祺,劉雪峰.區(qū)塊鏈技術綜述[J].網(wǎng)絡與信息安全學報,2016,2( 11):11-20.
[6] 賀海武,延安,陳澤華.基于區(qū)塊鏈的智能合約技術與應用綜述[J].計算機研究與發(fā)展,2018,55( 11):2452-2466.
[7]馬春光,安婧,畢偉,等.區(qū)塊鏈中的智能合約[J].信息網(wǎng)絡安全,2018( 11):8-17.
[8] 歐陽麗煒,王帥,袁勇,等智能合約:架構及進展[J].自動化學報,2019,45(3):445-457.
[9] 曹迪迪,陳偉.基于智能合約的以太坊可信存證機制[J]。計算機應用,2019, 39( 4):1073-1080.
[10] WILKINSON S,BOSHEVSKI T. BRANDOF J,et al. Storj:apeer-to-peer cloud storage network[ EB/OL]. https: //s-torj.io/storj. pdf.
[11]
VORICK D, CHAMPINE L.SIA: simple decentralized storage [EB/OL]. https: //sia.Tech/sia.pdf.
[12]
PROTOCOL LABS. Technical report: filecoin-a decentralized stor-age nenvork[ EB/OL]. https: //filecoin.io/.
[13]
PATSAKIS C, CASINO F.Hydras and IPFS:a decentralised play-ground for malware[J].International Journal of Information Security,2019,18(6):787-799.
[14]
BEN-SASSON E, CHIESA A.GENKIN D, et al. Snarks for C:verify-ing program executions succinctly and in zero knowledge [M]. Hei-delberg: Springer Berlin Heidelberg, 2013.
[15] 黑一鳴,劉建偉,張宗洋,等.基于區(qū)塊鏈的可公開驗證分布式云存儲系統(tǒng)[J].信息網(wǎng)絡安全,2019(3):52-60.
[16] 高杰.SHA256加密算法在比特幣中的關鍵作用研究[J].納稅,2017(28):142.
[17]鄧真,劉曉潔.HTTPS協(xié)議中間人攻擊的防御方法[J].計算機工程與設計,2019,40(4):901-905.
[18]王立彥.HTTPS協(xié)議中間人攻擊的實現(xiàn)與防御[D].沈陽:東北大學,2011.
[19] 高家奇,李斌勇,廖懷凱,等.高級加密AES算法研究及性能分析[J].網(wǎng)絡安全技術與應用,2019(10):28-30.
[20] 張文錦,周榮,高燕,等.基于AES算法的文件加密[J].軟件導刊,2017, 16(6):180-182.
(責任編輯:江艷)
基金項目:國防預研基金項目( CF217040406004)
作者簡介:郭葉斌(1994-),男,杭州電子科技大學通信工程學院碩士研究生,研究方向為信息安全;徐欣(1975-),男,博士,杭州電子科技大學通信工程學院教授、碩士生導師,研究方向為信息安全、固態(tài)硬盤加密。