王彩芬,徐 婷,張玉磊,楊小東
(西北師范大學計算機科學與工程學院,甘肅 蘭州 730070)
云存儲是在云計算的基礎上發(fā)展起來的數據外包存儲服務技術。從結構上來看,云存儲是在云計算上增加了一個存儲層,同時實現數據管理和數據安全等功能。因此,在云存儲中同樣存在云訪問控制問題[1]。通常,在云存儲系統(tǒng)中,一般云存儲服務商CSP(Cloud Server Providers)是半可信的,由于云用戶無法信任CSP能夠真正實施數據保護。因此,在半可信的環(huán)境下,如何實施云用戶數據的安全訪問是非常重要的。
目前,研究者們提出了一些基于屬性加密的方案:Sahai A等人[2]提出了基于模糊身份加密方案;Goyal V等人[3]提出了基于屬性的密鑰生成算法;Bethencourt J等人[4]提出了基于屬性的密文生成算法。同時,為了更好地實施云用戶數據的安全訪問,研究者們也提出了一些云訪問控制方案:Crampton J等人[5]提出了基于層次密鑰生成的加密策略實施訪問控制的方法;Yan L等人[6]提出了層次化身份管理方法;Hong C等人[7]提出了基于屬性的云存儲密文訪問控制方法。
以上方案在一定程度上可以實現安全的訪問,但在某些應用中仍存在巨大的挑戰(zhàn)。例如,在電子政務中,中央政府要將一份重要電子文件下發(fā)給省、市級政府,但省、市級政府擁有不同的權限,因此需要根據權限的不同截取不同的子消息發(fā)送給各級政府。為此可以將一個消息分成n段,根據不同的屬性將子消息段發(fā)送給相應的用戶,所以本文首先提出了基于ElGamal簽名算法的可截取簽名方案,然后為了安全地實施數據保護,將屬性加密與可截取簽名相結合,在文獻[8]的基礎上,設計了一種新的云訪問控制方案。新方案不是將整個消息發(fā)送給用戶,而是將消息分成子段,根據用戶的屬性,將符合屬性的消息子段以密文的形式發(fā)送給用戶,具有更廣泛的應用價值。
設G和G1分別是同為素數p階的加群和乘群,g為G的生成元,映射e:G×G→G1具有以下性質:
(1)雙線性:如果?a,b∈Z,有:e(ga,gb)=e(gb,ga)=e(g,g)ab;
(2)非退化性:?a,b∈G,使得e(a,b)≠1,其中1為G1的單位元;
(3)可計算性:存在多項式時間算法計算e(ga,gb)。
2001年,Steinfeld R等人[9]提出了可截取簽名CES(Content Extraction Signatures),與傳統(tǒng)的標準簽名體制不同,它允許在多方參與的環(huán)境中,給定一個已簽名的消息,使用者根據需要,針對原消息的一部分,截取一個可驗證的簽名,而無需和最初的簽名者進行交互。鑒于此優(yōu)點,可截取簽名受到了國內外學者的廣泛關注。
在可截取簽名中,假定M為所要簽名的消息,且已按照需要被分成n個子消息段。Mμ表示消息M中的子消息段,1≤μ≤n。M′為用戶截取的子消息,截取子集CI(M′)標記M′中所包含的子消息段的編號,M′依然包含n個子消息段,其中編號不在CI(M′)中的子消息段標記為空白,但M′所有子消息段的編號必須和M一致。為了使簽名者對原消息的截取方式具有完全控制權,引入內容截取訪問結構CEAS(Content Extraction Access Structure),在CEAS中的子消息段編號都為必選消息。例如,M=(m1,m2,m3,m4),CEAS={1},若CI(M′)={1,3} ,則M′=(m1,?,m3,?),其中?標記空白子消息段,則截取方式合法,記為CEAS?CI(M′);若CI(M′)={2,3},則M′=(?,m2,m3,?),但由于CEAS?CI(M′),因此截取方式不合法。定義T為CEAS標記(CEAS-Tags),規(guī)定長度為80 bit,在簽名過程中隨機選取。
(1)可截取簽名的形式化定義。
可截取簽名方案包括簽名者、截取者、驗證者,其中簽名者執(zhí)行對全局簽名的算法;截取者執(zhí)行驗證全局簽名的正確性,同時獲取相應消息段的截取簽名;驗證者驗證截取簽名的正確性。這與傳統(tǒng)的標準簽名方案是不同的。算法由密鑰生成、簽名、簽名截取、驗證構成,具體為:
①密鑰生成算法:生成公私鑰對(PK,SK);
②簽名算法:輸入SK、M、CEAS,輸出一個可截取的全局簽名δFull;
③簽名截取算法:輸入M、δFull、CI(M′)和PK,輸出對M′的簽名δExt;
④驗證算法:輸入M′、δExt和PK,輸出驗證結果true或false。
(2)可截取簽名的安全性需求。
①不可偽造性:對于一個攻擊者,即使可以訪問一個CES簽名預言機,消息M滿足:a 不是一個合法的訪問CES簽名預言機的消息M的子消息;b 一個合法的訪問CES簽名預言機的消息M的子消息,但并不滿足CEAS的截取規(guī)定,則攻擊者要產生一個消息M的有效簽名是不可行的。
②保密性:在可截取簽名方案中,對于未截取的信息,即在子消息中不可見的信息段,攻擊者要獲取其相關的信息是不可行的[10]。
(1)密鑰生成算法。
(2)簽名算法。
簽名者執(zhí)行如下過程:
假定M為所要簽名的消息,且按照需要被分成n個子消息。Mμ表示消息M中的第μ個子消息,其中μ為子消息在整個消息M中的編號,1≤μ≤n。CEAS是內容截取訪問結構。定義T為CEAS標記(CEAS-Tags),規(guī)定長度為80 bit,在簽名過程中隨機選取。簽名過程如下:
②對M的每個子消息Mμ,計算hμ=H(Mμ‖CEAS‖μ‖T);
③計算子消息Mμ的簽名δμ=(hμ-a·r)·k-1mod(p-1),其中1≤μ≤n;
④輸出消息M的全局簽名δFull=(CEAS‖T‖δ1‖δ2‖…‖δn)。
(3)簽名截取算法。
截取者執(zhí)行如下過程:
M′表示截取后的子消息。CI(M′)標記M′中包含的子消息的索引所構成的集合。
首先截取者驗證全局簽名δFull是否正確,若正確,則執(zhí)行下面的步驟,否則返回失敗。
其次,截取相應子消息的簽名,過程如下:
①根據簽名者指定的CEAS構造截取子集CI(M′);
②根據截取子集CI(M′),生成截取子消息M′={Mμ|μ∈CI(M′)};
③對每個μ∈CI(M′),從δFull中取出δμ;
④生成截取簽名δExt=(CEAS‖CI(M′)‖T‖δi1‖δi2‖…‖δif),其中δij(j=1,…,f)為CI(M′)中對應子消息的簽名,i,j∈CI(M′)。
(4)簽名驗證算法。
驗證者執(zhí)行如下過程:
①驗證者首先驗證CEAS?CI(M′)是否成立,若成立,則執(zhí)行下面的步驟,否則返回失?。?/p>
③驗證截取簽名δExt的正確性:對每個μ∈CI(M′),檢查簽名δμ的正確性。
引理1我們的可截取簽名方案是正確的。
證明該方案的正確性包括如下部分:
(1)截取者驗證全局簽名δFull的正確性,具體步驟如下:
①對消息M的每個子消息Mμ,計算hμ=H(Mμ‖CEAS‖μ‖T),其中1≤μ≤n。
ga·r·rδμ=ga·r·gk·δμ=ga·r + k·δμ=ghμ
(2)驗證者驗證截取簽名δExt的正確性
①驗證CEAS?CI(M′)是否成立,若成立,則執(zhí)行下面的步驟,否則返回失敗;
②對每個μ∈CI(M′),計算hμ=H(Mμ‖CEAS‖μ‖T);
□
定理1基于ElGamal簽名的可截取簽名方案是不可偽造的。
證明假定基于ElGamal簽名的可截取簽名方案是可以偽造的,則仿真者S可以通過偽造的截取簽名求解離散對數問題。
只需驗證消息段簽名δμ是不可偽造的,與文獻[11]中給出的證明類似,下面簡述證明過程。
(1)r值由每次簽名且互不相同的k值決定,定義為r=gkmodp;
(2)e=H(Mμ‖CEAS‖μ‖T),哈希函數H為隨機預言機:{0,1}*→Zp;
(3)δμ是對應消息Mμ的簽名,定義為δμ=(e-r·a)·k-1mod(p-1)。
從兩次成功的偽造當中,仿真者S可以通過解下列方程來計算離散對數問題:
因為離散對數問題已經被證明是困難問題,所以基于ElGamal簽名的可截取簽名方案是不可偽造的。
□
目前,研究者已經提出了云存儲訪問控制的網絡模型,在文獻[12]中,作者給出的網絡模型特點是:(1)發(fā)送者在將數據發(fā)送到CSP之前,首先運行數據處理函數對數據進行預處理;(2)訪問者如果要訪問CSP上的數據,必須首先調用令牌函數,得到令牌后才能到CSP上訪問數據;(3)發(fā)送者和CSP之前存在驗證函數,保證數據不被CSP惡意篡改。此網絡模型主要利用了三個函數控制數據的存儲和訪問,以實現訪問控制。但是,不足之處是必須對數據整體進行預處理,不能對一個數據的部分進行預處理及訪問,所以有很大的局限性。
因此,通過參考文獻[12]中的訪問模型,本文結合屬性加密和可截取簽名方案提出了一種新型的云訪問控制模型,將消息分成子段,根據用戶的屬性,將消息子段以密文的形式發(fā)送給用戶,具有更廣泛的應用價值。具體為:
(1)方案中角色有屬性認證中心(PCA)、云存儲服務商(CSP)、可信第三方(TTP)、用戶(User)。具體作用為:
①PCA:負責為云用戶頒發(fā)屬性證書(UPC),UPC包括證書ID、證書所有人的名稱、證書所有者的屬性列表、證書所有人的公鑰、證書頒發(fā)者的簽名等。
②CSP:負責管理用戶發(fā)來的消息M和相應的簽名。
③TTP:主要負責管理訪問控制清單(ACL)。
④User:負責讀寫消息。
(2)訪問控制主體模型如圖1所示。
Figure 1 Access control圖1 訪問控制
①頒發(fā)證書:PCA為每個云用戶頒發(fā)UPC。
②發(fā)送數據:當UserUA向CSP發(fā)送消息M時,M必須使用UserUA的私鑰簽名,并且級聯(lián)M一起發(fā)送到云端,這樣保證了消息的認證性;如果考慮云端是不安全的,可以將M和簽名進行加密,這樣保證了消息的機密性。
③發(fā)出訪問數據請求:如果UserUB要訪問云上的消息,首先要向TTP申請并說明需要訪問哪個用戶的消息。
④獲取數據:TTP首先查看ACL中UserUB的權限,然后從CSP中取得消息。
⑤返回數據:TTP根據UserUB的權限截取相應子消息并以密文的形式發(fā)送給UserUB后,UserUB通過解密獲得相應的消息。
在方案中,用戶使用(用戶名+密碼)這種形式進行注冊登錄系統(tǒng),認證服務器就會為用戶生成一條訪問權限記錄,并存儲在ACL中;同時,對于消息讀操作而言,只要是合法用戶,并且有一定的權限,均可以讀取相應的消息段。但是,對于改寫操作而言,權限越大,具有改寫的可能性越大。在方案中,我們假定只有最高級別的用戶才可以進行改寫。當需要改寫時,用戶首先向TTP提出申請;然后TTP查看ACL,如果用戶的權限達到要求,TTP將原消息的私鑰發(fā)送給用戶;最后用戶將新消息的簽名和對應的消息一起發(fā)送到云端。并且如果一旦發(fā)生改寫消息,那么改寫后的消息會覆蓋之前的原消息[13,14]。
4.2.1 系統(tǒng)初始化
(1)PCA有一對密鑰對(PKPCA,SKPCA),負責為云用戶頒發(fā)UPC。并且滿足PKPCA=gSKPCAmodp。
(2)G0是一個p階的雙線性群,生成元為g,隨機選取兩個指數α、β∈Zp。計算PK={G0,g,h=gβ,e(g,g)α},MK=(β,gα)。其中PK為TTP的公開參數,MK為TTP的主密鑰。
首先,頒發(fā)屬性證書。
云存儲系統(tǒng)中,每一個云用戶擁有一對長期密鑰對(PK0,SK0),并且滿足PK0=gSK0modp。
當用戶得到證書時,證書的有效性可以通過PKPCArcrcsc=gh(CIs)來驗證。
其次,解密密鑰的生成。
輸入:用戶UserUB的屬性集合A={A1,A2,…,An}和主密鑰MK。
輸出:與UserUB屬性集合對應的私鑰SK,用于解密從TTP發(fā)送的消息。
密鑰生成過程如下:
(1)隨機選取隨機數r∈Zp和rj∈Zp,每一個屬性j∈A;
綜上所述:
PCA擁有:(PKPCA,SKPCA);
云用戶擁有:(PK0,SK0)、屬性集合A={A1,A2,…,An}、SK、CIs;
TTP擁有:PK、MK。
4.2.2 發(fā)送數據
擁有消息M的用戶UserUA,利用ECES產生M的簽名δFull,將(M,δFull)加密放到云端。具體簽名過程,
(2)對消息M的每個子部分mμ,計算δμ=(h(CIs‖mμ‖rc‖CEAS‖μ‖T)-SK0r)k-1,其中1≤μ≤n,定義δFull=(CEAS‖T‖δ1‖δ2‖…‖δn),其中CIs為用戶屬性證書的信息;
(3)輸出{(r,δFull),CIs,rc}作為對消息M的簽名;
(4)如果考慮云端是不安全的, 將(M,δFull)使用TTP的公鑰進行加密,保證數據的機密性。
4.2.3 發(fā)送訪問數據請求
當UserUB想訪問UserUA放在云上的消息時,首先向TTP發(fā)出申請,然后TTP查看ACL,得到UserUB的權限。
4.2.4 獲取數據
TTP根據權限,向CSP發(fā)出訪問數據的請求,利用ECES產生截取簽名并驗證,即{(r,δExt),CIs,rc}作為子消息M′的簽名,其中CIs為用戶屬性證書的信息。
4.2.5 返回數據
TTP得到消息段的簽名δExt和對應的子消息M′后,首先利用屬性加密算法,生成消息M′的密文;然后將密文發(fā)送給UserUB;最后UserUB利用其屬性對應的私鑰解密獲取消息。具體算法為:
(1)屬性加密。
(2)屬性解密。
解密算法是一個遞歸算法,UserUB進行如下計算:
①如果訪問結構樹Γ上一個節(jié)點x是葉節(jié)點,則計算:
其中,定義i∈A并且i=att(x);否則i?A,則DecryptNode(CT,SK,x)=⊥。
②如果訪問結構樹Γ上一個節(jié)點x是非葉節(jié)點,找出結點x的所有孩子節(jié)點,記為z,計算Fz=DecryptNode(CT,SK,z),定義Ax為孩子節(jié)點z的集合。計算Fx:
綜上所述:
(1)計算根節(jié)點R的DecryptNode(CT,SK,R)=e(g,g)r·qR(0)=e(g,g)r·s;
根據在第3節(jié)可截取方案的安全性證明及文獻[4]的安全性證明,可以得到,在訪問控制方案中使用的密碼體制都是安全的。
訪問控制的流程:
(1)UA → CSP :ETTP(M,δFull);
(2)UB → TTP :idUB;
(3)CSP → TTP :TTP解密后得到M=DTTP(M,δFull);
(4)TTP → UB :EpkUB(M′,δExt)。
具體地,步驟(1)用戶UA首先將數據及簽名用TTP的公鑰加密后發(fā)送到云端CSP,由云端保存數據。如果用戶UB想訪問UA發(fā)送到云端的數據,首先,利用步驟(2)將自己的身份信息發(fā)送給可信第三方TTP,TTP查看訪問控制清單中關于用戶UB的權限;然后,TTP利用步驟(3)根據用戶UB的權限,得到云端數據ETTP(M,δFull),利用私鑰解密,再使用我們提出的ECES對M進行截取,得到相應子消息M′。由步驟(4)TTP將截取的子消息M′及簽名利用UB的屬性加密后發(fā)送給用戶UB,這樣保證數據安全、抵抗共謀攻擊。最后,用戶UB解密得到相應的數據。我們不難發(fā)現用戶UB并沒有得到用戶UA的全部數據,而是根據自己擁有的權限只得到了部分數據,這樣提高了消息的利用率,同時通過權限控制,更好地體現了細粒度訪問控制特性。
(1)在新的云訪問控制中,只有授權用戶才可以訪問資源。從流程中可以看出,用戶UB也就是訪問者試圖訪問數據時,必須提交身份信息給可信第三方TTP,只有通過TTP的檢查后才能獲取數據。
(2)數據訪問權限的安全管理。在我們的方案中,用戶UA是將消息以及它的簽名用TTP的公鑰加密后放在云端,服務商CSP只能保存數據,不能解密,只有TTP才能解密。所以,在CSP半可信的云存儲環(huán)境中,由可信第三方管理數據,提高了數據在云端的安全性。
(3)阻止非法用戶破壞合法用戶在云端的數據。一方面通過身份認證;另一方面通過TTP的權限管理,只有TTP將原消息發(fā)送者的私鑰發(fā)送給訪問者,才能進行改寫操作,否則云端的消息不能被改變。
(4)我們的方案充分利用了可截取簽名的簽名特點,將其與屬性加密相結合,更好地運用到云存儲訪問控制方案里。與同類訪問控制方案文獻[12]中的訪問模型相比,我們提出的訪問模型更加全面,與實際情況更加吻合。同時,在簽名過程中,沒有對數運算,只有三次指數運算和三次級聯(lián)運算,因此具有更高的效率。
該方案可以適用于多種應用環(huán)境。一個典型的在電子政務中的應用實例如圖2所示,中央政府簽署了一份電子文件,并將該文件發(fā)送到云端。該文件可以供省級政府、市級政府以及個人查看。但是,查看該文件的用戶擁有不同的權限。因此,根據不同情況需要截取相關子文件發(fā)送給相應用戶而無需中央政府的多次簽名,而且用戶也能夠驗證該文件為中央政府簽署。具體為首先中央(相當于用戶UA)將文件及對應的簽名加密后發(fā)送到云端;然后當各級政府(相當于用戶UB)想訪問云端的文件時,先向可信第三方TTP提出申請,接著TTP查看關于用戶UB的訪問權限并訪問云端文件;最后TTP將符合用戶UB權限的子文件及簽名以密文形式發(fā)送給用戶UB,當用戶UB收到文件時,解密文件并驗證文件的正確性。依次類推。為了完成這一過程,可以使用提出的基于屬性加密和ECES的云存儲訪問控制方案,由該方案的正確性及安全性保證了用戶收到的文件是不可偽造的,而且中央政府對原文件的截取方式具有完全控制權。通過該具體實例說明了我們的訪問控制方案是實際可行的和安全的。
Figure 2 Typical applications圖2 典型應用
該方案將屬性加密與可截取簽名相結合,細化了云存儲中訪問控制的問題,提高了數據的安全性。并且引入可信第三方來管理訪問控制清單、運行可截取簽名方案等,同時將數據的讀寫操作嚴格分開,沒有被授權的用戶不能進行改寫操作,使其更好地運用到云存儲系統(tǒng)中。下一步的研究方向是對于只能讀取部分數據的用戶也能有改寫的權限,不僅僅是權限最高的用戶才擁有。
[1] Wang Ping-jian,Jing Ji-wu,Wang Qiong-xiao,et al. Research on access control mechanisms in cloud storage [C]∥Proc of 26th National Computer Security Academic Exchanges, 2011:41-43.(in Chinese)
[2] Sahai A,Water B.Fuzzy identity based encryption[C]∥Proc of the 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, 2005:457-473.
[3] Goyal V, Pandey A, Sahai A, et al. Attribute-based encryption for fine-grained access control of encrypted data [C]∥Proc of the 13th ACM Conference on Computer and Communications Security, 2006:89-98.
[4] Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C]∥Proc of the 2007 IEEE Sympium on Security and Privacy, 2007:321-334.
[5] Crampton J, Martin K, Wild P. On key assignment for hierarchical access control [C]∥Proc of the 19th IEEE Computer Security Foundations Workshop-CSFW, 2006:5-7.
[6] Yan L, Rong C, Zhao G. Strengthen cloud computing security with federal identity management using hierarchical identity-based cryptography [C]∥Proc of the 1st International Conference on Cloud Computing, 2009:166-177.
[7] Hong C, Zhang M, Feng D G. AB-ACCS:A cryptographic access control scheme for cloud storage [J]. Journal of Computer Research and Development, 2010,47(Suppl 1):259-265.(in Chinese)
[8] Zhang Zhu-lin.Attribute based access control scheme in cloud [D]. Lanzhou:Northwest Normal University, 2013.(in Chinese)
[9] Steinfeld R, Bull L, Zhang Y. Content extraction signatures [C]∥Proc of the 4th International Conference on Information Security and Cryptology (ICISC 2001),2001:285-304.
[10] Liu Jun-long.Content extraction signature scheme study[D]. Lanzhou:Northwest Normal University, 2007.(in Chinese)
[11] David P, Jacques S. Security proofs for signature schemes [C]∥Proc of EUROCRYPT’06, 1996:387-398.
[12] Kamara S, Lauter K. Cryptographic cloud storage [C]∥Proc of FC 2010 Workshops, RLCPS,WECSR and WLC 2010, 2010:136-149.
[13] Sun Guo-zi, Dong Yu, Li Yun. CP-ABE based data access control for cloud storage [J]. Journal on Communications, 2011,32(7):146-152.(in Chinese)
[14] Zhang Hao-jun,Fan Xue-hui.A trustee-based CP-ABE cloud storage access control [J]. Journal of Wuhan University, 2013,59(2):153-158.(in Chinese)
附中文參考文獻:
[1] 王平建, 荊繼武, 王瓊霄,等. 云存儲中的訪問控制技術研究[C]∥第26次全國計算機安全學術交流會,2011:41-43.
[7] 洪澄,張敏,馮登國.AB-ACCS:一種云存儲密文訪問控制方法,2010,47(Supp1):259-265.
[8] 張竹林. 基于屬性的云訪問控制方案研究[D]. 蘭州:西北師范大學, 2013.
[10] 劉軍龍. 可截取簽名體制研究[D]. 蘭州:西北師范大學, 2007.
[13] 孫國梓, 董宇, 李云. 基于CP-ABE算法的云存儲數據訪問控制[J]. 通信學報,2011, 32(7):146-152.
[14] 張浩軍, 范學輝. 一種基于可信第三方的CP-ABE云存儲訪問控制[J]. 武漢大學學報,2013, 59(2):153-158.