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