李 瀾,景 峰,楊 華
(國(guó)網(wǎng)山西省電力公司陽(yáng)泉供電公司,山西 陽(yáng)泉 045000)
2010年,微軟出現(xiàn)數(shù)據(jù)庫(kù)腳本錯(cuò)誤,導(dǎo)致上萬(wàn)個(gè)真實(shí)賬號(hào)被刪除;2011年亞馬遜的云計(jì)算中心宕機(jī),導(dǎo)致亞馬遜云服務(wù)中斷了4 d[1]。為了解決以上這些傳統(tǒng)密文訪問(wèn)控制存在的問(wèn)題,本文提出了一種基于雙因子加密的密文訪問(wèn)控制方法(Double-Factor Access Control for Cloud Storage,DF-ACCS),將數(shù)據(jù)加密和訪問(wèn)控制的功能分開,把數(shù)據(jù)密鑰和授權(quán)用戶表作為因子分別完成這2個(gè)功能。數(shù)據(jù)也不會(huì)因?yàn)樵L問(wèn)控制授權(quán)的變更,而需要變更密鑰并重新加密[2]。
實(shí)驗(yàn)結(jié)果表明,該種機(jī)制比傳統(tǒng)的密文訪問(wèn)控制機(jī)制效率更高,訪問(wèn)控制的時(shí)長(zhǎng)和空間開銷更小,尤其在撤銷授權(quán)的情況下表現(xiàn)更加明顯[3]。
密文訪問(wèn)控制方法是一種基于密碼學(xué)原理的訪問(wèn)控制方法,包括密文訪問(wèn)控制方法相關(guān)密碼學(xué)原理。
在密文訪問(wèn)控制方法中,使用了對(duì)稱加密和非對(duì)稱加密。
對(duì)稱加密是一種單鑰密碼系統(tǒng),一個(gè)密鑰被用作加密和解密。它常常被用作數(shù)據(jù)加密,相比非對(duì)稱加密,具有更高的加密效率[4-5]。
對(duì)稱加密模型如圖1所示,假設(shè)明文信息X=[X1,X2,…,XM],加密算法E根據(jù)輸入信息X和密鑰K,加密得到密文信息Y=[Y1,Y2,…,YN],即:
圖1 對(duì)稱加密模型
可見密文Y是明文X的函數(shù)。解密過(guò)程是擁有密鑰K的接收者通過(guò)解密算法D和密鑰K,解密得到明文信息X,即:
非對(duì)稱加密是一種擁有2個(gè)不同密鑰,分別用來(lái)加密和解密的密碼系統(tǒng)。這2個(gè)密鑰之間,在計(jì)算上無(wú)法通過(guò)其中一個(gè)得到另外一個(gè)。這2個(gè)密鑰被稱為公鑰和私鑰[6]。
非對(duì)稱加密模型如圖2所示。非對(duì)稱加密模型的提出主要是為了解決2個(gè)問(wèn)題:密鑰分發(fā)和數(shù)字簽名。密鑰分發(fā),是通過(guò)公鑰加密消息,私鑰解密獲得消息來(lái)實(shí)現(xiàn)。
如圖2(a)所示,當(dāng)把消息X換成對(duì)稱加密的密鑰時(shí),就能進(jìn)行密鑰分發(fā)。這個(gè)方法將會(huì)被應(yīng)用在下面提出的基于雙因子加密的密文訪問(wèn)控制中,用于向訪問(wèn)用戶分發(fā)加密數(shù)據(jù)的對(duì)稱密鑰[7-8]。數(shù)字簽名,是通過(guò)私鑰加密信息、公鑰解密驗(yàn)證消息來(lái)實(shí)現(xiàn),如圖2(b)所示,這個(gè)方法將會(huì)被應(yīng)用在下面提出的基于雙因子加密的密文訪問(wèn)控制中,用于數(shù)據(jù)屬主對(duì)授權(quán)用戶表的簽名加密,以防止授權(quán)被惡意篡改。
圖2 非對(duì)稱加密模型
Access Control for Cloud Storage(ACCS)是一個(gè)基本的密文訪問(wèn)控制的方法,本文提出的基于雙因子加密的訪問(wèn)控制方法是基于該方法改進(jìn)而來(lái)。
ACCS方法中,每個(gè)用戶維護(hù)一對(duì)RSA公私鑰Kpub和Kpriv,每一份數(shù)據(jù)都維護(hù)一個(gè)數(shù)據(jù)密鑰Kdata,以及一對(duì)公私鑰Ksign和Kverify分別用于授予讀寫權(quán)限和只讀權(quán)限。在可信介質(zhì)S中為每份數(shù)據(jù)設(shè)置了一個(gè)用戶信息表Grantee[],用于保存授權(quán)用戶的信息,每一個(gè)信息項(xiàng)都對(duì)應(yīng)了一個(gè)授權(quán)用戶,比如用戶A有訪問(wèn)數(shù)據(jù)的權(quán)限,則用戶信息表中有Grantee[A]這一項(xiàng)。整個(gè)體系的結(jié)構(gòu)圖如圖3所示。
圖3 ACCS結(jié)構(gòu)圖
對(duì)于某數(shù)據(jù)FID,用戶A具有讀寫權(quán)限。數(shù)據(jù)屬主使用用戶A的公鑰對(duì)Kdata、Ksign和Kverify進(jìn)行加密,那樣該用戶信息項(xiàng)則只能由用戶A解密;然后再用數(shù)據(jù)屬主的公鑰進(jìn)行簽名加密,以保證該用戶信息項(xiàng)的真實(shí)性;最后再存儲(chǔ)在Grantee[A]中。
基于雙因子加密的密文控制方法(DF-ACCS)是在ACCS方法的基礎(chǔ)之上,將數(shù)據(jù)加密和訪問(wèn)控制的實(shí)現(xiàn)進(jìn)行合理分離,從而避免了更新數(shù)據(jù)密鑰以及數(shù)據(jù)重加密帶來(lái)的系統(tǒng)開銷。
雙因子加密的體系結(jié)構(gòu)如圖4所示,每個(gè)用戶維護(hù)一對(duì)RSA公私鑰Kpub和Kpriv,每一份數(shù)據(jù)都維護(hù)一個(gè)數(shù)據(jù)密鑰Kdata,以及一個(gè)授權(quán)用戶表Grantee。數(shù)據(jù)屬主用數(shù)據(jù)密鑰Kdata對(duì)數(shù)據(jù)F進(jìn)行加密后,發(fā)送存放到CSP中。訪問(wèn)用戶申請(qǐng)?jiān)L問(wèn)數(shù)據(jù)時(shí),數(shù)據(jù)屬主確定訪問(wèn)用戶在授權(quán)用戶表內(nèi)后,使用訪問(wèn)用戶的公鑰加密數(shù)據(jù)密鑰Kdata,將其發(fā)送給訪問(wèn)用戶。那樣數(shù)據(jù)密鑰只能被該訪問(wèn)用戶解密,能避免數(shù)據(jù)密鑰被第三方截取。
圖4 雙因子加密的體系結(jié)構(gòu)
本部分將對(duì)雙因子加密方案設(shè)計(jì)實(shí)驗(yàn)進(jìn)行驗(yàn)證,同時(shí)與ACCS方案進(jìn)行對(duì)比,以評(píng)估該方案的性能優(yōu)劣。
使用10 Mbyte大小的文件,通過(guò)將文件內(nèi)容進(jìn)行重復(fù)復(fù)制粘貼,產(chǎn)生20 MB、30 MB,一直到200 MB的20個(gè)文件。分別通過(guò)DF-ACCS方法和ACCS方法,對(duì)這些文件進(jìn)行讀寫操作,2種方案在讀寫不同文件大小的情況下,時(shí)長(zhǎng)基本一樣,不會(huì)增長(zhǎng)。
2種方案在權(quán)限變更時(shí)長(zhǎng)基本一樣,都較小,因?yàn)橹皇切薷脑獢?shù)據(jù)。但是在撤銷權(quán)限的時(shí)長(zhǎng)上,雙因子加密方案能比ACCS方案好很多。
本文首先分析了大數(shù)據(jù)安全的形勢(shì)以及數(shù)據(jù)保護(hù)的必要性,然后闡述ACCS方法的基礎(chǔ)理論,在此基礎(chǔ)上提出了一種雙因子加密的密文訪問(wèn)控制方法。該方法將數(shù)據(jù)加密和訪問(wèn)控制用對(duì)稱密鑰和授權(quán)用戶表這2個(gè)不同因子分別實(shí)現(xiàn),避免了權(quán)限變更時(shí)數(shù)據(jù)重加密帶來(lái)的系統(tǒng)開銷。
通過(guò)實(shí)驗(yàn)驗(yàn)證,雙因子加密的密文訪問(wèn)控制相比ACCS方法,能保證其性能不變,同時(shí)更有效地降低權(quán)限變更時(shí)帶來(lái)的系統(tǒng)開銷。