陳良英
(四川信息職業(yè)技術(shù)學(xué)院,四川 廣元 628017)
我國信息技術(shù)研究起始于20世紀(jì)60年代。經(jīng)過數(shù)十年的發(fā)展,已經(jīng)融入到我國國民生活的各個角落?,F(xiàn)階段我國互聯(lián)網(wǎng)相關(guān)領(lǐng)域和技術(shù)正在不斷與社會接軌,我國正處于高速發(fā)展的信息時代。信息社會使個人和企業(yè)之間以數(shù)據(jù)信息的形式進(jìn)行交流,這就讓現(xiàn)代互聯(lián)網(wǎng)數(shù)據(jù)信息量不斷增長。在這樣一個數(shù)據(jù)量激增的時代,企業(yè)和個人均會產(chǎn)生巨大的數(shù)據(jù)資源,這些數(shù)據(jù)資源的存儲離不開數(shù)據(jù)庫。社會中的個人和企業(yè),均與數(shù)據(jù)庫存在緊密的關(guān)系,不僅個人的財(cái)政信息如銀行卡余額、身份證號碼等存在于數(shù)據(jù)庫中,大量企業(yè)信息甚至是涉及國家高度軍事機(jī)密或重要數(shù)據(jù)也存在于數(shù)據(jù)庫中。然而因?yàn)楝F(xiàn)代互聯(lián)網(wǎng)信息具有巨大的潛在價值,其存儲位置相對集聚性較強(qiáng),不法分子針對數(shù)據(jù)庫的網(wǎng)絡(luò)攻擊往往可以獲取最直接有效的攻擊效果,數(shù)據(jù)庫已經(jīng)成為非法人員進(jìn)行資源竊取的首要攻擊目標(biāo)。2018年,Virerzon公司發(fā)布了《2018年度數(shù)據(jù)庫泄露報(bào)告》,該報(bào)告是由Virerzon公司以及39家合作企業(yè)共同完成的,其中包括了著名數(shù)據(jù)網(wǎng)站Delouti、EMC、Chetk、Intouerce、Froint公司等。報(bào)告內(nèi)容顯示,僅2018年上半年,全球就發(fā)生了945起較大型的數(shù)據(jù)泄露事件,共計(jì)導(dǎo)致45億條數(shù)據(jù)泄露,與2017年相比數(shù)量增加了133%。為了有效降低安全隱患,現(xiàn)代計(jì)算機(jī)數(shù)據(jù)庫的管理人員必須對數(shù)據(jù)庫進(jìn)行安全檢測,消除安全隱患。傳統(tǒng)情況下,針對計(jì)算機(jī)數(shù)據(jù)庫安全檢測工具一般基于數(shù)據(jù)代碼和數(shù)據(jù)密匙,這種檢測手段在初期雖然取得了一定效果,但是隨著入侵技術(shù)的提高,對數(shù)據(jù)庫安全隱患的隔離率,已經(jīng)不能滿足數(shù)據(jù)庫維護(hù)的需要。針對這一情況,設(shè)計(jì)提出了以屬性加密為核心的計(jì)算機(jī)數(shù)據(jù)庫安全檢測工具,維護(hù)計(jì)算機(jī)系統(tǒng)數(shù)據(jù)庫的安全[1]。
設(shè)計(jì)的安全檢測工具主要分為三個部分:一是文件屬性加密部分,設(shè)計(jì)通過生成公有和私有密匙進(jìn)行文件屬性加密;二是加密文件數(shù)據(jù)序列索引,對加密文件進(jìn)行序列重組;最后利用數(shù)據(jù)文件建立TRIE樹結(jié)構(gòu),根據(jù)索引序列進(jìn)行數(shù)據(jù)遷移,即完成數(shù)據(jù)檢測。
基于屬性的加密機(jī)制是現(xiàn)代云計(jì)算網(wǎng)絡(luò)以及分布式等環(huán)境下,對數(shù)據(jù)中心數(shù)據(jù)庫進(jìn)行訪問控制的主體研究熱點(diǎn)之一。因?yàn)楝F(xiàn)代計(jì)算機(jī)數(shù)據(jù)庫一般均采用分布式處理結(jié)構(gòu),而且在多分部機(jī)構(gòu)ABE中,一般不會采用中央授權(quán)的管理方式,所以在對數(shù)據(jù)庫全局身份標(biāo)識進(jìn)行共謀攻擊時,身份全局管理會出現(xiàn)一定的安全隱患。而設(shè)計(jì)的計(jì)算機(jī)數(shù)據(jù)庫安全檢測攻擊引入了一種新型的文件屬性加密方案,用戶在進(jìn)行多項(xiàng)密匙申請時,可以根據(jù)用戶自身的指令協(xié)要,實(shí)現(xiàn)用戶標(biāo)識不公開,提高屬性加密效果。
設(shè)計(jì)提出的文件屬性加密主要基于新型的密匙架構(gòu),加密方案將密匙主要分為兩個部分即域內(nèi)密匙和域外密匙。域內(nèi)密匙的生成,主要是通過具有域內(nèi)密匙屬性的授權(quán)加密機(jī)構(gòu)(AA)進(jìn)行密匙授權(quán)。AA會為當(dāng)前加密用戶提供一個特質(zhì)的屬性密匙。而域外密匙則需要域內(nèi)屬性密匙原本數(shù)據(jù)代碼完成,詳細(xì)的域內(nèi)和域外密匙分發(fā)方案如表1所示。
表1密匙組成數(shù)據(jù)表
每一個數(shù)據(jù)庫授權(quán)結(jié)構(gòu)均有一個相應(yīng)代碼下的加密公共密匙和一個私有密匙。具有通信鏈路的不同授權(quán)書信機(jī)構(gòu)之間,可以在密匙建立的初期,通過密匙信息共享建立公共密匙的信任鏈路。數(shù)據(jù)庫每一個網(wǎng)絡(luò)域的屬性授權(quán)機(jī)構(gòu),如果要建立加密,需要具有信任域中所有區(qū)域的屬性授權(quán)機(jī)構(gòu)公共密匙信息。詳細(xì)密匙授權(quán)架構(gòu)如圖1所示[2]。
圖1 網(wǎng)絡(luò)域內(nèi)屬性密匙分布架構(gòu)圖
根據(jù)圖1可以看出,AA1具有自身的公共密匙和私有密匙,同時獲取了其他域內(nèi)的私有密匙,可以直接用于生成具有管理屬性的公共密匙,以及文件加密的私有密匙。對于每一個文件網(wǎng)絡(luò)域?qū)傩?,都有一個公共密匙,用于加密文件。一個文件數(shù)據(jù)的管理者可以根據(jù)訪問策略,利用不同域內(nèi)屬性的公共密匙進(jìn)行數(shù)據(jù)加密。具體方案為:
令數(shù)據(jù)N=p1p2p3,其中p1p2p3為素?cái)?shù),G和GT分別為數(shù)據(jù)N的雙線數(shù)據(jù)群,用e:G×G→GT表示加密數(shù)據(jù)未知結(jié)構(gòu)下數(shù)據(jù)線性映射。在AA中生成用戶數(shù)據(jù)文件標(biāo)識,映射到G文件中的群元素中,另外制定數(shù)據(jù)外定義下的有限數(shù)據(jù)文件哈希函數(shù)集合,每一個AA生成的私有密匙,均需要存在于且僅存在于哈希函數(shù)集合中,對文件屬性進(jìn)行處理[3]。需要著重說明的是,該方案主要基于文件屬性多數(shù)字階層的群構(gòu)造,但是所有的G文件均需要存在于子群中。文件屬性加密操作如下。
(1)Globat Setup(GP),輸入安全性參數(shù)λ,根據(jù)參數(shù)生成全局性公共參數(shù)GP,選擇一階GP為數(shù)據(jù)N的實(shí)際下述線性數(shù)據(jù)集群。在GP中,主要包括數(shù)據(jù)N,Gp1的生成源g1,以及隨機(jī)屬性加密函數(shù)的H1和T1表述。
(2)Authery Setup(AP):根據(jù)屬性授權(quán)機(jī)構(gòu)密匙執(zhí)行下的初始化進(jìn)程,每一個授權(quán)單位均需要選擇一個隨機(jī)指數(shù);從上述建立的哈希函數(shù)集中生成一個具有一致性的隨機(jī)函數(shù),將這個函數(shù)作為屬性授權(quán)機(jī)構(gòu)的索引,也就是授權(quán)機(jī)構(gòu)的加密密匙,則屬性授權(quán)機(jī)構(gòu)的私有密匙表示為SKa,公有密匙表示為CKa,而IDA則表示為當(dāng)前屬性授權(quán)機(jī)構(gòu)的身份編碼。其表達(dá)公式為:
SKa=[Sa,xa,?a]
(1)
(2)
(3)Auto-attacker:因?yàn)閷傩怨裁艹椎氖跈?quán)機(jī)構(gòu)需要根據(jù)網(wǎng)絡(luò)域?qū)傩赃M(jìn)行公參,屬性標(biāo)識以及授權(quán)屬性私有密匙生成,其中:
IDj=IDAπID
(3)
則Pki的生成公式可以表示為:
Pki={Pkje(g1,g2)sa(Hxa(IDj)),PKgiHxa(idj)}
(4)
公式(4)中的屬性身份標(biāo)識IDj主要是由AA的身份表示屬性和對應(yīng)編碼生成,而IDA則主要表示為授權(quán)機(jī)構(gòu)內(nèi)的身份編碼。文件屬性的多樣化全局加密標(biāo)識,使得屬性標(biāo)識是整個局域網(wǎng)信任域中唯一的驗(yàn)證性標(biāo)識,所以每個公共屬性標(biāo)識在信任域中,也具有唯一性[4]。根據(jù)全局加密表示,設(shè)計(jì)為加密用戶提供了全局身份標(biāo)識,此標(biāo)識由當(dāng)前數(shù)據(jù)庫和使用用戶所在域的AA標(biāo)識組成。在IDA下,使用用戶需要申請屬性標(biāo)識,而且設(shè)計(jì)為了實(shí)現(xiàn)使用用戶標(biāo)識的全網(wǎng)唯一性,會為使用用戶提供一個不同屬性編碼。在加密過程中,加密工具會首先檢查使用者身份是否具有屬性授權(quán)機(jī)構(gòu)的負(fù)責(zé)項(xiàng),然后驗(yàn)證使用者的實(shí)際身份,檢測是否具備屬性授權(quán)的可能性,如果不可以則輸出結(jié)果為空,反之則生成數(shù)據(jù)密匙。
(4)Decrypt:針對屬性密匙的機(jī)密算法為CT輸出密文,全局參數(shù)。同一個身份標(biāo)識,用戶的機(jī)密屬性密匙集具有外部相似性。如果使用者的屬性密匙滿足加密時的訪問控制要求,則可以完成屬性解密。
利用上述方式對數(shù)據(jù)庫文件進(jìn)行加密后,原本的序列架構(gòu)會被打亂,在進(jìn)行安全檢測過程中,無法進(jìn)行有效識別。設(shè)計(jì)針對加密文件的密匙序列[5],對其進(jìn)行文件關(guān)鍵序列架構(gòu)重組。因?yàn)榧用軐傩晕募哂忻黠@的封閉開源性,所以設(shè)計(jì)提出了Apriority封閉性數(shù)據(jù)索引架構(gòu)。整個架構(gòu)采用集中式數(shù)據(jù)管理,包括序列程序檢索、序列存儲以及序列引源的建立。這種索引數(shù)據(jù)架構(gòu)的相對配置資源較為簡單,配置體系和操作整體較為便捷,其架構(gòu)如圖2所示。
圖2序列索引架構(gòu)示意圖
設(shè)計(jì)的索引序列架構(gòu)從索引功能上來說包括四個索引單元分別為:Apriority底層數(shù)據(jù)管理單元、Apriority數(shù)據(jù)序列交換單元、Apriority并行序列解析單元、Apriority文檔數(shù)據(jù)解析單元[6]。
Apriority底層數(shù)據(jù)管理單元主要負(fù)責(zé)幫助安全檢測管理工具的使用用戶,建立正常的加密數(shù)據(jù)文件序列索引庫,將使用者提交的加密數(shù)據(jù)文檔和文檔序列號,利用鏡像索引結(jié)構(gòu)進(jìn)行數(shù)據(jù)準(zhǔn)壓縮、數(shù)據(jù)合并以及數(shù)據(jù)優(yōu)化。另外Apriority底層數(shù)據(jù)管理單元還可以針對使用用戶提交的各類加密文件索引語句進(jìn)行密匙解讀。
Apriority數(shù)據(jù)序列交換單元主要負(fù)責(zé)對加密文件序列索引用戶的各類處理結(jié)果進(jìn)行回饋,包括數(shù)據(jù)輸入文檔的檢索信息以及數(shù)據(jù)高亮分頁處理等。該序列交換命令的解析包括整個索引庫的數(shù)據(jù)分配過程,使用用戶在進(jìn)行操作時,用戶界面和后臺服務(wù)界面會進(jìn)行數(shù)據(jù)資源管理器之間的數(shù)據(jù)串聯(lián),同步傳遞狀態(tài)命令質(zhì)量檢測等。此外數(shù)據(jù)序列交換單元還包括對當(dāng)前加密信息的綜合判斷,并與后臺相關(guān)聯(lián)[7]。
而Apriority并行序列解析單元和Apriority文檔數(shù)據(jù)解析單元,則主要負(fù)責(zé)將各類加密文件的序列文檔進(jìn)行集聚匯總,通過提取文檔解析分析內(nèi)容,獲取明確的文件標(biāo)識碼,進(jìn)而生成解析序列。在進(jìn)行序列解析過程中,需要對加密數(shù)據(jù)進(jìn)行準(zhǔn)確的數(shù)據(jù)描述和數(shù)據(jù)整理,利用適當(dāng)?shù)臄?shù)據(jù)索引源進(jìn)行有序數(shù)據(jù)文件標(biāo)記。這些標(biāo)記后的特征數(shù)據(jù)可以作為檢測工具中所有特征數(shù)據(jù)索引字段的數(shù)據(jù)集合,根據(jù)數(shù)據(jù)集合中的索引項(xiàng),可以將索引序列進(jìn)行割裂操作,然后生成數(shù)據(jù)序列文檔。序列內(nèi)容包括序列用戶名稱、序列存儲量、序列數(shù)據(jù)量、序列生成日期、序列格式文檔ID、序列存儲位置等,如圖3所示。
圖3 索引數(shù)據(jù)集合
在建立Apriority數(shù)據(jù)序列索引時,需要針對不同的文檔索引格式提出相應(yīng)的屬性要求。
是否可以進(jìn)行有效存儲:數(shù)據(jù)索引是否完全包含加密數(shù)據(jù)序列,即數(shù)據(jù)系列數(shù)據(jù)集是否存在于數(shù)據(jù)索引存儲中。這種存儲方式需要完全符合小型文本文檔內(nèi)容的域名格式,否則很容易引起索引序列的索引量過載。
是否可以進(jìn)行有效索引:如果當(dāng)前加密數(shù)據(jù)的索引序列無法被正確索引,那么數(shù)據(jù)庫安全檢測工具的使用人員就需要在該數(shù)據(jù)源上進(jìn)行分配數(shù)據(jù)檢測,例如加密文檔存儲位置檢索,文檔數(shù)據(jù)分類檢索,生成額外的檢索條件。
是否出現(xiàn)明確的檢索分詞:檢索分詞主要表現(xiàn)為按照某種特定的分詞計(jì)劃進(jìn)行數(shù)據(jù)切取后,可以從數(shù)據(jù)中匹配到的屬性關(guān)鍵詞。這種關(guān)鍵詞可以有效提高搜索結(jié)果的精確度。部分加密數(shù)據(jù)檢索屬性無法作為關(guān)鍵詞使用,如數(shù)據(jù)文檔生成和歸檔日期等。
根據(jù)當(dāng)前加密數(shù)據(jù)的索引序列和具體檢索需要,對當(dāng)前計(jì)算機(jī)數(shù)據(jù)庫內(nèi)屬性加密信息制備檢索數(shù)據(jù),如表2所示。
表2 Apriority數(shù)據(jù)序列索引檢索數(shù)據(jù)表
目前數(shù)據(jù)庫安全檢測算法一般采用CDM數(shù)據(jù)線性規(guī)劃算法[8],設(shè)計(jì)基于上述數(shù)據(jù)序列索引架構(gòu)和加密文件域名架構(gòu),對其進(jìn)行改進(jìn),提出新的TRIE樹算法,完成數(shù)據(jù)庫的檢測。TRIE樹結(jié)構(gòu)最早被用于高效檢索字典結(jié)構(gòu)。其根深度被定義為0。結(jié)構(gòu)的第N層節(jié)點(diǎn)會指向第N+1層的數(shù)據(jù)節(jié)點(diǎn),其指向針被稱之為檢索數(shù)據(jù)邊。每一個數(shù)據(jù)邊都用對應(yīng)的字母或者ID表示。例如節(jié)點(diǎn)A指向節(jié)點(diǎn)B,則認(rèn)為A節(jié)點(diǎn)是B節(jié)點(diǎn)的母系節(jié)點(diǎn),B節(jié)點(diǎn)是A節(jié)點(diǎn)的子系節(jié)點(diǎn)。因?yàn)門RIE樹結(jié)構(gòu)不僅可以有效存放檢索單次項(xiàng),還可以存放各種序列集。具體方法就是將TRIE樹的節(jié)點(diǎn)或者邊作為有序序列集的子項(xiàng),此時TRIE樹各個路徑就可以與序列重合。根據(jù)上述操作,設(shè)計(jì)將生成的Apriority數(shù)據(jù)序列作為序列項(xiàng),生成序列網(wǎng)格。在進(jìn)行數(shù)據(jù)項(xiàng)集發(fā)掘時,利用字母代替加密數(shù)據(jù)序列項(xiàng)集,這樣就可以將加密數(shù)據(jù)序列表示成由字母構(gòu)成的單次項(xiàng)。圖4為存放了選項(xiàng)集的一個TRIE樹結(jié)構(gòu)。
圖4 五個選項(xiàng)集下的TRIE樹結(jié)構(gòu)
根據(jù)TRIE樹結(jié)構(gòu),對當(dāng)前加密數(shù)據(jù)文件序列事物進(jìn)行存儲,存儲容器為CECTOR(……),此時選擇安全精簡事物記錄,該記錄需要默認(rèn)程序選擇。精簡記錄存儲容器為map
進(jìn)行多次數(shù)據(jù)庫掃描后,數(shù)據(jù)庫本體數(shù)據(jù)項(xiàng)會存在于存儲容器中。這里的精簡事物即只存在于數(shù)據(jù)庫中的頻繁數(shù)據(jù)項(xiàng)。此時重復(fù)數(shù)據(jù)將被計(jì)數(shù),以此建立數(shù)據(jù)公式:
(5)
公式中σeq、[σeq]1分別為當(dāng)前數(shù)據(jù)庫數(shù)據(jù)最高項(xiàng)序列和最低項(xiàng)序列;Tmax和[Tmax]1分別為數(shù)據(jù)庫掃描后的最大存儲和最小存儲;σb和[σb]1數(shù)據(jù)邊的兩個極值。根據(jù)公式(5)數(shù)據(jù)庫本體文件序列會完全遷移到數(shù)據(jù)容器中,當(dāng)出現(xiàn)安全問題項(xiàng)或者未加密數(shù)據(jù)項(xiàng)時,該項(xiàng)無法生成加密序列,同時無法被遷移,通過文件基數(shù),即可為探知,檢測宣告完成。
為驗(yàn)證本文設(shè)計(jì)的基于屬性加密的計(jì)算機(jī)數(shù)據(jù)庫安全檢測工具的實(shí)際檢測效果,進(jìn)行有效性試驗(yàn)檢測。通過對預(yù)設(shè)目標(biāo)進(jìn)行多范圍多角度數(shù)據(jù)攻擊,獲取檢測數(shù)據(jù),進(jìn)而證明該工具的實(shí)際有效性。在試驗(yàn)過程中,模擬樣本數(shù)據(jù)建立數(shù)據(jù)庫。使用CTM數(shù)據(jù)檢測工具作為對比組,進(jìn)行檢測效果對比。檢測包括誤用異常檢測和偽裝攻擊檢測兩部分,具體實(shí)驗(yàn)數(shù)據(jù)如下。
誤用異常檢測時,主要檢測對象為每條用戶日志以及聚簇規(guī)則是否完全匹配,以下為實(shí)驗(yàn)檢測定義。
定義1如果當(dāng)前數(shù)據(jù)庫文件的一條日志記錄與當(dāng)前聚簇規(guī)則的兩側(cè)規(guī)則均具有統(tǒng)一性,則認(rèn)定其具有匹配規(guī)則。
定義2一個加密數(shù)據(jù)文件如果其加密序列不符合當(dāng)前聚簇規(guī)則,則其可信度加權(quán)值作為異常檢測值出現(xiàn)。
根據(jù)定義1和定義2,以實(shí)驗(yàn)數(shù)據(jù)庫為目標(biāo),進(jìn)行誤用異常數(shù)據(jù)輸出,并利用實(shí)驗(yàn)對比的兩種工具進(jìn)行檢測,其檢測結(jié)果如圖5所示。
圖5 誤用異常檢測率對比
根據(jù)圖5數(shù)據(jù)可以看出,應(yīng)用設(shè)計(jì)的屬性加密計(jì)算機(jī)數(shù)據(jù)庫安全檢測工具,對誤用異常檢測具有較好的檢測效果。根據(jù)數(shù)據(jù)統(tǒng)計(jì)可以確定,其數(shù)據(jù)庫文件誤用異常檢測率提高了17%,可以證明其有效性。
偽裝攻擊是對當(dāng)前數(shù)據(jù)庫進(jìn)行主動攻擊活動的總稱。偽裝攻擊檢測,主要驗(yàn)證檢測工具的魯棒性。實(shí)驗(yàn)共進(jìn)行了10組有效的偽裝攻擊,其攔截率如表3所示。
表3 偽裝攻擊攔截率
根據(jù)以往的數(shù)據(jù)攔截經(jīng)驗(yàn),當(dāng)攔截率高于90%時,可以認(rèn)定為絕對攔截,此時處于絕對安全狀態(tài);當(dāng)攔截率為75%~90%時,為次攔截屬于基本安全狀態(tài);當(dāng)攔截率低于70%時,數(shù)據(jù)庫為危險(xiǎn)狀態(tài)。根據(jù)實(shí)驗(yàn)數(shù)據(jù)可以看出,應(yīng)用屬性機(jī)密的安全檢測工具,攔截率均高于90%,數(shù)據(jù)庫處在絕對安全狀態(tài),比傳統(tǒng)CTM檢測工具攔截率提高了20%以上,進(jìn)一步證明了其有效性。
數(shù)據(jù)庫信息安全,是數(shù)據(jù)庫建設(shè)和維護(hù)的核心工作之一。對國民生產(chǎn)和經(jīng)濟(jì)保障具有重要意義。本文基于屬性加密,提出了新型數(shù)據(jù)庫數(shù)據(jù)安全檢測工具,可以有效提高數(shù)據(jù)庫安全保障,具有實(shí)際應(yīng)用價值。