公務(wù)員期刊網(wǎng) 論文中心 正文

網(wǎng)站系統(tǒng)中數(shù)據(jù)庫安全性淺析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了網(wǎng)站系統(tǒng)中數(shù)據(jù)庫安全性淺析范文,希望能給你帶來靈感和參考,敬請閱讀。

網(wǎng)站系統(tǒng)中數(shù)據(jù)庫安全性淺析

摘要:介紹了網(wǎng)站數(shù)據(jù)庫的安全加密系統(tǒng)設(shè)計(jì),從比較層加密、等值層加密、搜索層加密、加層加密等方面介紹了數(shù)據(jù)庫安全加密系統(tǒng)的加密算法。通過網(wǎng)絡(luò)通信、數(shù)據(jù)加密解密管理、密鑰管理等技術(shù)手段將數(shù)據(jù)庫加密系統(tǒng)和網(wǎng)站數(shù)據(jù)庫連接到一起,可實(shí)現(xiàn)對數(shù)據(jù)庫的加密處理,提升網(wǎng)站數(shù)據(jù)庫的安全性。

關(guān)鍵詞:網(wǎng)站系統(tǒng);數(shù)據(jù)庫;安全性;設(shè)計(jì)

引言

在開放的網(wǎng)絡(luò)環(huán)境中,無論是政府、企業(yè)還是個(gè)人,都處在同一個(gè)環(huán)境中,一旦有不法分子借助技術(shù)手段,利用網(wǎng)絡(luò)漏洞,盜取、刪除或篡改信息,將會(huì)給企業(yè)乃至國家都帶來無法挽回的損失[1]。針對此類問題,我們可以從數(shù)據(jù)庫的加密技術(shù)入手,使數(shù)據(jù)信息得以在加密的狀態(tài)下存儲(chǔ)及傳輸,從而防范數(shù)據(jù)信息被不法分子破壞或盜取。本文就以此作為研究重點(diǎn),探討了如何構(gòu)建更加安全的網(wǎng)絡(luò)數(shù)據(jù)庫,最大程度改善網(wǎng)絡(luò)安全問題。

1數(shù)據(jù)庫安全系統(tǒng)的整體構(gòu)架

基于安全性的網(wǎng)站數(shù)據(jù)庫要能夠在加密的狀態(tài)下完成數(shù)據(jù)庫的訪問及信息傳輸、存儲(chǔ),并能夠支持多個(gè)用戶同時(shí)運(yùn)行。數(shù)據(jù)庫的安全加密系統(tǒng)并不是將數(shù)據(jù)庫本身進(jìn)行改造,而是構(gòu)建和數(shù)據(jù)庫服務(wù)器相獨(dú)立的一套數(shù)據(jù)庫加密系統(tǒng),兩者通過網(wǎng)絡(luò)通信、數(shù)據(jù)加密解密管理、密鑰管理等技術(shù)手段連接到一起,類似一種代理式服務(wù)器,其結(jié)構(gòu)如圖1所示。用戶或多個(gè)不同用戶同時(shí)于客戶端登錄網(wǎng)站,應(yīng)用服務(wù)器會(huì)根據(jù)用戶的行為,連接代理服務(wù)器式加密系統(tǒng),對訪問及傳輸?shù)膬?nèi)容進(jìn)行加密,數(shù)據(jù)庫系統(tǒng)則按照常規(guī)的SQL流程完成信息查詢、接收及傳輸?shù)墓ぷ鳎煌氖沁@些信息都是經(jīng)過加密處理的,由此來提升數(shù)據(jù)庫的安全性。

2網(wǎng)站數(shù)據(jù)庫安全加密系統(tǒng)的設(shè)計(jì)

加密系統(tǒng)采用的是“洋蔥式加密”,這種加密模型就是將數(shù)據(jù)一層層地加密處理,使數(shù)據(jù)如同洋蔥一般被層層包裹,而每一層的SQL操作方式都不同,在數(shù)據(jù)最外層則是給予安全系數(shù)最高的加密算法,通過這種方式最大程度保證數(shù)據(jù)信息的安全。除考慮安全性外,加密系統(tǒng)還要能夠和數(shù)據(jù)庫SQL操作實(shí)現(xiàn)有效對接,因此需要設(shè)計(jì)出能夠滿足SQL操作需求的模型[2]。本洋蔥式加密數(shù)據(jù)庫共有四層結(jié)構(gòu),分別是搜索層洋蔥、增加層洋蔥、等值層洋蔥以及比較層洋蔥,見圖2。每個(gè)加密養(yǎng)成由同時(shí)由七種密碼系統(tǒng)進(jìn)行加密,分別為OPE、JOIN、SEARCH、HOM、OPE-JOIN以及RND和DET等,其中以RND的加密安全系數(shù)最高[3]。在這些程中,搜索層和增加層屬于功能型層級(jí),各自都有兩層內(nèi)部結(jié)構(gòu)。而等值層和比較層的性能則比較復(fù)雜,兩者都設(shè)置為四層結(jié)構(gòu)。最外層是通過RND加密方案來保證安全性,從外向內(nèi)逐漸降低加密的安全系數(shù)。根據(jù)用戶不同的行為,代理加密系統(tǒng)將用戶的行為映射到對應(yīng)的加密層中,并動(dòng)態(tài)記錄各數(shù)據(jù)在不同洋蔥層的狀態(tài),并加密或解密處理。

3數(shù)據(jù)庫安全加密系統(tǒng)的加密算法

加密結(jié)構(gòu)的最外層采用安全系數(shù)最高、加密強(qiáng)度最大的RND加密,從外層到內(nèi)層其安全系數(shù)層層遞減。

3.1比較層加密

比較層是功能型層級(jí),能夠?qū)崿F(xiàn)對任何類型數(shù)據(jù)信息的SQL操作,其第一層也就是最外層,為RND加密,能夠?qū)崿F(xiàn)最強(qiáng)的加密安全性,其算法是概率性的,因此即使是同一個(gè)明文,也會(huì)形成不同的加密密文,可以有效避免信息泄露。第二層為OPE加密,這種加密方式把明文中的相互間大小關(guān)系給保留到加密的密文之中。如假設(shè)一個(gè)密鑰K,明文中有x<y的大小關(guān)系,那么則OPEK(x)<OPEk(y)。但是這種方式有可能泄露除數(shù)據(jù)的大小關(guān)系[4]。第三層是OPE-JOIN加密,通常不法分子很少能突破前兩層加密進(jìn)入到這一層,但安全起見,也設(shè)置這層密鑰。

3.2等值層加密

第一層為RND加密,同比較層的加密方式相同。第二層DET加密,這種的加密的安全性和RND相比要稍弱一籌,但是DET下所得到的密文能夠?qū)崿F(xiàn)等值查詢,且對于相同的明文需要有同樣的密文,這才能實(shí)現(xiàn)等值查詢,因此采用這種確定性的加密方式[5]。其加密算法是固定的,即AES-CMC(iv=0)。第三層是JOIN加密,這種加密方式對于不同列所形成的密鑰是不同的,在連接時(shí),那么就會(huì)先將密鑰進(jìn)行調(diào)整,調(diào)整成相同的列,這樣就能夠形成同樣的密鑰。

3.3搜索層加密

搜索層支持搜索的格式主要是TXT格式,這是一個(gè)功能型層級(jí),這一層中能夠處理加密的文本,根據(jù)加密的文本來完成搜索操作。

3.4加層加密

加層主要是實(shí)現(xiàn)int型數(shù)據(jù)來處理加運(yùn)算,采用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)取而實(shí)現(xiàn)的。無論是加密還是解密,都需要用到3個(gè)參數(shù),分別是需要加密或需解密的待處理數(shù)據(jù)value、數(shù)據(jù)通信過程中由sql-ticket調(diào)取所獲得的對應(yīng)參數(shù)ticket,以及在加密函數(shù)進(jìn)行加密處理時(shí)的返回值encrypet。在do-encry()函數(shù)和do-decrypt()函數(shù)中,對不同加密處理方式,根據(jù)其對應(yīng)的加密算法,完成數(shù)據(jù)加密、解密處理,且可以根據(jù)不同情況進(jìn)行調(diào)整。如果在加密一個(gè)字符串發(fā)生錯(cuò)誤時(shí),那么就會(huì)返回NULL。

4數(shù)據(jù)庫安全加密的數(shù)據(jù)處理

數(shù)據(jù)庫安全性設(shè)計(jì)的核心是為了保護(hù)數(shù)據(jù)隱私安全,因此加密系統(tǒng)不僅要能夠?qū)?shù)據(jù)進(jìn)行加密,還需要使數(shù)據(jù)列名匿名化,最大程度掩蓋各方面信息。從這兩個(gè)方面,將一個(gè)數(shù)據(jù)信息表處理成為匿名的加密數(shù)據(jù)列表(見圖3)。那么即使有不法分子想要盜取這一數(shù)據(jù)信息,已無法得知具體是什么樣的內(nèi)容。以圖3為例,其中右側(cè)原數(shù)據(jù)信息的第一列是列明,也就是ID,以數(shù)值的形式呈現(xiàn)[6]。第二列的Name也就是列名,以字符串的形式呈現(xiàn)。因?yàn)榈谝涣惺菙?shù)值的形式,這部分能夠完成的SQL主要包括等值查詢、求和以及大小比較等,那么也就會(huì)涉及到等值層、比較層以及增加層。在圖3中經(jīng)過匿名化使ID化為CI,那么就分別對應(yīng)不同層也就是C1-Eq、C1-Ord以及C1-Add。而右側(cè)的第一列C1-IV則是指初始向量,通過這種層層加密的洋蔥式加密形式,得到各層所對應(yīng)的加密密文。C2是name的匿名化,因?yàn)檫@部分的數(shù)據(jù)信息是是字符串的形式,也就是Alice,字符串可以實(shí)現(xiàn)等值、比較、搜索,那么就會(huì)形成C2-Eq、C2-Ord以及C2-Search。經(jīng)過這種匿名化及加密處理,使原本的信息從一個(gè)列被擴(kuò)為多個(gè)列,每個(gè)列通過RND加密,列名匿名化,雖然這種方式會(huì)增加一部分的存儲(chǔ)空間,但是能夠最大程度提升安全性。

5數(shù)據(jù)庫的加密密鑰

本安全加密系統(tǒng)采用的是代理服務(wù)器的形式,以多種加密算法處理不同字段進(jìn)行加密,生成加密密鑰實(shí)現(xiàn)數(shù)據(jù)信息的加密保護(hù)。用戶能夠通過輸入加密口令,使數(shù)據(jù)庫中被加密的信息根據(jù)用戶的口令產(chǎn)生連鎖密鑰,使被加密處理的信息被逐一解密。如果用戶不在線,或是沒有正確輸入口令,那么不法分子即使得到這些數(shù)據(jù),也無法解密出來。每個(gè)用戶的加密密應(yīng)當(dāng)是不同的,但在數(shù)據(jù)庫中有的字段名是相同的,如果采用根據(jù)字段生成密鑰的方法,就可能導(dǎo)致加密密鑰相同,安全性將大打折扣。因此本系統(tǒng)的密鑰生成方式采用的是混亂生成加密密鑰的方式,即DEK=Hash(username,segment,ran-dom)。這種密鑰生成方式能夠有效防止外部入侵,此外在此基礎(chǔ)上還引入用戶隨機(jī)口令的方式,形成用戶隨機(jī)口令及哈希運(yùn)算相結(jié)合的安全密鑰,即DEK=Hash(username,password,segment,random)。公式中的username就是用戶名,segment就是加密字段的名稱,password就是用戶口令,random是加密系統(tǒng)生成的隨機(jī)數(shù)。Hash為哈希算法,DKE為所生成的密鑰。當(dāng)用戶輸入口令后,其他內(nèi)容需要能對應(yīng)得上,才能對數(shù)據(jù)進(jìn)行解密,否則即圖3數(shù)據(jù)信息的匿名化、加密處理示意圖使有用戶口令也不能破譯數(shù)據(jù)信息。

6結(jié)語

本文從數(shù)據(jù)庫加密,以及洋蔥式層層加密模型等兩方面入手,設(shè)計(jì)了一套代理服務(wù)器式的數(shù)據(jù)庫加密系統(tǒng),無需改造網(wǎng)站數(shù)據(jù)庫,而是通過網(wǎng)絡(luò)通信、數(shù)據(jù)加密解密管理、密鑰管理等技術(shù)手段將數(shù)據(jù)庫加密系統(tǒng)和網(wǎng)站數(shù)據(jù)庫連接到一起,實(shí)現(xiàn)對數(shù)據(jù)庫的加密處理,在加密狀態(tài)下實(shí)現(xiàn)數(shù)據(jù)的傳輸及存儲(chǔ),從而有效提升網(wǎng)站數(shù)據(jù)庫的安全性。

作者:韓冬 單位:洛陽職業(yè)技術(shù)學(xué)院