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

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

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

1、功能設計

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

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

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

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

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

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

基于網(wǎng)絡安全、升級成本,尤其是系統(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ā)平臺,IIS和SQL Server 2005分別作為Web服務器和數(shù)據(jù)庫服務器,采用ASP. NET語言構(gòu)建的跨操作系統(tǒng)平臺的B/S/D(Browser/Server/Database)三層模式。

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

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

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

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

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

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

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

a)EFS加密:

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

b)插件加密:

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

c)中間件加密:

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

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

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

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

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

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

a)對稱加密:

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

b)非對稱加密:

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

c)證書:

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

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

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

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

1、對稱密鑰加密

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

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

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)建利用證書保護的對稱密鑰

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

d)打開對稱密鑰,準備數(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)閉所有對稱密鑰

CLOSE ALI SYMM ETRIC KEYS

2、證書加密

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

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

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

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

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