劉 磊, 劉義紅
(淮南師范學院 計算機學院,安徽 淮南 232038)
隨著信息技術的飛速發(fā)展,人們越來越重視數(shù)據(jù)安全,尤其在一些特殊的應用場景,需要更加開放的網(wǎng)絡環(huán)境,此時離散存儲在終端節(jié)點上的數(shù)據(jù)對傳統(tǒng)的集中式數(shù)據(jù)安全防護方案提出了更高的要求。電子文件作為一種數(shù)據(jù)載體,在數(shù)據(jù)結構、完整性、存儲形式多樣性等方面與非結構化數(shù)據(jù)有所不同,但傳統(tǒng)的數(shù)據(jù)安全防護方案依然具有一定的參考意義。
目前,主流數(shù)據(jù)安全保護技術主要以密碼學為主,以數(shù)據(jù)加密算法和數(shù)據(jù)訪問控制策略為代表。這些技術側(cè)重于數(shù)據(jù)存儲、分發(fā)和授權的安全問題。其中,經(jīng)典的數(shù)據(jù)加密算法分為對稱加密算法和非對稱加密算法。為了解決開放網(wǎng)絡環(huán)境下的數(shù)據(jù)共享問題,研究者提出了多種數(shù)據(jù)加密方案,例如代理重加密算法和基于身份的加密算法。近年來,越來越多的研究人員關注基于屬性基的數(shù)據(jù)加密算法,這種算法可以靈活控制用戶的解密能力,為實現(xiàn)對數(shù)據(jù)的細粒度訪問控制奠定了基礎。這種算法可以滿足電子文件在存儲和分發(fā)方面的安全防護需求。而在數(shù)據(jù)訪問控制方面,傳統(tǒng)的訪問控制模型分為三種:自由訪問控制、強制訪問控制和基于角色的訪問控制。近年來,基于屬性基加密的訪問控制策略不僅可以滿足數(shù)據(jù)安全管理系統(tǒng)的細粒度訪問控制需求,而且支持用戶的大規(guī)模動態(tài)擴展,因此是一種理想的數(shù)據(jù)訪問控制方案。
這些研究成果能夠滿足電子文件在存儲、分發(fā)和訪問控制過程中的安全防護需求。但是,如圖1所示,傳統(tǒng)方案主要采用集中式數(shù)據(jù)管理模式,方案依托服務器端解決數(shù)據(jù)和密鑰在存儲階段,以及數(shù)據(jù)在訪問控制階段的安全問題,終端節(jié)點(即客戶端)僅對用戶的訪問行為控制承擔較少的業(yè)務負載。但在一些特定的應用場景中,一些系統(tǒng)配置文件和數(shù)據(jù)庫文件等電子文件需要離散存儲在終端節(jié)點上,這使得僅通過提升服務器端的安全性已無法滿足對電子文件的安全防護需求,系統(tǒng)主要的安全防護業(yè)務進而轉(zhuǎn)移至客戶端處理。針對此類問題,研究關注的重點已不再是數(shù)據(jù)的集中式安全存儲和分發(fā),而是在客戶端承擔主要業(yè)務負載的情況下,如何解決數(shù)據(jù)在客戶端上的安全存儲、密鑰安全管理及安全訪問控制等問題。
圖1 傳統(tǒng)方案與本研究所提方案對比圖
對此,本研究以基于屬性基加密的訪問控制策略為基礎,提出了一種面向離散存儲電子文件的訪問控制策略,該方案以客戶端為業(yè)務負載核心,通過引入密鑰分離管理算法和混合對稱加密算法改進了基于屬性基加密的訪問控制策略的數(shù)據(jù)加密流程,使其能夠滿足離散存儲電子文件場景下的數(shù)據(jù)安全防護需求。因此,本研究所提方案不僅繼承了基于屬性基加密的訪問控制策略所具備的細粒度訪問控制特點,并設計了基于客戶端的輕量化數(shù)據(jù)及密鑰安全防護算法,以“化整為零”的方式降低了服務器端的業(yè)務負載,并有效提升了系統(tǒng)的整體運行效率。
本研究所提方案的安全框架主要包括3個實體:主服務器(服務器端)、授權服務器(服務器端)和客戶機(客戶端),三者關系如圖2所示。該框架在傳統(tǒng)數(shù)據(jù)安全防護技術基礎上,通過將系統(tǒng)的加/解密、電子文件分發(fā)等核心業(yè)務遷移至客戶機,不僅能夠滿足離散存儲的電子文件的安全訪問需求,而且允許主服務器僅處理授權驗證及信息更新等輕量化業(yè)務,從而有效地降低其業(yè)務負載壓力。
圖2 訪問控制策略框架圖
1.1.1 主服務器 主服務器主要負責:驗證用戶身份信息;管理客戶機信息及電子文件信息;維護電子文件加密密鑰的隨機部分。其主要維護兩張信息表:客戶機信息列表Listc和電子文件信息列表Listf。
Listc:{客戶機編號,客戶機基本信息}。其中,客戶機編號是客戶機在初始注冊時由主服務器分配,是客戶機唯一性標識;客戶機基本信息包括客戶機注冊時間,客戶機型號,客戶機操作系統(tǒng)及客戶機用途等。
Listf:{文件編號,文件基本信息,文件屬性集合,文件敏感等級}。其中,文件基本信息包括文件用途,文件創(chuàng)建時間,文件大小等;文件屬性集合是一組描述文件特性的屬性集合,主要用于與用戶屬性進行門限比對,從而實現(xiàn)文件的細粒度訪問控制。主服務器保存的Listfa為所有客戶機上的電子文件信息總列表,客戶機分別保存自有的Listfs是各自客戶機上電子文件信息子列表。電子文件等級分為Level1、Level2、Level3。Level1指最高敏感級別電子文件,Level2指中級敏感級別電子文件,Level3指一般敏感級別電子文件,根據(jù)文件敏感等級不同,對應的用戶操作控制權限也不同。
1.1.2 授權服務器 授權負責器主要負責:對用戶進行注冊授權,生成用戶屬性證書;對客戶機進行注冊授權,管理客戶機的公/私鑰;管理電子文件的操作權限,生成用戶操作控制策略。
1.1.3 客戶機 客戶機主要負責:維護電子文件加密密鑰的固定部分;加密和解密電子文件;用戶訪問控制。其中,Sm、Sr、Client、Vser和File分別表示主服務器、授權服務器、客戶機、用戶和文檔表1為所涉及的相關參數(shù)的定義信息。
表1 邏輯對象定義參照表
既有方案中,密鑰主要由授權服務器集中進行管理,其中用戶的密鑰對(包括公鑰和私鑰)是在申請階段生成,后期采用靜態(tài)管理方法,一般不會更改。而如前文所述,由于將業(yè)務負載轉(zhuǎn)移至客戶端,客戶端也將承擔對密鑰的管理業(yè)務。加之本研究將使用輕量化的對稱加密算法對電子文件進行加/解密,這種方案能夠有效提高數(shù)據(jù)的加/解密效率,但對稱加密算法在密鑰安全保護方面較弱,因此本研究設計了一種基于服務器端和客戶端協(xié)同管理的密鑰管理機制——密鑰分離管理算法。該算法的核心思想是將文件加密密鑰分為兩部分(Kc1和Kc2)進行管理,分別由主服務器和客戶機在加密或解密文件時動態(tài)生成。其中,Kc1是密鑰的固定部分,由客戶機根據(jù)本地設備的硬件信息生成;Kc2是密鑰的隨機部分,由主服務器根據(jù)特定算法生成并定期更新。該算法通過在主服務器和客戶機上,以密鑰分離式的管理方式分別管理文件密鑰的不同組成部分,使客戶機每次在進行文件的加/解密操作時,均需從主服務器獲取Kc2部分,而Kc2由主服務器隨機生成并定期更新,使得非法用戶很難同時獲取Kc1和Kc2,從而能夠有效地提高密鑰安全性。算法流程如圖3所示。
圖3 密鑰分離算法流程圖Fig.3 Key separation management algorithm flowchart圖4 混合對稱加密算法流程圖Fig.4 Hybrid symmetric encryption algorithm flowchart
一方面,由于離散存儲的電子文件主要存儲于客戶機上,其數(shù)據(jù)加/解密業(yè)務只能由客戶機獨立完成。而基于屬性基的數(shù)據(jù)加密算法屬于非對稱數(shù)據(jù)加密算法,此類算法加/解密過程相對復雜,對于數(shù)據(jù)量較大的文件加/解密速率相對較慢,而客戶機往往系統(tǒng)資源有限。另一方面,面向電子文件的加密算法區(qū)別于傳統(tǒng)文本密算法,需要在文件系統(tǒng)層面考慮對數(shù)據(jù)的加密操作,加密內(nèi)容不是電子文件中的明文內(nèi)容,而是將文件作為一個獨立對象進行加密,需要綜合考慮文件結構和數(shù)據(jù)量等因素。綜上兩方面原因,本研究對密鑰這種數(shù)據(jù)量較小的文件依然采用非對稱加密算法進行加密,而對于存儲與客戶機上的電子文件設計了一種混合對稱加密算法。該算法在綜合考慮了電子文件在分塊、分組及數(shù)據(jù)流方面的特殊數(shù)據(jù)結構,以1MB大小的分塊數(shù)據(jù)對文件進行規(guī)格化處理,并采用RC4和AES兩種對稱加密算法相結合的方式對分塊后的數(shù)據(jù)依次進行流加密和分組加密。兩種加密算法加密秘鑰長度均為128位,且密鑰文件分別對應Kc1和Kc2兩個部分。算法流程如圖4所示。
近些年針對基于屬性基加密的訪問控制策略的研究較多,由于其靈活的屬性匹配模式能夠?qū)τ脩魧崿F(xiàn)細粒度訪問控制。然而如前文所述,基于屬性基的數(shù)據(jù)加密算法已經(jīng)不適合本研究中電子文件離散存儲于客戶機的應用場景,但本研究依然保留了方案中用于訪問控制的Ac和Au等內(nèi)容,并繼承了方案通過屬性門限對比方式實現(xiàn)對數(shù)據(jù)的訪問控制。同時,結合密鑰分離管理算法和混合對稱加密算法,本研究提出了一種改進的基于屬性基加密的訪問控制策略。
1.4.1.1 系統(tǒng)初始化
(a)系統(tǒng)在初始化階段,主服務器會監(jiān)聽與授權服務器及各個客戶機之間的連接狀態(tài),并將最新的Listfa和Listc發(fā)送給授權服務器進行更新,操作如下:
Sm
→Sr
:List
_f
_a
||List
_c
(1)
(b)如果有新的客戶機納入系統(tǒng)進行安全監(jiān)控,需要完成客戶機的注冊申請。首先,由客戶機向主服務器發(fā)送IDc進行身份驗證并提出注冊申請。
Client
→sm
:IDc
||req
(authorization
)(2)
(c)如果驗證成功,主服務器向授權服務器發(fā)送IDc,授權服務器生成客戶機的SKc和PKc,并將SKc給主服務器,PKc發(fā)給客戶機。
(3)
(d)主服務器根據(jù)業(yè)務所需生成客戶機上的List
f
s
和Kc
2,并用PKc
加密后發(fā)送給客戶機。Sm
→CLient
:E
_PKc
(List
_f
_s
∥Kc
2)(4)
(e)客戶機根據(jù)Kc
1和Kc
2對List
f
s
中的電子文件進行加密。其中,Kc
1是利用客戶機CPU
編號、硬盤編號、網(wǎng)卡MAC地址等信息通過特定算法處理后得到的MD5值。加密算法采用了一種綜合了RC4和AES兩種對稱加密算法的混合對稱加密算法,這種加密算法能夠滿足基于電子文件的數(shù)據(jù)安全加密需求,詳細內(nèi)容見2.3節(jié)。Cf
=Client
:E
1+2(File
,{File
∈List
_f
_s
}(5)
1.4.1.2 用戶注冊
(a)用戶向主服務器提出注冊申請,發(fā)送的信息包括IDc和IDu。
User
→Sm
:req
(register
)∥IDu
∥IDc
(6)
(b)主服務器收到注冊申請后首先驗證IDc,即必須在已注冊的客戶機上才能進行用戶注冊。若驗證通過,則主服務器將IDu發(fā)送給授權服務器,否則拒絕申請。
(7)
(c)授權服務器根據(jù)用戶基本信息,為用戶頒發(fā)用戶屬性證書,用戶屬性證書內(nèi)容除常規(guī)證書外還包括Au,Au由多個能夠描述用戶角色的屬性值組成。
Sr
→User
:Au
(8)
1.4.1.3 用戶申請訪問文件
(a)用戶在申請訪問文件前,主服務器需要對用戶是否在被授權的客戶機登陸情況進行驗證。若通過,則繼續(xù)進行用戶屬性證書合法性驗證,否則,拒絕訪問。
(9)
(b)授權服務器負責驗證用戶屬性證書Au的合法性。若通過,則系統(tǒng)繼續(xù)等待文件訪問申請,否則,拒絕訪問。
(10)
(c)用戶提出文件訪問申請,由用戶登錄所在客戶機向主服務器發(fā)送包含IDc、IDf及Kc2請求。
User
→Client
:req
(IDf
)(11)
Client
→Sm
:req
(IDc
∥IDf
∥Kc
2)(12)
(d)主服務器首先根據(jù)Listfa驗證客戶機和文件的對應關系,即請求文件是否在客戶機上。若通過,則主服務器向授權服務發(fā)送文件解密密鑰Kc2。
(13)
(e)授權服務器根據(jù)Listfa中待訪問文件的文件敏感等級Level設置Ru。授權服務器對Ru、Ac及Kc2使用客戶機公鑰加密后,發(fā)回給客戶機。
Sr
:Ru
=(IDc
∥IDf
∥User
_op
∥User
_t
∥User
_c
)(14)
Sr
→Client
:D
=E
_PKc
(Ru
∥Ac
∥Kc
2)(15)
1.4.1.4 文件訪問控制 數(shù)據(jù)分組D在發(fā)回客戶機后,由客戶機對用戶訪問行為進行實時監(jiān)控,一方面通過文件解密控制和文件使用控制實現(xiàn)對電子文件的訪問控制;另一方面,客戶機將用戶操作狀態(tài)實時發(fā)動給主服務器進行遠端監(jiān)測。
(a)客戶機首先對接收到的數(shù)據(jù)進行解密,首先從數(shù)據(jù)分組D中解析并驗證IDc和IDf,若通過則繼續(xù),否則拒絕訪問。
Sr
→Client
:D
=E
_PKc
(Ru
∥Ac
∥Kc
2)(16)
(17)
(b)客戶機從D中解析Ac,根據(jù)Au,檢驗用戶屬性集合和文件屬性集合相交的屬性值數(shù)量是否滿足系統(tǒng)規(guī)定的訪問控制門限值d,若滿足,則允許用戶訪問并進行文件使用控制,否則關閉文件。
(18)
(c)客戶端計算Kc1,并根據(jù)解析到的Kc2采用混合對稱加密算法對加密文件解密,得到明文。
File
=D
_(Kc
1+Kc
2) (Cf
)(19)
1.4.1.5 文件訪問結束 用戶在完成電子文件訪問后,客戶機會再次向主服務器提出加密申請,主服務器會更新文件對應的隨機密鑰Kc2為Kc2’,并由授權服務器發(fā)回給客戶機,客戶機結合固定密鑰Kc1完成對文件的加密操作,具體過程如下。
Client
→Sm
:req
(IDc
∥IDf
∥State
(over
) )(20)
Sm
→Sr
:Kc
2^'=Sm
:Generate
(IDc
∥IDf
)(21)
Sr
→Client
:E
_PKc
(Kc
2^' )(22)
Client
:E
_(Kc
1+Kc
2^' ) (File
)(23)
本研究設計并研發(fā)了原型系統(tǒng)來檢驗策略的可用性。測試方案模擬某公司系統(tǒng)運維部的服務器運維管理場景,運維管理人員分為合法用戶和非法用戶兩類,其中,合法用戶須同時擁有用戶身份認證的賬戶信息,以及授權服務器頒發(fā)的用戶屬性證書,其他情況為均為非法用戶。在此場景中規(guī)定,所有用戶均需通過原型系統(tǒng)管理服務器上的電子文件。
如表2所示,測試方案中設計了6名用戶,用戶的屬性證書中屬性集合Au包括了科室編號、職稱級別和工作年限3個屬性值。其中,前4名用戶(UserA~UserD)為系統(tǒng)運維部的合法用戶,其訪問行為均發(fā)生在公司局域網(wǎng)內(nèi)部;另外2名(UserE~UserF)為非法用戶,通過非法途徑獲取用戶UserA的身份信息。其中,UserE為本公司其他部門人員,僅獲取到UserA的賬戶信息;UserF為非公司人員,不僅獲取到UserA的賬戶信息并偽造了UserA的屬性證書UserAAu’。這里假設授權服務器具有可靠的安全性,其生成的用戶屬性證書無法在內(nèi)容級層面被破解,因此UserAAu和UserAAu’是不同的。
表2 用戶基本信息表
用戶待訪問的電子文件信息如表3所示。其中,屬性集合Ac也是電子文件的訪問控制策略,內(nèi)容包括文件的屬性值集合與訪問控制門限值d,屬性值集合中的3個屬性值需要滿足的條件分別是=“科室編號”、≥“職稱級別”、≥“工作年限”;敏感等級是系統(tǒng)根據(jù)電子文件重要性進行設定的,用以確定用戶操作控制策略Ru{文件操作權限,允許訪問時限,授權客戶機IP范圍}。本例中FileA的敏感等級為Level2,其Ru為{讀取,8:00-18:00,10.19.185.*};FileB的敏感等級為Level3,其Ru為{讀取/修改,8:00-18:00,10.19.185.*}。
表3 電子文件信息表
表4 用戶訪問文件操作信息表
為了驗證本研究設計的原型系統(tǒng)是否能夠在用戶身份驗證、文件訪問控制及用戶操作控制3個階段實現(xiàn)對電子文件的數(shù)據(jù)安全防護。在測試方案中,用戶對文件的詳細訪問行為如表4所示。其中,UserA~UserF每位用戶均對FileA與FileB兩個文件發(fā)起了訪問請求,而對于操作集合中的useop、uset和usec,其對用戶的操作控制是等價的,其中任意一項不滿足條件均會觸發(fā)中斷訪問的機制。因此,為了減少重復試驗次數(shù),本測試方案中僅對useop取不同值。
用戶訪問文件的結果如表5所示。結合表3~5可以得出結論,系統(tǒng)會在用戶訪問過程的不同階段對其進行全流程監(jiān)控,一旦發(fā)現(xiàn)用戶存在越權訪問行為,系統(tǒng)會立刻阻斷相關文件的訪問操作。因此,通過本研究設計的原型系統(tǒng),能夠?qū)崿F(xiàn)對用戶的電子文件訪問及操作行為進行訪問前及訪問過程中的實時監(jiān)測和控制。通過實驗測試結果可以證明,本研究設計的面向離散存儲的電子文件的訪問控制策略在可用性方面是可行的。
表5 用戶訪問結果信息表
功能方面:本研究對所提方案在數(shù)據(jù)加密、數(shù)據(jù)解密、密鑰管理和數(shù)據(jù)傳輸各環(huán)節(jié)中,主服務器、授權服務器及客戶端在業(yè)務負載方面進行了分析。與傳統(tǒng)公鑰密碼體制(PKI)相比,一方面,本研究所提方案主要涉及主服務器和客戶端,因此在服務器端的授權服務器節(jié)點上業(yè)務負載二者幾乎無差別;另一方面,由于方案將數(shù)據(jù)加解密業(yè)務由服務器端的主服務器節(jié)點轉(zhuǎn)移至客戶端節(jié)點,因此在主服務器節(jié)點業(yè)務負載會有明顯降低,而客戶端節(jié)點的業(yè)務負載會有一定的增加。這種結果正符合本研究所提方案的初衷,即將系統(tǒng)的業(yè)務負載以“化整為零”的方式進行分散轉(zhuǎn)移,從而提升系統(tǒng)的整體性能。
性能方面:在本研究所提方案中,客戶端僅需承擔用戶的訪問控制業(yè)務和一定的數(shù)據(jù)加解密業(yè)務,因此系統(tǒng)資源消耗較少;而在服務器端,由于主服務器負責管理各客戶端的業(yè)務請求,并承擔數(shù)據(jù)系統(tǒng)協(xié)調(diào)控制任務,是整個系統(tǒng)的業(yè)務負載核心所在,因此用戶數(shù)量直接影響主服務器的系統(tǒng)資源消耗。對此,本研究針對主服務器在不同客戶端數(shù)量下的系統(tǒng)資源占用情況進行了實驗分析??梢钥吹?本實驗中隨著用戶數(shù)量的增加,主服務器的CPU和內(nèi)存的資源占用比均提升較快,尤其在用戶數(shù)量達到35時,內(nèi)存資源幾乎消耗殆盡。當前,本方案對大量客戶端的使用場景支持較差,主要是因為本實驗中主服務器使用的是一般的個人電腦,系統(tǒng)資源有限。因此,可以通過采用專業(yè)的硬件服務器以及優(yōu)化客戶端接入管理等方式提升系統(tǒng)整體性能,以滿足多用戶使用需求。
2.3.1 文件機密性 本研究針對電子文件的數(shù)據(jù)結構特征引入了混合對稱加密算法,通過兩種通用對稱加密算法實現(xiàn)對文件的流加密和分組加密,這種方式不僅有效地提升數(shù)據(jù)了內(nèi)容的安全性,而且具備輕量化特性。同時,本研究采用密鑰分離管理管理機制,通過主服務器和客戶機分別管理密鑰的隨機和固定部分的方式實現(xiàn)對密鑰的分離管理。由于密鑰的固定部分是由客戶機硬件參數(shù)通過特殊算法所得,且僅在執(zhí)行文件加/解密操作時生成,非法用戶很難獲取。而密鑰的隨機部分由主服務器隨機生成并定期更新,客戶機也不會存儲。因此,非法用戶無法獲取完整的文件密鑰解密客戶機上的電子文件。
2.3.2 文件訪問控制 本研究借鑒了基于屬性基加密的訪問控制策略的優(yōu)點,通過對文件及用戶對象設定合理的屬性值集合,并制定訪問控制門限值、設定門限條件約束用戶對文件的訪問權限,能夠?qū)崿F(xiàn)對文件的細粒度訪問控制。這種技術有別于傳統(tǒng)基于角色權限的訪問控制方法,此系統(tǒng)無需設計繁雜的基于角色授權機制,僅在客戶機端驗證用戶屬性集合是否滿足門限條件,通過分別對用戶和文件對象設定屬性值集合,并由用戶屬性證書和主服務器分別存儲管理,非法用戶即使破解了用戶屬性證書,獲取到用戶的屬性值集合,但在沒有確定文件屬性集合及訪問控制門限值的情況下非法用戶不能夠進行文件破解操作。
針對離散存儲的電子文件數(shù)據(jù)安全防護需求,本研究通過引入密鑰分離管理算法及混合對稱數(shù)據(jù)加密算法,提出一種基于屬性基加密的數(shù)據(jù)訪問控制策略,該方案具有以下優(yōu)點:本研究設計了密鑰分離管理算法,通過將密鑰分別在服務端和客戶端進行獨立管理,并采用密鑰定期更新及動態(tài)生成方法,有效提升了密鑰的安全性;本研究設計了混合對稱加密算法,通過數(shù)據(jù)流加密及數(shù)據(jù)分組加密相結合的方法,實現(xiàn)了一種面向電子文件的輕量化且高安全性的數(shù)據(jù)安全加密方案;通過設計功能完備的客戶機程序,將主要安全防護業(yè)務轉(zhuǎn)移至客戶端,大大地降低了主服務器的工作負載,提高系統(tǒng)整體效率。因此,該解決方案具有一定的應用推廣價值。