1 簡(jiǎn)介
云計(jì)算提供了各式各樣的服務(wù)和接口,云服務(wù)供應(yīng)商通過這些部署于自己物理機(jī)器上的服務(wù)和接口,為用戶提供各種服務(wù),用戶可以用低廉的費(fèi)用使用服務(wù)和接口,而不需要投人大量的資金創(chuàng)建并維護(hù)IT基礎(chǔ)設(shè)施,因此云計(jì)算被認(rèn)為是一種合作共贏的模式。
云存儲(chǔ)用戶通過支付一定的費(fèi)用,可以將數(shù)據(jù)信息與數(shù)據(jù)文檔存儲(chǔ)到云平臺(tái)上,由專業(yè)的大容量的云存儲(chǔ)系統(tǒng)負(fù)責(zé)管理與提供信息讀取服務(wù),從而節(jié)省建立和維護(hù)私有存儲(chǔ)設(shè)施的成本,由于云存儲(chǔ)服務(wù)由專業(yè)的公司提供,且在服務(wù)水平協(xié)議SLA(service level agreement)中明確規(guī)定了不低于99,9%的可用時(shí)間,數(shù)據(jù)同時(shí)在多個(gè)數(shù)據(jù)中心進(jìn)行備份,因而,云存儲(chǔ)服務(wù)為企業(yè)提供了一個(gè)開銷費(fèi)用低,數(shù)據(jù)的可用性和可靠性高的服務(wù)機(jī)制。
雖然使用云存儲(chǔ)服務(wù)可以為企業(yè)節(jié)約開銷,提高可用性及可靠性,但是,企業(yè)對(duì)其存儲(chǔ)于云端數(shù)據(jù)的機(jī)密性與完整性卻心存疑慮,如果要將許多機(jī)密信息,比如醫(yī)院病人醫(yī)療數(shù)據(jù)、銀行與金融機(jī)構(gòu)中賬戶信息存儲(chǔ)于云存儲(chǔ)平臺(tái)上,必須保證第三方平臺(tái)可信、數(shù)據(jù)傳輸安全以及訪問權(quán)限控制,事實(shí)上,企業(yè)使用云存儲(chǔ)最大的障礙是對(duì)數(shù)據(jù)機(jī)密性和完整性的考慮,如果不能解決機(jī)密性和完整性的問題,即使云存儲(chǔ)有巨大的潛力,很多潛在的用戶還是不愿意把數(shù)據(jù)向云平臺(tái)進(jìn)行轉(zhuǎn)移。
為了解決這些問題,使得企業(yè)用戶能夠安全地使用云存儲(chǔ)平臺(tái),需要提供一個(gè)適用于云存儲(chǔ)的安全架構(gòu),該安全架構(gòu)應(yīng)能實(shí)現(xiàn)以下目標(biāo):
1)機(jī)密性:除了企業(yè)用戶本身以及用戶所授權(quán)的信任的合作伙伴,其他任何人是無(wú)法得知其數(shù)據(jù)的;
2)完整性:任何未經(jīng)授權(quán)的數(shù)據(jù)改動(dòng)都必須記錄下來(lái),告知用戶;
3)有效加密檢索:企業(yè)用戶的數(shù)據(jù)量往往是相當(dāng)大的,所以如何在加密的情況下快速地搜索到相關(guān)數(shù)據(jù)是極其重要的;
4)數(shù)據(jù)共享:用戶之間可以共享數(shù)據(jù)。
本文在分析了企業(yè)用戶在云上的機(jī)密性、有效的檢索以及數(shù)據(jù)共享等需求的基礎(chǔ)上,采用密文規(guī)則的基于屬性加密技術(shù)(ciphertext policy attribute based encryption ,CP-ABE)對(duì)企業(yè)機(jī)密數(shù)據(jù)加密并存儲(chǔ)于云端;針對(duì)數(shù)據(jù)共享與機(jī)密數(shù)據(jù)檢索問題,提出了索引關(guān)鍵詞加密的密文檢索技術(shù),在此基礎(chǔ)上設(shè)計(jì)了一套設(shè)置在企業(yè)端的私有安全架構(gòu),基于Linux平臺(tái)與Eucalyptus云,開發(fā)設(shè)計(jì)了該安全架構(gòu)的大部分服務(wù)模塊,該安全架構(gòu)較好地解決了企業(yè)數(shù)據(jù)云存儲(chǔ)的機(jī)密性、提供了基于屬性策略的數(shù)據(jù)訪問控制和基于加密關(guān)鍵詞的檢索方法。
2 相關(guān)工作
云存儲(chǔ)的安全性涉及密文訪問控制、密文檢索,圍繞這兩個(gè)問題很多公司和研究機(jī)構(gòu)都進(jìn)行了廣泛的研究,并取得了一定的進(jìn)展。
2.1 密文訪問控制
最初的密文訪問控制,數(shù)據(jù)屬主以不同的密鑰逐個(gè)加密數(shù)據(jù)文件,并通過特定的管道將密鑰分發(fā)給用戶,為了減小分發(fā)的代價(jià),Goh等人提出以各用戶公鑰加密數(shù)據(jù)密鑰,并將加密后的密鑰存儲(chǔ)于服務(wù)器端,用戶訪問服務(wù)器并用自己的私鑰解密后,獲取數(shù)據(jù)密鑰,該方法存在問題是,服務(wù)器需要維護(hù)大量的數(shù)據(jù)密鑰信息。
Damiani等人提出的層次訪問的控制方法(HAC),減少了服務(wù)器維護(hù)的數(shù)據(jù)密鑰數(shù)量,用戶可以通過私人密鑰以及公開的信息表(token)推導(dǎo)出需要的數(shù)據(jù)密鑰,但是,token表的數(shù)據(jù)結(jié)構(gòu)復(fù)雜,且需要由數(shù)據(jù)屬主維護(hù),因此并不適用于云存儲(chǔ)。
Vimercati SDC等人提出的代理重加密技術(shù)認(rèn)為云存儲(chǔ)服務(wù)器是部分可信(honest but curious)的,只要不將明文數(shù)據(jù)暴露給服務(wù)器端,則認(rèn)為服務(wù)器行為都是可信的,數(shù)據(jù)屬主需根據(jù)用戶信息生成一個(gè)代理重加密密鑰,隨后將密鑰上傳給服務(wù)器,最終服務(wù)器使用該密鑰對(duì)密文數(shù)據(jù)進(jìn)行二次加密,生成只有指定用戶才能解密的密文數(shù)據(jù),但是云存儲(chǔ)服務(wù)器部分可信這一前提仍然值得懷疑,如果服務(wù)商和第三方串通,數(shù)據(jù)機(jī)密性還是難以保證。
2. 2密文檢索
密文檢索包括基于安全索引與基于密文掃描兩種典型的方法,基于安全索引的方法首先為密文關(guān)鍵詞建立安全索引,接著在安全索引中檢索索引關(guān)鍵詞是否存在;基于密文掃描的方法是通過對(duì)密文中每個(gè)單詞進(jìn)行比對(duì),確認(rèn)關(guān)鍵詞是否存在。
IBM研究員Gentry提出全同態(tài)加密(fully homomorphicencryption)算法,基于全同態(tài)加密的檢索方法,首先采用全同態(tài)方法對(duì)文檔進(jìn)行加密并建立索引,然后評(píng)估檢索出的信息與待查信息之間的相關(guān)度,并對(duì)檢索詞詞頻和倒排文檔頻率進(jìn)行統(tǒng)計(jì),最后將加密文檔與索引項(xiàng)密文一起上傳到服務(wù)器端,找到相關(guān)結(jié)果,通過全同態(tài)加密算法加密的明文數(shù)據(jù)可以在不恢復(fù)明文信息的情況下檢索出來(lái),這樣既隱藏了用戶的數(shù)據(jù),又提高了檢索性能,雖然該方法在理論上取得了一定突破,但因?yàn)樗惴◤?fù)雜度較高而導(dǎo)致效率低下,目前離實(shí)用化仍有很長(zhǎng)的距離。
3 存儲(chǔ)架構(gòu)
3.1 存儲(chǔ)架構(gòu)組成
圖1是典型的公司數(shù)據(jù)存儲(chǔ)與密文全文檢索應(yīng)用模型,在該應(yīng)用模型中,包含兩個(gè)參與者與一個(gè)專用服務(wù)器。
1)第一個(gè)參與者是公司,公司將數(shù)據(jù)資源存放在云上,公司內(nèi)部包含若干員工以及一組專用的服務(wù)器。
2)第二個(gè)參與者是云存儲(chǔ)服務(wù)商,它負(fù)責(zé)存儲(chǔ)公司的數(shù)據(jù)資源以及索引文件。
3)專用服務(wù)器,專用服務(wù)器主要有如下幾個(gè)作用:a)頒發(fā)用于訪問控制的證書;b)為上傳全文明文文本數(shù)據(jù)建立全文索引,并對(duì)索引中的關(guān)鍵詞加密;c)將提交數(shù)據(jù)文檔資源的按照屬性控制策略進(jìn)行加密;d)將提交的查找關(guān)鍵詞進(jìn)行加密處理;e)在增加、刪除和更新數(shù)據(jù)時(shí),修改訪問控制權(quán)限以及存儲(chǔ)在云上的索引表,下文為敘述方便,簡(jiǎn)稱專用服務(wù)器為服務(wù)器。
圖1 數(shù)據(jù)加密與密文全文檢索存儲(chǔ)模型
3.2數(shù)據(jù)加密與檢索的過程
3.2.1數(shù)據(jù)加密與索引文件建立
公司的每個(gè)員工都擁有專用服務(wù)器頒發(fā)的證書,這些證書反映了員工的相關(guān)屬性信息,每當(dāng)員工需要將數(shù)據(jù)上傳至云存儲(chǔ)平臺(tái),需將數(shù)據(jù)連同指定了哪類證書可以解密數(shù)據(jù)的解密策略提交給專用服務(wù)器進(jìn)行處理,為了保證數(shù)據(jù)的機(jī)密性,用戶存儲(chǔ)的數(shù)據(jù)是已加密的,同時(shí),公司的員工需要對(duì)大量的數(shù)據(jù)進(jìn)行檢索,那么就需要專用服務(wù)器先對(duì)數(shù)據(jù)文檔明文建立索引,再將索引表中的關(guān)鍵詞進(jìn)行加密,然后把加密后的密文以及索引文件上傳至云存儲(chǔ)平臺(tái),這樣云存儲(chǔ)服務(wù)商便無(wú)法得知查詢關(guān)鍵詞與存儲(chǔ)文件的具體內(nèi)容。
3.2.2基于密文屬性的文件檢索
如果某一員工需要檢索云存儲(chǔ)平臺(tái)上的數(shù)據(jù),他必須將自己查找的關(guān)鍵詞發(fā)給專用服務(wù)器,之后,該員工得到經(jīng)過加密處理的關(guān)鍵詞,這樣,再把這個(gè)經(jīng)過處理的關(guān)鍵詞提交給云存儲(chǔ)提供商進(jìn)行檢索,就可以找到并或得適當(dāng)?shù)募用芪募,最終,員工利用自己的證書進(jìn)行解密。
4 數(shù)據(jù)加密與密文檢索
在圖1的存儲(chǔ)架構(gòu)中,主體公司需要把數(shù)據(jù)資源加密并建立索引、查找并解密,在這個(gè)過程中,用到了兩個(gè)關(guān)鍵技術(shù)。
4.1密文訪問控制
在傳統(tǒng)的非對(duì)稱加密算法中,只能由一把私鑰解密公鑰加密后的密文數(shù)據(jù),這樣,沒有辦法做到密文數(shù)據(jù)在企業(yè)內(nèi)部的共享,本文參考了由Bethencourt等人提出的密文規(guī)則的基于屬性加密方案(CP-ABE),這一方案的基本思想是:密文與私鑰分別關(guān)聯(lián)著屬性集S和S',當(dāng)屬性集S與S‘相交的屬性個(gè)數(shù)至少為k時(shí),包含屬性集S‘的私鑰才能解密包含屬性集s的密文,由于CP-ABE的訪問控制策略是由數(shù)據(jù)屬主指定的,且隱含于密文之中,這樣,采用該方案對(duì)數(shù)據(jù)加密后,就確定了哪些策略能解密并訪問密文數(shù)據(jù),這一特性恰好滿足了本文數(shù)據(jù)加密與密文全文檢索存儲(chǔ)模型中證書的要求,當(dāng)一個(gè)企業(yè)用戶提交數(shù)據(jù)后,其他企業(yè)內(nèi)相關(guān)用戶也能依據(jù)權(quán)限訪問數(shù)據(jù)。
Bethencourt等人提出的CP-ABE采用非對(duì)稱密鑰對(duì)數(shù)據(jù)進(jìn)行加密,效率過低,難以應(yīng)用于大量數(shù)據(jù)的加密,因此,本文采用一種混合加密機(jī)制,對(duì)其加以改造,服務(wù)器首先隨機(jī)產(chǎn)生一個(gè)密鑰K,然后用K對(duì)數(shù)據(jù)進(jìn)行對(duì)稱加密,最后將密鑰K用CP-ABE非對(duì)稱加密,從而提高了該算法的效率。
4. 2密文檢索
圖2 密文檢索流程圖
本文提出基于加密關(guān)鍵詞的全文檢索方法:首先,將要上傳的明文數(shù)據(jù)隨同加密屬性集提交至專用服務(wù)器;專用服務(wù)器將明文數(shù)據(jù)逐個(gè)分詞,然后將分詞后得到的關(guān)鍵詞以加密的方式寫人索引文件,索引文件中記錄了加密關(guān)鍵詞、該關(guān)鍵詞在明文中的位置以及一些其它元數(shù)據(jù);專用服務(wù)器將這一組數(shù)據(jù)按照加密屬性集進(jìn)行加密,并上傳至云存儲(chǔ)平臺(tái);最后,由于檢索是在索引文件而不是在加密過的密文中查找關(guān)鍵詞,故以同樣的加密的方式將檢索詞加密,將加密過的檢索詞同索引文件中的關(guān)鍵詞進(jìn)行匹配,如果匹配成功,就可以找到加密過的密文,將其下載至本地之后,如果有相應(yīng)的權(quán)限解密的話,即用戶屬性滿足數(shù)據(jù)文檔屬性策略,便可以得到明文,具體查詢過程如圖2所示。
5 服務(wù)實(shí)現(xiàn)與應(yīng)用結(jié)果分析
5.1數(shù)據(jù)上傳服務(wù)
5.1.1明文及訪問策略提交
BooLEAN Submit-Up (File,ATTR)Submit-Up方法置于各個(gè)員工客戶端,該方法應(yīng)用于各員工提交明文數(shù)據(jù)及訪問策略至服務(wù)器,如果提交成功則返回True,否則返回False,在該方法中,F(xiàn)ile表示員工提交的明文數(shù)據(jù),ATTR表示能夠查看該數(shù)據(jù)的訪問策略的邏輯表達(dá)式列表。
5.1.2建立全文索引并對(duì)關(guān)鍵詞加密
Index CreateIndex(File,Path)
CreateIndex方法以及后續(xù)上傳服務(wù)中的方法皆位于服務(wù)器端,該方法先將員工上傳的明文數(shù)據(jù)建立全文索引文件,然后對(duì)全文搜索關(guān)鍵詞加密,最后將索引文件臨時(shí)存放到相應(yīng)的路徑,在該方法中,F(xiàn)ile表示由員工提交上來(lái)的明文數(shù)據(jù),Path表示臨時(shí)存放索引文件的位置,返回的Index表示生成的索引文件。
為了將加密的全文搜索關(guān)鍵詞寫到索引文件中,本文基于Lucene全文檢索的搜索引擎,對(duì)其源碼加以改寫,在Lu-cene的分詞器Analyzer執(zhí)行完分詞過程之后,將分詞得到的明文加密,再傳給寫索引器IndexWriter,最終存人索引文件中。
5.1.3初始化數(shù)據(jù)加密
Keypair Setup()
如果服務(wù)器第一次對(duì)某個(gè)明文數(shù)據(jù)進(jìn)行加密,需要調(diào)用Setup方法做初始化設(shè)置,以產(chǎn)生公共參數(shù)PK以及主密鑰MK,設(shè)置完成后,返回包含PK}MK值的Keypair對(duì)象。
5.1.4使用主密鑰產(chǎn)生各員工證書
SK KeyGen(MK,ATTR)
KeyGen方法在服務(wù)器管理員輸人主密鑰以及各員工的屬性集,為各員工創(chuàng)建各自的證書時(shí)使用,其中,MK表示加密的主密鑰,ATTR表示各員工的屬性集,SK表示包含解密策略ATTR的員工證書。
5.1.5按照提交的訪問策略加密明文
CFile Encrypt(PK,F(xiàn)ile,ATTR)Encrypt方法在每次加密時(shí)都需要使用的,在輸人公共參數(shù)PK,待加密明文File,以及訪問策略ATTR后,返回密文,密文只能由那些滿足策略ATTR的用戶解密,其中,PK表示加密的公共參數(shù),F(xiàn)ile表示帶加密明文數(shù)據(jù),ATTR表示訪問策略,返回的CFile表示密文數(shù)據(jù)。
5.1.6上傳密文及索引
UplOAd(CFile,Index)
Upload方法的作用是將索引文件及密文數(shù)據(jù)通過云存儲(chǔ)服務(wù)商提供的專用接口上傳至云平臺(tái),其中,CFile表示經(jīng)由Encrypt方法加密的密文數(shù)據(jù),Index表示由CreateIndex方法建立的關(guān)鍵詞加密的全文索引文件。
5. 2數(shù)據(jù)下載服務(wù)
5.2.1提交查找關(guān)鍵詞
BooLEAN Submit-Down(Keyword)
Submit-Down方法應(yīng)用于企業(yè)員工需要檢索云存儲(chǔ)平臺(tái)的數(shù)據(jù)時(shí),員工首先提交檢索關(guān)鍵詞至服務(wù)器,如果提交成功返回,True,否則返回False.Keyword表示員工查詢數(shù)據(jù)時(shí)提交的查找關(guān)鍵詞。
5.2.2加密檢索關(guān)鍵詞
CKeyword EncryptKeyword(Keyword)
EncryptKeyword方法位于服務(wù)器端,使用同當(dāng)初加密關(guān)鍵詞一致的單向加密算法對(duì)檢索關(guān)鍵詞進(jìn)行加密,其中,CK-Byword表示服務(wù)器將員工提交的查找關(guān)鍵詞加密后返回的密文查找關(guān)鍵詞。
5.2.3返回包含查找關(guān)鍵詞的所有文件
Result Download(CKeyword)
Download方法調(diào)用Lucene中的讀索引器IndexReader和檢索器IndexSearcher去匹配索引文件中的關(guān)鍵詞,如果匹配成功,則返回包含該關(guān)鍵詞的數(shù)據(jù)名以及所在位置鏈接,Result表示該次查找返回的文件列表。
5.2.4選擇需要的文件下載并解密
File Decrypt(PK,CFile,SK)
Decrypt方法應(yīng)用于員工根據(jù)檢索的內(nèi)容,選擇自己需要的數(shù)據(jù),就可以將數(shù)據(jù)下載至本機(jī),其中,PK表示加密的公共參數(shù),SK表示包含解密策略ATTR的員工證書,CFile表示需要解密的密文數(shù)據(jù),F(xiàn)ile表示解密成功后得到的明文數(shù)據(jù)。
解密數(shù)據(jù)時(shí),需要先將附加在密文數(shù)據(jù)之前的密文對(duì)稱密鑰抽離出來(lái),如果員工本地證書SK包含的解密策略ATTR能夠滿足密文對(duì)稱密鑰CFile包含的訪問策略ATTR時(shí),則可以解密該對(duì)稱密鑰密文CFile,得到對(duì)稱密鑰之后,便可以對(duì)密文進(jìn)行解密,最終返回明文數(shù)據(jù)。
5. 3示例驗(yàn)證及結(jié)果分析
為了檢驗(yàn)本文設(shè)計(jì)的模型與服務(wù)的可行性,基于LinuxUbuntu-10. 04搭建了Eucalyptus環(huán)境,并在該環(huán)境上模擬了具體的應(yīng)用實(shí)例。
表1文件內(nèi)容描述
案例首先調(diào)用Submit-Up上傳3個(gè)文件,文件內(nèi)容如表1所示。
隨后,調(diào)用CreateIndex方法為這3個(gè)文本文件建立全文索引,并對(duì)全文搜索關(guān)鍵詞加密,索引文件臨時(shí)存放在服務(wù)器Temp文件夾下,假設(shè)已經(jīng)在服務(wù)器端產(chǎn)生了公共參數(shù)pub_key以及主密鑰masteres key,并也已經(jīng)給各個(gè)員工分配了各自的證書,接著,調(diào)用Encrypt方法將上述3個(gè)文件按照各自的訪問策略加密,最后,調(diào)用Upload方法,將這3個(gè)密文文件及索引文件上傳至云存儲(chǔ)平臺(tái)。
表2 關(guān)鍵詞查詢結(jié)果
表3 解密結(jié)果描述
調(diào)用Submit-Down和EncryptKeyword方法,查詢各關(guān)鍵詞,得到結(jié)果如表2所示。
表2的結(jié)果驗(yàn)證了全文檢索的準(zhǔn)確性,對(duì)于云存儲(chǔ)平臺(tái),索引文件的關(guān)鍵詞是加密的,故索引文件的安全級(jí)別也是較高的。
以不同的屬性調(diào)用Download方法,返回結(jié)果如表3所示。
表3的結(jié)果表明:即使員工在公司內(nèi)部網(wǎng)絡(luò)中,可以搜索和獲取全部密文文件,但如果不能滿足密文文件的解密策略 ,是無(wú)法得到明文文件的,因此,驗(yàn)證了數(shù)據(jù)機(jī)密性及訪問控制的安全。
6 結(jié)語(yǔ)
本文提出了一種安全機(jī)制,該機(jī)制解決了企業(yè)用戶將數(shù)據(jù)存放至云存儲(chǔ)平臺(tái)面臨的數(shù)據(jù)機(jī)密性和檢索便捷性問題,以現(xiàn)有的CP-ABE方案和Lucene工具包為基礎(chǔ),在Linux以及Eucalyptus環(huán)境下完成了密文訪問控制和和密文檢索的基本開發(fā),數(shù)據(jù)加密/解密算法的優(yōu)化正在開發(fā)過程中。
本文主要解決了云存儲(chǔ)平臺(tái)企業(yè)數(shù)據(jù)的機(jī)密性、數(shù)據(jù)共享以及有效檢索的問題,對(duì)于企業(yè)數(shù)據(jù)安全中的完整性問題,本安全架構(gòu)中沒有給出相應(yīng)的解決方案,這一問題有待進(jìn)一步研究。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標(biāo)題:企業(yè)云存儲(chǔ)數(shù)據(jù)的加密與密文全文檢索研究
本文網(wǎng)址:http://m.hanmeixuan.com/html/consultation/1083959586.html