馬 飛,李 娟
(北方民族大學,寧夏 銀川 750021)
數據庫是一種根據數據的不同結構實現分類存儲和管理的數據倉庫,實現共享、組織和統一化龐大數據的管理集合工作。因數據庫是通過一定方式將數據存儲在一起,具有較小的冗余度、能夠同時和多名用戶共享,且還可以和應用程序分開的互相獨立數據集合,因此,可將其視為電子化的儲蓄柜[1]。同時,數據庫也包含另外一種含義,即指數據的管理新技術以及新方法,以便更加嚴密地控制數據、更加科學地組織數據、更加方便的維護數據以及更加有效的利用數據。其按照類型可以分成關系類數據庫以及非關系類數據庫兩類。關系型數據庫的存儲格式能夠直接反映出實體間的關系,和常見的表格類型較為類似,其中表和表之間存在許多較為復雜的關聯,這種關聯方式對于數據操作的一致性、事務性較好,所以比較合適結構化的數據處理;而非關系型的數據庫是以摒棄復雜的分布式數據關系為目的、簡化數據庫的結構方式、降低影響性能的表連接、避免冗余等目標所進行設計的,其布局結構簡單,在大數據量下讀寫的性能比較好,可以滿足隨時存儲的數據格式需求,比較適用于大數據的工作處理[2]。
不論是單位還是個人在使用數據庫時,不可避免地存儲一些重要信息,導致每天訪問數據庫的人流量較大,不乏會有一些不法分子想要盜取這些隱私信息,以此作為威脅手段,甚至造成嚴重經濟財產損失、危害社會安全等事故[3]。因此,對數據庫安全訪問展開控制具有重要意義。目前有學者設計了基于信任的動態多級訪問控制模型[4]和基于加密云數據的多級安全訪問控制模型[5]。但隨著數據庫技術的發展,上述傳統模型的應用效果理想度較差。因此,本文設計了一種基于同態加密的數據庫安全訪問多級控制模型,用來區分非法的攻擊數據,從而保障數據庫內的信息安全。

分塊的密鑰統一配置4個素數r0、r1、q0以及q1,并且要滿足r0 在同一字段不同安全等級字段的密鑰配置,具體如圖1所示。 圖1 安全字段密鑰的配置示意圖 為了方便描述加密的過程,要定義中間的密鑰材料。 以下給出具體密鑰的配置,用戶安全等級和字段安全等級二者是相互獨立的[7]。 在加密的過程內,所用到中間密鑰的材料都包括:KKt,i、ekt,i、bkt,i以及K。 設計中間密鑰材料的目的是為提升數據庫加密的效率,從而能夠預先完成加密計算或者數據存儲[8]。 在加密過程中,密鑰分塊的大小應該小于q0q1,并且規定模運算不受括號的限制。具體加密步驟如下所示: 1)加密字段。該步驟不但能夠與此字段同樣安全等級用戶實現,還能夠利用系統完成。若通過用戶完成,則用戶實現加密操作以后,要把密文發送至系統,具體公式為 (1) 2)加密整個數據記錄。此步驟通常利用系統實現,若每個字段安全等級相等,則此步驟同樣能夠與字段相等的安全等級用戶實現,具體公式為 (2) 具體解密步驟如下所示: 1)解密記錄。此步驟通常是由數據庫本身所完成的[9]。若每個字段安全等級相等,則此步驟同樣能夠和字段相等安全等級用戶實現,具體過程公式為 (3) 2)解密字段。此步驟通常由系統實現。若每個字段安全等級相等,則此步驟同樣能夠和字段相等安全等級用戶實現。 首先從Cki,t中提取出Cki,t,s,就能夠獲得Rki,t,smodq0以及Rki,t,smodq1,然后采用剩余定理進行計算Rki,tmodq0q1。 依據同態加密方法可知,安全訪問實現的關鍵步驟在于對p、q和大素數rp、rq的選擇。關鍵參數的選擇很大程度上可以直接影響同態加密算法魯棒性以及安全性[10]。 通常來說,要想獲得一個大素數,先要隨機獲得一個足夠大的數量級數,接著判斷此數是否是素數。若通過測試此數不為素數,那么隨機函數則會重新再產生一個數,直到測試得到素數為止。具體過程如下: 1)生成素數的具體步驟如下: 步驟1:任意生成一個足夠大的數量級數p; 步驟2:為了確保此數是奇數和保證此數數量級夠大,把此數最高位與最低位置1; 步驟3:要想保證p為素數,需要采用除法將p除去小于2000的全部素數。如果不能夠全部整除,那么p即是素數; 2)選擇r 依據同態加密的方法,r取值能夠直接影響到密文產生值。但怎么確保同樣明文生成密文,是不同r關鍵取值[11]。 若r為p倍數,那么相對于模p,被加密模的數是要加上p許多倍,而結果保持不變。因此該處如果可以產生一個隨機數rand()。那么則可以確保選擇為隨機的,相同明文遇到r也是相同的,所以r公式為 r=sign(x)×p (4) 根據式(4)可判斷r是否能夠滿足同態加密的。相對于隨意的D(E(x))=x,使y=E(x)×a,a=x+sig(x)raNd()×p,那么N=p×q,繼而依據y=fmod(a,n),能夠得到下式 fmod(y,p)=fmod(fmod(a,N),p) (5) 通過上述步驟可知,rand()大小不影響解密。同樣明文獲得的密文是不同的[12]。 數據信息安全級主要是信息安全級別的屬性,代表一個信息機密的程度,利用C表示。數據借用標識是信息數據來源的屬性,代表數據使用者自安全級(利用null代表)或者是從另外一個低安全級的使用者借來。當訪問者進入系統主客體,全部要被賦予一個安全的標記。接著在插入基元組時,信息數據借用標識則被賦予null值,操作各種數據時,需要及時更新。然后借用標識輔助實現數據操作,自身客體在進入系統時,不會有此屬性。 在上述分析的基礎上,建立多級關系的模式為R(Ai,Bi,Ci,Di,TC,TB),其中,Ai代表數據屬性,Di代表Ai值域,Ci代表Ai安全級,Bi代表Ai借用標識,TC代表元組安全級,TB代表元組借用的標識。 將上述R(Ai,Bi,Ci,Di,TC,TB)視為一組互相不同元組,遮擋B≠null時,Bi≥Ci,TB≠null時,TB 這種存儲模式處理數據,可以使用戶身份合法性得到證明,一旦合法,系統會給使用者對應的數據庫訪問權限。且該使用者得到資源權限,能夠不通過系統私自授權于其他的使用者對數據庫進行訪問,所以需要利用同態加密的方法,致使系統能夠進行異常數據檢測,找出非法訪問的數據,從而保護數據庫。 該模式機制主要由訪問控制矩陣所決定,將整體數據庫給使用者,利用一個矩陣表示授權的狀態,在矩陣內各項與對應權限互相匹配,若使用者請求與其相同,那么能夠訪問對應數據庫資源,相反則不能。該模型是采用二維矩陣完成訪問控制,主要核心思想是在訪問控制矩陣d的存儲主體對于客體擁有權限。因為該種訪問控制矩陣為二維,所以設置z作為主體集,v代表客體集,l代表權限集。具體過程如下 d:z×v→l (6) 把該訪問控制的方式,簡化敘述成主體對于客體存在的訪問操作請求,并且主體具有操作的權限,則允許主體可以訪問客體,反之則禁止。因為授權用戶能夠系統的直接或者間接授權其它沒有權限用戶,所以就會出現漏洞,從而導致數據信息被竊取、泄漏等,而將同態加密方法應用在其中時,訪問者只需要掌握私鑰與公鑰所對應,經過計算即可實現數據的訪問,即可完成模型的構建。 為驗證基于同態加密的數據庫安全訪問多級控制模型的有效性,設計如下仿真驗證實驗。 采用臺式計算機(主頻為2.5GHz,內存為8GB)在Ubuntu12.04的操作系統下完成實驗,數據庫采用Microsoft SQL2017,WebSer-vices安全服務應用WSE3.0輔助開發,Web發布平臺利用Microsoft IIS6.0,100M帶寬的網絡搭建。 首先測試在應用本文模型前后,數據庫并發用戶的訪問速度,測試結果如圖2所示。 圖2 數據庫并發用戶的訪問速度測試 通過觀察圖2能夠看出,因為在數據庫內加入安全控制,平均訪問耗時要比沒有加入之前長,出現這種原因的是,在訪問控制內需要不斷查找數據庫內信息,而數據庫連接以及查詢在一定程度上耗費不少時間。不過從整體上來看,在加入安全控制訪問的數據庫中,不同并發的用戶和未加入安全訪問控制點的數據庫,二者平均響應時間的曲線是趨向一致的,并未發生隨著并發用戶增多,導致性能降低。 在此基礎上,設定一組訪問數據,其中夾雜異常攻擊的數據,對未采用本文方法加密的數據庫進行訪問,從時間域角度觀察,正常訪問的數據和異常數據二者是同時到達的。說明未搭載本文模型的數據庫難以區分開正常訪問數據和異常訪問數據。 為進一步驗證本文方法的有效性,設計對比實驗。將傳統的基于信任的動態多級訪問控制模型和基于加密云數據的多級安全訪問控制模型作為對比模型,與本文模型共同完成性能驗證。 對比測試指標分別為:①不同模型對隨機惡意訪問行為的抑制能力;②數據庫信息傳輸過程丟包率。 首先對比不同模型對隨機惡意訪問行為的抑制能力對比結果如圖3所示。 圖3 不同模型對隨機惡意訪問行為的抑制能力對比 通過圖3所示結果可知,應用本文模型后,數據庫因隨機惡意訪問行為造成相應數據輸出波動的幅值相較于對比模型較小,能夠保障數據庫的穩定運行。相比于兩種對比模型,本文模型對隨機惡意訪問行的抑制能力和魯棒性更好。 然后以數據庫信息傳輸過程丟包率為指標,對不同模型展開性能驗證,結果如圖4所示。 圖4 應用不同模型后數據庫信息傳輸過程丟包率對比 分析圖4所示的實驗數據可知,應用兩種傳統模型后,數據庫信息傳輸過程丟包率會隨著時間的增加而出現較大幅度的變化。但應用本文模型后,數據庫信息傳輸過程丟包率一直處于相對穩定的狀態,且明顯更低于兩種傳統模型。由此可見,本文模型有效實現數據庫安全訪問多級控制,避免因惡意訪問而造成數據丟包。 互聯網發展的速度較快,使得數據庫的管理模式也在變化,這就有可能導致不法分子可通過各種高級別的手段訪問甚至攻擊數據庫,竊取數據庫的信息,造成嚴重的損失。為此,本研究基于同態加密過程設計了數據庫安全訪問多級控制模型,其加密效果較好,且安全控制性能良好,能夠很好保證數據庫的安全。 在未來階段的研究中,將考慮在模型中加入潛在攻擊檢測機制,進一步維護數據庫的安全性。



2.2 加密過程設計


2.3 解密過程設計

3 數據庫安全訪問多級控制模型
3.1 同態加密下數據庫安全訪問
3.2 多級安全數據訪問控制模型構建
4 仿真證明



5 結束語