數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的不斷應用,高校信息化服務(wù)意識和服務(wù)水平不斷提高。2008年4月17日,在北京大學舉行的“2008教育網(wǎng)絡(luò)管理與應用大會暨新一代數(shù)字校園建設(shè)經(jīng)驗交流會”上提出了“如何構(gòu)建新一代數(shù)字化教學”的主題思。“211”三期“高等教育公共服務(wù)體系-CERNET主干網(wǎng)和重點學科信息服務(wù)體系升級擴容工程”正在實施。這說明以“數(shù)字化教學”建設(shè)為中心。使學校的教學、科研、管理和生活服務(wù)等各方面都發(fā)生了跨越式的發(fā)展。但是信息的數(shù)字化既有教學管理方便性的一面,又有數(shù)據(jù)不安全的另一面。本文以榆林學院為例,對數(shù)字校園信息安全的數(shù)據(jù)加密技術(shù)作了闡述。

在傳統(tǒng)的數(shù)字校園數(shù)據(jù)管理中.管理員的權(quán)力至高無上,他既負責各項數(shù)據(jù)管理,又可以查詢數(shù)據(jù)中的一切信息。為此,需要削弱管理員可以任意修改數(shù)據(jù)的權(quán)利。實現(xiàn)數(shù)據(jù)加密以后,各用戶(或用戶組)的敏感數(shù)據(jù)都以密文形式進行存儲,管理員在沒有密鑰的情況下無法對獲得的密文信息正常解密,用戶信息的安全得到了保證。通過加密,數(shù)據(jù)的備份成為密文,能減少因備份失竊或丟失而造成的損失。

數(shù)字校園信息安全包括兩方面的含義,一是內(nèi)部局域網(wǎng)的安全,二是外部數(shù)據(jù)交換的安全口在當今高校,那些需要對老師和學生開放的教學資源,例如人才培養(yǎng)方案、教學計劃、精品課程、圖書資料等是不需要加密的。而對于頻繁進行交換的保密數(shù)據(jù),例如學生網(wǎng)上成績管理、畢業(yè)信息管理。教學質(zhì)域評價、智能排課管理、學生學分管理、網(wǎng)上選課管理、畢業(yè)設(shè)計管理、學生獎學金等,由于高校學生的計算機水平不斷提高,數(shù)據(jù)在網(wǎng)上被篡改的可能性增大,這對核心數(shù)據(jù)的安全性提出了較高的要求。

一、數(shù)據(jù)加密設(shè)計

1、數(shù)據(jù)加密原理

數(shù)據(jù)中敏感數(shù)據(jù)集D={d1,d2,…,dn},di(i=1,...,n)代表加密數(shù)據(jù)項的明文,相應的數(shù)據(jù)密鑰集KD={kd1,kd2,…,kdn}加密、解密算法為(E,D)。這樣加密數(shù)據(jù)項可表示為C={ci|ci=E(kdi,di),i=1,...,n}。

圖1所示訪問含有加密敏感數(shù)據(jù)的數(shù)據(jù)模型。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

從圖1中可以看出,實現(xiàn)數(shù)據(jù)加密的本質(zhì)就是對敏感數(shù)據(jù)內(nèi)容進行加密后,以密文形式存儲在數(shù)據(jù)中,那么加密解密過程就顯得非常重要。

2、數(shù)據(jù)加密原理

要實現(xiàn)數(shù)據(jù)的保密性,可以在源端使用加密算法對數(shù)據(jù)明文M進行加密生成密文C,在目的端使用相應的算法和密鑰解密。完成此功能盡管有對稱密鑰算法和公開密鑰算法。兩種選擇,但是出于效率、安全和軟件運行速度的考慮,本系統(tǒng)中使用了對稱密鑰算法來完成加密解密,其中的加密密鑰在密文傳輸以前由雙方協(xié)商。如圖2所示。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

3、數(shù)據(jù)加密體系結(jié)構(gòu)

數(shù)據(jù)加密系統(tǒng)由兩個功能獨立的主要部件組成,分別是加密字典管理程序和數(shù)據(jù)加密解密引擎。圖3表示了數(shù)據(jù)加密系統(tǒng)的體系結(jié)構(gòu)。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

數(shù)據(jù)加密系統(tǒng)將用戶對敏感數(shù)據(jù)的具體加密要求記錄在加密字典中,加密字典是數(shù)據(jù)加密系統(tǒng)的基礎(chǔ)信息。加密字典管理程序,是管理加密字典的應用程序,是數(shù)據(jù)管理員變更加密要求的工具。加密字典管理程序通過數(shù)據(jù)加密解密引擎實現(xiàn)對數(shù)據(jù)中敏感數(shù)據(jù)的加密解密及數(shù)據(jù)轉(zhuǎn)換等功能,此時,它作為一個特殊客戶來使用數(shù)據(jù)加密解密引擎。

數(shù)據(jù)加密系統(tǒng)能夠有效地保證數(shù)據(jù)的安全,系統(tǒng)中的關(guān)鍵數(shù)據(jù)都經(jīng)過了加密處理,即使黑客竊取了這些數(shù)據(jù),由于無法對數(shù)據(jù)進行解密,他仍然難以得到有用的信息。另外,數(shù)據(jù)加密以后,還可以設(shè)定不需要了解數(shù)據(jù)內(nèi)容的數(shù)據(jù)管理員不能見到明文,大大提高了關(guān)鍵數(shù)據(jù)的安全性和保密性。

二、數(shù)據(jù)加密解密引擎的實現(xiàn)

1、系統(tǒng)結(jié)構(gòu)

數(shù)據(jù)加密解密引擎是數(shù)據(jù)加密系統(tǒng)的核心部件,它處于應用程序與數(shù)據(jù)服務(wù)器之間,負責在后臺完成數(shù)據(jù)中數(shù)據(jù)的加密、解密處理,對軟件開發(fā)人員和業(yè)務(wù)操作人員是透明的。數(shù)據(jù)加密解密引擎沒有操作界面,在需要時由操作系統(tǒng)自動加載,通過內(nèi)部接口與加密字典管理程序和用戶應用程序通信。數(shù)據(jù)加密解密引擎由加密解密處理模塊、用戶接口模塊和數(shù)據(jù)接口模塊等三大模塊組成。圖4表示了數(shù)據(jù)加密解密引擎的系統(tǒng)結(jié)構(gòu)。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

圖4中的SQLLink稱為數(shù)據(jù)接口參數(shù),它是用戶訪問數(shù)據(jù)的鏈路標識,用戶只要登錄數(shù)據(jù)服務(wù)器,就與它建立起一條邏輯鏈路。無論是用戶與數(shù)據(jù)還是加密解密處理模塊訪問數(shù)據(jù)都要通過接口SQLLinlc進行。

在加密解密處理模塊內(nèi)部,通過接口UaerLink和BackLink相互調(diào)用。用戶訪問加密解密處理模塊時,即有與SQLLink對應的UaerLinjk。加密解密處理模塊對數(shù)據(jù)進行某些操作時,會另外復制了一條專用鏈路Backlink.而并不借用原有的UaerLink。其目的是為了不影響用戶的數(shù)據(jù)事務(wù)。

2、加密解密處理模塊

作為數(shù)據(jù)加密解密引擎的核心模塊,加密解密處理模塊包含了加密解密引擎的初始化、加密字典信息的檢索、加密字典緩沖區(qū)管理、加密解密算法的實現(xiàn)、SQL命令的加密變換以及查詢結(jié)果的脫密處理等功能子模塊。數(shù)據(jù)接口模塊通過接口參數(shù)UBerLink調(diào)用加密解密處理模塊。加密解密處理模塊將應用系統(tǒng)提交的SQI。命令傳遞給語法分析模塊,以便進行加密解密的語義分析。加密解密處理模塊訪問數(shù)據(jù)時,系統(tǒng)會以UserLink或BackLink接口參數(shù)自動調(diào)用數(shù)據(jù)接口模塊提供的服務(wù)。數(shù)據(jù)加密解密的主要步驟如下:

步驟1對應用系統(tǒng)提交的命令進行語法分析,如果正確,直接進行下一步處理;如果語法分析不正確,則跳轉(zhuǎn)步驟6。

步驟2判斷用戶發(fā)出的是否為數(shù)據(jù)加密解密引擎的內(nèi)部命令,如果不是,直接進行下一步;如果是,進行內(nèi)部處理,并跳轉(zhuǎn)步驟7。

步驟3檢查加密解密引擎是否處于關(guān)閉狀態(tài),如果不是,直接進行下一步處理;否則跳轉(zhuǎn)步驟6。

步驟4對數(shù)據(jù)加密字典進行檢索,系統(tǒng)根據(jù)加密定義檢索出命令是否涉及數(shù)據(jù)的加密解密處理,如果是,直接進行下一步;否則,跳轉(zhuǎn)步驟6。

步驟5需要加密處理的SQL命令,將SQL命令進行加密變換,替換原來的SQL命令,然后轉(zhuǎn)下一步。

步驟6將SQL命令傳送給數(shù)據(jù)服務(wù)器進行處理。

步驟7所有指令執(zhí)行完畢,緩沖區(qū)清空。

三、加密字典管理程序的實現(xiàn)

加密字典管理程序是數(shù)據(jù)管理員對數(shù)據(jù)進行加密定義的工具,它提供了創(chuàng)建和刪除加密字典、表中數(shù)據(jù)加密和解密、加密字典權(quán)限管理等功能,數(shù)據(jù)加密解密引擎正是利用它來完成對已有數(shù)據(jù)的加密或解密處理。加密字典管理程序由數(shù)據(jù)管理員使用,普通用戶不必關(guān)心。

加密字典管理程序由六個子模塊組成,它們分別是:用戶注冊模塊、加密字典配置模塊、加密定義修改模塊、表信息檢索模塊、密文表配置模塊、數(shù)據(jù)轉(zhuǎn)換模塊。下面將對部分子模塊進行詳細說明。

1、加密字典配置模塊

加密字典配置模塊可以讓數(shù)據(jù)管理員在當前連接的數(shù)據(jù)中創(chuàng)建或刪除加密字典,包括在數(shù)據(jù)加密系統(tǒng)安裝后對加密字典進行初始化工作,以及在不需要數(shù)據(jù)加密時刪除加密字典。加密字典配置表的結(jié)構(gòu)如表1所示。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

創(chuàng)建加密字典的過程如下:

①判斷當前數(shù)據(jù)是否已存在加密字典,若是,則提示錯誤;

②如果當前數(shù)據(jù)沒有加密字典,則生成加密字典表;

③如果加密字典創(chuàng)建成功,則提示操作成功;

④如果加密字典創(chuàng)建失敗,則顯示錯誤信息,提示操作失?。?/p>

⑤記載所創(chuàng)建的加密字典的標識等相關(guān)信息。

刪除加密字典的過程如下:

①判斷當前數(shù)據(jù)是否已存在加密字典且不為空,若是,則提示錯誤;

②如果當前數(shù)據(jù)的加密字典為空,則刪除加密字典表;

③如果加密字典刪除成功,則提示操作成功;

④如果加密字典刪除失敗,則顯示錯誤信息,提示操作失敗。

2、密文表配置模塊

密文表配置模塊根據(jù)數(shù)據(jù)管理員提出的加密定義創(chuàng)建或刪除密文表,同時對加密字典進行相應的更新操作。數(shù)據(jù)管理員的加密定義存放在加密字典中,通過表信息檢索模塊將表信息讀人tab_inf數(shù)據(jù)結(jié)構(gòu)并作為輸入?yún)?shù),密文表配置模塊根據(jù)tab_inf中的信息進行處理,最后將操作結(jié)果返回給加密定義修改模塊。

構(gòu)建密文表及加密字典信息的過程如下:

①根據(jù)加密定義,構(gòu)造出創(chuàng)建密文表的SQL命令,創(chuàng)建密文表;

②根據(jù)加密定義,構(gòu)造出創(chuàng)建密文表主鍵、外鍵和索引的SQL命令,分別建立主鍵、外鏈和索引;

③更新加密字典表,將加密定義信息存人。

刪除、更改密文表及加密字典信息的過程如下:

①根據(jù)加密定義,創(chuàng)建新表以便存儲經(jīng)過加密解密轉(zhuǎn)換的數(shù)據(jù);

②在加密字典中刪除與原密文表相關(guān)的信息;

③保證原密文表已為空,舅除原密文表;

④若加密解密操作是刪除,則將新的加密定義表名換成原來應當使用的名稱;

⑤若加密解密操作是更改,則將新的密文表換成原密文表的名稱。

在以上過程中,如果成功則繼續(xù)進入下一步,否則顯示錯誤信息,提示失敗。

3、數(shù)據(jù)轉(zhuǎn)換模塊

數(shù)據(jù)轉(zhuǎn)換模塊能夠完成表的加密、解密以及加密列密鑰變更等三種數(shù)據(jù)轉(zhuǎn)換工作,它專門為加密定義修改模塊服務(wù)。數(shù)據(jù)轉(zhuǎn)換模塊是一個獨立的動態(tài)連接庫,它提供encode、decode和chmgekey三個函數(shù)供加密定義修改模塊調(diào)用,函數(shù)定義如下:

encode( GetSQLLink.h:tSQLLink,明文表名,轉(zhuǎn)換條件.附加參數(shù))

deoode(GetSQLLink.PutSQLLink.明文表名,轉(zhuǎn)換條件,附加參斂)

dun8ekq( GetSQLLink.PutSQLlink.原表名,新表名,轉(zhuǎn)換條件,附加參數(shù))

只需要提供明文表的名稱作為表名參數(shù),對應密文表的名稱可從加密字典中得到。轉(zhuǎn)換條件是一個符合SQL語法的查詢條件表達式,用于指定需要轉(zhuǎn)換的記錄集,當不帶轉(zhuǎn)換條件時,系統(tǒng)會一次性地完成對整個表的數(shù)據(jù)轉(zhuǎn)換工作。如果能夠確定只有一條記錄滿足轉(zhuǎn)換條件,可以將附加參數(shù)設(shè)置為1,以便省略判斷操作,加快轉(zhuǎn)換速度,否則要將附加參數(shù)設(shè)置為O。數(shù)據(jù)轉(zhuǎn)換模塊自身并不進行數(shù)據(jù)的加密解密操作,真正的加密解密工作由加密解密引擎來完成,數(shù)據(jù)加密解密引擎會根據(jù)加密字典中的加密定義進行數(shù)據(jù)的加密解密工作。

四、測試和分析

數(shù)據(jù)庫服務(wù)器安裝在校園網(wǎng)絡(luò)中心,首先在服務(wù)器安裝加密程序,并插入系統(tǒng)管理員的密鑰,進行加密規(guī)則維護,填寫相應IP地址,并選擇加密算法,設(shè)置本地證書,更改管理員口令。在網(wǎng)絡(luò)暢通的情況下,便可和服務(wù)器建立隧道連接,進行數(shù)據(jù)傳輸。

客戶端遍布校園各個角落,在客戶端窗口用戶名、口令完全匹配的情況下,可以查看部門或用戶權(quán)限信息,可以分別對部門和個人進行權(quán)限維護,某用戶只有其部門擁有某項權(quán)限時才能擁有此項權(quán)限,并可以進行用戶角色調(diào)整,不同的角色擁有不同的權(quán)限。

使用該系統(tǒng)后對各教學部門的業(yè)務(wù)權(quán)限測試。表2是部分數(shù)據(jù)在未加密時的明文數(shù)據(jù)。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

其中akb020為單位編號,aac001為個人(教師或?qū)W生)編號,akc190為上傳(下載)流水號,aae040為數(shù)據(jù)交換日期,aae011為學生考試成績。此表以aac001作為主鍵。

表3是部分數(shù)據(jù)在加密后的密文數(shù)據(jù)。

數(shù)字校園數(shù)據(jù)加密研究與實現(xiàn)

表3是對表2中的aac001個人(教師或?qū)W生)編號和aaer011這兩個列進行加密后生成的密文表。此表仍以a&c001作為主鍵,以便和明文表數(shù)據(jù)對應。已經(jīng)加密的數(shù)據(jù)將不再存儲在明文表中,而僅存儲在密文表中。

從兩個表中的數(shù)據(jù)情況可以看出在使用數(shù)據(jù)庫加密系統(tǒng)后,敏感數(shù)據(jù)被加密并以密文形式存儲,即使數(shù)據(jù)庫管理員或非法用戶獲得了數(shù)據(jù)信息,在沒有密鑰的情況下也無法對數(shù)據(jù)進行解密,從而保證了用戶數(shù)據(jù)的安全性。經(jīng)測試,在各項參數(shù)配置正確、網(wǎng)絡(luò)暢通的情況下我們的數(shù)據(jù)庫加密系統(tǒng)能夠?qū)崿F(xiàn)安全的用戶注冊與訪問,可以保證數(shù)據(jù)傳輸和存儲的完繁性、保密性和不可否認性。在數(shù)據(jù)處理中并未感覺到系統(tǒng)性能的降低,只是在用到數(shù)據(jù)統(tǒng)計和報表等功能時會感到統(tǒng)計時間有一定延長,例如對留降級學生統(tǒng)計時大約會增加15qo的統(tǒng)計時間??傮w上說,該技術(shù)的應用能夠滿足數(shù)字校園在數(shù)據(jù)傳輸和存儲中的安全要求。

五、結(jié)語

根據(jù)數(shù)字校園數(shù)據(jù)的實際特點.對數(shù)據(jù)的完整性、保密性、不可否認性的實現(xiàn)進行分析,提出密鑰管理體制。設(shè)計了一套綜合性的數(shù)字校園信息安全方案。分析了數(shù)據(jù)加密系統(tǒng)及加密解密引擎的原理和體系結(jié)構(gòu),設(shè)計了數(shù)據(jù)加密字典管理程序,通過客戶端和服務(wù)器端的安全訪問、加密解密引擎和加密字典管理程序中各模塊的配合.保證了數(shù)據(jù)在傳輸和存儲中的安全。

由于目前的數(shù)據(jù)管理系統(tǒng)并不支持數(shù)據(jù)加密功能,所以只能在數(shù)據(jù)管理系統(tǒng)的外層增加數(shù)據(jù)的加密解密過程,以此來保證敏感數(shù)據(jù)的安全性和保密性,但同時也使得系統(tǒng)的復雜性增高并且導致系統(tǒng)性能有一定的降低。

小知識之數(shù)字校園

數(shù)字校園是以高度發(fā)達的計算機網(wǎng)絡(luò)為核心技術(shù),以信息和知識資源的共享為手段,強調(diào)合作、分享、傳承的精神,是網(wǎng)絡(luò)化、數(shù)字化、智能化有機結(jié)合的新型教育、學習和研究的教育環(huán)境。這種新型的、開放式教育模式提供了適應學習者個性化成長和發(fā)展需求的學習環(huán)境和自主選擇多種媒體組合的學習資源、能夠創(chuàng)新的運用和創(chuàng)造資源。