数据库是高校数字化校园集成平台的核心组成部分。数据库加密是保障数据安全的有效方法。

一、高校数字化校园体系结构及功能

我校数字化校园平台采用负载均衡和双机热备技术,具体包括了身份认证、信息门户和其他web应用服务,如迎新招生、教务、人事、资产、学工等涵盖学校所有行政管理的信息系统,数字化校园体系结构如图1所示。信息门户仅对本校师生开放,通过信息门户可以一站登录到其他应用系统。校内师生用户登录后,可以看到个性化的功能模块展示,拥有不同角色和权限的用户能管理或看到的应用服务不同口数字化校园平台最核心的功能就是一站式登录和数据集成。

1

集成中心库存储了学校数字化校园平台各信息管理系统的最终数据,这些数据中的公共数据采用国家统一标准,各应用系统分别采用与国家标准相统一的校级标准。各类数据相互融合存储在我校数字化校园集成中心库中。数字化校园平台中的数据流转包括各应用系统与其数据库之间的流转和各应用库与集成中心库之间的流转。应用系统的日常操作数据存储在各自独立的数据库中,系统空闲时间将各应用数据库中变化的数据同步抽取到集成中心库中,信息门户则直接从集成中心库调取数据显示在网页上。

二、数据库加密的必要性

由于我校数字化校园平台所包含的各个应用系统数据库均在windows或linux平台下运行,这些操作系统的安全级别为C1、C2级。它们具有用户注册、用户识别、存取控制、安全审计等功能。虽然数据库管理系统在操作系统的基础上增加了如设定口令和访问控制等安全措施,但操作系统和数据库管理系统对数据库文件本身仍然缺乏有效的保护,仍面临着不安全隐患。

首先是来自外部安全隐患,黑客直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具非法篡改数据库文件。

其次黑客一旦非法获取了用户名和口令,或者利用漏洞入侵到数据库系统中,就可以访问数据库中的重要信息。同时如应用系统中的敏感信息如电话号码、银行卡号、工资账务、资产统计等对安全方面有着更严格和更高的需要。为增强数据的安全性,还需要对数据库中的关键数据或者敏感数据实施有效保护。

所以综合上面两方面,解决这一问题的关键是要对数据进行加密,将数据以密文的形式保存于物理数据库中。这样即使获得了数据库文件,仍旧难以窃取原始数据。由此可见,数据加密对于数字化校园平台的安全稳定运行是非常必要的。

三、数据库加密技术比较分析

目前业界存在的数据库加密主要基于三个层次进行,即OS层、DBMS内核层和DBMS外核层田。OS层加密无法辨认数据库文件中的数据关系,从而无法进行合理的加密。DBMS内核层加密要求在服务器端对数据库管理系统本身进行操作,Oracle数据库从Oracle8开始,就能实现对数据的加解密。最新推出的Oracle 11g透明表空间加密,支持AES128、3DES128、AES192和AES256等加密算法,使得加密敏感数据变得容易实现。当数据提交存入磁盘的时候,敏感数据就被自动加密并以密文形式被存人,解密过程也是由数据库管理系统自动完成,且对系统性能影响不大。DBMS外核层加密是在客户端进行加解密运算,不会加重数据库服务器的负载,但是需要自行编写加解密程序,并合理的运用。同时DBMS外核层加密需要在数据入库时加密,出库时解密,这样不仅代码工作量较大,而且对系统性能也有较大的负面影响。经实验测试,加密和解密时使用的CPU开销是未加密时的50倍左右。因此,经过以上对比,结合数据库的特点和我校的实际需求,采用Oracle数据库自带的加密功能实现DBMS内核层加密,是保证数据安全可靠的一种最可行的加密技术,同时能很好的解决密钥管理问题。

四、基于Oracle 11g的数字化校园集成平台加密框架及实现

我校数字化校园平台采用基于IBM WAS的J2EE技术和Oracle数据库相结合的模式,实现校内各应用服务器的集群,并注重用户端的安全访问。Oracle集成中心库中存储数字化校园各应用服务的最终数据,写入操作仅在数据同步时发生,读取操作仅在访问信息门户时发生,集成中心库加密的目的是为了保护静态数据,所以采用表空间加密可以有效保护所有应用数据(表和索引),且并不会影响整个平台的性能。

1

如图2所示,加密表空间的数据在SGA中直接以明文存储。当数据库块从磁盘读人缓冲区缓存时,数据库块会解密,然后放置在缓冲区缓存中,供信息门户数据访问。信息门户服务从缓存读取数据时,不需要进行解密。当数据同步时,数据库块通过写入器DBWR写入磁盘,并从SGA获取数据并在写入磁盘前进行加密。由于主要在缓冲区完成了数据读取和操作,没有磁盘写入,所以不会加重系统负担,经代码测试对性能和优化器影响均不大。具体的加密与解密实现过程如下:

(1)建立和打开Oracle钱夹,用于存储和提供加密密钥,代码如下:

CONN sys/password@dbllg AS SYSDBA

ALTER SYSTEM SET ENCRYPION KEY AUTHENTICATED BY”myPttssword”;

‘在钱夹中创建加密密钥

alter system aet encryption key identified by¨myPaS8word¨

‘打开钱夹

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

(2)创建加密的表空间和表,代码如下:

Create table8pace EN_PORTAL_D

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

size 3072m

‘将表空间标记为经过AES 128位加密算法加密的

encryption using’AES128'

default storage (encrypt)

‘在加密的表空间中创建表secure tuser

create table secure_ tuser

tablespace EN_PORTALD

as

select*from tuser

where rownum<201

/……

(3)为加密表空间创建账户

Create user U8r_imp identified password_imp default tablespaceEN_PORTAL_D

具体配置信息见表1:

1

(4)将数据写入加密表空间的表中

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

update secure tusr set idumber='tran sactionidumber’;

comnut;

‘通过使表空间先脱机再联机,将内容强制写到磁盘上

alter tablespace EN_PORTAL Doffline;

alter tablespace EN_PORTAL_D online;

‘查看经过加密的TS_PORTALD表空间的数据

$ strings digital_imp.dbf I grep Transaction

$
‘该操作不会返回任何结果,因为数据文件是加密的

(5)将数据表从加密表空间移动到普通表空间TS_PORTALD完成解密

alter table secure_trans move tablespace TS_POR-TAL—D

透明表空间加密以一种完美的方式解决了两个问题:它对磁盘上处于静止状态的数据进行加密,由于数据管理发生在SGA内,因此不会影响性能。由于我校数字化校园平台建立前,不存在其他统一的数据平台,因此使用表空间加密方案实现数字化校园集成中心库的加密,不但可以轻松的把所有的敏感信息和数据(表和索引)保护起来,而且不存在列级加密的索引外键限制问题。非法用户打开数据库,看到的只是加密后的数据,而不是真实的数据,因此有效地保护了敏感数据。

小知识之SGA

系统全局区又称SGA (System Global Area)是Oracle Instance的 基本组成部分,在实例启动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构。主要是用于存储数据库信息的内存区,该信息为数据库进程所共享(PGA不能共享的)。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。