图书馆信息资源安全与数据库加密实现技术_图书馆论文

图书馆信息资源的安全性及其数据库加密实现技术,本文主要内容关键词为:信息资源论文,安全性论文,图书馆论文,数据库论文,技术论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

随着网络技术的迅猛发展,世界上各行各业的信息系统数据处理的安全问题被提到前所未 有的高度。图书馆信息资源是中国国家信息资源的一个很重要的组成部分,因为科技兴国必 须依靠高等教育,而高等教育离不开高校图书馆信息资源。所以如何保护好图书馆信息资源 是 一个亟待解决的重要问题。

1 图书馆信息资源的安全性及图书馆数据库加密的必要性

图书馆信息资源常常被安全问题所困扰。有三个棘手的安全问题无法解决:

第一个问题,一方面图书馆本身需要对自己的关键数据进行有效的保护;另一方面,图书 馆用户从应用服务器提供商(Application Service Provider,ASP)尤其是美国的应用服务器 提供商(包括硬件和软件)处获得应用支持和服务,在这种情况下,图书馆用户的业务数据存 放 在ASP处,其安全性无法得到有效的保障。

例如,购买了美国SIRSI公司Unicorn系统的高校,它们的图书馆信息资源完全被美国SIRSI 公司所控制。令人忧虑的是这些高校购买的系统即使出现一些极小的问题也要拨通美国热线 (因为他们不提供底层软件,这些学校无法自行修改)由美国人在大洋彼岸通过Internet网络 来遥控解决这些问题。可想而知美国SIRSI公司对这些高校图书馆信息资源的了解是多么的 了如指掌。

第二个问题,因为传统的图书馆数据库保护方式是通过设定口令字和访问权限等方法来实 现的。在图书馆界已经有不少文章对图书馆信息资源的安全性进行了广泛的讨论,并给出了 一些解决方案,但是仍然停留在依靠设定口令字和访问权限上,有的文章还认为设定口令字 及 访问权限越多越全面就是解决图书馆信息资源安全性的完整解决方案。只设定口令字和访问 权限存在一些很大的安全漏洞,首先对于应用服务器提供商(特别是国外的应用服务器提供 商)来说不起作用;对于网上黑客来说也不起作用,因为它可以从“隐蔽通道”绕道而行 。(第三个问题专门提到)还有就是数据管理员可以不加限制地访问数据库中的所有数据。数 据 库系统管理员的权力至高无上,他既负责各项图书馆系统管理工作,(例如:资源分配、用 户受权、系统审计等)还可以查询图书馆数据库中的一切信息。因此,不少图书馆系统以种 种手段来削弱系统管理员的权力。但是,一直没有有效的方法。

第三个问题,来自世界各地的网上黑客的袭击,也是一个很大的隐患。大型图书馆信息系 统运行平台一般是Windows NT和Unix,这些操作系统的安全级别通常是C1、C2级。它们具有 用户注册、识别用户、任意存取控制(DAC)、审计等安全功能。虽然数据库管理系统在操作 系 统的基础上增加了不少安全措施,但是,有经验的网上黑客会“绕道而行”,直接利用操 作系统工具窃取或篡改数据库文件的内容。这种隐患被称为通向数据库管理系统的“隐蔽通 道”,使图书馆信息资源的安全性受到严重威胁,它所带来的危害使得图书馆用户很难及时 察觉。分析和堵塞“隐蔽通道”属于B2级安全级别范畴。对图书馆数据库中敏感数据进行加 密 处理,是堵塞“隐蔽通道”的最有效的手段。要预防黑客对借还图书情况的篡改,在目前图 书价格特别是外文图书价格更加昂贵的情况下,以避免造成因篡改图书借还信息造成的经济 损失。

解决以上三个问题的关键就是要对图书馆数据库本身进行加密,即使数据不幸泄露或丢失 , 也难以被人破译。对图书馆数据库进行加密,有两种方式:客户端加密和服务器端加密。 客户端加密的好处是不会加重图书馆数据库服务器端的负载,并且可实现网上的传输加密, 即使是服务器提供商也无法脱密,从而达到了对服务器提供商保密的目的。这种加密方式通 常利用数据库外层工具实现。服务器端的加密需要对图书馆数据库管理系统本身进行操作, 属于核心层加密,需要数据库开发商的配合,这样一来又要依靠服务器提供商,还是不安全 。对于希望通过ASP获得服务的图书馆用户来说,只有在客户端实现加/脱密,才能有效保证 图书馆的信息资源的安全。实现数据库加密以后,各图书馆用户的数据用自己的密钥加密, 数据库管理员及数据库开发商获得的信息是加密后的信息,无法进行正常脱密。这样即使是 购买的国外系统也可以放心大胆地使用了。通过加密,图书馆数据库的备份内容成为密文, 这样就减少了因失窃或丢失备份所造成的损失。由此看来,图书馆数据库加密对图书馆信 息资源的安全管理是必不可少的。

在图书馆数据库客户端进行加/脱密运算,对图书馆信息系统的负载及运行几乎没有影响。 用纯软件实现DES加密算法的速度超过200k字节/秒,如果对图书馆中文书目库中的1万条记 录进行加密,加/脱密时间仅需1秒中。这种时间延迟对用户来说是不会有感觉的。

2 图书馆数据库加密算法与密钥管理

2.1 图书馆数据库的加密算法

图书馆数据库密码系统的两个基本要素是图书馆数据库加密算法和图书馆数据库密钥管理 。加密算法是规定明文和密文之间变换方法的一些公式和法则,密钥是控制加/脱密算法的 关键信息。应用于图书馆数据库加密的加密算法也叫做图书馆数据库密码。常用的图书馆数 据库的加密算法有序列密码体制、分组密码体制、公开密码体制。

序列密码体制直接对当前的字符进行变换,是以每一个字符为单位进行变换的。每一个字 符数据的加密与其它数据无关。相当于直接对明文加上同等长度的密钥,只要所用的密钥是 随机数且不重复使用,即实现了“一次一密”的加密。从理论上讲,真正实现了“一次一密 ”的加密是不可破译的。这种密码的明文和密文的长度一般不变,传递迅速,缺点就是黑客 容易得到明文和密文的对照码,便于进行密码分析。分组密码体制的明文按固定长度分组, 对各组数据用不同的密钥加密或脱密。分组密码体制按分组进行加密变换,一个字符数据不 仅与密钥有关,而且还与其它数据有关,密码分析的穷尽量很大,例如传统的64位分组法, 它的穷尽量为2[64]—1,这是一个20位的十进制数。即使使用每秒运行速度万亿次的超大型的 计算机进行攻击,穷尽时间也需要几年。在使用分组密码时,对明文尾部不满一个整组的碎 片通常采用填充随机数的办法将其扩充为一个整组,然后进行正常加密。由于尾组的扩充 ,使得密文的长度大于明文的长度。分组密码可用于图书馆计算机存储加密,但因为图书馆 数据库加密后长度不应该改变,所以必须改进分组密码体制的使用方法。公开密码体制的缺 点是加/脱密速度较慢,这类密码的运算速度仅是其它类型密码运行速度的百分之一或更低 ,公开密码体制目前仅用于图书馆用户认证、密钥传输等。因为速度慢不能用于图书馆数据 库加密。

序列密码和分组密码也叫做对称性密码。这类密码加密和脱密必须使用相同的密钥。公开 密钥密码也称非对称性密码。这类密码体制具有两个密钥,公钥和私钥,加密时用公钥,脱 密时用私钥。图书馆数据库对加密系统的要求是数据库加密后数据量不应有明显增加,加/ 脱密速度要足够快,数据处理响应时间应该让图书馆用户能够接受。

改变对分组密码算法的传统的应用处理方法,使其加密后长度不变,就能满足以上要求 。我们以数据加密标准DES为例说明,DES是一种对二进制数据进行加密的算法,数据分组长 度、密钥长度、输出密文长度都是64位,明文经过16轮的叠代,乘积变换,压缩变换等编码 过程输出密文。对尾部碎片采用“密码挪用法”,以克服传统的“填充数据法”造成数据扩 展的缺点。

2.2 图书馆数据库的密钥管理

图书馆数据库加密需要进行二级密钥管理。一级密钥为主密钥,二级密钥为工作密钥。主 密 钥的作用是对二级密钥信息进行加密生成工作密钥。工作密钥用于对图书馆数据库数据进 行加/脱密。工作密钥信息长度为64位,前56位是记录名。需要带校验存储在图书馆数据库 表中,后8位是图书馆数据库表的列信息,它们是临时生成的。为了存储数据名数据,每个 图书馆数据库表增加了一个记录名字段,在图书馆用户录入数据时,系统自动生成记录名数 据,使每条数据都有一个记录名,并使记录名相互不重复。

(注图1是某图书馆数据库中部分数据加密情况。在该例中,待加密数据长度是14,第一整 组(1—10码)加密后截取8—10码的密文与尾部(11—14码)组成一个整组进行加密,加密所得 的 密码接在前一组的第7个密码之后。其中8—10位实际上进行了二次加密,在脱密时也应进行 二次脱密。这种方案既保证了64位分组加密也保证了数据库加密后数据长度不会变化。这种 改进后的分组密码体制最适合于图书馆数据库的加密。)

例如,南开大学图书馆所购买的美国SIRSI公司Unicorn图书馆集成管理系统中的中文书目 数据库中每条记录中包含ISBN、ISSN、统一书刊号、标准号、书名、题名、作者、中图法号 、科图法号、分类号、索书号、登录号、典藏册条码、册条码等14个字段。采用改进后的分 组密码体制,假设每个字段占64位,那末相对于该数据库的数据库表有14列。假设该库中有 100万条中文书目记录,用K代表第100万条记录,那么对于每个加密单位都有一个对应的二 级密钥信息XiYj,其组织方法如图2。

(图2中每个XiYj共占64位,其中Xi占56位,X序列的穷尽量为2[56]—1≈7×10[16],按10进制来 算大约有7000兆,再大的图书馆数据库也用不完。Yj占8位,允许编号为0—255,也就是说 ,一个数据库表最多允许256列数据(即一条记录最多允许有256个字段),再复杂的图书馆数 据库也足够用了。)

在图书馆数据需要加/脱密时,将相应的64位二级密钥信息用主密钥进行加密即得到工作密 钥 ,用工作密钥完成对图书馆数据的加/脱密。对于多图书馆服务器、多图书馆数据库、多图 书馆用户等情况,图书馆数据库加密系统中还需要根据应用需求增加一些信息,方法就是将 以 上各类实体分别进行编码、存储并依据不同情况使用。

3 图书馆数据库的加密管理程序

图书馆数据库的加密管理程序是定义加密数据项的工具,它可以创建和删除加密字典,对 表进行加密和脱密以及修复,它利用图书馆数据库加密引擎来完成对图书馆已有数据的加密 和脱密。图书馆数据库加密管理程序由用户注册模块、加密字典配制模块、加密定义修改模 块、表信息检索模块、密文表配置模块、数据转换模块等组成:

用户注册模块是启动图书馆数据库加密程序后必须通过的身份验证模块,该模块防止未受 权人员使用图书馆数据库加密管理程序。通过身份验证后操作员才可以使用其它的功能模块 。如果注册成功,则获得用于所有数据库操作的全局变量SQLCA.

加密字典配置模块用于创建和删除加密字典。在选择创建和删除加密字典操作后,图书馆 数据库加密程序即调用该模块的相应的功能函数,调用参数是SQLCA。创建加密字典的过程 是首先检查数据库中加密字典是否存在,若已存在则报错退出;不存在则生成加密字典表; 如果创建成功,则显示操作成功,否则显示操作失败;然后记载加密字典的标识等信息。

加密定义修改模块提供了一个窗口界面,在此界面中可以指定需要加/脱密的表及字段,程 序根据实际的加/脱密要求,完成数据库结构及加密字典的调整和数据的加/脱密转换工作。 该模块是图书馆加密管理程序的主要模块,它通过S—tab参数调用“表信息检索模块”、“ 密文表配置模块”、“数据转换模块”来完成一个表的加密定义修改任务。该模块的处理过 程是首先由图书馆用户选择一个表,调用“表信息检索模块”,得到表的所有字典信息;列 出表的字段信息,供图书馆用户修改加密定义;根据图书馆用户的修改要求,将加/脱密要 求确切定义为加密、脱密、更改三种类型。若操作是加密、更改,则构建密文表及加密字典 ;调用“数据转换模块”的相应函数,完成表数据的明密转换;若操作是脱密、更改,则删 除、更新密文表及加密字典;在以上操作中,成功则进行下一步,否则显示错误信息,终止 退出。

表信息检索模块的作用是从数据字典中检索出与某个表有关的各种信息,放入S-tab结构变 量中,这些信息包括表名、表标识、主键定义、外键定义、索引定义、字段定义等,供其它 模块使用。表信息检索模块以函数形式提供服务,输入参数是SQLCA和表的名称,输出数据 存放在S-tab的数据结构中,成功返回1,失败返回0。该模块被“加密定义修改模块”、“ 密文表配置模块”调用。处理过程是首先根据输入的名表,获得该表的表一级信息;获得该 表的主键信息;获得该表的外键信息;获得该表的索引信息;获得该表的所有列信息;获得 该表已有的加密定义;在以上操作中,成功则进行下一步,否则显示错误信息并终止退出。

密文表配置模块的功能是根据图书馆用户确定的加密定义创建和删除密文表,同时将加密 定义写入加密字典或从加密字典中删除有关内容。它为加密定义修改模块提供构建密文表及 加密字典信息服务以及删除、更改密文表及加密字典信息的服务。用户的加密定义存放在S- tab数据结构中,作为输入参数,“密文表配置模块”根据S-tab中的加密定义进行处理 ,最后将操作成功或失败的结果返回给“加密定义修改模块”。构建密文表及加密字典信息 的步骤是首先根据加密定义构造出密文表的SQL命令构建密文表;然后再根据加密定义构建 出密 文表主键的SQL命令,建主键;根据加密定义构造出密文表外键的SQL命令,建外键;根据加 密定义构造出密文表索引的SQL命令,建索引;将加密定义信息存入加密字典表。删除、修 改密文表及加密字典信息的步骤是首先删除与原密文表有关的加密字典内容;若加/脱密操 作是更改,则将新的加密表名换成原来应当使用的名称;删除原密文表,保证原密文表为空 ;若加/脱密操作是更改,则将新的密文表换成原密文表的名称;以上操作中如成功则进行 下一步,否则显示错误信息,终止退出。

数据转换模块是专门为加密定义修改模块服务的,能完成一个表的加密、脱密以及加密列 的变更三种需求下的数据转换工作。数据转换模块程序形式是一个独立的动点连接库,它输 出三个函数供加密定义修改模块调用。这三个函数的定义分别是:EncodeRows(GetSQLLink,PutSQLLink,明文表名,转换条件,附加参数)、DecodeRows(GetSQLLink,PutSQLLink,明 文 表名,转换条件,附加参数)、CopydeRows(GetSQLLink,PutSQLLink,明文表名,转换条件 ,附加参数)、它们出错返回“—1”。成功则返回实际被转换的记录数。其中GetSQLLink和 PutSQLLink由DBHandle(SQLCA)函数转换得到,分别代表转换数据时Get操作(SELECT)与Put 操作(INSERT&DELETE)所使用的不同数据库的接口参数,如果一次仅转换一条记录,GetSQLL ink和PutSQLLink可以相同,一般情况下,GetSQLLink和PutSQLLink必须不相等。

表名参数只需明文表的名称,对应密文表的名称可以从加密字典中获取。转换条件是一个 字符串形式的符合SQL语法的查询条件表达方式,用于待转换的记录集,也可以不带转换条 件,此时系统将一次完成对整个表的数据转换。由于一次转换多条记录时,不能利用ReadTe xt/Write Textde的数据直接存取功能,因此,对于带Text/Image字段的表,输入的转换条 件 参数最好能限定为一条记录。如果能保证只有一条记录满足转换条件,可以将附加条件置为 1,以省略某些判断操作,加快转换速度,否则,将附加参数置为0。

数据转换模块自身并不对数据进行加密或脱密,实际的加脱密工作由数据库加脱密引擎完 成,但必须事先将加密定义写入加密字典,供数据库加脱密引擎使用。数据转换模块内部没 有任何Commit或Rollback命令发往图书馆数据库服务器,它不考虑数据库事物的开始、提交 、退回,而是留给调用者处理。只有PutSQLLink这个参数涉及到事物处理问题。GetSQLLink 并不改变数据库,不存在事物处理问题。

4 结束语

随着网络技术几何级数般地迅猛发展,Internet网络已经渗透到世界上的各个角落。所以 各行各业的信息系统数据处理的安全问题被提到前所未有的高度。图书馆信息资源确实是中 国国家信息资源的一个很重要的组成部分,因为科技兴国必须依靠高等教育,而高等教 育离不开高校图书馆信息资源。所以如何保护好图书馆信息资源是一个亟待解决的重要问题 。本文第一段关于图书馆信息资源的安全性及图书馆数据库加密的必要性论述中指出有三个 难以解决的安全问题,而要彻底解决这三个问题的关键就是要对图书馆数据库本身进行加密 。特别是对于购买了应用服务器提供商特别是国外应用服务器提供商提供的应用服务器(包 括硬件及软件)的图书馆用户来说,数据库加密是十分必要的,因为,一般来说,底层软件 都由他们来控制,简单的设置口令字及设置帐户对他们来说不起作用,所以要想得到数据库 中的 信息十分容易。然而,数据库加密之后,即使得到数据库的信息也是加密后的密文信息,他 们无法脱密。从而使图书馆信息的安全得到了有效保障。如果将数据库加密及设置口令字、 设置帐户结合起来使用,那末将使图书馆信息资源的安全性达到完美的程度。如果说它是解 决图书馆信息系统安全性的完整解决方案可以说当之无愧。

标签:;  ;  ;  ;  ;  ;  

图书馆信息资源安全与数据库加密实现技术_图书馆论文
下载Doc文档

猜你喜欢