前言:想要寫出一篇引人入勝的文章?我們特意為您整理了網(wǎng)站系統(tǒng)中數(shù)據(jù)庫安全性淺析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:介紹了網(wǎng)站數(shù)據(jù)庫的安全加密系統(tǒng)設計,從比較層加密、等值層加密、搜索層加密、加層加密等方面介紹了數(shù)據(jù)庫安全加密系統(tǒng)的加密算法。通過網(wǎng)絡通信、數(shù)據(jù)加密解密管理、密鑰管理等技術(shù)手段將數(shù)據(jù)庫加密系統(tǒng)和網(wǎng)站數(shù)據(jù)庫連接到一起,可實現(xiàn)對數(shù)據(jù)庫的加密處理,提升網(wǎng)站數(shù)據(jù)庫的安全性。
關(guān)鍵詞:網(wǎng)站系統(tǒng);數(shù)據(jù)庫;安全性;設計
引言
在開放的網(wǎng)絡環(huán)境中,無論是政府、企業(yè)還是個人,都處在同一個環(huán)境中,一旦有不法分子借助技術(shù)手段,利用網(wǎng)絡漏洞,盜取、刪除或篡改信息,將會給企業(yè)乃至國家都帶來無法挽回的損失[1]。針對此類問題,我們可以從數(shù)據(jù)庫的加密技術(shù)入手,使數(shù)據(jù)信息得以在加密的狀態(tài)下存儲及傳輸,從而防范數(shù)據(jù)信息被不法分子破壞或盜取。本文就以此作為研究重點,探討了如何構(gòu)建更加安全的網(wǎng)絡數(shù)據(jù)庫,最大程度改善網(wǎng)絡安全問題。
1數(shù)據(jù)庫安全系統(tǒng)的整體構(gòu)架
基于安全性的網(wǎng)站數(shù)據(jù)庫要能夠在加密的狀態(tài)下完成數(shù)據(jù)庫的訪問及信息傳輸、存儲,并能夠支持多個用戶同時運行。數(shù)據(jù)庫的安全加密系統(tǒng)并不是將數(shù)據(jù)庫本身進行改造,而是構(gòu)建和數(shù)據(jù)庫服務器相獨立的一套數(shù)據(jù)庫加密系統(tǒng),兩者通過網(wǎng)絡通信、數(shù)據(jù)加密解密管理、密鑰管理等技術(shù)手段連接到一起,類似一種代理式服務器,其結(jié)構(gòu)如圖1所示。用戶或多個不同用戶同時于客戶端登錄網(wǎng)站,應用服務器會根據(jù)用戶的行為,連接代理服務器式加密系統(tǒng),對訪問及傳輸?shù)膬?nèi)容進行加密,數(shù)據(jù)庫系統(tǒng)則按照常規(guī)的SQL流程完成信息查詢、接收及傳輸?shù)墓ぷ?,但不同的是這些信息都是經(jīng)過加密處理的,由此來提升數(shù)據(jù)庫的安全性。
2網(wǎng)站數(shù)據(jù)庫安全加密系統(tǒng)的設計
加密系統(tǒng)采用的是“洋蔥式加密”,這種加密模型就是將數(shù)據(jù)一層層地加密處理,使數(shù)據(jù)如同洋蔥一般被層層包裹,而每一層的SQL操作方式都不同,在數(shù)據(jù)最外層則是給予安全系數(shù)最高的加密算法,通過這種方式最大程度保證數(shù)據(jù)信息的安全。除考慮安全性外,加密系統(tǒng)還要能夠和數(shù)據(jù)庫SQL操作實現(xiàn)有效對接,因此需要設計出能夠滿足SQL操作需求的模型[2]。本洋蔥式加密數(shù)據(jù)庫共有四層結(jié)構(gòu),分別是搜索層洋蔥、增加層洋蔥、等值層洋蔥以及比較層洋蔥,見圖2。每個加密養(yǎng)成由同時由七種密碼系統(tǒng)進行加密,分別為OPE、JOIN、SEARCH、HOM、OPE-JOIN以及RND和DET等,其中以RND的加密安全系數(shù)最高[3]。在這些程中,搜索層和增加層屬于功能型層級,各自都有兩層內(nèi)部結(jié)構(gòu)。而等值層和比較層的性能則比較復雜,兩者都設置為四層結(jié)構(gòu)。最外層是通過RND加密方案來保證安全性,從外向內(nèi)逐漸降低加密的安全系數(shù)。根據(jù)用戶不同的行為,代理加密系統(tǒng)將用戶的行為映射到對應的加密層中,并動態(tài)記錄各數(shù)據(jù)在不同洋蔥層的狀態(tài),并加密或解密處理。
3數(shù)據(jù)庫安全加密系統(tǒng)的加密算法
加密結(jié)構(gòu)的最外層采用安全系數(shù)最高、加密強度最大的RND加密,從外層到內(nèi)層其安全系數(shù)層層遞減。
3.1比較層加密
比較層是功能型層級,能夠?qū)崿F(xiàn)對任何類型數(shù)據(jù)信息的SQL操作,其第一層也就是最外層,為RND加密,能夠?qū)崿F(xiàn)最強的加密安全性,其算法是概率性的,因此即使是同一個明文,也會形成不同的加密密文,可以有效避免信息泄露。第二層為OPE加密,這種加密方式把明文中的相互間大小關(guān)系給保留到加密的密文之中。如假設一個密鑰K,明文中有x<y的大小關(guān)系,那么則OPEK(x)<OPEk(y)。但是這種方式有可能泄露除數(shù)據(jù)的大小關(guān)系[4]。第三層是OPE-JOIN加密,通常不法分子很少能突破前兩層加密進入到這一層,但安全起見,也設置這層密鑰。
3.2等值層加密
第一層為RND加密,同比較層的加密方式相同。第二層DET加密,這種的加密的安全性和RND相比要稍弱一籌,但是DET下所得到的密文能夠?qū)崿F(xiàn)等值查詢,且對于相同的明文需要有同樣的密文,這才能實現(xiàn)等值查詢,因此采用這種確定性的加密方式[5]。其加密算法是固定的,即AES-CMC(iv=0)。第三層是JOIN加密,這種加密方式對于不同列所形成的密鑰是不同的,在連接時,那么就會先將密鑰進行調(diào)整,調(diào)整成相同的列,這樣就能夠形成同樣的密鑰。
3.3搜索層加密
搜索層支持搜索的格式主要是TXT格式,這是一個功能型層級,這一層中能夠處理加密的文本,根據(jù)加密的文本來完成搜索操作。
3.4加層加密
加層主要是實現(xiàn)int型數(shù)據(jù)來處理加運算,采用HOM加密,這種加密是一種單同態(tài)的處理方式,但只能夠完成加法同態(tài),可以對密文完成求和處理,即HOMk(a)·HOMk(b)=HOMk(a+b),并可以支持SQL操作。
3.5加密/解密函數(shù)
加密/解密操作是通過do-encry()函數(shù)和do-decrypt()函數(shù)在用戶端向數(shù)據(jù)庫通信的過程中,借由sql-process()函數(shù)調(diào)取而實現(xiàn)的。無論是加密還是解密,都需要用到3個參數(shù),分別是需要加密或需解密的待處理數(shù)據(jù)value、數(shù)據(jù)通信過程中由sql-ticket調(diào)取所獲得的對應參數(shù)ticket,以及在加密函數(shù)進行加密處理時的返回值encrypet。在do-encry()函數(shù)和do-decrypt()函數(shù)中,對不同加密處理方式,根據(jù)其對應的加密算法,完成數(shù)據(jù)加密、解密處理,且可以根據(jù)不同情況進行調(diào)整。如果在加密一個字符串發(fā)生錯誤時,那么就會返回NULL。
4數(shù)據(jù)庫安全加密的數(shù)據(jù)處理
數(shù)據(jù)庫安全性設計的核心是為了保護數(shù)據(jù)隱私安全,因此加密系統(tǒng)不僅要能夠?qū)?shù)據(jù)進行加密,還需要使數(shù)據(jù)列名匿名化,最大程度掩蓋各方面信息。從這兩個方面,將一個數(shù)據(jù)信息表處理成為匿名的加密數(shù)據(jù)列表(見圖3)。那么即使有不法分子想要盜取這一數(shù)據(jù)信息,已無法得知具體是什么樣的內(nèi)容。以圖3為例,其中右側(cè)原數(shù)據(jù)信息的第一列是列明,也就是ID,以數(shù)值的形式呈現(xiàn)[6]。第二列的Name也就是列名,以字符串的形式呈現(xiàn)。因為第一列是數(shù)值的形式,這部分能夠完成的SQL主要包括等值查詢、求和以及大小比較等,那么也就會涉及到等值層、比較層以及增加層。在圖3中經(jīng)過匿名化使ID化為CI,那么就分別對應不同層也就是C1-Eq、C1-Ord以及C1-Add。而右側(cè)的第一列C1-IV則是指初始向量,通過這種層層加密的洋蔥式加密形式,得到各層所對應的加密密文。C2是name的匿名化,因為這部分的數(shù)據(jù)信息是是字符串的形式,也就是Alice,字符串可以實現(xiàn)等值、比較、搜索,那么就會形成C2-Eq、C2-Ord以及C2-Search。經(jīng)過這種匿名化及加密處理,使原本的信息從一個列被擴為多個列,每個列通過RND加密,列名匿名化,雖然這種方式會增加一部分的存儲空間,但是能夠最大程度提升安全性。
5數(shù)據(jù)庫的加密密鑰
本安全加密系統(tǒng)采用的是代理服務器的形式,以多種加密算法處理不同字段進行加密,生成加密密鑰實現(xiàn)數(shù)據(jù)信息的加密保護。用戶能夠通過輸入加密口令,使數(shù)據(jù)庫中被加密的信息根據(jù)用戶的口令產(chǎn)生連鎖密鑰,使被加密處理的信息被逐一解密。如果用戶不在線,或是沒有正確輸入口令,那么不法分子即使得到這些數(shù)據(jù),也無法解密出來。每個用戶的加密密應當是不同的,但在數(shù)據(jù)庫中有的字段名是相同的,如果采用根據(jù)字段生成密鑰的方法,就可能導致加密密鑰相同,安全性將大打折扣。因此本系統(tǒng)的密鑰生成方式采用的是混亂生成加密密鑰的方式,即DEK=Hash(username,segment,ran-dom)。這種密鑰生成方式能夠有效防止外部入侵,此外在此基礎(chǔ)上還引入用戶隨機口令的方式,形成用戶隨機口令及哈希運算相結(jié)合的安全密鑰,即DEK=Hash(username,password,segment,random)。公式中的username就是用戶名,segment就是加密字段的名稱,password就是用戶口令,random是加密系統(tǒng)生成的隨機數(shù)。Hash為哈希算法,DKE為所生成的密鑰。當用戶輸入口令后,其他內(nèi)容需要能對應得上,才能對數(shù)據(jù)進行解密,否則即圖3數(shù)據(jù)信息的匿名化、加密處理示意圖使有用戶口令也不能破譯數(shù)據(jù)信息。
6結(jié)語
本文從數(shù)據(jù)庫加密,以及洋蔥式層層加密模型等兩方面入手,設計了一套代理服務器式的數(shù)據(jù)庫加密系統(tǒng),無需改造網(wǎng)站數(shù)據(jù)庫,而是通過網(wǎng)絡通信、數(shù)據(jù)加密解密管理、密鑰管理等技術(shù)手段將數(shù)據(jù)庫加密系統(tǒng)和網(wǎng)站數(shù)據(jù)庫連接到一起,實現(xiàn)對數(shù)據(jù)庫的加密處理,在加密狀態(tài)下實現(xiàn)數(shù)據(jù)的傳輸及存儲,從而有效提升網(wǎng)站數(shù)據(jù)庫的安全性。
作者:韓冬 單位:洛陽職業(yè)技術(shù)學院