亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Merkle樹(shù)的安全云存儲(chǔ)系統(tǒng)①

        2022-05-10 08:39:30鄭李偉王雪平
        關(guān)鍵詞:用戶(hù)系統(tǒng)

        鄭李偉,王雪平

        (復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200082)

        隨著數(shù)據(jù)量越來(lái)越大,越來(lái)越多的企業(yè)、個(gè)人有了上云的需求.最近幾年云存儲(chǔ)方面的產(chǎn)業(yè)也飛速發(fā)展,各大廠(chǎng)商紛紛推出自己的云存儲(chǔ)產(chǎn)品[1].而用戶(hù)們也喜歡使用云存儲(chǔ)產(chǎn)品,因?yàn)樵拼鎯?chǔ)產(chǎn)品不需要太多的投入就可以解放本地的存儲(chǔ)空間,而且具有良好的擴(kuò)展性[2].

        然而云存儲(chǔ)也有壞處:讓用戶(hù)失去了對(duì)文件的控制權(quán)[3].如果存儲(chǔ)方不是絕對(duì)安全的,那么就可能引發(fā)安全性方面的問(wèn)題[4].例如,云存儲(chǔ)環(huán)境中常見(jiàn)的是以明文方式存儲(chǔ)文件,這樣的做法缺少了完整性檢查、控制訪(fǎng)問(wèn)機(jī)制.而且,如果把敏感數(shù)據(jù)存儲(chǔ)在他人的云存儲(chǔ)環(huán)境里,就可能出現(xiàn)泄密問(wèn)題,進(jìn)而可能引發(fā)安全事故.

        但是,大多數(shù)的云存儲(chǔ)服務(wù)商都要求用戶(hù)以明文存儲(chǔ),并信任他們的服務(wù)器和管理員.然而,事實(shí)上他們的服務(wù)并不那么可靠,云存儲(chǔ)泄密事件屢見(jiàn)不鮮.過(guò)去一段時(shí)間,許多采用亞馬遜網(wǎng)絡(luò)服務(wù)公司的AWS S3 簡(jiǎn)單云存儲(chǔ)服務(wù)的企業(yè),其中包括道瓊斯、威瑞森、聯(lián)邦快遞和特斯拉等公司都發(fā)生了數(shù)據(jù)泄露的安全事故.雖然在大多數(shù)情況下并不一定是亞馬遜公司云平臺(tái)的問(wèn)題.例如聯(lián)邦快遞和特斯拉公司,這兩家公司的AWS S3 存儲(chǔ)服務(wù)器沒(méi)有設(shè)定密碼進(jìn)行保護(hù),導(dǎo)致其關(guān)鍵數(shù)據(jù)暴露無(wú)遺.所以,無(wú)論云存儲(chǔ)服務(wù)的提供商是否值得信賴(lài),都應(yīng)該有健全的安全機(jī)制來(lái)保證用戶(hù)的數(shù)據(jù)安全.

        為此,一些存儲(chǔ)系統(tǒng)提出了自己的解決方案[5,6].這些存儲(chǔ)系統(tǒng)保證云存儲(chǔ)安全性的主要手段是加密文件[7].他們將數(shù)據(jù)的訪(fǎng)問(wèn)控制權(quán)交給數(shù)據(jù)擁有者,其他用戶(hù)想要訪(fǎng)問(wèn)數(shù)據(jù),需要先與數(shù)據(jù)擁有者聯(lián)系[8],這樣的做法在一定程度上提高了安全性,但是這樣也引入了新的問(wèn)題:第一,數(shù)據(jù)擁有者有了更高的數(shù)據(jù)管理門(mén)檻,甚至可能需要提供在線(xiàn)服務(wù),這可能讓用戶(hù)流失.第二,隨著數(shù)據(jù)擁有者分享的用戶(hù)增多,對(duì)分享用戶(hù)的管理也會(huì)越來(lái)越復(fù)雜.第三,將數(shù)據(jù)分享給其他用戶(hù)后,其他用戶(hù)可能會(huì)做出超出分享權(quán)限的操作.

        針對(duì)現(xiàn)有的情況來(lái)看,安全云存儲(chǔ)系統(tǒng)主要需要解決的問(wèn)題是在保證數(shù)據(jù)不會(huì)被服務(wù)提供者和其他只擁有部分權(quán)限的用戶(hù)竊取的情況下,讓系統(tǒng)的開(kāi)銷(xiāo)盡可能小.以保證用戶(hù)能在保證安全的情況下繼續(xù)低成本的使用云產(chǎn)品服務(wù).

        本文基于以下假設(shè):第一,數(shù)據(jù)需要存儲(chǔ)在不可信的云存儲(chǔ)服務(wù)器上,這個(gè)云存儲(chǔ)服務(wù)器可能會(huì)破壞、竊取用戶(hù)的數(shù)據(jù).第二,一些惡意用戶(hù)可能會(huì)竊取其他用戶(hù)的數(shù)據(jù)或者執(zhí)行超出自己權(quán)限范圍的操作[9].根據(jù)以上假設(shè),本文提出了一套新的安全云存儲(chǔ)系統(tǒng).

        這套安全云存儲(chǔ)系統(tǒng)將文件轉(zhuǎn)化為一個(gè)基于Merkle 樹(shù)設(shè)計(jì)的Merkle-B+樹(shù)來(lái)存儲(chǔ).Merkle-B+樹(shù)的各結(jié)點(diǎn)上存儲(chǔ)著通過(guò)CTR 模式的AES 分組加密算法加密形成的文件密文.基于這樣的設(shè)計(jì),當(dāng)發(fā)生對(duì)文件的修改時(shí),不需要對(duì)所有文件內(nèi)容都進(jìn)行重加密和重哈希,只需要對(duì)其中被修改的部分重加密和重哈希即可,這樣既保證了文件的安全性,又降低了完整性檢查帶來(lái)的重哈希以及文件重加密的開(kāi)銷(xiāo).本系統(tǒng)還通過(guò)非對(duì)稱(chēng)的讀寫(xiě)密鑰的分發(fā)實(shí)現(xiàn)了文件讀寫(xiě)權(quán)限的分離.并且本系統(tǒng)用密鑰來(lái)實(shí)現(xiàn)文件的讀寫(xiě)分享等功能,不需要依賴(lài)可信第三方也不需要要求客戶(hù)端長(zhǎng)時(shí)間在線(xiàn).本文設(shè)計(jì)的安全存儲(chǔ)系統(tǒng)有安全性高、加解密速度快、文件額外占用空間少、管理和使用成本低等特點(diǎn).

        本文第1 節(jié)介紹系統(tǒng)設(shè)計(jì)的目標(biāo),第2 節(jié)介紹系統(tǒng)設(shè)計(jì)中的關(guān)鍵技術(shù)和具體實(shí)現(xiàn),第3 節(jié)給出系統(tǒng)的性能測(cè)試結(jié)果并與其他系統(tǒng)進(jìn)行比較,第4 節(jié)進(jìn)行總結(jié)和展望.

        1 相關(guān)工作

        如引言所說(shuō),現(xiàn)有的安全存儲(chǔ)系統(tǒng)保證安全性的主要手段就是加密文件.而主要的研究方向在于:(1)實(shí)現(xiàn)現(xiàn)有的存儲(chǔ)系統(tǒng)難以實(shí)現(xiàn)的功能.如對(duì)加密文件的內(nèi)容進(jìn)行檢索等功能.(2)降低加密文件所帶來(lái)的開(kāi)銷(xiāo).本文的研究方向在于第二點(diǎn),即提出一種開(kāi)銷(xiāo)更低的安全存儲(chǔ)系統(tǒng).

        相關(guān)工作介紹如下:CFS[10]是早期的安全存儲(chǔ)系統(tǒng).它通過(guò)在磁盤(pán)上架設(shè)一層虛擬磁盤(pán),在每次往磁盤(pán)中寫(xiě)的時(shí)候就對(duì)文件進(jìn)行加密,從磁盤(pán)中讀的時(shí)候就對(duì)文件解密的方式來(lái)實(shí)現(xiàn)安全存儲(chǔ).而CFS 的訪(fǎng)問(wèn)控制就是通過(guò)分享這個(gè)加密文件的密鑰來(lái)實(shí)現(xiàn)的.這就導(dǎo)致CFS 只能實(shí)現(xiàn)粗粒度的分享而無(wú)法實(shí)現(xiàn)讀寫(xiě)權(quán)限的分離.

        Cepheus[11]率先提出了鎖盒子的概念.在用戶(hù)間進(jìn)行文件分享時(shí),需要依賴(lài)一個(gè)可信的密鑰服務(wù)器(可信第三方)來(lái)存儲(chǔ)用戶(hù)信息并依賴(lài)此可信第三方進(jìn)行身份認(rèn)證和訪(fǎng)問(wèn)控制.

        Corslet[12]在Cepheus 的基礎(chǔ)上進(jìn)行了進(jìn)一步的優(yōu)化創(chuàng)新.它通過(guò)鎖盒子和Merkle樹(shù)的使用,將文件明文的hash 值和加密文件的密鑰統(tǒng)一起來(lái),而且使得在對(duì)文件進(jìn)行修改時(shí),只需要對(duì)文件中被修改的文件塊進(jìn)行重加密和重哈希即可,可以實(shí)現(xiàn)高效的重加密和重哈希.但是Corslet 依然需要引入一個(gè)可信第三方來(lái)實(shí)現(xiàn)訪(fǎng)問(wèn)控制和身份認(rèn)證.

        SiRiUS[13]使用非對(duì)稱(chēng)密鑰進(jìn)行權(quán)限控制.在SiRiUS中,文件是被整體加解密的,完整性校驗(yàn)也是對(duì)整個(gè)文件明文去計(jì)算哈希來(lái)保證的,當(dāng)發(fā)生權(quán)限撤銷(xiāo)、文件修改時(shí),就需要對(duì)文件整體進(jìn)行重新加密和重新哈希,性能開(kāi)銷(xiāo)較大.

        Plutus[8]提供了組共享、懶惰撤銷(xiāo)、隨機(jī)訪(fǎng)問(wèn)、文件名加密等功能.但Plutus 的密鑰分享方式門(mén)檻很高:當(dāng)用戶(hù)想訪(fǎng)問(wèn)某文件時(shí),需要向文件擁有者索要密鑰,這時(shí)文件擁有者必須在線(xiàn)才能完成密鑰的分發(fā).

        綜上所述,現(xiàn)有的安全存儲(chǔ)系統(tǒng)在高效的加解密方式和不需要可信第三方兩者之間只能實(shí)現(xiàn)其中一項(xiàng).故本文提出了一種新的安全存儲(chǔ)系統(tǒng),可以既實(shí)現(xiàn)高效的加解密又不需要可信第三方.

        2 設(shè)計(jì)目標(biāo)

        2.1 虛擬磁盤(pán)

        本系統(tǒng)架設(shè)在底層文件系統(tǒng)之上,與底層文件系統(tǒng)相互獨(dú)立,當(dāng)要從底層文件系統(tǒng)中讀或者要向底層文件系統(tǒng)中寫(xiě)的時(shí)候,文件經(jīng)過(guò)本系統(tǒng)會(huì)自動(dòng)解密或者加密,然后從底層文件系統(tǒng)中讀出或者寫(xiě)入.這樣就形成了一個(gè)虛擬的磁盤(pán),用戶(hù)在使用的時(shí)候感覺(jué)不到加密解密的存在,仿佛在使用一個(gè)安全的虛擬磁盤(pán).這樣的做法提高了系統(tǒng)的易用性,降低了用戶(hù)的使用門(mén)檻和管理成本.

        2.2 文件共享和不依賴(lài)服務(wù)器的訪(fǎng)問(wèn)控制

        本系統(tǒng)使用安全易用的密鑰實(shí)現(xiàn)文件共享機(jī)制.不需要依賴(lài)可信第三方也不需要要求用戶(hù)長(zhǎng)時(shí)間在線(xiàn)來(lái)保證文件的分享.文件擁有者可以分享文件給其他用戶(hù),而且可以選擇僅分享讀權(quán)限或分享讀寫(xiě)權(quán)限.從服務(wù)提供方的角度來(lái)看,不需要可信第三方,可以大大降低運(yùn)營(yíng)成本,從而可以為用戶(hù)提供更加便宜的產(chǎn)品.從用戶(hù)的角度來(lái)看,不需要用戶(hù)長(zhǎng)時(shí)間在線(xiàn)來(lái)保證文件的分享,這樣降低了用戶(hù)的使用門(mén)檻和使用成本,更加簡(jiǎn)單易用.

        2.3 端到端的保密性而且具備完整性保護(hù)

        本系統(tǒng)保證只有合法的被授權(quán)的用戶(hù)可以獲得數(shù)據(jù)明文,非法的用戶(hù)、服務(wù)器管理員、底層文件系統(tǒng)管理員都無(wú)法獲取數(shù)據(jù)明文.而且本系統(tǒng)有完整性保護(hù),對(duì)數(shù)據(jù)的非法篡改可以被用戶(hù)察覺(jué),從而保證用戶(hù)得到的數(shù)據(jù)都是正確的[12].端到端的保密性是為了保證文件的明文不會(huì)被服務(wù)提供方竊取.完整性檢查用來(lái)檢測(cè)是否有只讀用戶(hù)對(duì)文件進(jìn)行了寫(xiě)操作,從而保證用戶(hù)只能做自己權(quán)限內(nèi)的事,不能做超出權(quán)限范圍的事.以上兩點(diǎn)保證了存儲(chǔ)系統(tǒng)的安全性.

        2.4 輕量級(jí)的密鑰管理

        本系統(tǒng)可以讓客戶(hù)端不需要存儲(chǔ)密鑰,降低被攻擊而泄密的風(fēng)險(xiǎn),具有較高的安全性,也降低了用戶(hù)管理密鑰的成本.而且密鑰的使用和存放對(duì)用戶(hù)是透明的,對(duì)于用戶(hù)來(lái)說(shuō)更加易用,使用成本更低.對(duì)于每一個(gè)文件只會(huì)產(chǎn)生一個(gè)對(duì)稱(chēng)密鑰用來(lái)加密,一方面,這樣加解密更快,另一方面,這樣文件產(chǎn)生的密鑰數(shù)較少,方便密鑰管理,讓密鑰管理的成本更低,也更加節(jié)約存儲(chǔ)空間.

        2.5 性能

        本系統(tǒng)對(duì)文件的加解密都使用的是對(duì)稱(chēng)密鑰,這樣速度更快.而且本系統(tǒng)通過(guò)將文件分塊化處理,使用分塊化處理的方法讓文件被修改后只需要重加密其中被修改的文件塊,并只需要對(duì)這些塊重新進(jìn)行哈希計(jì)算,而不需要對(duì)整個(gè)文件進(jìn)行重加密和重哈希計(jì)算.所以,表現(xiàn)出較高的性能.

        3 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        3.1 總體設(shè)計(jì)

        為下文描述方便,本文所用術(shù)語(yǔ)的縮寫(xiě)及含義如表1 術(shù)語(yǔ)表.另外,系統(tǒng)的整體結(jié)構(gòu)如圖1 系統(tǒng)結(jié)構(gòu)圖.

        圖1 系統(tǒng)結(jié)構(gòu)圖

        表1 術(shù)語(yǔ)表

        存儲(chǔ)服務(wù)器SS 負(fù)責(zé)存放文件,在用戶(hù)視角中的一個(gè)文件,在存儲(chǔ)服務(wù)器中被存儲(chǔ)為一棵Merkle-B+樹(shù).Merkle-B+樹(shù)上不僅存儲(chǔ)有文件的密文還有文件明文的哈希值,其中明文的哈希值用來(lái)實(shí)現(xiàn)完整性檢驗(yàn).Merkle-B+樹(shù)的具體實(shí)現(xiàn)在后面詳細(xì)介紹.每個(gè)用戶(hù)會(huì)有一對(duì)公私鑰——UEK 和UDK.其中UDK 是通過(guò)用戶(hù)的密碼直接生成的,而UEK 是和UDK 匹配的公鑰,直接存放在SS 上.因此,UDK 只在使用時(shí)由用戶(hù)鍵入密碼后直接生成.這樣CL 本地就不需要存儲(chǔ)UDK,提高了系統(tǒng)的安全性.當(dāng)需要使用UEK 時(shí)可以直接從SS處獲得UEK.FSK 是一個(gè)對(duì)稱(chēng)密鑰,用來(lái)加解密文件,使用對(duì)稱(chēng)密鑰來(lái)加解密文件速度比非對(duì)稱(chēng)密鑰更快,可以達(dá)到更高的效率.RHSK 和RHDK 用來(lái)加解密Merkle-B+樹(shù)的根結(jié)點(diǎn),以此來(lái)實(shí)現(xiàn)讀寫(xiě)權(quán)限的分離.這部分內(nèi)容之后會(huì)詳細(xì)介紹.

        3.2 Merkle-B+樹(shù)設(shè)計(jì)和分組加密算法

        本文基于Merkle 樹(shù)[14]設(shè)計(jì)了Merkle-B+樹(shù)來(lái)完成存儲(chǔ)文件、進(jìn)行完整性檢驗(yàn)等功能.如圖2,Merkle-B+樹(shù)分為葉子節(jié)點(diǎn)和非葉子節(jié)點(diǎn).其中,葉子節(jié)點(diǎn)有6 個(gè)部分組成:hash 部分、CTR 部分、文件內(nèi)容部分、指向父節(jié)點(diǎn)的指針、指向下一個(gè)葉子節(jié)點(diǎn)的指針、指向前一個(gè)葉子結(jié)點(diǎn)的指針.其中hash 部分記錄了文件內(nèi)容明文的哈希值.系統(tǒng)使用AES 的CTR 加密模式,CTR 部分存儲(chǔ)CTR 數(shù).本系統(tǒng)將一個(gè)文件分成多個(gè)塊,最小的加解密和哈希計(jì)算粒度是文件塊,每個(gè)文件塊的密文存儲(chǔ)在一個(gè)結(jié)點(diǎn)的文件內(nèi)容區(qū)域上.非葉子結(jié)點(diǎn)由4 個(gè)部分組成:hash 部分、指向父節(jié)點(diǎn)的指針、指向下一個(gè)非葉子節(jié)點(diǎn)的指針、指向上一個(gè)非葉子結(jié)點(diǎn)的指針.其中hash 部分值的計(jì)算方法如下:

        圖2 Merkle-B+樹(shù)結(jié)構(gòu)圖

        其中,||表示拼接.上層結(jié)點(diǎn)的hash 部分是下層節(jié)點(diǎn)的hash 部分的拼接的hash 值.這樣的Merkle-B+樹(shù)設(shè)計(jì)可以讓文件有以下好處:

        (1)輕量級(jí)的重加密.通過(guò)將文件分塊,這樣在對(duì)文件進(jìn)行修改后,只需要對(duì)其中的一部分進(jìn)行重加密,而不需要對(duì)整個(gè)文件繼續(xù)重加密.這樣加快了加密速度,實(shí)現(xiàn)了一種輕量級(jí)的重加密.

        (2)輕量級(jí)的重哈希.為了實(shí)現(xiàn)完整性檢驗(yàn)的功能,原來(lái)對(duì)文件進(jìn)行修改后需要對(duì)全文進(jìn)行重哈希,這樣才能通過(guò)比對(duì)哈希值的方式來(lái)確認(rèn)文件的完整性,從而發(fā)現(xiàn)是否有用戶(hù)篡改了文件內(nèi)容.這樣就意味著在對(duì)一個(gè)文件的部分繼續(xù)進(jìn)行修改后需要對(duì)全文進(jìn)行一次哈希計(jì)算,這樣開(kāi)銷(xiāo)較大.將文件組織成Merkle-B+樹(shù)后,可以只對(duì)被修改的塊進(jìn)行重哈希,然后按照樹(shù)的結(jié)構(gòu)一層層向上重哈希就可以.這樣將O(n)的重哈希時(shí)間就降低到了O(logn)的時(shí)間.而且因?yàn)锽+樹(shù)的度較大,樹(shù)高較小,這樣在實(shí)際進(jìn)行重加密時(shí)所消耗的時(shí)間只會(huì)更小.

        (3)能夠適應(yīng)多種場(chǎng)景.Merkle-B+樹(shù)的樹(shù)高、度等參數(shù)都是可以由用戶(hù)進(jìn)行自定義調(diào)節(jié)的,可以由用戶(hù)自己調(diào)節(jié)來(lái)適應(yīng)各種應(yīng)用場(chǎng)景.滿(mǎn)足各種時(shí)間和空間的要求.

        Merkle-B+樹(shù)的使用過(guò)程在訪(fǎng)問(wèn)協(xié)議部分介紹.

        本系統(tǒng)為了能讓文件能夠分塊,采用AES 分組加密算法的CTR 加密模式.采用CTR 加密模式是因?yàn)?

        (1)CTR 加密模式不需要對(duì)文件進(jìn)行填充,方便文件塊的處理而且節(jié)約空間開(kāi)銷(xiāo).

        (2)支持并行計(jì)算,可以充分利用CPU 資源來(lái)加速加密、解密.

        (3)相同的明文加密后呈現(xiàn)為不同的密文,不容易被統(tǒng)計(jì)攻擊,具有更好的安全性.

        如圖2所示,每個(gè)葉子節(jié)點(diǎn)上不止存儲(chǔ)著文件的密文,還存儲(chǔ)著CTR 數(shù)值.當(dāng)用戶(hù)要對(duì)文件進(jìn)行解密的時(shí)候,可以用FSK 加密CTR 值后得到用來(lái)加解密文件的對(duì)稱(chēng)密鑰FFK,然后用FFK 對(duì)文件進(jìn)行加解密.其中,FSK 是在文件上傳時(shí)隨機(jī)生成的,對(duì)一個(gè)文件的所有文件塊進(jìn)行加解密都使用同一個(gè)FSK 密鑰.

        至此,文件被組織成Merkle-B+樹(shù)的形式,文件分塊存儲(chǔ)在Merkle-B+樹(shù)中.

        3.3 完整性保護(hù)和讀寫(xiě)權(quán)限分離的實(shí)現(xiàn)

        完整性檢查如上文在Merkle-B+介紹中所說(shuō)的那樣,由Merkle-B+的hash 部分來(lái)完成,具體使用方法在訪(fǎng)問(wèn)協(xié)議部分介紹.而讀寫(xiě)權(quán)限分離的實(shí)現(xiàn)是通過(guò)密鑰來(lái)實(shí)現(xiàn)的,即,是否具有某種權(quán)限是由是否具有某種密鑰來(lái)決定的.

        文件在上傳時(shí)會(huì)生成一個(gè)FSK、一個(gè)RHSK、一個(gè)RHDK.其中FSK 用來(lái)進(jìn)行加密文件.而RHSK 和RHDK 用來(lái)加密和解密Merkle-B+樹(shù)的根結(jié)點(diǎn),這樣就可以利用完整性檢驗(yàn)來(lái)實(shí)現(xiàn)讀寫(xiě)權(quán)限分離的.

        具體來(lái)說(shuō),將文件轉(zhuǎn)化為上文說(shuō)的Merkle-B+樹(shù)后,用RHSK 來(lái)加密根節(jié)點(diǎn),然后用UEK 加密RHSK得到RHSK 的密文.將FSK 的密文、RHSK 的密文、RHDK 的明文以及Merkle-B+樹(shù)存入SS.當(dāng)用戶(hù)要讀取文件內(nèi)容時(shí),用戶(hù)可以從SS 處拿到FSK 密文,然后用UDK 解密FSK 密文.之后,用戶(hù)用FSK 明文去解密Merkle-B+樹(shù),得到每一個(gè)文件塊的明文,拼接在一起就是文件內(nèi)容.按照Merkle-B+樹(shù)的結(jié)構(gòu)對(duì)每個(gè)文件塊重新計(jì)算hash 值進(jìn)行驗(yàn)證,并對(duì)每個(gè)結(jié)點(diǎn)的hash值進(jìn)行拼接,一層層沿著路徑向上求hash 值,得到計(jì)算的RHV.使用RHDK 解密Merkle-B+樹(shù)的根哈希值,將該值與計(jì)算得到的RHV 進(jìn)行比較,如果一致就代表文件沒(méi)有被篡改,如果不一致就代表文件被篡改了.這樣就實(shí)現(xiàn)了完整性保護(hù).

        而讀權(quán)限和寫(xiě)權(quán)限用是否有將RHSK 分享給指定用戶(hù)來(lái)區(qū)分.因?yàn)槿绻脩?hù)沒(méi)有RHSK 那么他只能通過(guò)SS 中存儲(chǔ)的RHDK 來(lái)解密得到RHV,即,沒(méi)有RHSK 的用戶(hù)只能進(jìn)行RHV 比較,做到完整性檢驗(yàn)來(lái)保證文件內(nèi)容沒(méi)有被篡改過(guò),卻不能對(duì)文件進(jìn)行寫(xiě)操作.如果沒(méi)有RHSK 的用戶(hù)篡改Merkle-B+上的文件內(nèi)容,那么這個(gè)用戶(hù)會(huì)因?yàn)闆](méi)有RHSK 無(wú)法對(duì)RHV 進(jìn)行加密,在之后用戶(hù)進(jìn)行讀取RHV 并對(duì)RHV 使用RHDK 進(jìn)行解密后,得到的結(jié)果就和計(jì)算RHV 不同,就可以發(fā)現(xiàn)文件被篡改了.這樣就保證了只有讀權(quán)限的用戶(hù)無(wú)法對(duì)文件內(nèi)容進(jìn)行篡改.而有RHSK 的用戶(hù),即,具有寫(xiě)權(quán)限的用戶(hù)在修改文件后,會(huì)修改RHV 并用RHSK 進(jìn)行加密.這樣之后用戶(hù)進(jìn)行讀取的時(shí)候,用RHDK 對(duì)密文解密得到的值就是正確的RHV,可以通過(guò)完整性檢驗(yàn).本系統(tǒng)使用每個(gè)葉子節(jié)點(diǎn)的哈希值保證了每個(gè)文件塊的完整性,又用非葉子結(jié)點(diǎn)保證了以此結(jié)點(diǎn)為根的子樹(shù)的完整性,所以,Merkle-B+樹(shù)的根結(jié)點(diǎn)就保證了整棵樹(shù)的完整性.又因?yàn)橹挥芯哂袑?xiě)權(quán)限的用戶(hù)才具有RHSK 密鑰,這樣非法用戶(hù)一旦篡改了文件內(nèi)容,就會(huì)立刻因?yàn)橥ú贿^(guò)完整性檢查而被發(fā)現(xiàn).所以,可以說(shuō)RHSK 密鑰保證了Merkle-B+樹(shù)的完整性,又因?yàn)镸erkle-B+樹(shù)保存了所有文件塊的明文的哈希部分,所以,保證了加密文件的完整性.

        采用Merkle-B+樹(shù)來(lái)進(jìn)行完整性檢查和讀寫(xiě)權(quán)限分離的好處如上面所說(shuō).當(dāng)合法地修改文件某個(gè)或某些塊的內(nèi)容時(shí),只需要重新計(jì)算這些塊對(duì)應(yīng)的葉子節(jié)點(diǎn)的哈希值,并沿著這些葉子節(jié)點(diǎn)通往根結(jié)點(diǎn)的路徑上所經(jīng)過(guò)非葉子結(jié)點(diǎn)的哈希值.最后對(duì)更新后的根哈希用RHSK 重新加密.這樣的重加密的時(shí)間復(fù)雜度是logn級(jí)的.如果不使用Merkle-B+樹(shù)這樣的結(jié)構(gòu),就意味著當(dāng)一個(gè)文件的部分被修改時(shí),就需要對(duì)整個(gè)文件進(jìn)行重哈希,這樣的開(kāi)銷(xiāo)較大,特別對(duì)于大文件來(lái)說(shuō),開(kāi)銷(xiāo)可能非常巨大.所以,使用Merkle-B+樹(shù)的方式是更好的.

        3.4 文件共享和訪(fǎng)問(wèn)控制的實(shí)現(xiàn)

        文件的共享和訪(fǎng)問(wèn)控制通過(guò)密鑰來(lái)實(shí)現(xiàn).即,是否擁有對(duì)一個(gè)文件的讀權(quán)限、寫(xiě)權(quán)限的根本區(qū)別在于是否擁有某種密鑰.當(dāng)用戶(hù)A 想要分享文件的讀權(quán)限給用戶(hù)B 時(shí),會(huì)從SS 處得到用自己UEK 加密的FSK,然后用自己的USK 解密,得到對(duì)應(yīng)FSK 的明文,然后用用戶(hù)B 的UEK 進(jìn)行加密,得到FSK 的密文上傳SS.這樣用戶(hù)B 就獲得了FSK,就可以用FSK 來(lái)解密Merkle-B+樹(shù)獲得文件內(nèi)容并進(jìn)行完整性檢驗(yàn).當(dāng)用戶(hù)A 想要分享文件的寫(xiě)權(quán)限給用戶(hù)B 時(shí),會(huì)從SS 處得到用自己UEK 加密的FSK 和RHSK,用自己的USK 解密后,然后用用戶(hù)B 的UEK 來(lái)對(duì)FSK、RHSK 密鑰進(jìn)行加密.之后將加密后的FSK、RHSK 上傳到SS 上.之后用戶(hù)B 可以從SS 得到用自己UEK 加密的FSK、RHSK,用USK 解密后得到FSK 和RHSK,就可以用FSK 來(lái)解密文件,得到文件明文.在修改文件內(nèi)容,進(jìn)行重加密和重哈希后,用RHSK 加密新的RHV,這樣就不會(huì)影響后續(xù)使用.

        而使用密鑰去實(shí)現(xiàn)文件共享和訪(fǎng)問(wèn)控制必然意味著密鑰數(shù)量的增加,這就引入了如何有效的管理密鑰的問(wèn)題[15].很多系統(tǒng)都提出了自己的密鑰管理方式[10].本文采用密鑰層級(jí)管理的方式來(lái)管理密鑰.層級(jí)結(jié)構(gòu)如圖3 密鑰層級(jí)管理示意圖所示.在本系統(tǒng)中,密鑰分為2 個(gè)層級(jí)來(lái)進(jìn)行組織和管理:用戶(hù)密鑰、其他密鑰.其中,其他密鑰包括FSK、RHDK 等密鑰.這樣就將系統(tǒng)所需的密鑰按照金字塔形式進(jìn)行排列,用上層密鑰來(lái)加密、解密下層的密鑰,這樣用戶(hù)只需要管理上層密鑰,其他密鑰可以置于不可信的環(huán)境中.這樣就在保證系統(tǒng)安全性的前提下,用戶(hù)只需要保存少量密鑰就可以達(dá)到想要的效果,降低了用戶(hù)管理密鑰的成本.在本系統(tǒng)的密鑰層級(jí)中,用戶(hù)密鑰是密鑰體系的第一層,要想分發(fā)或獲取其他密鑰必須先經(jīng)過(guò)用戶(hù)密鑰.這樣用戶(hù)就只需要管理用戶(hù)密鑰即可.又因?yàn)橛脩?hù)密鑰中的公鑰UEK 是可以直接存放在SS 上的.所以,用戶(hù)只需要管理用戶(hù)密鑰的私鑰UDK 就可以了.這樣大大降低了用戶(hù)的管理成本.

        圖3 密鑰層級(jí)管理示意圖

        3.5 訪(fǎng)問(wèn)協(xié)議

        本系統(tǒng)能夠在保證安全性的前提下,實(shí)現(xiàn)輕量級(jí)的重加密和重哈希不僅和之前的系統(tǒng)架構(gòu)、加密方法有關(guān),還和訪(fǎng)問(wèn)協(xié)議有關(guān).下面介紹本系統(tǒng)的訪(fǎng)問(wèn)協(xié)議:

        (1)上傳文件.上傳文件的流程如下:

        ①對(duì)文件進(jìn)行初始分塊,按塊分別計(jì)算hash 值.然后生成一個(gè)對(duì)稱(chēng)密鑰FSK,取當(dāng)前的CTR 算子,得到當(dāng)前的CTR 數(shù).用對(duì)稱(chēng)密鑰FSK 對(duì)CTR 數(shù)進(jìn)行加密,用得到的FFK 與文件明文進(jìn)行異或來(lái)做加密.至此,得到了分塊的文件密文、分塊的明文hash 值和CTR 值.

        ②將分塊的明文hash 值按照Merkle-B+樹(shù)的層次關(guān)系沿著樹(shù)的路徑計(jì)算上層的非葉子結(jié)點(diǎn)的hash 值,并完成樹(shù)的構(gòu)建.然后生成一對(duì)非對(duì)稱(chēng)密鑰RHSK 和RHDK,用RHSK 加密Merkle-B+樹(shù)的根哈希值.形成最終的Merkle-B+樹(shù)上傳到SS.

        ③上傳用戶(hù)用自己的UEK 去加密FSK、RHSK,然后將加密后的FSK、RHSK 的密文以及RHDK 的明文上傳到SS.

        (2)讀取文件.讀取文件的流程如下:

        ①?gòu)腟S 處獲得加密后的FSK 密文以及RHDK明文,同時(shí)獲得Merkle-B+樹(shù).用自己的UDK 解密FSK.用FSK 解密Merkle-B+樹(shù)葉子節(jié)點(diǎn)上的分塊文件密文,從而獲得文件明文.

        ②為了驗(yàn)證文件是否被篡改過(guò).需要進(jìn)行完整性檢查.對(duì)每個(gè)文件塊明文求hash 值,然后按照樹(shù)的結(jié)點(diǎn)路徑層層向上計(jì)算出根hash 值.用RHDK 解密根哈希結(jié)點(diǎn),比較兩者是否一致就可以判斷出是否被篡改過(guò).

        (3)寫(xiě)文件.寫(xiě)文件的流程如下:

        ①執(zhí)行讀文件的過(guò)程.并從SS 處獲取用自己的UEK 加密的RHSK 密文.

        ②在用戶(hù)對(duì)文件進(jìn)行修改后,將被修改的塊用FSK 密鑰加密CTR 數(shù)生成的密鑰來(lái)重新加密被修改的塊,來(lái)完成部分重加密.

        ③然后對(duì)這些塊的明文進(jìn)行hash 計(jì)算,得到新的hash 值,按照結(jié)點(diǎn)的路徑層層向上更新結(jié)點(diǎn)的hash 值.對(duì)根hash 用RHSK 加密后形成新的Merkle-B+樹(shù)上傳到SS.

        (4)分享讀權(quán)限.為了方便敘述,將分享權(quán)限的用戶(hù)稱(chēng)為A,被分享權(quán)限的用戶(hù)稱(chēng)為B.分享讀權(quán)限的流程如下:

        ①用戶(hù)A 從SS 處獲取用A 用戶(hù)的UEK 加密過(guò)的FSK 密鑰和用戶(hù)B 的UEK.

        ②A 用UDK 解密FSK 密文,得到FSK 明文,用用戶(hù)B 的UEK 加密FSK 明文,得到用戶(hù)B 加密的FSK 密鑰的密文.然后上傳到SS.

        (5)分享寫(xiě)權(quán)限.為了方便敘述,將分享權(quán)限的用戶(hù)稱(chēng)為A,被分享權(quán)限的用戶(hù)稱(chēng)為B.分享寫(xiě)權(quán)限的流程如下:

        ①用戶(hù)A 從SS 處獲取用A 的UEK 加密過(guò)的FSK、RHSK 密文以及用戶(hù)B 的UEK.

        ②A 用UDK 解密FSK 密文和RUSK 密文,得到FSK、RHSK 明文,用B 的UEK 加密FSK、RHSK 明文,得到用B 的UEK 加密的FSK、RHSK 密鑰的密文.然后上傳到SS.

        (6)權(quán)限撤銷(xiāo).權(quán)限撤銷(xiāo)的流程如下:

        ①擁有文件所有權(quán)的用戶(hù)向SS 提出撤銷(xiāo)某用戶(hù)的權(quán)限.SS 刪除所有對(duì)應(yīng)得FSK、RHSK、RHDK 以及Merkle-B+樹(shù).

        ②重新執(zhí)行上傳操作.

        ③重新分享給其他用戶(hù)權(quán)限.

        3.6 性能調(diào)優(yōu)

        因?yàn)榭紤]到實(shí)際使用中會(huì)有很多用戶(hù)并發(fā)的訪(fǎng)問(wèn)文件,所以,本系統(tǒng)實(shí)現(xiàn)了一套鎖機(jī)制來(lái)保證并發(fā)安全,支持多線(xiàn)程并發(fā)讀同一個(gè)文件[16].本系統(tǒng)使用惰性重加密、重哈希的方式來(lái)提高性能.比如,當(dāng)對(duì)Merkle-B+樹(shù)進(jìn)行修改時(shí),不會(huì)馬上進(jìn)行重加密和重哈希,而是等到用戶(hù)確認(rèn)上傳或者確認(rèn)保存的時(shí)候才會(huì)進(jìn)行重加密和重哈希,這樣就減小了開(kāi)銷(xiāo).完整性檢查也是惰性的,只有當(dāng)用戶(hù)打開(kāi)文件的時(shí)候才會(huì)進(jìn)行完整性檢查.檢查完畢之后會(huì)修改一個(gè)“是否完整”的標(biāo)記,從而保證完整性檢查是惰性的且只做一次.另外,還有緩存機(jī)制,會(huì)將讀取過(guò)的明文緩存起來(lái),再次讀取的時(shí)候可以從本地的緩存中直接讀取,省去了解密的過(guò)程,降低了系統(tǒng)開(kāi)銷(xiāo).

        3.7 安全性分析

        本系統(tǒng)采用加密的方式來(lái)保證系統(tǒng)的安全性.可以說(shuō)是將系統(tǒng)的安全性委托給加解密的體系.與Corslet對(duì)比來(lái)看,兩個(gè)系統(tǒng)都是對(duì)文件進(jìn)行切分后使用對(duì)稱(chēng)密鑰來(lái)對(duì)文件進(jìn)行加密.Corslet 在分享文件權(quán)限時(shí)依賴(lài)可信第三方,本系統(tǒng)通過(guò)非對(duì)稱(chēng)密鑰體系來(lái)完成相同的功能,而這樣的非對(duì)稱(chēng)加密方式本身就是一種安全性很高、工業(yè)界普遍采用的加密方式.而且兩系統(tǒng)在文件服務(wù)器上存儲(chǔ)的都是文件密文,不易被攻擊.所以,總體來(lái)看,本系統(tǒng)的安全性至少不會(huì)比Corslet 差.

        4 性能測(cè)試實(shí)驗(yàn)

        在實(shí)驗(yàn)部分中,本系統(tǒng)被架設(shè)在網(wǎng)絡(luò)文件系統(tǒng)NFS 上,之所以架設(shè)在網(wǎng)絡(luò)文件系統(tǒng)NFS 上,是因?yàn)镹FS 可以很好的模擬實(shí)際使用場(chǎng)景.在實(shí)際使用中,當(dāng)對(duì)文件執(zhí)行寫(xiě)操作時(shí)需要通過(guò)網(wǎng)絡(luò)將文件發(fā)送到服務(wù)器上,而執(zhí)行讀操作時(shí)也需要通過(guò)網(wǎng)絡(luò)從服務(wù)器處獲取文件.而在NFS 客戶(hù)端上讀寫(xiě)的同時(shí),會(huì)把寫(xiě)的內(nèi)容通過(guò)網(wǎng)絡(luò)發(fā)送到NFS 服務(wù)器上,把需要讀的內(nèi)容通過(guò)網(wǎng)絡(luò)從NFS 服務(wù)器上獲取過(guò)來(lái).所以,NFS 服務(wù)器能很好的模擬實(shí)際情況.之后對(duì)架設(shè)了本系統(tǒng)、架設(shè)了Corslet 系統(tǒng)[12]、沒(méi)有架設(shè)任何系統(tǒng)的NFS 系統(tǒng)進(jìn)行讀寫(xiě)實(shí)驗(yàn),比較三者的讀寫(xiě)耗時(shí)差異.在結(jié)果分析部分對(duì)多種現(xiàn)有的安全存儲(chǔ)系統(tǒng)進(jìn)行綜合比較,并根據(jù)提出各系統(tǒng)的論文中,給出的各系統(tǒng)與未架設(shè)系統(tǒng)的NFS 文件系統(tǒng)上的讀寫(xiě)耗時(shí)差異的結(jié)果,來(lái)進(jìn)行定量的分析.

        4.1 測(cè)試環(huán)境介紹

        文中用2 臺(tái)服務(wù)器來(lái)對(duì)本系統(tǒng)進(jìn)行性能測(cè)試.其中一臺(tái)作為NFS 服務(wù)器,另一臺(tái)作為NFS 客戶(hù)機(jī),分別作為系統(tǒng)的服務(wù)器和客戶(hù)機(jī).其中,服務(wù)器的配置為2 核CPU、2 GB 內(nèi)存,客戶(hù)機(jī)的配置為4 核CPU,4 GB內(nèi)存.兩臺(tái)機(jī)器以局域網(wǎng)連接.在加密算法的選擇上,使用AES-256 作為文件加密的加密算法,以CTR 加密模式作為本系統(tǒng)的AES 加密模式.以RSA-512 算法來(lái)生成RHSK 和RHDK 用來(lái)實(shí)現(xiàn)讀寫(xiě)權(quán)限的區(qū)分.

        4.2 多系統(tǒng)性能比較測(cè)試

        在這部分中實(shí)現(xiàn)了本系統(tǒng)和Corslet 系統(tǒng).比較架設(shè)了本系統(tǒng)的NFS 客戶(hù)端、架設(shè)了Corslet 系統(tǒng)的NFS客戶(hù)端、沒(méi)有架設(shè)任何系統(tǒng)的NFS 客戶(hù)端三者的讀寫(xiě)文件速度.

        4.2.1 大文件多系統(tǒng)性能比較測(cè)試

        這部分中本系統(tǒng)先創(chuàng)建一個(gè)100 MB 的文件[17],然后以讀寫(xiě)模式打開(kāi)此文件,將文件平均分成若干塊,來(lái)生成對(duì)應(yīng)的Merkle-B+樹(shù).而Corslet 也按照相同的分塊粒度來(lái)對(duì)文件進(jìn)行分塊.而未架設(shè)任何系統(tǒng)的NFS 客戶(hù)端則不對(duì)文件分塊.比較多種系統(tǒng)在不同切分方法下,在實(shí)驗(yàn)中表現(xiàn)出來(lái)的從磁盤(pán)上讀取全部文件內(nèi)容明文所消耗的時(shí)間、將全部文件明文轉(zhuǎn)化為密文并向磁盤(pán)寫(xiě)入所消耗的時(shí)間、讀取文件后順序修改部分文件后將新文件重新寫(xiě)入磁盤(pán)所消耗的時(shí)間、讀取文件后隨機(jī)修改部分文件后將新文件重新寫(xiě)入磁盤(pán)所消耗的時(shí)間.實(shí)驗(yàn)中計(jì)量的這4 個(gè)量分別代表了下載文件所消耗的時(shí)間、上傳新文件所消耗的時(shí)間、讀取文件并順序修改部分內(nèi)容所消耗的時(shí)間、讀取文件并隨機(jī)修改部分內(nèi)容所消耗的時(shí)間.將文件分為800 塊、160 塊的實(shí)驗(yàn)結(jié)果如圖4、圖5所示.

        圖4 大文件分800 塊的多系統(tǒng)各操作開(kāi)銷(xiāo)比較圖

        圖5 大文件分160 塊的多系統(tǒng)各操作開(kāi)銷(xiāo)比較圖

        可以看出與沒(méi)有架設(shè)任何系統(tǒng)的NFS 相比,無(wú)論是架設(shè)了Corslet 還是架設(shè)了本系統(tǒng),在讀取、寫(xiě)入、修改文件上增加的時(shí)間開(kāi)銷(xiāo)都不大.這證明本系統(tǒng)和Corslet 系統(tǒng)都是在大文件讀寫(xiě)環(huán)境下開(kāi)銷(xiāo)較小的系統(tǒng).而在寫(xiě)入和修改操作上本系統(tǒng)相比Corslet 系統(tǒng)所消耗的時(shí)間的略少的原因是Corslet 系統(tǒng)以文件塊的hash 值作為文件塊的加密密鑰.所以,在將文本轉(zhuǎn)化為Corslet 中的鎖盒子結(jié)構(gòu)[4]時(shí),為了能夠把密鑰安全的存儲(chǔ)在不可信任的環(huán)境下,需要對(duì)所有文件塊的hash 值,即密鑰都進(jìn)行加密.而本系統(tǒng)一個(gè)文件只生成一個(gè)FSK 密鑰,也只需要對(duì)FSK 進(jìn)行一次加密.而求hash 值的動(dòng)作兩者都有,這部分開(kāi)銷(xiāo)基本一致.所以,在寫(xiě)入上,因?yàn)楸鞠到y(tǒng)的密鑰加密次數(shù)相對(duì)較少,所以速度略快.而在修改上,也是因?yàn)镃orslet 系統(tǒng)的密鑰是由文件塊的hash 值來(lái)充當(dāng)?shù)?所以,當(dāng)一個(gè)文件塊發(fā)生修改就需要修改密鑰,而這樣的動(dòng)作又需要對(duì)新hash 值,即新密鑰值,進(jìn)行加密.因?yàn)榧用艽螖?shù)較多,所以開(kāi)銷(xiāo)更大,所消耗時(shí)間稍多.

        從產(chǎn)生的密鑰數(shù)的角度看,Corslet 系統(tǒng)每個(gè)文件塊都會(huì)求hash 值,并以這個(gè)hash 值作為密鑰,而且這個(gè)密鑰需要加密后存儲(chǔ)在不可信任環(huán)境下,這樣一個(gè)文件就會(huì)產(chǎn)生多個(gè)密鑰,這樣多的密鑰不僅僅會(huì)像上面說(shuō)的那樣,讓讀寫(xiě)變慢.而且管理它們的成本也很高.而本系統(tǒng)整個(gè)文件只會(huì)產(chǎn)生一個(gè)密鑰,用同一個(gè)密鑰來(lái)對(duì)每個(gè)文件塊來(lái)進(jìn)行加解密.這樣本系統(tǒng)在密鑰所需的空間上是占一定優(yōu)勢(shì)的,而且密鑰數(shù)量更少就意味著更小的管理開(kāi)銷(xiāo)和使用成本.

        另外,可以看到無(wú)論是本系統(tǒng)還是Corslet 系統(tǒng)隨機(jī)寫(xiě)入所消耗的時(shí)間相比順序?qū)懭攵驾^多一些.這是因?yàn)殡S機(jī)寫(xiě)入比順序?qū)懭霑?huì)涉及更多的文件塊,兩個(gè)系統(tǒng)都需要對(duì)更多的文件塊進(jìn)行重加密、重哈希,所以所消耗的時(shí)間略長(zhǎng).另外,從按照800 塊進(jìn)行劃分和按照160 塊進(jìn)行劃分的實(shí)驗(yàn)結(jié)果可以看出,劃分的塊數(shù)越多,在修改時(shí)表現(xiàn)的性能越好,因?yàn)槊總€(gè)塊更小,重加密和重哈希的開(kāi)銷(xiāo)也更小.而且還可以看出分塊數(shù)量越少,那么在上傳和下載文件上的耗時(shí)和未架設(shè)安全存儲(chǔ)系統(tǒng)的NFS 文件系統(tǒng)相比差別越小.這是因?yàn)榉謮K數(shù)量越多,那么Merkle-B+樹(shù)的結(jié)點(diǎn)也越多,構(gòu)建和讀取這樣一棵樹(shù)的開(kāi)銷(xiāo)也更多.所以,對(duì)文件的切分越細(xì),分成越多塊,文件上傳和下載所附加的額外開(kāi)銷(xiāo)就越大,而文件在修改時(shí)所需要的額外開(kāi)銷(xiāo)就越小.所以,用戶(hù)可以根據(jù)實(shí)際情況,調(diào)節(jié)分塊數(shù)量來(lái)滿(mǎn)足自己的特異性需求.

        4.2.2 小文件多系統(tǒng)性能比較測(cè)試

        這部分中本系統(tǒng)創(chuàng)建一個(gè)20 KB 的文件,然后以讀寫(xiě)模式打開(kāi)此文件,按照和大文件一樣的實(shí)驗(yàn)方法進(jìn)行實(shí)驗(yàn),結(jié)果如圖6、圖7所示.

        圖6 小文件分160 塊的多系統(tǒng)各操作開(kāi)銷(xiāo)比較圖

        圖7 大文件分800 塊的多系統(tǒng)各操作開(kāi)銷(xiāo)比較圖

        可以看出在小文件環(huán)境下,無(wú)論是本系統(tǒng)還是Corslet 的開(kāi)銷(xiāo)都是較大的.這主要是因?yàn)楸鞠到y(tǒng)在構(gòu)建Merkle-B+樹(shù)時(shí)需要添加CTR 數(shù)等信息,而添加的這些信息所帶來(lái)的開(kāi)銷(xiāo)與分塊個(gè)數(shù)有關(guān)而與文件大小無(wú)關(guān)的.所以,在大文件的情況下這些開(kāi)銷(xiāo)相對(duì)文件讀寫(xiě)而言很小.在這樣的分塊多但是文件小的場(chǎng)景下,這部分開(kāi)銷(xiāo)相對(duì)來(lái)說(shuō)占比較大.表現(xiàn)為圖中的讀寫(xiě)所花費(fèi)時(shí)間高于沒(méi)有架設(shè)任何系統(tǒng)的NFS 系統(tǒng).另外,可以看到在修改操作下,本系統(tǒng)相對(duì)沒(méi)有架設(shè)任何系統(tǒng)的NFS 客戶(hù)端所花費(fèi)的開(kāi)銷(xiāo)多較多.這主要是因?yàn)樵谛薷暮笮枰匦掠?jì)算hash 值,而重新計(jì)算hash 值的開(kāi)銷(xiāo)也是與塊數(shù)量有關(guān)的,在這樣多分塊但是文件較小的場(chǎng)景下,這部分開(kāi)銷(xiāo)占比較大.再加上本身修改操作包含寫(xiě)操作,所以額外花費(fèi)的開(kāi)銷(xiāo)相對(duì)單純寫(xiě)操作來(lái)說(shuō)更大.

        針對(duì)這種情況,可以采用添加緩存機(jī)制來(lái)進(jìn)行優(yōu)化.當(dāng)一個(gè)文件不是第一次被讀取時(shí),可以直接從緩存中讀取該文件的內(nèi)容,而不需要再?gòu)拇疟P(pán)上讀取,也不需要再進(jìn)行密文的解密.這樣可以降低開(kāi)銷(xiāo),提高讀寫(xiě)效率.

        另外,可以看出在小文件下按照800 塊進(jìn)行劃分和按照160 塊進(jìn)行劃分最終消耗的時(shí)間差別不大.這是因?yàn)樾∥募闆r下本身構(gòu)建Merkle-B+樹(shù)和加解密的開(kāi)銷(xiāo)的占比就較大,雖然劃分更細(xì)會(huì)給修改操作帶來(lái)了性能上的提升,會(huì)讓上傳和下載操作的性能降低,但是相對(duì)于本身占比就較大的Merkle-B+樹(shù)的構(gòu)建開(kāi)銷(xiāo)和加解密開(kāi)銷(xiāo),這樣的性能變化對(duì)于整體來(lái)說(shuō)并不明顯.

        4.3 結(jié)果分析

        本系統(tǒng)和其他經(jīng)典安全存儲(chǔ)系統(tǒng)的比較如表2所示.同時(shí)本文還通過(guò)比較安全存儲(chǔ)系統(tǒng)架設(shè)在NFS 文件系統(tǒng)前后,讀寫(xiě)性能下降的程度作為量化比較安全存儲(chǔ)系統(tǒng)加密開(kāi)銷(xiāo)的依據(jù).

        表2 安全存儲(chǔ)系統(tǒng)相關(guān)工作對(duì)比

        SiRiUS 系統(tǒng)對(duì)文件加密使用的密鑰是非對(duì)稱(chēng)密鑰,這樣就導(dǎo)致該系統(tǒng)的加解密速度較慢,而且該系統(tǒng)的加密粒度是文件級(jí)的,這樣對(duì)文件的一點(diǎn)局部修改就需要對(duì)整個(gè)文件全部進(jìn)行重加密,開(kāi)銷(xiāo)較大.所以最終該系統(tǒng)整體讀寫(xiě)性能表現(xiàn)得較差.由提出SiRIUS 的文獻(xiàn)[13]的實(shí)驗(yàn)結(jié)果可知,SiRiUS 部署在NFS 文件系統(tǒng)上之后與未部署前相比性能下降約80%.

        Plutus 系統(tǒng)采用共享密鑰的方式來(lái)進(jìn)行密鑰分發(fā).當(dāng)其他用戶(hù)想要獲得文件的訪(fǎng)問(wèn)權(quán)限時(shí),需要向文件擁有者申請(qǐng),此時(shí)要求文件擁有者必須在線(xiàn),并在線(xiàn)的將文件密鑰分享給其他用戶(hù).這樣的分享機(jī)制比較低效,它要求用戶(hù)必須實(shí)時(shí)在線(xiàn)才能完成密鑰分發(fā).這就導(dǎo)致用戶(hù)的使用門(mén)檻和管理成本增加,不具有易用性.

        Corslet 系統(tǒng)使用對(duì)稱(chēng)密鑰來(lái)加解密文件.文件按照文件塊粒度進(jìn)行分割來(lái)實(shí)現(xiàn)部分重加密機(jī)制.這都使得Corslet 的讀寫(xiě)速度較快.但是Corslet 也存在需要可信第三方的問(wèn)題,這使得Corslet 的運(yùn)營(yíng)和管理成本較高.另外,Corslet 以文件塊的hash 值作為密鑰,雖然這樣的做法可以將完整性檢查和密鑰統(tǒng)一起來(lái),但是這就意味著一個(gè)文件會(huì)有文件塊數(shù)量個(gè)數(shù)的密鑰,密鑰數(shù)量的增大必然導(dǎo)致管理成本的增加,而且也意味著更大的空間開(kāi)銷(xiāo).從提出Corslet 系統(tǒng)的論文的實(shí)驗(yàn)結(jié)果可知,將Corslet 部署在NFS 文件系統(tǒng)上之后大約讀寫(xiě)性能下降5%.

        Plutus 的創(chuàng)新在于系統(tǒng)實(shí)現(xiàn)了一些前人未曾實(shí)現(xiàn)的功能,但在性能上的表現(xiàn)不夠出色.從性能比較上看,本系統(tǒng)在性能上有明顯優(yōu)勢(shì).因?yàn)镻lutus 對(duì)文件都是全文加密的,所以重加密和重哈希的開(kāi)銷(xiāo)很大.而且Plutus 的文件分享要求文件擁有者必須長(zhǎng)期在線(xiàn).所以,從性能的角度和易用性角度來(lái)看,本系統(tǒng)有明顯優(yōu)勢(shì).

        從實(shí)驗(yàn)結(jié)果來(lái)看,本系統(tǒng)在文件的上傳、下載、修改上表現(xiàn)出來(lái)的性能與Corslet 相當(dāng),同樣是與沒(méi)有架設(shè)系統(tǒng)時(shí)相比讀寫(xiě)性能下降大約5%.而且不需要像Corslet 那樣依賴(lài)可信第三方的介入,具有不依賴(lài)可信第三方的簡(jiǎn)單性和易用性.而與SiRiUS 系統(tǒng)相比,SiRiUS 系統(tǒng)部署在NFS 文件系統(tǒng)后,NFS 文件系統(tǒng)性能下降約80%,而本系統(tǒng)僅下降約5%,所以本系統(tǒng)在讀寫(xiě)性能上有較大優(yōu)勢(shì).故本系統(tǒng)是一種既實(shí)現(xiàn)高效的加解密又不需要依賴(lài)可信第三方的安全存儲(chǔ)系統(tǒng).與其他的安全存儲(chǔ)系統(tǒng)相比,在使用成本、簡(jiǎn)單性、文件加解密的開(kāi)銷(xiāo)上有較大優(yōu)勢(shì).

        相對(duì)于其他的安全存儲(chǔ)系統(tǒng)來(lái)說(shuō),本系統(tǒng)在不需要可信第三方的情況下,使文件發(fā)生修改后不需要對(duì)全文進(jìn)行重加密和重哈希,而只需要對(duì)修改的部分文件塊進(jìn)行重加密和重哈希,將重加密的開(kāi)銷(xiāo)大大降低,而重哈希也只需要對(duì)修改塊進(jìn)行重哈希計(jì)算,并沿著Merkle-B+樹(shù)到根節(jié)點(diǎn)的路徑重新計(jì)算哈希,將重哈希的復(fù)雜度從O(n)降低到O(logn).而且以一個(gè)對(duì)稱(chēng)密鑰作為文件加解密密鑰,一方面相對(duì)非對(duì)稱(chēng)密鑰來(lái)說(shuō)這樣做文件的加解密速度更快.另一方面這樣讓一個(gè)文件只有一個(gè)密鑰,也避免了密鑰數(shù)量的膨脹.再者,也不需要像Corslet 那樣修改文件內(nèi)容后需要再修改密鑰,使得在一次文件修改后需要隨之變化的內(nèi)容盡可能少.所以本系統(tǒng)能在表現(xiàn)出速度上的高效的同時(shí),也不會(huì)帶來(lái)太多的空間開(kāi)銷(xiāo).而這些設(shè)計(jì)都讓本系統(tǒng)在大文件場(chǎng)景下取得較好的結(jié)果.特別在大文件頻繁修改場(chǎng)景下,表現(xiàn)出來(lái)的性能更好.

        而本系統(tǒng)也進(jìn)行了一些工程上的優(yōu)化,包括鎖機(jī)制、懶加載、緩存機(jī)制等,以此來(lái)降低在小文件場(chǎng)景下的開(kāi)銷(xiāo).綜合來(lái)看,本系統(tǒng)是可以保證用戶(hù)信息安全,而且還能夠表現(xiàn)出高性能的高效系統(tǒng).

        5 結(jié)論與展望

        文中提出一種新的安全云存儲(chǔ)系統(tǒng)架構(gòu),確保用戶(hù)可以安全的將數(shù)據(jù)存儲(chǔ)在不信任的環(huán)境下,而且由于額外存儲(chǔ)的密鑰較少,所以不會(huì)帶來(lái)太大的空間開(kāi)銷(xiāo).而且本系統(tǒng)具有很好的擴(kuò)展性,可以直接架設(shè)在文件系統(tǒng)之上,使用簡(jiǎn)單,對(duì)用戶(hù)透明,用戶(hù)可以很方便的使用該系統(tǒng).此外,本系統(tǒng)不依賴(lài)可信第三方,降低了系統(tǒng)的使用和管理門(mén)檻.另外,本系統(tǒng)還提供了豐富、高效的安全機(jī)制,包括私密性保護(hù)、完整性保護(hù)、文件訪(fǎng)問(wèn)控制等.通過(guò)非對(duì)稱(chēng)密鑰的分發(fā)實(shí)現(xiàn)了讀寫(xiě)權(quán)限的分離,實(shí)現(xiàn)了更加精細(xì)的訪(fǎng)問(wèn)控制.通過(guò)Merkle-B+樹(shù)的設(shè)計(jì)實(shí)現(xiàn)了修改文件時(shí)的輕量級(jí)重哈希和重加密,讓系統(tǒng)表現(xiàn)出較好的性能.實(shí)驗(yàn)結(jié)果表明,架設(shè)了本系統(tǒng)的NFS 系統(tǒng)相對(duì)于沒(méi)有架設(shè)本系統(tǒng)的NFS 系統(tǒng)讀寫(xiě)性能下降約5%.總的來(lái)說(shuō),本系統(tǒng)是可以保證用戶(hù)信息安全,而且還能夠表現(xiàn)出高性能的高效系統(tǒng).

        未來(lái)將進(jìn)一步擴(kuò)充高效實(shí)現(xiàn)安全存儲(chǔ)系統(tǒng)如文件去重、密文搜索等其他功能的方法.

        猜你喜歡
        用戶(hù)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        關(guān)注用戶(hù)
        Camera360:拍出5億用戶(hù)
        国产午夜福利片在线观看| 亚洲国产精品第一区二区三区 | 中文字幕有码久久高清| 亚洲精品乱码久久久久蜜桃| 男女性高爱潮免费网站| 久久综合亚洲色社区| 成人性生交大片免费看i| 狠狠综合久久av一区二区蜜桃 | 一区二区三区四区中文字幕av | 人妻 偷拍 无码 中文字幕| 无码国产精品一区二区vr老人| 国产v精品成人免费视频400条| 国产一区三区二区视频在线观看| 欧美激情肉欲高潮视频| 久久精品无码中文字幕 | 97超碰国产一区二区三区| 伊人情人色综合网站| 99香蕉国产精品偷在线观看| 欧美刺激午夜性久久久久久久| 美女射精视频在线观看| 亚洲欧美综合精品成人网站| 色翁荡息又大又硬又粗又视频图片 | 狠狠躁夜夜躁AV网站中文字幕| 亚洲一区二区三区毛片| 亚洲av中文无码字幕色本草| 妓院一钑片免看黄大片| 亚洲国产精品无码久久九九大片健| 美女与黑人巨大进入免费观看| 国产一区二区三区乱码| 狠狠色狠狠色综合| 粗一硬一长一进一爽一a视频| 西川结衣中文字幕在线| 色播久久人人爽人人爽人人片av| 高清国产亚洲va精品| 国产69精品麻豆久久| 人妻色综合网站| 一级做a爰片久久毛片| 国产av三级精品车模| 国产免费又爽又色又粗视频| 免费做爰猛烈吃奶摸视频在线观看| 亚洲综合色婷婷七月丁香|