數(shù)據(jù)庫(kù)加密技術(shù)在高校OA系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

隨著社會(huì)信息化建設(shè)的迅猛發(fā)展,高等教育信息化管理也同時(shí)穩(wěn)步推進(jìn),越來(lái)越多的高校在實(shí)際管理中推行了OA系統(tǒng)。而高校OA系統(tǒng)又是一個(gè)數(shù)據(jù)密集型應(yīng)用系統(tǒng),其后臺(tái)數(shù)據(jù)庫(kù)中存儲(chǔ)了大量的重要信息,如果丟失或被惡意篡改,后果不堪設(shè)想,那么對(duì)OA系統(tǒng)數(shù)據(jù)庫(kù)加密勢(shì)在必行。

一、高校辦公系統(tǒng)的體系結(jié)構(gòu)和功能設(shè)計(jì)

1、功能設(shè)計(jì)

為了提高管理效率,推進(jìn)無(wú)紙化辦公,根據(jù)高校的信息化建設(shè)和學(xué)校日常管理的實(shí)際,將OA系統(tǒng)分成6個(gè)功能模塊,系統(tǒng)模塊結(jié)構(gòu)圖如圖。

數(shù)據(jù)庫(kù)加密技術(shù)在高校OA系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

其中“待辦事宜”模塊,統(tǒng)一用戶權(quán)限范圍的不同操作而弱化軟件模塊之間的對(duì)立,形成更高效和友好的用戶入口界面。

對(duì)公文的管理是高校OA系統(tǒng)中的核心功能,主要由“公文流轉(zhuǎn)”模塊來(lái)完成,流程包括“擬稿”、“會(huì)稿”、 “核稿”、“簽發(fā)”、“文件編號(hào)”、“簽收”和“文件歸檔”等7個(gè)流程,參與部門和數(shù)據(jù)流程。

數(shù)據(jù)庫(kù)加密技術(shù)在高校OA系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

2、體系結(jié)構(gòu)

基于網(wǎng)絡(luò)安全、升級(jí)成本,尤其是系統(tǒng)穩(wěn)定性等方面的考慮,系統(tǒng)選擇以Microsoft.NET Framework2.0作為開發(fā)和執(zhí)行環(huán)境,采用ASP.NET+SQI Server 2005+IIS On Windows 2003的組合,即以Windows 2003系統(tǒng)作為開發(fā)平臺(tái),IIS和SQL Server 2005分別作為Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,采用ASP. NET語(yǔ)言構(gòu)建的跨操作系統(tǒng)平臺(tái)的B/S/D(Browser/Server/Database)三層模式。

其中,.NET Framework是微軟最新的開發(fā)和執(zhí)行環(huán)境,借此,不同的編程語(yǔ)言和庫(kù)可以無(wú)縫地協(xié)同工作來(lái)創(chuàng)建Windows、Web或Mobile應(yīng)用程序,更易于構(gòu)建、管理、部署,以及與其他聯(lián)網(wǎng)系統(tǒng)或作為獨(dú)立應(yīng)用程序進(jìn)行集成。ASP.Net和SQL Server 2005是微軟基于.NET Framework平臺(tái)開發(fā)的目前最穩(wěn)定的相關(guān)產(chǎn)品。

二、OA系統(tǒng)數(shù)據(jù)庫(kù)加密

信息系統(tǒng)安全框架的評(píng)估主要包括密碼策略、審核策略、數(shù)據(jù)庫(kù)服務(wù)器隔離以及應(yīng)用程序驗(yàn)證和授權(quán)控制等。其中,數(shù)據(jù)加密是數(shù)據(jù)庫(kù)安全的有效方法。

1、 數(shù)據(jù)庫(kù)加密的必要性

在傳輸過(guò)程中的加密(比如:SSL等)可以針對(duì)遠(yuǎn)程訪問(wèn)保護(hù)數(shù)據(jù)庫(kù),但在很多類似高校OA的系統(tǒng)中,數(shù)據(jù)主要是以DBMS的形式存取。這種方式對(duì)已獲得相關(guān)DBMS或OS權(quán)限的人員(包括內(nèi)部人員和黑客)是透明的。相關(guān)資料統(tǒng)計(jì),計(jì)算機(jī)相關(guān)犯罪有80% 發(fā)生在系統(tǒng)內(nèi)部。而對(duì)于離線存儲(chǔ)的敏感數(shù)據(jù),從系統(tǒng)內(nèi)部直接獲得數(shù)據(jù)庫(kù)文件后,很容易還原其中的敏感數(shù)據(jù)。因此,如何防止非授權(quán)通過(guò)數(shù)據(jù)庫(kù)文件訪問(wèn)其中的敏感數(shù)據(jù),成為各數(shù)據(jù)庫(kù)系統(tǒng)在設(shè)計(jì)時(shí)不得不考慮的問(wèn)題。

將加密算法應(yīng)用于數(shù)據(jù)庫(kù)的存儲(chǔ),數(shù)據(jù)作者將數(shù)據(jù)以密文的形式保存于物理數(shù)據(jù)庫(kù)中。這樣即使獲得了數(shù)據(jù)庫(kù)文件,由于沒有密鑰,其他用戶(包括管理員)仍無(wú)法對(duì)其進(jìn)行解密,仍舊難以竊取原始數(shù)據(jù)。因此,加密成為保護(hù)數(shù)據(jù)庫(kù)中數(shù)據(jù)的一種有效方法,提高了數(shù)據(jù)庫(kù)的安全性。

2、數(shù)據(jù)庫(kù)加密的幾種主要工程實(shí)現(xiàn)

a)EFS加密:

EFS是NTFS分區(qū)自帶的加密文件系統(tǒng),該系統(tǒng)可對(duì)文件進(jìn)行物理級(jí)保護(hù),防止非法用戶通過(guò)物理拷貝獲得敏感數(shù)據(jù)。該方法需要以系統(tǒng)管理身份登陸,直接加密DBMS的數(shù)據(jù)文件。EFS的加密/解密是基于私鑰的,所以在使用EFS加密數(shù)據(jù)后,必須使用證書管理機(jī)制導(dǎo)出對(duì)應(yīng)的私鑰,否則當(dāng)私鑰丟失時(shí),將無(wú)法訪問(wèn)被加密的文件。另外,雖然可以防止數(shù)據(jù)文件的拷貝,但如果獲得DBMS管理權(quán)限,加密依然是透明的。

b)插件加密:

插件是一種遵循一定規(guī)范的應(yīng)用程序接口編寫出來(lái)的程序。比如使用微軟ActiveX相關(guān)技術(shù)編寫的用戶自定義插件。在數(shù)據(jù)存取的過(guò)程中,數(shù)據(jù)庫(kù)保存密文,需調(diào)用插件和數(shù)據(jù)庫(kù)通信,來(lái)完成數(shù)據(jù)的加密和解密。采用這種加密方法的優(yōu)點(diǎn)是:可擴(kuò)充性強(qiáng),數(shù)據(jù)庫(kù)的加解密系統(tǒng)可以做成一個(gè)獨(dú)立于DBMS的平臺(tái),不需要數(shù)據(jù)庫(kù)供應(yīng)商進(jìn)行技術(shù)支持;可以將加密密文直接在網(wǎng)上傳輸;插件經(jīng)過(guò)編譯封裝,其中的加密算法無(wú)法有效破解。缺點(diǎn)是數(shù)據(jù)庫(kù)的功能和查詢效率會(huì)受一些限制,并且需要單獨(dú)安裝插件。

c)中間件加密:

中間件是位于平臺(tái)(硬件和操作系統(tǒng))和應(yīng)用之間的通用服務(wù),這些服務(wù)具有標(biāo)準(zhǔn)的程序接口和協(xié)議。中間件加密是將加密算法作為中間件或中間件的一部分。該方法和“插件加密”雖然實(shí)現(xiàn)的技術(shù)不同,但設(shè)計(jì)思想類似,因而特點(diǎn)類似,不再詳細(xì)說(shuō)明。

d)DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))內(nèi)置加密:

早期的DBMS基本沒有內(nèi)置加密功能,隨著數(shù)據(jù)的安全性越來(lái)越受到重視,并成為選擇DBMS產(chǎn)品的重要判斷指標(biāo)之一。因此近幾年,越來(lái)越多的DBMS支持內(nèi)置加密功能。如ORACLE的透明數(shù)據(jù)加密(Transparent Data Encryption,縮寫為TDE)和微軟SQL SERVER的分層加密和密鑰管理基礎(chǔ)結(jié)構(gòu)等。內(nèi)置加密中數(shù)據(jù)的加密解密由DBMS內(nèi)核實(shí)現(xiàn),過(guò)程對(duì)用戶透明。但是這種方式也存在一些問(wèn)題,一方面,密鑰的管理比較復(fù)雜,完全基于訪問(wèn)控制。另一方面加重了數(shù)據(jù)庫(kù)服務(wù)器的負(fù)擔(dān),對(duì)數(shù)據(jù)庫(kù)的性能影響比較大,因此只建議該方法對(duì)敏感數(shù)據(jù)文件加密。

3、基于SQL Server 2005的層次密鑰框架

SQL Server 2000以及之前的版本沒有內(nèi)置數(shù)據(jù)加密功能,主要是使用前面提到的插件等第三方加密。對(duì)加密的密鑰或證書的保護(hù)是由加密者本人負(fù)責(zé),一旦加密的密鑰或證書失去保護(hù),即使應(yīng)用中數(shù)據(jù)已被很強(qiáng)的加密,對(duì)密鑰獲得方依然是透明的。而保護(hù)密鑰也是數(shù)據(jù)加密中難度較大的環(huán)節(jié)。

SQL Server 2005通過(guò)內(nèi)置加密體系很好的解決了這個(gè)問(wèn)題。它不僅提供多層次的密鑰和豐富的加密算法,而且允許用戶可以選擇數(shù)據(jù)服務(wù)器管理密鑰。其內(nèi)置列級(jí)加密功能相對(duì)以前整個(gè)數(shù)據(jù)庫(kù)加密,節(jié)省了DBMS的資源,提高了加密的靈活性。 SQL Server 2005支持3種加密類型。每種類型使用一種不同的密鑰,并且具有多個(gè)加密算法和密鑰強(qiáng)度,如下所述:

a)對(duì)稱加密:

支持RC4、RC2、DES和AES系列加密算法。

b)非對(duì)稱加密:

支持RSA加密算法以及512位、1,024位和2,048位的密鑰強(qiáng)度。

c)證書:

使用證書是非對(duì)稱加密的另一種形式。但是,一個(gè)組織可以使用證書并通過(guò)數(shù)字簽名將一組公鑰和私鑰與其擁有者相關(guān)聯(lián)。SQL Server 2005支持“因特網(wǎng)工程工作組”(IETF)X.509版本3(X.509v3)規(guī)范。一個(gè)組織可以對(duì)SQL Server 2005使用外部生成的證書,或者可以使用SQL Server 2005生成證書。 密鑰管理是加密安全框架中最重要的環(huán)節(jié)。

SQL Server 2005集成了密鑰管理架構(gòu),可以結(jié)合加密密鑰層次結(jié)構(gòu)幫助保護(hù)加密密鑰。在此層次結(jié)構(gòu)中,每個(gè)層次將對(duì)如圖的層次進(jìn)行加密。

數(shù)據(jù)庫(kù)加密技術(shù)在高校OA系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

三、_OA系統(tǒng)中SCL Server 2005數(shù)據(jù)庫(kù)加密實(shí)現(xiàn)舉例

1、對(duì)稱密鑰加密

通常情況下,采用對(duì)稱密鑰加密的方式,有加密速度快的優(yōu)點(diǎn)。根據(jù)系統(tǒng)設(shè)計(jì),SignResult列數(shù)據(jù)需要加密,要求以密文形式保存該部分?jǐn)?shù)據(jù),以明文形式查詢輸出。根據(jù)數(shù)據(jù)庫(kù)加密的權(quán)限粒度化設(shè)計(jì),只允許用戶“dianqi073”修改加密的列。加密的步驟如下:

a)創(chuàng)建“數(shù)據(jù)庫(kù)主密鑰”

CREATE MASTER KEY ENCRYPTION BY PASSWORD一‘jsj3491’

b)創(chuàng)建證書

CREATE CERTIFICATE CERT_ OA_DB AUTHORIZATION dianqi073 WITH SUBIECT=‘OA Database’, START_ DATE=‘01/01/2007’, EXPIRY_DATE=‘01/01/2020’,

c)為dianqi073帳戶創(chuàng)建利用證書保護(hù)的對(duì)稱密鑰

CREATE SYM METRIC KEY Key_SYM_ dianqi073 AUTHORIZATION dianqi073 WITH ALGORITHM=TRIPLE_DES ENCRYPTION BY CERTIFICATE CERT_dianqi073

d)打開對(duì)稱密鑰,準(zhǔn)備數(shù)據(jù)的加密或解密

OPEN SYM METRIC KEY Key_SYM_dianqi073 DECRYPTION BY CERTIFICATE CERT_dianqi073

e)插入加密數(shù)據(jù)

INSERT INTO TD_Archivers(SignResult) VALUES (EncryptByKey(Key_GUID(‘Key_SYM_dianqi073’),‘notify message’)))

f)輸出解密數(shù)據(jù)

SELECT PT,CONVERT(nchar,DecryptByKey(SignResult))AS SignResult FROM TD_Archivers

g)關(guān)閉所有對(duì)稱密鑰

CLOSE ALI SYMM ETRIC KEYS

2、證書加密

本系統(tǒng)和校宣傳部的信息發(fā)布系統(tǒng)之間存在數(shù)據(jù)交換,設(shè)計(jì)上為保證數(shù)據(jù)的安全,防止信息被篡改后錯(cuò)誤發(fā)布,需要傳輸加密密鑰。因此采用SQL Server 2005的證書形式的非對(duì)稱加密l7]。其中所需證書由SQL Server2005生成。下面以InfoDetail列的加密為例,加密的步驟如下:

a)創(chuàng)建“數(shù)據(jù)庫(kù)主密鑰”

CREATE MASTER KEY ENCRYPTION BY PASSWORD=jsj3491’

b)創(chuàng)建證書

CREATE CERTIFICATE CERT_OA_DB WITH SUBJECT=‘OA Database’, START_DATE=‘O1/O1/2007 , EXPIRY_DATE=‘01/01/2020’

c)插入加密數(shù)據(jù)

INSERT INTO TD_Info(Inf0Detail)_VALUES(EncryptByCert(Cert_ID(‘CERT_OA_DB’),‘the information’))

d)提取加密數(shù)據(jù)

SELECT CAST(DecryptByCert(Cert_Id(‘CERT_OA_DB’), InfoDetail)as varchar(20))FROM TD Info

數(shù)據(jù)庫(kù)加密能夠有效地保證數(shù)據(jù)的安全,這對(duì)于高校OA系統(tǒng)至關(guān)重要,在安全領(lǐng)域,數(shù)據(jù)庫(kù)加密越來(lái)越受到重視。文中提到的幾種數(shù)據(jù)庫(kù)加密方法,其中著重闡述的SQL Server的數(shù)據(jù)庫(kù)加密體系和技術(shù),為今后的相關(guān)應(yīng)用提供了一個(gè)新的更高效的選擇。當(dāng)然,數(shù)據(jù)安全問(wèn)題是多方面的,設(shè)計(jì)更加安全而又操作簡(jiǎn)單的管理機(jī)制,需要從認(rèn)證、授權(quán)和加密等多方面綜合研究。

小知識(shí)之OA系統(tǒng):

辦公自動(dòng)化(OA)是面向組織的日常運(yùn)作和管理,員工及管理者使用頻率最高的應(yīng)用系統(tǒng),自1985年國(guó) 內(nèi)召開第一次辦公自動(dòng)化規(guī)劃會(huì)議以來(lái),OA在應(yīng)用內(nèi)容的深度與廣度、IT技術(shù)運(yùn)用等方面都有了新的變化和發(fā)展,并成為組織不可缺的核心應(yīng)用系統(tǒng)。