高校數(shù)字化校園建設中網(wǎng)絡數(shù)據(jù)庫加密的設計與應用

數(shù)據(jù)庫是高校數(shù)字化校園集成平臺的核心組成部分。數(shù)據(jù)庫加密是保障數(shù)據(jù)安全的有效方法。

一、高校數(shù)字化校園體系結構及功能

我校數(shù)字化校園平臺采用負載均衡和雙機熱備技術,具體包括了身份認證、信息門戶和其他web應用服務,如迎新招生、教務、人事、資產(chǎn)、學工等涵蓋學校所有行政管理的信息系統(tǒng),數(shù)字化校園體系結構如圖1所示。信息門戶僅對本校師生開放,通過信息門戶可以一站登錄到其他應用系統(tǒng)。校內(nèi)師生用戶登錄后,可以看到個性化的功能模塊展示,擁有不同角色和權限的用戶能管理或看到的應用服務不同口數(shù)字化校園平臺最核心的功能就是一站式登錄和數(shù)據(jù)集成。

1

集成中心庫存儲了學校數(shù)字化校園平臺各信息管理系統(tǒng)的最終數(shù)據(jù),這些數(shù)據(jù)中的公共數(shù)據(jù)采用國家統(tǒng)一標準,各應用系統(tǒng)分別采用與國家標準相統(tǒng)一的校級標準。各類數(shù)據(jù)相互融合存儲在我校數(shù)字化校園集成中心庫中。數(shù)字化校園平臺中的數(shù)據(jù)流轉包括各應用系統(tǒng)與其數(shù)據(jù)庫之間的流轉和各應用庫與集成中心庫之間的流轉。應用系統(tǒng)的日常操作數(shù)據(jù)存儲在各自獨立的數(shù)據(jù)庫中,系統(tǒng)空閑時間將各應用數(shù)據(jù)庫中變化的數(shù)據(jù)同步抽取到集成中心庫中,信息門戶則直接從集成中心庫調(diào)取數(shù)據(jù)顯示在網(wǎng)頁上。

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

由于我校數(shù)字化校園平臺所包含的各個應用系統(tǒng)數(shù)據(jù)庫均在windows或linux平臺下運行,這些操作系統(tǒng)的安全級別為C1、C2級。它們具有用戶注冊、用戶識別、存取控制、安全審計等功能。雖然數(shù)據(jù)庫管理系統(tǒng)在操作系統(tǒng)的基礎上增加了如設定口令和訪問控制等安全措施,但操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫文件本身仍然缺乏有效的保護,仍面臨著不安全隱患。

首先是來自外部安全隱患,黑客直接利用操作系統(tǒng)的漏洞竊取數(shù)據(jù)庫文件,或者直接利用OS工具非法篡改數(shù)據(jù)庫文件。

其次黑客一旦非法獲取了用戶名和口令,或者利用漏洞入侵到數(shù)據(jù)庫系統(tǒng)中,就可以訪問數(shù)據(jù)庫中的重要信息。同時如應用系統(tǒng)中的敏感信息如電話號碼、銀行卡號、工資賬務、資產(chǎn)統(tǒng)計等對安全方面有著更嚴格和更高的需要。為增強數(shù)據(jù)的安全性,還需要對數(shù)據(jù)庫中的關鍵數(shù)據(jù)或者敏感數(shù)據(jù)實施有效保護。

所以綜合上面兩方面,解決這一問題的關鍵是要對數(shù)據(jù)進行加密,將數(shù)據(jù)以密文的形式保存于物理數(shù)據(jù)庫中。這樣即使獲得了數(shù)據(jù)庫文件,仍舊難以竊取原始數(shù)據(jù)。由此可見,數(shù)據(jù)加密對于數(shù)字化校園平臺的安全穩(wěn)定運行是非常必要的。

三、數(shù)據(jù)庫加密技術比較分析

目前業(yè)界存在的數(shù)據(jù)庫加密主要基于三個層次進行,即OS層、DBMS內(nèi)核層和DBMS外核層田。OS層加密無法辨認數(shù)據(jù)庫文件中的數(shù)據(jù)關系,從而無法進行合理的加密。DBMS內(nèi)核層加密要求在服務器端對數(shù)據(jù)庫管理系統(tǒng)本身進行操作,Oracle數(shù)據(jù)庫從Oracle8開始,就能實現(xiàn)對數(shù)據(jù)的加解密。最新推出的Oracle 11g透明表空間加密,支持AES128、3DES128、AES192和AES256等加密算法,使得加密敏感數(shù)據(jù)變得容易實現(xiàn)。當數(shù)據(jù)提交存入磁盤的時候,敏感數(shù)據(jù)就被自動加密并以密文形式被存人,解密過程也是由數(shù)據(jù)庫管理系統(tǒng)自動完成,且對系統(tǒng)性能影響不大。DBMS外核層加密是在客戶端進行加解密運算,不會加重數(shù)據(jù)庫服務器的負載,但是需要自行編寫加解密程序,并合理的運用。同時DBMS外核層加密需要在數(shù)據(jù)入庫時加密,出庫時解密,這樣不僅代碼工作量較大,而且對系統(tǒng)性能也有較大的負面影響。經(jīng)實驗測試,加密和解密時使用的CPU開銷是未加密時的50倍左右。因此,經(jīng)過以上對比,結合數(shù)據(jù)庫的特點和我校的實際需求,采用Oracle數(shù)據(jù)庫自帶的加密功能實現(xiàn)DBMS內(nèi)核層加密,是保證數(shù)據(jù)安全可靠的一種最可行的加密技術,同時能很好的解決密鑰管理問題。

四、基于Oracle 11g的數(shù)字化校園集成平臺加密框架及實現(xiàn)

我校數(shù)字化校園平臺采用基于IBM WAS的J2EE技術和Oracle數(shù)據(jù)庫相結合的模式,實現(xiàn)校內(nèi)各應用服務器的集群,并注重用戶端的安全訪問。Oracle集成中心庫中存儲數(shù)字化校園各應用服務的最終數(shù)據(jù),寫入操作僅在數(shù)據(jù)同步時發(fā)生,讀取操作僅在訪問信息門戶時發(fā)生,集成中心庫加密的目的是為了保護靜態(tài)數(shù)據(jù),所以采用表空間加密可以有效保護所有應用數(shù)據(jù)(表和索引),且并不會影響整個平臺的性能。

1

如圖2所示,加密表空間的數(shù)據(jù)在SGA中直接以明文存儲。當數(shù)據(jù)庫塊從磁盤讀人緩沖區(qū)緩存時,數(shù)據(jù)庫塊會解密,然后放置在緩沖區(qū)緩存中,供信息門戶數(shù)據(jù)訪問。信息門戶服務從緩存讀取數(shù)據(jù)時,不需要進行解密。當數(shù)據(jù)同步時,數(shù)據(jù)庫塊通過寫入器DBWR寫入磁盤,并從SGA獲取數(shù)據(jù)并在寫入磁盤前進行加密。由于主要在緩沖區(qū)完成了數(shù)據(jù)讀取和操作,沒有磁盤寫入,所以不會加重系統(tǒng)負擔,經(jīng)代碼測試對性能和優(yōu)化器影響均不大。具體的加密與解密實現(xiàn)過程如下:

(1)建立和打開Oracle錢夾,用于存儲和提供加密密鑰,代碼如下:

CONN sys/password@dbllg AS SYSDBA

ALTER SYSTEM SET ENCRYPION KEY AUTHENTICATED BY”myPttssword”;

‘在錢夾中創(chuàng)建加密密鑰

alter system aet encryption key identified by¨myPaS8word¨

‘打開錢夾

alter system set wan,et open identified by”myPassword¨

(2)創(chuàng)建加密的表空間和表,代碼如下:

Create table8pace EN_PORTAL_D

Datafile/rg /app/oradata/admin/digital_imp.dbf'

size 3072m

‘將表空間標記為經(jīng)過AES 128位加密算法加密的

encryption using’AES128'

default storage (encrypt)

‘在加密的表空間中創(chuàng)建表secure tuser

create table secure_ tuser

tablespace EN_PORTALD

as

select*from tuser

where rownum<201

/……

(3)為加密表空間創(chuàng)建賬戶

Create user U8r_imp identified password_imp default tablespaceEN_PORTAL_D

具體配置信息見表1:

1

(4)將數(shù)據(jù)寫入加密表空間的表中

'更新secure tusr表中的—個文本字段

update secure tusr set idumber='tran sactionidumber’;

comnut;

‘通過使表空間先脫機再聯(lián)機,將內(nèi)容強制寫到磁盤上

alter tablespace EN_PORTAL Doffline;

alter tablespace EN_PORTAL_D online;

‘查看經(jīng)過加密的TS_PORTALD表空間的數(shù)據(jù)

$ strings digital_imp.dbf I grep Transaction

$
‘該操作不會返回任何結果,因為數(shù)據(jù)文件是加密的

(5)將數(shù)據(jù)表從加密表空間移動到普通表空間TS_PORTALD完成解密

alter table secure_trans move tablespace TS_POR-TAL—D

透明表空間加密以一種完美的方式解決了兩個問題:它對磁盤上處于靜止狀態(tài)的數(shù)據(jù)進行加密,由于數(shù)據(jù)管理發(fā)生在SGA內(nèi),因此不會影響性能。由于我校數(shù)字化校園平臺建立前,不存在其他統(tǒng)一的數(shù)據(jù)平臺,因此使用表空間加密方案實現(xiàn)數(shù)字化校園集成中心庫的加密,不但可以輕松的把所有的敏感信息和數(shù)據(jù)(表和索引)保護起來,而且不存在列級加密的索引外鍵限制問題。非法用戶打開數(shù)據(jù)庫,看到的只是加密后的數(shù)據(jù),而不是真實的數(shù)據(jù),因此有效地保護了敏感數(shù)據(jù)。

小知識之SGA

系統(tǒng)全局區(qū)又稱SGA (System Global Area)是Oracle Instance的 基本組成部分,在實例啟動時分配。是一組包含一個Oracle實例的數(shù)據(jù)和控制信息的共享內(nèi)存結構。主要是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進程所共享(PGA不能共享的)。它包含Oracle 服務器的數(shù)據(jù)和控制信息,它是在Oracle服務器所駐留的計算機的實際內(nèi)存中得以分配,如果實際內(nèi)存不夠再往虛擬內(nèi)存中寫。