随着网络技术和通信技术的不断应用,高校信息化服务意识和服务水平不断提高。2008年4月17日,在北京大学举行的“2008教育网络管理与应用大会暨新一代数字校园建设经验交流会”上提出了“如何构建新一代数字化教学”的主题思。“211”三期“高等教育公共服务体系-CERNET主干网和重点学科信息服务体系升级扩容工程”正在实施。这说明以“数字化教学”建设为中心。使学校的教学、科研、管理和生活服务等各方面都发生了跨越式的发展。但是信息的数字化既有教学管理方便性的一面,又有数据不安全的另一面。本文以榆林学院为例,对数字校园信息安全的数据加密技术作了阐述。
在传统的数字校园数据管理中.管理员的权力至高无上,他既负责各项数据管理,又可以查询数据中的一切信息。为此,需要削弱管理员可以任意修改数据的权利。实现数据加密以后,各用户(或用户组)的敏感数据都以密文形式进行存储,管理员在没有密钥的情况下无法对获得的密文信息正常解密,用户信息的安全得到了保证。通过加密,数据的备份成为密文,能减少因备份失窃或丢失而造成的损失。
数字校园信息安全包括两方面的含义,一是内部局域网的安全,二是外部数据交换的安全口在当今高校,那些需要对老师和学生开放的教学资源,例如人才培养方案、教学计划、精品课程、图书资料等是不需要加密的。而对于频繁进行交换的保密数据,例如学生网上成绩管理、毕业信息管理。教学质域评价、智能排课管理、学生学分管理、网上选课管理、毕业设计管理、学生奖学金等,由于高校学生的计算机水平不断提高,数据在网上被篡改的可能性增大,这对核心数据的安全性提出了较高的要求。
一、数据加密设计
1、数据加密原理
数据中敏感数据集D={d1,d2,…,dn},di(i=1,...,n)代表加密数据项的明文,相应的数据密钥集KD={kd1,kd2,…,kdn}加密、解密算法为(E,D)。这样加密数据项可表示为C={ci|ci=E(kdi,di),i=1,...,n}。
图1所示访问含有加密敏感数据的数据模型。
从图1中可以看出,实现数据加密的本质就是对敏感数据内容进行加密后,以密文形式存储在数据中,那么加密解密过程就显得非常重要。
2、数据加密原理
要实现数据的保密性,可以在源端使用加密算法对数据明文M进行加密生成密文C,在目的端使用相应的算法和密钥解密。完成此功能尽管有对称密钥算法和公开密钥算法。两种选择,但是出于效率、安全和软件运行速度的考虑,本系统中使用了对称密钥算法来完成加密解密,其中的加密密钥在密文传输以前由双方协商。如图2所示。
3、数据加密体系结构
数据加密系统由两个功能独立的主要部件组成,分别是加密字典管理程序和数据加密解密引擎。图3表示了数据加密系统的体系结构。
数据加密系统将用户对敏感数据的具体加密要求记录在加密字典中,加密字典是数据加密系统的基础信息。加密字典管理程序,是管理加密字典的应用程序,是数据管理员变更加密要求的工具。加密字典管理程序通过数据加密解密引擎实现对数据中敏感数据的加密解密及数据转换等功能,此时,它作为一个特殊客户来使用数据加密解密引擎。
数据加密系统能够有效地保证数据的安全,系统中的关键数据都经过了加密处理,即使黑客窃取了这些数据,由于无法对数据进行解密,他仍然难以得到有用的信息。另外,数据加密以后,还可以设定不需要了解数据内容的数据管理员不能见到明文,大大提高了关键数据的安全性和保密性。
二、数据加密解密引擎的实现
1、系统结构
数据加密解密引擎是数据加密系统的核心部件,它处于应用程序与数据服务器之间,负责在后台完成数据中数据的加密、解密处理,对软件开发人员和业务操作人员是透明的。数据加密解密引擎没有操作界面,在需要时由操作系统自动加载,通过内部接口与加密字典管理程序和用户应用程序通信。数据加密解密引擎由加密解密处理模块、用户接口模块和数据接口模块等三大模块组成。图4表示了数据加密解密引擎的系统结构。
图4中的SQLLink称为数据接口参数,它是用户访问数据的链路标识,用户只要登录数据服务器,就与它建立起一条逻辑链路。无论是用户与数据还是加密解密处理模块访问数据都要通过接口SQLLinlc进行。
在加密解密处理模块内部,通过接口UaerLink和BackLink相互调用。用户访问加密解密处理模块时,即有与SQLLink对应的UaerLinjk。加密解密处理模块对数据进行某些操作时,会另外复制了一条专用链路Backlink.而并不借用原有的UaerLink。其目的是为了不影响用户的数据事务。
2、加密解密处理模块
作为数据加密解密引擎的核心模块,加密解密处理模块包含了加密解密引擎的初始化、加密字典信息的检索、加密字典缓冲区管理、加密解密算法的实现、SQL命令的加密变换以及查询结果的脱密处理等功能子模块。数据接口模块通过接口参数UBerLink调用加密解密处理模块。加密解密处理模块将应用系统提交的SQI。命令传递给语法分析模块,以便进行加密解密的语义分析。加密解密处理模块访问数据时,系统会以UserLink或BackLink接口参数自动调用数据接口模块提供的服务。数据加密解密的主要步骤如下:
步骤1对应用系统提交的命令进行语法分析,如果正确,直接进行下一步处理;如果语法分析不正确,则跳转步骤6。
步骤2判断用户发出的是否为数据加密解密引擎的内部命令,如果不是,直接进行下一步;如果是,进行内部处理,并跳转步骤7。
步骤3检查加密解密引擎是否处于关闭状态,如果不是,直接进行下一步处理;否则跳转步骤6。
步骤4对数据加密字典进行检索,系统根据加密定义检索出命令是否涉及数据的加密解密处理,如果是,直接进行下一步;否则,跳转步骤6。
步骤5需要加密处理的SQL命令,将SQL命令进行加密变换,替换原来的SQL命令,然后转下一步。
步骤6将SQL命令传送给数据服务器进行处理。
步骤7所有指令执行完毕,缓冲区清空。
三、加密字典管理程序的实现
加密字典管理程序是数据管理员对数据进行加密定义的工具,它提供了创建和删除加密字典、表中数据加密和解密、加密字典权限管理等功能,数据加密解密引擎正是利用它来完成对已有数据的加密或解密处理。加密字典管理程序由数据管理员使用,普通用户不必关心。
加密字典管理程序由六个子模块组成,它们分别是:用户注册模块、加密字典配置模块、加密定义修改模块、表信息检索模块、密文表配置模块、数据转换模块。下面将对部分子模块进行详细说明。
1、加密字典配置模块
加密字典配置模块可以让数据管理员在当前连接的数据中创建或删除加密字典,包括在数据加密系统安装后对加密字典进行初始化工作,以及在不需要数据加密时删除加密字典。加密字典配置表的结构如表1所示。
创建加密字典的过程如下:
①判断当前数据是否已存在加密字典,若是,则提示错误;
②如果当前数据没有加密字典,则生成加密字典表;
③如果加密字典创建成功,则提示操作成功;
④如果加密字典创建失败,则显示错误信息,提示操作失败;
⑤记载所创建的加密字典的标识等相关信息。
删除加密字典的过程如下:
①判断当前数据是否已存在加密字典且不为空,若是,则提示错误;
②如果当前数据的加密字典为空,则删除加密字典表;
③如果加密字典删除成功,则提示操作成功;
④如果加密字典删除失败,则显示错误信息,提示操作失败。
2、密文表配置模块
密文表配置模块根据数据管理员提出的加密定义创建或删除密文表,同时对加密字典进行相应的更新操作。数据管理员的加密定义存放在加密字典中,通过表信息检索模块将表信息读人tab_inf数据结构并作为输入参数,密文表配置模块根据tab_inf中的信息进行处理,最后将操作结果返回给加密定义修改模块。
构建密文表及加密字典信息的过程如下:
①根据加密定义,构造出创建密文表的SQL命令,创建密文表;
②根据加密定义,构造出创建密文表主键、外键和索引的SQL命令,分别建立主键、外链和索引;
③更新加密字典表,将加密定义信息存人。
删除、更改密文表及加密字典信息的过程如下:
①根据加密定义,创建新表以便存储经过加密解密转换的数据;
②在加密字典中删除与原密文表相关的信息;
③保证原密文表已为空,舅除原密文表;
④若加密解密操作是删除,则将新的加密定义表名换成原来应当使用的名称;
⑤若加密解密操作是更改,则将新的密文表换成原密文表的名称。
在以上过程中,如果成功则继续进入下一步,否则显示错误信息,提示失败。
3、数据转换模块
数据转换模块能够完成表的加密、解密以及加密列密钥变更等三种数据转换工作,它专门为加密定义修改模块服务。数据转换模块是一个独立的动态连接库,它提供encode、decode和chmgekey三个函数供加密定义修改模块调用,函数定义如下:
encode( GetSQLLink.h:tSQLLink,明文表名,转换条件.附加参数)
deoode(GetSQLLink.PutSQLLink.明文表名,转换条件,附加参敛)
dun8ekq( GetSQLLink.PutSQLlink.原表名,新表名,转换条件,附加参数)
只需要提供明文表的名称作为表名参数,对应密文表的名称可从加密字典中得到。转换条件是一个符合SQL语法的查询条件表达式,用于指定需要转换的记录集,当不带转换条件时,系统会一次性地完成对整个表的数据转换工作。如果能够确定只有一条记录满足转换条件,可以将附加参数设置为1,以便省略判断操作,加快转换速度,否则要将附加参数设置为O。数据转换模块自身并不进行数据的加密解密操作,真正的加密解密工作由加密解密引擎来完成,数据加密解密引擎会根据加密字典中的加密定义进行数据的加密解密工作。
四、测试和分析
数据库服务器安装在校园网络中心,首先在服务器安装加密程序,并插入系统管理员的密钥,进行加密规则维护,填写相应IP地址,并选择加密算法,设置本地证书,更改管理员口令。在网络畅通的情况下,便可和服务器建立隧道连接,进行数据传输。
客户端遍布校园各个角落,在客户端窗口用户名、口令完全匹配的情况下,可以查看部门或用户权限信息,可以分别对部门和个人进行权限维护,某用户只有其部门拥有某项权限时才能拥有此项权限,并可以进行用户角色调整,不同的角色拥有不同的权限。
使用该系统后对各教学部门的业务权限测试。表2是部分数据在未加密时的明文数据。
其中akb020为单位编号,aac001为个人(教师或学生)编号,akc190为上传(下载)流水号,aae040为数据交换日期,aae011为学生考试成绩。此表以aac001作为主键。
表3是部分数据在加密后的密文数据。
表3是对表2中的aac001个人(教师或学生)编号和aaer011这两个列进行加密后生成的密文表。此表仍以a&c001作为主键,以便和明文表数据对应。已经加密的数据将不再存储在明文表中,而仅存储在密文表中。
从两个表中的数据情况可以看出在使用数据库加密系统后,敏感数据被加密并以密文形式存储,即使数据库管理员或非法用户获得了数据信息,在没有密钥的情况下也无法对数据进行解密,从而保证了用户数据的安全性。经测试,在各项参数配置正确、网络畅通的情况下我们的数据库加密系统能够实现安全的用户注册与访问,可以保证数据传输和存储的完繁性、保密性和不可否认性。在数据处理中并未感觉到系统性能的降低,只是在用到数据统计和报表等功能时会感到统计时间有一定延长,例如对留降级学生统计时大约会增加15qo的统计时间。总体上说,该技术的应用能够满足数字校园在数据传输和存储中的安全要求。
五、结语
根据数字校园数据的实际特点.对数据的完整性、保密性、不可否认性的实现进行分析,提出密钥管理体制。设计了一套综合性的数字校园信息安全方案。分析了数据加密系统及加密解密引擎的原理和体系结构,设计了数据加密字典管理程序,通过客户端和服务器端的安全访问、加密解密引擎和加密字典管理程序中各模块的配合.保证了数据在传输和存储中的安全。
由于目前的数据管理系统并不支持数据加密功能,所以只能在数据管理系统的外层增加数据的加密解密过程,以此来保证敏感数据的安全性和保密性,但同时也使得系统的复杂性增高并且导致系统性能有一定的降低。
小知识之数字校园
数字校园是以高度发达的计算机网络为核心技术,以信息和知识资源的共享为手段,强调合作、分享、传承的精神,是网络化、数字化、智能化有机结合的新型教育、学习和研究的教育环境。这种新型的、开放式教育模式提供了适应学习者个性化成长和发展需求的学习环境和自主选择多种媒体组合的学习资源、能够创新的运用和创造资源。