国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于數(shù)字摘要的高招數(shù)據(jù)庫防篡改技術的研究與實現(xiàn)

2009-10-24 05:49仲福建何遠德陳琳琳
北京檔案 2009年9期
關鍵詞:字符串數(shù)據(jù)庫用戶

仲福建 何遠德 陳琳琳

當前各高校都加強了網(wǎng)絡的宣傳,招生、錄取等都在網(wǎng)上進行。這在方便了管理和提高效率的同時,也給一部分違法分子以可乘之機,目前少數(shù)不法分子在高考招生結束后,利用偽造虛假網(wǎng)頁進行詐騙,有的甚至利用黑客手段篡改高校網(wǎng)站考生錄取記錄,從事詐騙活動。如黑客篡改中國地質大學(武漢)和中南財經(jīng)政法大學招生信息①,篡改海南大學招生信息②等案,給社會造成了惡劣影響,嚴重影響了社會的和諧和安寧。目前很多對外信息發(fā)布系統(tǒng)有防火墻、殺毒軟件、網(wǎng)頁防篡改系統(tǒng)等防護措施,但基于數(shù)據(jù)庫的保護相對較少。本文提出了一種基于數(shù)字摘要的高校招生查詢數(shù)據(jù)庫的防篡改機制。

一、數(shù)字摘要算法及其應用

從 Rivest 1989年開發(fā)出MD2算法開始就揭開了人們對加密算法的新一輪研究,進而推出了MD3、MD4算法 。為了加強算法的安全性,滿足信息發(fā)展對網(wǎng)絡安全的要求,研究出了趨近成熟的MD5算法。MD5的全稱是Message-Digest Algorithm 5(信息-摘要算法5)③,在20世紀90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L.Rivest開發(fā),經(jīng)MD2、MD3和MD4發(fā)展而來。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式(就是把一個任意長度的字節(jié)串變換成一定長的大整數(shù))。不管是MD2、MD4還是MD5,它們都需要獲得一個隨機長度的信息并產(chǎn)生一個128位的信息摘要。雖然這些算法的結構或多或少有些相似,但MD2的設計與MD4和MD5完全不同,那是因為MD2是為8位機器進行的設計優(yōu)化,而MD4和MD5卻是面向32位的電腦。

MD5的典型應用是對一段信息(Message)產(chǎn)生信息摘要(Message Digest),以防止被篡改。比如在UNIX下有很多軟件在下載的時候都有一個文件名相同、文件擴展名為.md5的文件,在這個文件中通常只有一行文本,大致結構如MD5(test)= 0ca175b9c0f726a831d895e269332461,這就是test文件的數(shù)字簽名,test的文本內容為“tom123456”。MD5將整個文件當作一個大文本信息,通過其不可逆的字符串變換算法,產(chǎn)生了這個惟一的MD5信息摘要。如果在以后傳播這個文件的過程中,無論文件的內容發(fā)生了什么形式的改變(包括人為修改或者下載過程中線路不穩(wěn)定引起的傳輸錯誤等),只要你對這個文件重新計算MD5時就會發(fā)現(xiàn)信息摘要不相同,由此可以確定你得到的是一個不正確的文件。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應用。MD5還廣泛用于加密和解密技術。例如Cisco的Enable的密碼和UNIX、LINUX系統(tǒng)中用戶的密碼都是以MD5經(jīng)加密后存儲在文件系統(tǒng)中的。當用戶登錄的時候,系統(tǒng)把用戶輸入的密碼計算成MD5值,然后再去和保存在文件系統(tǒng)中的MD5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統(tǒng)在并不知道用戶密碼明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性。這不但可以避免用戶的密碼被具有系統(tǒng)管理員權限的用戶知道,而且還在一定程度上增加了密碼被破解的難度④。

二、 數(shù)據(jù)庫防篡改設計原理

監(jiān)控數(shù)據(jù)庫是否被非法修改是這個數(shù)據(jù)庫平臺的關鍵點。最簡單可靠的方法就是先將數(shù)據(jù)庫備份,通過逐行比較數(shù)據(jù)庫記錄字段值來判斷數(shù)據(jù)庫是否被修改,但是此種方法需要逐行比較,既耗時也耗費空間,可行性差。因此對數(shù)據(jù)庫記錄的鑒別必須是保障不可偽造,并且能實時發(fā)現(xiàn)數(shù)據(jù)庫的異常,及時告警,及時恢復,不給犯罪分子可乘之機。

招生查詢數(shù)據(jù)庫數(shù)據(jù)一旦導入后,再次修改的幾率很小,大部分是用來查詢的。保證數(shù)據(jù)的不可修改和偽造,單向散列函數(shù)可以實現(xiàn)此功能,可以使用MD5 、SHA-1等算法,只要數(shù)據(jù)被修改,數(shù)字摘要信息就會出現(xiàn)前后不一致,達到鑒別功能的實現(xiàn)。SHA-1提高了強度,增加了安全性,但是該算法計算度增加,效率有所降低。在保證高效的前提下,本文擬采用MD5算法進行數(shù)字摘要,對數(shù)據(jù)進行鑒別。

系統(tǒng)可以先把正確數(shù)據(jù)每記錄字段組合為一個摘要,然后保存在安全位置,系統(tǒng)鑒別時同時對安全數(shù)據(jù)表和運行的表逐摘要比較。這樣,雖然保證了安全,但是性能降低,因此我們在這里引入了安全字符串R,由系統(tǒng)管理員自己定義存儲在內存中,在數(shù)據(jù)導入和查詢時都將使用它,這樣鑒別時就可以不再跨庫查詢。

如圖1中的導入數(shù)據(jù)過程,MD5以數(shù)據(jù)表一行記錄為基礎輸入M,同時系統(tǒng)定義安全字符串R,產(chǎn)生摘要數(shù)據(jù)H(M+R)。作為數(shù)據(jù)庫中新增字段M,在數(shù)據(jù)庫被查詢時,取數(shù)據(jù)庫原始字段進行一次H(M+R)與M的比較,異常則轉入異常處理模塊。數(shù)據(jù)在對外發(fā)布過程首先走鑒別過程,這樣就杜絕了錯誤信息的發(fā)布,確保了數(shù)據(jù)的可靠。

三、 數(shù)據(jù)庫防篡改的實現(xiàn)

防篡改平臺作為一個中間件平臺存在,只要對數(shù)據(jù)庫平臺進行訪問都要經(jīng)過此平臺的檢驗,沒發(fā)現(xiàn)篡改才會把數(shù)據(jù)轉發(fā)給用戶,如果有篡改發(fā)生馬上轉入異常報警和數(shù)據(jù)恢復。在這里,安全字符串需要用戶自己掌握,在記錄進行摘要和篡改鑒定中必須保持一致。

數(shù)據(jù)庫防篡改的整體過程分為7步。第一步,外網(wǎng)用戶通過web提交查詢數(shù)據(jù),傳入查詢的關鍵字。第二步,鑒別模塊接受查詢的關鍵字,進入數(shù)據(jù)庫檢索數(shù)據(jù)。第三步,檢索到該記錄,提取所有字段與系統(tǒng)設定的關鍵字符串串接,進行數(shù)字摘要。若沒檢索到記錄退出系統(tǒng)。第四步,將數(shù)字摘要與前面生成的摘要字段M進行比對。如果異常轉入第六步。第五步,核對正確,查詢結果返回給用戶,系統(tǒng)退出。第六步,出現(xiàn)異常,馬上聯(lián)動告警信息,如聯(lián)動短信設備或電話設備,及時報警。第七步,從安全設備上獲取數(shù)據(jù),重新生成摘要,恢復正常數(shù)據(jù)。

從以上過程我們可以看出,整個過程中,即使攻擊者獲取系統(tǒng)控制權限,對數(shù)據(jù)記錄進行惡意修改,只要查詢用戶通過web頁面查詢數(shù)據(jù),鑒別模塊就會發(fā)現(xiàn)異常,及時聯(lián)動恢復模塊進行數(shù)據(jù)恢復。

四、關鍵算法及其實現(xiàn)

系統(tǒng)基于windows 2003或linux平臺。采用java做平臺開發(fā),采用mysql數(shù)據(jù)庫進行數(shù)據(jù)存儲。關鍵算法如下:

MD5在java下的實現(xiàn)

import java.security.MessageDigest;

public static Stringmd5(String inputstr) throws Exception

{ int tempi=0;

MessageDigest md5 = MessageDigest.getInstance

("md5");

byte[ ] in = inputstr.getBytes("utf-8");

byte[ ] out = md5.digest(in);

StringBuffer md5str = new StringBuffer();

for (int i=0;i<16;i++){

tempi=out[i] & (0xff);

if (tempi<16)md5str.append("0");

md5str.append(Integer.toHexString(tempi)); }

return md5str.toString();}

其中系統(tǒng)結構圖見圖2。

五、結束語

該系統(tǒng)在很大程度上防止了數(shù)據(jù)被惡意修改和濫用,保證了高校招生查詢數(shù)據(jù)庫的安全,在記錄進行MD5的過程中引入安全字符串,增加了安全性,優(yōu)化了系統(tǒng)的性能。但本系統(tǒng)還存在一些不足,如安全字符串R的安全保障和原始表的存放位置考慮的偏少,這也是我們后續(xù)研究的目標。

注釋:

①http://www.lq318.com/news/guonei/7893.aspx

②http://www.techweb.com.cn/news/2008-09-29/368221.shtml

③Rivest R.The MD5 Message-Digest Algorithm.RFC 1321,April 1992

④張裔智等:《Md5算法的研究》,《計算機科學》,2008年第35卷第7期。

作者單位:綿陽師范學院招生就業(yè)處西南民族大學外國語學院 西南民族大學電信工程學院

猜你喜歡
字符串數(shù)據(jù)庫用戶
關注用戶
關注用戶
關注用戶
如何獲取一億海外用戶
一種新的基于對稱性的字符串相似性處理算法
依據(jù)字符串匹配的中文分詞模型研究
一種針對Java中字符串的內存管理方案