随着社会信息化建设的迅猛发展,高等教育信息化管理也同时稳步推进,越来越多的高校在实际管理中推行了OA系统。而高校OA系统又是一个数据密集型应用系统,其后台数据库中存储了大量的重要信息,如果丢失或被恶意篡改,后果不堪设想,那么对OA系统数据库加密势在必行。

一、高校办公系统的体系结构和功能设计

1、功能设计

为了提高管理效率,推进无纸化办公,根据高校的信息化建设和学校日常管理的实际,将OA系统分成6个功能模块,系统模块结构图如图。

数据库加密技术在高校OA系统中的设计与实现

其中“待办事宜”模块,统一用户权限范围的不同操作而弱化软件模块之间的对立,形成更高效和友好的用户入口界面。

对公文的管理是高校OA系统中的核心功能,主要由“公文流转”模块来完成,流程包括“拟稿”、“会稿”、 “核稿”、“签发”、“文件编号”、“签收”和“文件归档”等7个流程,参与部门和数据流程。

数据库加密技术在高校OA系统中的设计与实现

2、体系结构

基于网络安全、升级成本,尤其是系统稳定性等方面的考虑,系统选择以Microsoft.NET Framework2.0作为开发和执行环境,采用ASP.NET+SQI Server 2005+IIS On Windows 2003的组合,即以Windows 2003系统作为开发平台,IIS和SQL Server 2005分别作为Web服务器和数据库服务器,采用ASP. NET语言构建的跨操作系统平台的B/S/D(Browser/Server/Database)三层模式。

其中,.NET Framework是微软最新的开发和执行环境,借此,不同的编程语言和库可以无缝地协同工作来创建Windows、Web或Mobile应用程序,更易于构建、管理、部署,以及与其他联网系统或作为独立应用程序进行集成。ASP.Net和SQL Server 2005是微软基于.NET Framework平台开发的目前最稳定的相关产品。

二、OA系统数据库加密

信息系统安全框架的评估主要包括密码策略、审核策略、数据库服务器隔离以及应用程序验证和授权控制等。其中,数据加密是数据库安全的有效方法。

1、 数据库加密的必要性

在传输过程中的加密(比如:SSL等)可以针对远程访问保护数据库,但在很多类似高校OA的系统中,数据主要是以DBMS的形式存取。这种方式对已获得相关DBMS或OS权限的人员(包括内部人员和黑客)是透明的。相关资料统计,计算机相关犯罪有80% 发生在系统内部。而对于离线存储的敏感数据,从系统内部直接获得数据库文件后,很容易还原其中的敏感数据。因此,如何防止非授权通过数据库文件访问其中的敏感数据,成为各数据库系统在设计时不得不考虑的问题。

将加密算法应用于数据库的存储,数据作者将数据以密文的形式保存于物理数据库中。这样即使获得了数据库文件,由于没有密钥,其他用户(包括管理员)仍无法对其进行解密,仍旧难以窃取原始数据。因此,加密成为保护数据库中数据的一种有效方法,提高了数据库的安全性。

2、数据库加密的几种主要工程实现

a)EFS加密:

EFS是NTFS分区自带的加密文件系统,该系统可对文件进行物理级保护,防止非法用户通过物理拷贝获得敏感数据。该方法需要以系统管理身份登陆,直接加密DBMS的数据文件。EFS的加密/解密是基于私钥的,所以在使用EFS加密数据后,必须使用证书管理机制导出对应的私钥,否则当私钥丢失时,将无法访问被加密的文件。另外,虽然可以防止数据文件的拷贝,但如果获得DBMS管理权限,加密依然是透明的。

b)插件加密:

插件是一种遵循一定规范的应用程序接口编写出来的程序。比如使用微软ActiveX相关技术编写的用户自定义插件。在数据存取的过程中,数据库保存密文,需调用插件和数据库通信,来完成数据的加密和解密。采用这种加密方法的优点是:可扩充性强,数据库的加解密系统可以做成一个独立于DBMS的平台,不需要数据库供应商进行技术支持;可以将加密密文直接在网上传输;插件经过编译封装,其中的加密算法无法有效破解。缺点是数据库的功能和查询效率会受一些限制,并且需要单独安装插件。

c)中间件加密:

中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程序接口和协议。中间件加密是将加密算法作为中间件或中间件的一部分。该方法和“插件加密”虽然实现的技术不同,但设计思想类似,因而特点类似,不再详细说明。

d)DBMS(数据库管理系统)内置加密:

早期的DBMS基本没有内置加密功能,随着数据的安全性越来越受到重视,并成为选择DBMS产品的重要判断指标之一。因此近几年,越来越多的DBMS支持内置加密功能。如ORACLE的透明数据加密(Transparent Data Encryption,缩写为TDE)和微软SQL SERVER的分层加密和密钥管理基础结构等。内置加密中数据的加密解密由DBMS内核实现,过程对用户透明。但是这种方式也存在一些问题,一方面,密钥的管理比较复杂,完全基于访问控制。另一方面加重了数据库服务器的负担,对数据库的性能影响比较大,因此只建议该方法对敏感数据文件加密。

3、基于SQL Server 2005的层次密钥框架

SQL Server 2000以及之前的版本没有内置数据加密功能,主要是使用前面提到的插件等第三方加密。对加密的密钥或证书的保护是由加密者本人负责,一旦加密的密钥或证书失去保护,即使应用中数据已被很强的加密,对密钥获得方依然是透明的。而保护密钥也是数据加密中难度较大的环节。

SQL Server 2005通过内置加密体系很好的解决了这个问题。它不仅提供多层次的密钥和丰富的加密算法,而且允许用户可以选择数据服务器管理密钥。其内置列级加密功能相对以前整个数据库加密,节省了DBMS的资源,提高了加密的灵活性。 SQL Server 2005支持3种加密类型。每种类型使用一种不同的密钥,并且具有多个加密算法和密钥强度,如下所述:

a)对称加密:

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

b)非对称加密:

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

c)证书:

使用证书是非对称加密的另一种形式。但是,一个组织可以使用证书并通过数字签名将一组公钥和私钥与其拥有者相关联。SQL Server 2005支持“因特网工程工作组”(IETF)X.509版本3(X.509v3)规范。一个组织可以对SQL Server 2005使用外部生成的证书,或者可以使用SQL Server 2005生成证书。 密钥管理是加密安全框架中最重要的环节。

SQL Server 2005集成了密钥管理架构,可以结合加密密钥层次结构帮助保护加密密钥。在此层次结构中,每个层次将对如图的层次进行加密。

数据库加密技术在高校OA系统中的设计与实现

三、_OA系统中SCL Server 2005数据库加密实现举例

1、对称密钥加密

通常情况下,采用对称密钥加密的方式,有加密速度快的优点。根据系统设计,SignResult列数据需要加密,要求以密文形式保存该部分数据,以明文形式查询输出。根据数据库加密的权限粒度化设计,只允许用户“dianqi073”修改加密的列。加密的步骤如下:

a)创建“数据库主密钥”

CREATE MASTER KEY ENCRYPTION BY PASSWORD一‘jsj3491’

b)创建证书

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

c)为dianqi073帐户创建利用证书保护的对称密钥

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

d)打开对称密钥,准备数据的加密或解密

OPEN SYM METRIC KEY Key_SYM_dianqi073 DECRYPTION BY CERTIFICATE CERT_dianqi073

e)插入加密数据

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

f)输出解密数据

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

g)关闭所有对称密钥

CLOSE ALI SYMM ETRIC KEYS

2、证书加密

本系统和校宣传部的信息发布系统之间存在数据交换,设计上为保证数据的安全,防止信息被篡改后错误发布,需要传输加密密钥。因此采用SQL Server 2005的证书形式的非对称加密l7]。其中所需证书由SQL Server2005生成。下面以InfoDetail列的加密为例,加密的步骤如下:

a)创建“数据库主密钥”

CREATE MASTER KEY ENCRYPTION BY PASSWORD=jsj3491’

b)创建证书

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

c)插入加密数据

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

d)提取加密数据

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

数据库加密能够有效地保证数据的安全,这对于高校OA系统至关重要,在安全领域,数据库加密越来越受到重视。文中提到的几种数据库加密方法,其中着重阐述的SQL Server的数据库加密体系和技术,为今后的相关应用提供了一个新的更高效的选择。当然,数据安全问题是多方面的,设计更加安全而又操作简单的管理机制,需要从认证、授权和加密等多方面综合研究。

小知识之OA系统:

办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,自1985年国 内召开第一次办公自动化规划会议以来,OA在应用内容的深度与广度、IT技术运用等方面都有了新的变化和发展,并成为组织不可缺的核心应用系统。