馬 飛,李 娟
(北方民族大學(xué),寧夏 銀川 750021)
數(shù)據(jù)庫(kù)是一種根據(jù)數(shù)據(jù)的不同結(jié)構(gòu)實(shí)現(xiàn)分類存儲(chǔ)和管理的數(shù)據(jù)倉(cāng)庫(kù),實(shí)現(xiàn)共享、組織和統(tǒng)一化龐大數(shù)據(jù)的管理集合工作。因數(shù)據(jù)庫(kù)是通過(guò)一定方式將數(shù)據(jù)存儲(chǔ)在一起,具有較小的冗余度、能夠同時(shí)和多名用戶共享,且還可以和應(yīng)用程序分開(kāi)的互相獨(dú)立數(shù)據(jù)集合,因此,可將其視為電子化的儲(chǔ)蓄柜[1]。同時(shí),數(shù)據(jù)庫(kù)也包含另外一種含義,即指數(shù)據(jù)的管理新技術(shù)以及新方法,以便更加嚴(yán)密地控制數(shù)據(jù)、更加科學(xué)地組織數(shù)據(jù)、更加方便的維護(hù)數(shù)據(jù)以及更加有效的利用數(shù)據(jù)。其按照類型可以分成關(guān)系類數(shù)據(jù)庫(kù)以及非關(guān)系類數(shù)據(jù)庫(kù)兩類。關(guān)系型數(shù)據(jù)庫(kù)的存儲(chǔ)格式能夠直接反映出實(shí)體間的關(guān)系,和常見(jiàn)的表格類型較為類似,其中表和表之間存在許多較為復(fù)雜的關(guān)聯(lián),這種關(guān)聯(lián)方式對(duì)于數(shù)據(jù)操作的一致性、事務(wù)性較好,所以比較合適結(jié)構(gòu)化的數(shù)據(jù)處理;而非關(guān)系型的數(shù)據(jù)庫(kù)是以摒棄復(fù)雜的分布式數(shù)據(jù)關(guān)系為目的、簡(jiǎn)化數(shù)據(jù)庫(kù)的結(jié)構(gòu)方式、降低影響性能的表連接、避免冗余等目標(biāo)所進(jìn)行設(shè)計(jì)的,其布局結(jié)構(gòu)簡(jiǎn)單,在大數(shù)據(jù)量下讀寫的性能比較好,可以滿足隨時(shí)存儲(chǔ)的數(shù)據(jù)格式需求,比較適用于大數(shù)據(jù)的工作處理[2]。
不論是單位還是個(gè)人在使用數(shù)據(jù)庫(kù)時(shí),不可避免地存儲(chǔ)一些重要信息,導(dǎo)致每天訪問(wèn)數(shù)據(jù)庫(kù)的人流量較大,不乏會(huì)有一些不法分子想要盜取這些隱私信息,以此作為威脅手段,甚至造成嚴(yán)重經(jīng)濟(jì)財(cái)產(chǎn)損失、危害社會(huì)安全等事故[3]。因此,對(duì)數(shù)據(jù)庫(kù)安全訪問(wèn)展開(kāi)控制具有重要意義。目前有學(xué)者設(shè)計(jì)了基于信任的動(dòng)態(tài)多級(jí)訪問(wèn)控制模型[4]和基于加密云數(shù)據(jù)的多級(jí)安全訪問(wèn)控制模型[5]。但隨著數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,上述傳統(tǒng)模型的應(yīng)用效果理想度較差。因此,本文設(shè)計(jì)了一種基于同態(tài)加密的數(shù)據(jù)庫(kù)安全訪問(wèn)多級(jí)控制模型,用來(lái)區(qū)分非法的攻擊數(shù)據(jù),從而保障數(shù)據(jù)庫(kù)內(nèi)的信息安全。
分塊的密鑰統(tǒng)一配置4個(gè)素?cái)?shù)r0、r1、q0以及q1,并且要滿足r0 在同一字段不同安全等級(jí)字段的密鑰配置,具體如圖1所示。 圖1 安全字段密鑰的配置示意圖 為了方便描述加密的過(guò)程,要定義中間的密鑰材料。 以下給出具體密鑰的配置,用戶安全等級(jí)和字段安全等級(jí)二者是相互獨(dú)立的[7]。 在加密的過(guò)程內(nèi),所用到中間密鑰的材料都包括:KKt,i、ekt,i、bkt,i以及K。 設(shè)計(jì)中間密鑰材料的目的是為提升數(shù)據(jù)庫(kù)加密的效率,從而能夠預(yù)先完成加密計(jì)算或者數(shù)據(jù)存儲(chǔ)[8]。 在加密過(guò)程中,密鑰分塊的大小應(yīng)該小于q0q1,并且規(guī)定模運(yùn)算不受括號(hào)的限制。具體加密步驟如下所示: 1)加密字段。該步驟不但能夠與此字段同樣安全等級(jí)用戶實(shí)現(xiàn),還能夠利用系統(tǒng)完成。若通過(guò)用戶完成,則用戶實(shí)現(xiàn)加密操作以后,要把密文發(fā)送至系統(tǒng),具體公式為 (1) 2)加密整個(gè)數(shù)據(jù)記錄。此步驟通常利用系統(tǒng)實(shí)現(xiàn),若每個(gè)字段安全等級(jí)相等,則此步驟同樣能夠與字段相等的安全等級(jí)用戶實(shí)現(xiàn),具體公式為 (2) 具體解密步驟如下所示: 1)解密記錄。此步驟通常是由數(shù)據(jù)庫(kù)本身所完成的[9]。若每個(gè)字段安全等級(jí)相等,則此步驟同樣能夠和字段相等安全等級(jí)用戶實(shí)現(xiàn),具體過(guò)程公式為 (3) 2)解密字段。此步驟通常由系統(tǒng)實(shí)現(xiàn)。若每個(gè)字段安全等級(jí)相等,則此步驟同樣能夠和字段相等安全等級(jí)用戶實(shí)現(xiàn)。 首先從Cki,t中提取出Cki,t,s,就能夠獲得Rki,t,smodq0以及Rki,t,smodq1,然后采用剩余定理進(jìn)行計(jì)算Rki,tmodq0q1。 依據(jù)同態(tài)加密方法可知,安全訪問(wèn)實(shí)現(xiàn)的關(guān)鍵步驟在于對(duì)p、q和大素?cái)?shù)rp、rq的選擇。關(guān)鍵參數(shù)的選擇很大程度上可以直接影響同態(tài)加密算法魯棒性以及安全性[10]。 通常來(lái)說(shuō),要想獲得一個(gè)大素?cái)?shù),先要隨機(jī)獲得一個(gè)足夠大的數(shù)量級(jí)數(shù),接著判斷此數(shù)是否是素?cái)?shù)。若通過(guò)測(cè)試此數(shù)不為素?cái)?shù),那么隨機(jī)函數(shù)則會(huì)重新再產(chǎn)生一個(gè)數(shù),直到測(cè)試得到素?cái)?shù)為止。具體過(guò)程如下: 1)生成素?cái)?shù)的具體步驟如下: 步驟1:任意生成一個(gè)足夠大的數(shù)量級(jí)數(shù)p; 步驟2:為了確保此數(shù)是奇數(shù)和保證此數(shù)數(shù)量級(jí)夠大,把此數(shù)最高位與最低位置1; 步驟3:要想保證p為素?cái)?shù),需要采用除法將p除去小于2000的全部素?cái)?shù)。如果不能夠全部整除,那么p即是素?cái)?shù); 2)選擇r 依據(jù)同態(tài)加密的方法,r取值能夠直接影響到密文產(chǎn)生值。但怎么確保同樣明文生成密文,是不同r關(guān)鍵取值[11]。 若r為p倍數(shù),那么相對(duì)于模p,被加密模的數(shù)是要加上p許多倍,而結(jié)果保持不變。因此該處如果可以產(chǎn)生一個(gè)隨機(jī)數(shù)rand()。那么則可以確保選擇為隨機(jī)的,相同明文遇到r也是相同的,所以r公式為 r=sign(x)×p (4) 根據(jù)式(4)可判斷r是否能夠滿足同態(tài)加密的。相對(duì)于隨意的D(E(x))=x,使y=E(x)×a,a=x+sig(x)raNd()×p,那么N=p×q,繼而依據(jù)y=fmod(a,n),能夠得到下式 fmod(y,p)=fmod(fmod(a,N),p) (5) 通過(guò)上述步驟可知,rand()大小不影響解密。同樣明文獲得的密文是不同的[12]。 數(shù)據(jù)信息安全級(jí)主要是信息安全級(jí)別的屬性,代表一個(gè)信息機(jī)密的程度,利用C表示。數(shù)據(jù)借用標(biāo)識(shí)是信息數(shù)據(jù)來(lái)源的屬性,代表數(shù)據(jù)使用者自安全級(jí)(利用null代表)或者是從另外一個(gè)低安全級(jí)的使用者借來(lái)。當(dāng)訪問(wèn)者進(jìn)入系統(tǒng)主客體,全部要被賦予一個(gè)安全的標(biāo)記。接著在插入基元組時(shí),信息數(shù)據(jù)借用標(biāo)識(shí)則被賦予null值,操作各種數(shù)據(jù)時(shí),需要及時(shí)更新。然后借用標(biāo)識(shí)輔助實(shí)現(xiàn)數(shù)據(jù)操作,自身客體在進(jìn)入系統(tǒng)時(shí),不會(huì)有此屬性。 在上述分析的基礎(chǔ)上,建立多級(jí)關(guān)系的模式為R(Ai,Bi,Ci,Di,TC,TB),其中,Ai代表數(shù)據(jù)屬性,Di代表Ai值域,Ci代表Ai安全級(jí),Bi代表Ai借用標(biāo)識(shí),TC代表元組安全級(jí),TB代表元組借用的標(biāo)識(shí)。 將上述R(Ai,Bi,Ci,Di,TC,TB)視為一組互相不同元組,遮擋B≠null時(shí),Bi≥Ci,TB≠null時(shí),TB 這種存儲(chǔ)模式處理數(shù)據(jù),可以使用戶身份合法性得到證明,一旦合法,系統(tǒng)會(huì)給使用者對(duì)應(yīng)的數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限。且該使用者得到資源權(quán)限,能夠不通過(guò)系統(tǒng)私自授權(quán)于其他的使用者對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),所以需要利用同態(tài)加密的方法,致使系統(tǒng)能夠進(jìn)行異常數(shù)據(jù)檢測(cè),找出非法訪問(wèn)的數(shù)據(jù),從而保護(hù)數(shù)據(jù)庫(kù)。 該模式機(jī)制主要由訪問(wèn)控制矩陣所決定,將整體數(shù)據(jù)庫(kù)給使用者,利用一個(gè)矩陣表示授權(quán)的狀態(tài),在矩陣內(nèi)各項(xiàng)與對(duì)應(yīng)權(quán)限互相匹配,若使用者請(qǐng)求與其相同,那么能夠訪問(wèn)對(duì)應(yīng)數(shù)據(jù)庫(kù)資源,相反則不能。該模型是采用二維矩陣完成訪問(wèn)控制,主要核心思想是在訪問(wèn)控制矩陣d的存儲(chǔ)主體對(duì)于客體擁有權(quán)限。因?yàn)樵摲N訪問(wèn)控制矩陣為二維,所以設(shè)置z作為主體集,v代表客體集,l代表權(quán)限集。具體過(guò)程如下 d:z×v→l (6) 把該訪問(wèn)控制的方式,簡(jiǎn)化敘述成主體對(duì)于客體存在的訪問(wèn)操作請(qǐng)求,并且主體具有操作的權(quán)限,則允許主體可以訪問(wèn)客體,反之則禁止。因?yàn)槭跈?quán)用戶能夠系統(tǒng)的直接或者間接授權(quán)其它沒(méi)有權(quán)限用戶,所以就會(huì)出現(xiàn)漏洞,從而導(dǎo)致數(shù)據(jù)信息被竊取、泄漏等,而將同態(tài)加密方法應(yīng)用在其中時(shí),訪問(wèn)者只需要掌握私鑰與公鑰所對(duì)應(yīng),經(jīng)過(guò)計(jì)算即可實(shí)現(xiàn)數(shù)據(jù)的訪問(wèn),即可完成模型的構(gòu)建。 為驗(yàn)證基于同態(tài)加密的數(shù)據(jù)庫(kù)安全訪問(wèn)多級(jí)控制模型的有效性,設(shè)計(jì)如下仿真驗(yàn)證實(shí)驗(yàn)。 采用臺(tái)式計(jì)算機(jī)(主頻為2.5GHz,內(nèi)存為8GB)在Ubuntu12.04的操作系統(tǒng)下完成實(shí)驗(yàn),數(shù)據(jù)庫(kù)采用Microsoft SQL2017,WebSer-vices安全服務(wù)應(yīng)用WSE3.0輔助開(kāi)發(fā),Web發(fā)布平臺(tái)利用Microsoft IIS6.0,100M帶寬的網(wǎng)絡(luò)搭建。 首先測(cè)試在應(yīng)用本文模型前后,數(shù)據(jù)庫(kù)并發(fā)用戶的訪問(wèn)速度,測(cè)試結(jié)果如圖2所示。 圖2 數(shù)據(jù)庫(kù)并發(fā)用戶的訪問(wèn)速度測(cè)試 通過(guò)觀察圖2能夠看出,因?yàn)樵跀?shù)據(jù)庫(kù)內(nèi)加入安全控制,平均訪問(wèn)耗時(shí)要比沒(méi)有加入之前長(zhǎng),出現(xiàn)這種原因的是,在訪問(wèn)控制內(nèi)需要不斷查找數(shù)據(jù)庫(kù)內(nèi)信息,而數(shù)據(jù)庫(kù)連接以及查詢?cè)谝欢ǔ潭壬虾馁M(fèi)不少時(shí)間。不過(guò)從整體上來(lái)看,在加入安全控制訪問(wèn)的數(shù)據(jù)庫(kù)中,不同并發(fā)的用戶和未加入安全訪問(wèn)控制點(diǎn)的數(shù)據(jù)庫(kù),二者平均響應(yīng)時(shí)間的曲線是趨向一致的,并未發(fā)生隨著并發(fā)用戶增多,導(dǎo)致性能降低。 在此基礎(chǔ)上,設(shè)定一組訪問(wèn)數(shù)據(jù),其中夾雜異常攻擊的數(shù)據(jù),對(duì)未采用本文方法加密的數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),從時(shí)間域角度觀察,正常訪問(wèn)的數(shù)據(jù)和異常數(shù)據(jù)二者是同時(shí)到達(dá)的。說(shuō)明未搭載本文模型的數(shù)據(jù)庫(kù)難以區(qū)分開(kāi)正常訪問(wèn)數(shù)據(jù)和異常訪問(wèn)數(shù)據(jù)。 為進(jìn)一步驗(yàn)證本文方法的有效性,設(shè)計(jì)對(duì)比實(shí)驗(yàn)。將傳統(tǒng)的基于信任的動(dòng)態(tài)多級(jí)訪問(wèn)控制模型和基于加密云數(shù)據(jù)的多級(jí)安全訪問(wèn)控制模型作為對(duì)比模型,與本文模型共同完成性能驗(yàn)證。 對(duì)比測(cè)試指標(biāo)分別為:①不同模型對(duì)隨機(jī)惡意訪問(wèn)行為的抑制能力;②數(shù)據(jù)庫(kù)信息傳輸過(guò)程丟包率。 首先對(duì)比不同模型對(duì)隨機(jī)惡意訪問(wèn)行為的抑制能力對(duì)比結(jié)果如圖3所示。 圖3 不同模型對(duì)隨機(jī)惡意訪問(wèn)行為的抑制能力對(duì)比 通過(guò)圖3所示結(jié)果可知,應(yīng)用本文模型后,數(shù)據(jù)庫(kù)因隨機(jī)惡意訪問(wèn)行為造成相應(yīng)數(shù)據(jù)輸出波動(dòng)的幅值相較于對(duì)比模型較小,能夠保障數(shù)據(jù)庫(kù)的穩(wěn)定運(yùn)行。相比于兩種對(duì)比模型,本文模型對(duì)隨機(jī)惡意訪問(wèn)行的抑制能力和魯棒性更好。 然后以數(shù)據(jù)庫(kù)信息傳輸過(guò)程丟包率為指標(biāo),對(duì)不同模型展開(kāi)性能驗(yàn)證,結(jié)果如圖4所示。 圖4 應(yīng)用不同模型后數(shù)據(jù)庫(kù)信息傳輸過(guò)程丟包率對(duì)比 分析圖4所示的實(shí)驗(yàn)數(shù)據(jù)可知,應(yīng)用兩種傳統(tǒng)模型后,數(shù)據(jù)庫(kù)信息傳輸過(guò)程丟包率會(huì)隨著時(shí)間的增加而出現(xiàn)較大幅度的變化。但應(yīng)用本文模型后,數(shù)據(jù)庫(kù)信息傳輸過(guò)程丟包率一直處于相對(duì)穩(wěn)定的狀態(tài),且明顯更低于兩種傳統(tǒng)模型。由此可見(jiàn),本文模型有效實(shí)現(xiàn)數(shù)據(jù)庫(kù)安全訪問(wèn)多級(jí)控制,避免因惡意訪問(wèn)而造成數(shù)據(jù)丟包。 互聯(lián)網(wǎng)發(fā)展的速度較快,使得數(shù)據(jù)庫(kù)的管理模式也在變化,這就有可能導(dǎo)致不法分子可通過(guò)各種高級(jí)別的手段訪問(wèn)甚至攻擊數(shù)據(jù)庫(kù),竊取數(shù)據(jù)庫(kù)的信息,造成嚴(yán)重的損失。為此,本研究基于同態(tài)加密過(guò)程設(shè)計(jì)了數(shù)據(jù)庫(kù)安全訪問(wèn)多級(jí)控制模型,其加密效果較好,且安全控制性能良好,能夠很好保證數(shù)據(jù)庫(kù)的安全。 在未來(lái)階段的研究中,將考慮在模型中加入潛在攻擊檢測(cè)機(jī)制,進(jìn)一步維護(hù)數(shù)據(jù)庫(kù)的安全性。2.2 加密過(guò)程設(shè)計(jì)
2.3 解密過(guò)程設(shè)計(jì)
3 數(shù)據(jù)庫(kù)安全訪問(wèn)多級(jí)控制模型
3.1 同態(tài)加密下數(shù)據(jù)庫(kù)安全訪問(wèn)
3.2 多級(jí)安全數(shù)據(jù)訪問(wèn)控制模型構(gòu)建
4 仿真證明
5 結(jié)束語(yǔ)