数据库加密模型研究

2024-05-06

数据库加密模型研究(精选九篇)

数据库加密模型研究 篇1

关键词:数据库加密,加密粒度,加密算法

一、引言

随着信息技术的发展,数据的安全问题被提到前所未有的高度。传统的数据库[1]保护方式是通过设定口令字和访问权限等方法实现的,数据库管理员可以不加限制地访问数据库中的所有数据。解决这一重大安全隐患的关键是要对数据本身加密,即使数据不幸泄露或丢失,也难以被人破译[2]。

二、数据库加密

数据库加密,大致可以分为两种方式:DBMS外部加密和DBMS内部加密[3]。

DBMS外部加密一般选择在应用程序和操作系统,通过调用加/解密函数来完成加密数据的存储和访问。DBMS外部加密的优点是,不需要修改DBMS,只需要在应用程序或者操作系统中增加相应的加/解密模块即可。但是,这种方法也有一些缺点,首先它不能支持各种加密粒度。在操作系统中加密时,加密的粒度是基于文件,对应到数据库中则是相应的表或者整个数据库,这种加密粒度非常粗糙,最直接的影响是,加/解密的工作相当大,极大地降低系统性能。

在DBMS内部加密,一般选择在数据物理存取之前进行加/解密操作。DBMS在将内存中的数据写到磁盘时,进行加密操作,而从磁盘读取数据到内存中时,进行相应的解密操作。这种方法的优点是,由于DBMS能够区分各种粒度的数据,所以可以支持各种粒度的加密,加密的灵活性较好。另外,在DBMS内部实现加密,可以更有效地和DBMS内部的访问控制机制、授权机制等各种功能结合起来。更重要的是,数据库一个重要特点是被多个应用共享,这种方法的加/解密都是在DBMS内部完成,对应用程序是透明的,不需要在多个应用中进行修改,容易保持数据的一致性。缺点是需要修改DBMS的内核,DBMS是一个非常复杂的软件,对它进行修改是一件非常艰巨的任务。

三、数据库加密系统的基本概念[4]

(1)访问控制:在开放的系统中,对一个主体访问一个客体功能、服务和能力的限制。

(2)自主访问控制:一种基于对主体或客体所属主体组的识别来限制对客体的访问。自主是指对其他主体具有授予某种访问权限的主体能够自主地(直接或间接地)将访问权或访问权的某个子集授予给其他的主体。

(3)强制访问控制:一种基于客体所包含信息的敏感度和主体对该敏感度的客体是否有正式的存取授权来限制对客体访问的机制。

(4)敏感数据:敏感数据就是不应公开的数据。敏感数据取决于具体的数据库和数据的含义。

(5)多级安全:是军事安全模型的一种数学描述,它用计算机可实现的方式定义。多级安全模型有两个重要性质:简单安全特性和一般特性。

(6)多级安全的粒度:是指一个多级安全所控制的最小单位。它的含义与并发控制的粒度相似。多级安全的粒度通常可以分为:表级、列级、元组级、元素级。其中表级最大,元素级最小。

(7)加密粒度:采用同一密钥和加密算法进行加密的数据粒度。

四、加密粒度

按照数据库的结构层次,数据库的加密粒度可以分为数据库级、表级、记录级、字段级和数据项级。根据不同的应用需要,选择合适的加密粒度[5]。

(一)数据库级

加密的对象是整个数据库,这意味着对所有的用户数据表、系统数据表、索引、视图和存储过程等都进行加密处理。这种加密方法简单,只需要对存储在磁盘中的相应数据库文件进行加密处理,密钥的数量少,一个数据库只对应一个密钥,管理方便。但是,数据库的数据共享性高,被多个用户和应用共享使用,需要接受大量的随机访问。一般来说,用户访问数据库时,是为了将符合条件的记录检索出来。如果采用数据库级加密方式,即使只需要查询少量的记录,也需要对整个数据库进行解密,对系统性能会产生极大的影响。

(二)表级

加密的对象是数据库中的表。一般数据库包含多个表,只需对其中一些包含敏感信息的表进行加密,以保护它们的安全性。与数据库级加密比较,采用表级加密粒度,系统的查询性能会有所改善。因为对于未加密表的查询,与传统查询方法一样,系统性能不会受到影响。对于加密表的查询,只需要解密对应的加密表,而不要解密整个数据库。在实行表级加密时,可以采用对存储数据的磁盘块(页面)进行加密。

(三)记录级

加密的对象是数据表中的记录,记录中各字段值一起进行加密处理,加密后输出一列字符串。在实现记录级加密时,通过调用专门的加密函数,对页面中的记录进行加密。与数据库和表级加密相比,这种加密的粒度更细,可选择的灵活性更好。

(四)引字段级

加密的对象是关系中的某个字段。字段级加密是一个很好的选择,因为在实际生活中,一些重要和敏感的信息往往出现在关系中的某些列,如信用卡号、身份证号、银行账号等,只需要对这些重要数据进行加密保护,而没有必要对普通数据也进行加密。

(五)数据项级

加密的对象是记录中的某个字段值,它是数据库加密的最小粒度。数据项级加密的方法更为灵活,它的实现方式与字段级加密相似,但其密钥管理将会更加复杂。

五、加密算法

加密算法是数据加密的核心,加密算法本身的好坏直接影响数据库加密的安全和性能。

在对数据库存储数据进行加密时,由于对称加密算法速度快,对系统的性能影响较小,对称加密算法使用最为广泛。对称算法又可分为两类:序列密码和分组密码。分组密码是在明文分组和密文分组上进行运算,分组长度通常为64位,但有时更长。根据分组的模式,分组密码算法又可分成电子密码本和密码分组链接。电子密码本模式把一个明文组加密成一个密文组,每个明文分组可被独立地进行加密。如果一个数据库用电子密码本模式进行记录级加密,那么任意一个记录可以独立于其他记录被添加、删除或者解密。密码分组链接模式将一种反馈机制加进分组密码中,即前一分组的加密结果被反馈到当前分组的加密中,这样使得每个密文分组不仅依赖于产生它的明文分组,而且依赖于所有前面的明文分组。

序列密码算法采用异或的运算方法,将明文逐位转换为密文。序列密码算法速度较快,但是,序列密码算法中的密钥序列不能重复。因为它的安全性依赖于简单的异或运算,如果每次产生同样的密钥序列,对攻击者来说,破译该算法就非常容易。所以在实际应用中,数据库中存储数据的加密一般采用分组密码算法。目前数据库加密常用的算法有AES、DES、3DES、RC5。

(一)密钥管理

密钥管理是密文数据库的重要组成部分。安全地管理密钥,在数据解密时快速地获得密钥是十分必要的。在密文数据库系统中,通常采用三级密钥管理方案。用户必须首先通过“用户表”进行用户身份的认证。“用户表”采用一级密钥即主密钥加密。通过身份认证后,用户方可以访问“数据表”。“数据表”经三级密钥即工作密钥加密。在查询中,通过三级密钥解密返回给用户。

在密钥管理中,除了多级密钥的方式,还应注意密钥管理过程中的几个方面:密钥的生成、使用、存储、备份、恢复以及销毁等。

(二)加密字典

支持数据字典功能的数据库管理系统能够自动建立和更新数据字典。加密字典用于保存和管理系统中的加密信息。其主要任务是描述(或定义)密文数据库系统中各类对象所采用的加密算法、加密粒度等。一个密文数据库系统所涉及的对象大致包括数据表、视图、索引、密钥;与完整、安全控制有关的对象,包括用户、角色、用户标识、访问授权、密钥及完整约束条件等。

(三)密文索引

密文索引是一种无序文件的索引,在形成数据文件时,其记录并不一定按主关键字的顺序排列。为加快查找速度,可以把它组织成索引文件。在构建密文数据库索引时,除了要保存数据记录在数据库中的相对位置信息外,还应记录数据库中相应字段的安全类别信息,以便查询时确认用户是否可以浏览记录的密文内容。在建立索引文件结构和设计查询算法时,总体上应坚持下述原则:

(1)查询算法的选择。查询时要尽量减少对密文数据解密的次数,从而减少解密数据在查询时占用的时间。这需要在实现算法时尽可能减少与密文的比较次数。

(2)建立索引的“分治原则”,即应尽量减少集中建立密文索引文件所花费的时间。

(四)完整性约束

网络密文数据库在实现数据的密文存放时,破坏了原有数据库系统的完整性约束,必须重新构建完整性约束,保证数据一致完整地存放在数据库中。重建的约束功能有加密字典保证。

(五)强制访问控制

网络密文数据库系统中强制访问控制依赖于系统的安全等级标志和主体的授权许可访问级别来进行控制。这种强制访问控制机制必须严格控制信息非授权地从高安全级流向低安全级,系统必须对数据的读和写进行严格的控制。

六、结语

数据库加密系统,其实现的主要功能是:对存储在数据库中的数据进行不同级的存储加密。这样就有效地保护了存储在数据库中的重要数据,即使某一用户非法入侵到系统中或盗得了数据库文件,没有解密密钥,他也不能得到所需数据。所以,数据库的加密处理对保护数据的安全性具有非常重要的意义。

参考文献

[1]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2002.

[2]刘启原.数据库与信息系统的安全[M].北京:科学出版社,2000.

[3]王元珍,冯超.数据库加密系统的研究与实现[J].计算机工程与应用,2005,(8).

[4]朱鲁华,陈荣良.数据库加密系统的设计与实现[J].计算机工程,2002,(8).

数据库加密模型研究 篇2

计算机的使用由人完成,因此在使用的过程中信息安全受到多种人为因素的影响,在实际生活中影响信息数据安全的人为因素具有多种形式,最常见的就是电脑高手、计算机病毒入侵等等,电脑高手通过一定手段进入个人或者企业计算机的内部,进而窃取个人或者企业的信息数据,对个人或者企业往往造成较大影响。由于电脑高手的入侵难以准确掌握其规律,因此在实际应用中对这种因素的防范具有一定的困难。

2.2非人为因素。

数据加密技术研究和应用 篇3

关键词:数据;加密技术;安全

中图分类号:TP309 文献标识码:A 文章编号:1674-7712 (2013) 02-0069-01

现实生活中,许多企业对信息安全有了新的认识,开始注重数据的加密技术,比如说对信息系统中的数据进行加密处理,那么一些非法用户在入侵时就不能像以前没有给数据加密时那样顺利的进入该系统,这样可以起到保护信息安全的作用,现代加密技术对网络的安全有重要的保护作用,因此说数据加密技术研究和应用对信息系统中数据安全有非常重要的意义。

数据加密技术是一把双刃剑,一方面,如果能够将数据加密技术处理好,那么它在提高数据安全方面将起到巨大的推动作用;另一方面,如果未能妥善处理数据加密技术,那么利用数据加密技术不仅不能为数据提供安全保障,还将产生一些意想不到的负面影响。

首先,我们生活中常常会遇到访问控制的问题,许多不懂数据加密技术的用户就以为访问控制就是数据加密,以为安装上了访问控制软件就可以保证自己数据的安全,结果因为错误的理解,导致数据泄露。访问控制可以分成DAC(自主访问控制)和MAC(强制访问控制),在一个信息系统中,DAC和MAC是同时存在的,系统进行存取检查时,首先经MAC检查,然后再经DAC检查,只有两个检查同时通过时,才可以进行访问。但是,数据加密技术是在只有拥有密钥的情况下才可以对系统进行访问。

其次,我们所研究的数据加密技术,并不是单单一种。一般说来,从数据加密的方法上分,数据加密技术可以分为两种:动态数据加密技术和静态数据加密技术。动态数据加密技术是指当数据经过网络时,数据在数据库服务器和客户端之间的相互传送,这种传输过程中数据的加密技术就是动态数据加密技术。这种方法可以有效的阻止会话攻击。现实生活中,这种动态数据加密技术已经被广泛的应用了。静态数据加密技术是指对存在于数据库中的数据进行加密处理。这种静态数据加密技术还没有广泛的应用。

最后,数据在进行完加密之后,并不是说用户就可以高枕无忧了,非法入侵者可以通过获取密钥、字典式攻击、对比明密文攻击等方式进行非法闯入。其中获取密钥属于直接攻击,它的危害性最大,密钥一旦丢失,那么数据加密形同虚设。盗用密钥的方式一般是由于密钥管理不善而导致的密钥泄露,另外一种是外界非法用户用一定的密码分析法,将密钥解开。对此,用户一定要小心谨慎,要定期更改自己的数据密码,防止不法分子盗用。

数据加密技术的研究主要是研究数据的加密过程和数据的解密过程。加密过程是将明文的数据通过加密算法对其进行加密,数据在传送过程中是将加密算法和密钥一同传送的,非法入侵者因为没有密钥所以不能看到原数据内容。数据的解密过程是指接收数据者通过解密算法和解密密钥将原来加密的数据进行解密处理,得到原数据的过程。由此可见数据加密算法在数据加密过程中占有重要的地位。

一、对称密钥算法和非对称密钥算法

对称密钥算法和非对称密钥算法是基于公共密钥的算法。一个不错的数据加密算法的重要特点就是可以制定一个密钥并且用它来加密明文数据。对称密钥算法是指加密密钥和解密密钥一致,非对称密钥算法是指数据加密密钥和数据解密密钥不同的一种加密方法。PGP公钥加密和RSA数据加密方法都是数据加密非对称加密算法。我们这里说的公钥是与私钥相对应的,加密密钥是公钥,解密密钥是私钥。非法入侵者想要破解非对称数据加密算法,获得密钥,唯一的办法就是不断地反复进行试验,然而这是特别浪费时间的。

二、多步加密算法

为防止对称密钥算法和非对称密钥算法中密钥被非法入侵者破译,在数据加密技术上,又出现了一种新的加密算法——多步加密算法,众多人的实践表明这是一种几乎不可能被破译的数据加密算法,使用多步加密算法将产生一个顺序随机的表,表中的字节的随机数是用的二次伪随机,现在已经有两张转换表,加密和解密时使用的加密值是转化表的索引,而且加密和解密过程需要匹配。加密时产生的伪随机序列是随意的,可以根据个人爱好设计成任何想要的序列,如果没有关于随机序列的详细信息,解密是不可能实现的,如果去盗取随机序列的详细信息,那么将会以付出巨大的时间损失为代价,因此说,多步加密算法是几乎不可能被破译的。

三、DES加密算法

DES是一个分组加密算法,它以64位为分组对数据进行加密处理,同时,它又是一个对称算法,加密和解密过程使用的是同一个算法,DES加密算法密钥是任意的56位数,这56位数可以在任意时候改变。DES算法使用标准算术和逻辑算术,具有较快的运算速度,而且密钥生产较为容易,适合大多数软件,同时也适合用在专用芯片上面。DES加密算法具有的密钥数较短,科学家为解决其密钥短的问题又设计出80位的密钥,以及在DES加密算法的基础上采用双密钥加密的方法,保证了数据的安全。

在我们的日常生活中,为了保证数据的安全,必须要注意对密钥的保护,确保数据在传输过程中不会被非法入侵者篡改。从理论上讲,任何数据的加密都是可以破解的,但是破解密钥需要以巨大的时间付出为代价的,在目前的情况下,我们的数据加密技术已经能保证我们的数据在一定时期内的安全,因此,数据加密技术是保证数据安全的一种有效手段。

参考文献:

[1]邓勇,谢永强.无线局域网安全技术研究及分析[J].第21次全国计算机安全学术交流会,2009,3.

数据库加密方法研究与实现 篇4

在现实世界, 安全是一个相当简单的概念。人们通过各种方法保障自己生命财产不受别人的侵犯。在数字世界中, 安全有着和现实世界相似的概念。随着信息技术的飞速发展, 数据信息的安全已成为当前信息社会非常关注的突出问题。而数据库系统作为计算机信息系统的核心部件, 其安全问题是信息系统安全的一个重要方面。数据库系统信息的安全性依赖于两个层次:一是系统本身提供的安全性;二是应用程序设置的控制管理。目前一些大型数据库管理系统已经提供了一些安全手段, 例如用户分类、数据分类、审计功能等, 但这只能满足一般的安全要求。对于一些重要或敏感数据, 用户迫切希望以密文的形式存储和传输, 并且可以对数据库信息进行操作而又不泄露其中的内容, 这就需要通过对数据库的数据进行加密来实现。所谓数据库加密是指对数据库的实际内容 (明文) 采用一定的算法使之成为非法用户不能理解或者在一定时间内不能理解的乱码 (密文) 。

1 数据库结构

数据库文件是由结构说明表、字段名表和数据记录三部分构成。一般数据库采用数据库文件的结构说明表和字段名表, 以二维表形式对数据记录进行管理。通过结构说明表对数据库记录进行纵向操作, 通过字段名表对数据记录进行横向操作。

1.1 结构说明表结构

数据库的结构说明表占32个字节。各个字节的含义为:第0字节:文件标志信息, 如果没有备注字段或通用型字段, 为03H, 否则为F5H;第1至3字节:最后一次更新的日期;第4至7字节:记录总数;第8至9字节:库文件中数据存放区的起始地址;第10至11字节:库文件中每个记录的总长度;第12至31字节:保留字节。

1.2 字段名表结构

每一个字段用32字节, 各字节含义分别是:第0至9字节:以ASCII码表示的字段名;第10字节:00H;第11字节:字段名类型;第12至15字节:数据域地址;第16字节:字段长度;第17字节:小数点位数;第18至19字节:保留字节;第20字节:最后一次更新的工作区标识符;第21至31字节:保留字节。

2 数据库加密

一般而言, 一些大型数据库系统本身所提供的比较完善的数据库安全保护措施就足以满足普通用户的需求, 包括登陆账号的身份验证、角色权限管理、用户的访问控制、审计跟踪等。但是不能防止非法用户通过不正当渠道窃取数据, 特别是对于某些重要部门和敏感信息, 仅靠简单的安全设置肯定是不够的。例如, 某些用户, 仍可能非法获取用户口令越权使用数据库, 或在网络通信线路上窃取数据, 甚至直接对数据库中的数据进行窃取和篡改。因此有必要对数据库进行加密, 从而保护数据库中的重要数据。数据库加密的基本原理就是通过加密算法将数据转换为不可辨识的加密数据即密文的过程, 而将密文通过解密算法还原为明文的过程就是解密, 加密和解密的过程构成加密系统, 明文和密文都称为报文。加密系统通常包含以下四个部分:①明文P;②密文Y;③加密/解密算法E/D;④用于加密和解密的钥匙, 即密钥K。

归纳起来, 加密就是在发送端利用加密算法E和加密钥匙Ke对明文P进行加密, 得到密文Y=Eke (P) ;解密就是接收端利用解密算法D和解密钥匙Kd对密文Y进行解密, 将密文恢复为明文P=DKd (Y) 。

根据数据库的结构, 可以采用以下的加密方法: ①对结构说明表、字段名表和数据记录全部内容进行加密;②对结构说明表进行单独数据处理, 从而达到加密的目的;③对数据库文件记录内容进行加密;④对字段内容进行加密;⑤对结构说明表、字段名表和数据记录中的部分要素进行加密, 以达到加密的目的。

根据系统具体要求的不同, 可选择其中一种加密方式对数据库文件进行加密。具体来说, 可以简单地通过对结构说明表的关键字节的标识进行修改, 使系统难以辨认, 从而达到加密数据库的目的。例如:将结构说明表的第0字节的值由03H或者F5H修改为其它值, 从而对数据库实现加密。

2.1 基于文件的数据库加密技术

数据的共享和访问是用户通过解密密匙对整个系统进行解密来实现的。多个方面的缺点限止了它的应用。首先, 数据修改的工作将变得十分困难, 需要进行解密、修改、复制和加密四个操作, 极大地增加了系统的时空开销;第二, 即使用户只是需要查看某一条记录, 也必须将整个数据库文件解密, 这样无法实现对文件中不需要让用户知道的信息的控制。因此, 这种方法只适用于能回避这些限制的应用环境。

2.2 基于记录的数据库加密

一般而言, 基于记录的数据库加密技术是目前最常用的加密手段, 数据库系统中每条记录所包含的信息具有一定的封闭性, 即从某种程度上说它独立完整地存储了一个实体的数据。因此, 基于记录的加密技术是最常用的数据库信息加密手段。这种方法的基本思路是:在各自密钥的作用下, 将数据库的每一个记录加密成密文并存放于数据库文件中;记录的查找是通过将需查找的值加密成密码文后进行的。然而基于记录的数据库保护有一个缺点, 就是在解密一个记录的数据时, 无法实现对在这个记录中不需要的字段不解密;在选择某个字段的某些记录时, 如果不对含有这个字段的所有记录进行解密就无法进行选择。

3 基于字段的多级数据库加密技术

3.1 基于字段的多级数据库加密

在数据库的安全中常用到多级数据库的概念和方法, 所谓多级数据库是指:每个数据和用户都对应一安全级别, 所有级别构成偏序关系, 一个用户只能存取不高于自己安全级别的数据。为了很好地解决基于文件和基于记录的数据库加密中存在的问题, 我们选用基于字段的多级数据库加密方案。所谓基于字段的多级数据库加密, 就是把数据库中的不同记录和不同字段划分为不同的两个安全级别, 对各个不同的安全级别采用不同的密匙。由于该方法可以对数据库中单个数据元素进行加密, 所以具有很小的加密粒度, 具有很好的灵活性和适应性。同时由于对记录和字段进行了安全划分, 所以减少了整个密码系统的密匙量, 便于大型数据库的密匙管理。

假设数据库记录的安全级集合为L= (L1, L2, …, Lk) , 记录总数为A, 其中符合各个安全级别的记录数分别为:n1, n2, …, nk, 则n1+n2+…, +nk=A;字段的安全级集合为F= (F1, F2…, Fi) , 字段总数为B, 其中符合各个安全级别的字段分别为:w1, w2, …, wi, 同样的有w1+w2+…wi=B。对于表中的每一个数据项Dij对应两个安全级别分别为:第i条记录对应的安全级别Li和第j个字段对应的安全级别Fj。定义该数据项对应的数据项密匙生成函数为Kij=G (K, Li, Fj) , 其中K为表密匙。密匙生成函数G必须满足:①生成重复子密匙的概率要低;②生成的子密匙要具有足够的强度;③从一个子密匙推算出另外的子密匙在计算上不可行。

通过该密匙生成函数, 可以做到不同安全级别 (记录的安全级别不同, 字段的安全级别也不同) 的数据项对应不同的密匙。从而达到了基于数据项的加密;同时数据项的密匙是通过密匙生成函数生成的, 由于安全级别的有限性, 决定了密匙量不会太大, 大大方便了密匙的管理。

3.2 密匙管理

在数据库的加密中, 密匙的管理和分配是其最重要的问题。数据库容量大, 需要加密的数据多, 因此所需管理的密匙就会很多;同时因为数据多, 不可能做到每一个数据对应一个密匙, 需要多个数据对应一个密匙, 这就会增加数据的不安全性;用户所持密匙较小, 同时要保证一个用户能存取多个数据, 一个数据又会被多个用户存取, 存取过程既要安全, 又要保证效率。

根据多级数据库的概念, 我们假定一用户拥有密匙kdi∈KDj, KDj∈KD。其中KDj为该用户所对应安全级别的用户密匙集, KD为所有用户的密匙集。在此选用三级密匙管理方案。

(1) 主密匙:

当用户提供所拥有的用户名和密匙时, 系统在安全级别表中查找该用户所对应的安全级别 (记录的安全级别和字段的安全级别) , 同时系统根据主密匙产生算法产生该用户的主密匙。

(2) 表密匙:

用于产生数据项密匙, 在数据库中以主密匙加密的形式存放。

(3) 数据项密匙:

用于加密数据项。数据项密匙由表密匙及函数产生。

3.3 数据库访问

在对通过上述方法加密的数据库进行操作时, 系统根据用户提供的安全级别, 找出文件中低于该安全级别的数据项, 同时对找出的数据项执行解密操作, 然后, 按照用户的要求执行相应的操作。

4 结语

数据库技术是数据管理的核心技术, 是计算机科学的重要分支。建立一个满足各级部门信息处理要求的、行之有效的信息系统, 是企业或组织生存和发展的重要条件。因此, 作为信息系统核心和基础的数据库技术得到越来越广泛的应用。通过对数据库加密可以在很大程度上保证数据的安全, 实现对秘密的严格保护。

摘要:论述了数据库安全与保密的概念、数据库基本安全结构, 研究了对数据库中存储的重要数据进行加密处理的方法及密匙的管理, 实现了对数据库的加密。

关键词:数据库,加密,密匙

参考文献

[1]王晓峰, 王尚平, 秦波.数据库加密方法研究[J].西安理工大学学报, 2002 (18) .

[2]朱鲁华, 陈荣良.数据库加密系统的设计与实现[J].计算机工程, 2002 (28) .

[3]田彬.基于数据库加密技术的研究[J].辽宁大学学报, 2012 (1) .

[4]王正飞.数据库加密技术及其研究[D].上海:复旦大学, 2005.

Web数据库加密系统的研究与实现 篇5

本文在对已有数据库加密技术的分析和研究的基础上,给出了一套适用于Web结构的数据库加密方案,并运用Java加密扩展(Java Cryptography Extension,JCE)提供的安全API设计和实现了一个基于校园网的高校科研管理加密系统。

1 数据库加密系统结构与设计

1.1 基于B/S模式的数据库加密系统结构

基于B/S模式的网络信息系统,其应用程序都在服务器端,客户端只需要浏览器,不需要开发专用的应用程序,用户通过浏览器实现与服务器的信息传输和访问。数据加密在Web服务器与后台数据库之间实现,这样既简单可行又不影响访问速度及系统执行的效率,数据库加密系统结构如图1所示。

由图1可看出,校园网用户可以通过Web浏览器向服务器发送请求,Web服务器对其中需要进行数据库访问的数据进行业务分离,并交由加/解密中间件处理。当数据需要加密存储时,就由加密组件完成加密,然后将加密后的数据提交给数据库进行存放,当用户需要访问加密数据时,就可利用解密组件对密文数据完成解密,再将解密后的数据交给Web服务器;否则,Web服务器就通过数据库连接模块直接与后台数据库相连接。当然,在数据的加密和解密过程中,必须要有密钥才能实现,所以加密中间件中还应包含有密钥管理模块。

1.2 加密粒度和加密算法选择

加密粒度是指数据库加密的最小单位,数据库加密的粒度有文件、记录、字段和数据项。在本文中选用的是字段级加密,它以不同字段为基本加密单元,比较适合数据库加密需求,因为我们只需对某些敏感字段进行加密保护,所以这里实现的是字段级的粒度加密。

加密算法是数据加密的核心。一个好的加密算法产生的密文应该频率平衡,随机无重码规律,周期长而又不可能产生重复现象。除此之外还要考虑到加密密钥的安全性。因此,在我们的加密实现中主要采用IDEA算法和RSA算法相结合的混合加密方式。IDEA主要用于加密数据,而RSA算法用于完成密钥的加密。该方案对数据加密效率和安全级别较高,对于整个系统的执行效率影响较小;而且在密钥使用和存储上能最大程度保证密钥的安全性及可靠性。

1.3 数据库加密的限制

数据库中数据表与数据表之间,字段与字段之间常常存在着密切的联系,为了加速查询,需要建立索引,许多操作都带有条件选择,而条件中的选择项必须是明文,在对数据库加密时,要充分考虑这些条件。由于被索引项和条件选择项的保密级别低或者无需保密,在这里对它们不进行加密。这样,对数据库中的数据进行加密,对上述限制条件不加密,不会影响应用程序中的SQL语句对数据库进行操作。

2 数据库加密系统实现

2.1 开发平台

由以上设计,我们对一个基于校园网的科研管理系统进行了加密实现,系统主要是建立在Web系统的B/S模式的平台上,主要开发工具是Eclipse3.2,用户界面层使用JSP技术开发,WEB和应用服务器使用Tomcat5.5,中间层加密及数据库连接用JavaBean开发,后端使用SQL SERVER2000作为数据库服务器。JSP和SQL SERVER2000使用JDBC连接,JDBC是JAVA语言和数据库服务器之间的标准接口,通过它,JAVA可以操作数据库资源。在开发中,使用了JCE技术。JCE(Java加密扩展简称)是Sun的加密服务软件,包含了加密和密钥生成功能。它没有规定具体的加密算法,但提供了一个框架,加密算法的具体实现可以作为服务提供者加入。除了JCE框架之外,JCE软件包还包含了SunJCE服务提供者,其中包括许多有用的加密算法。

2.2 高校科研管理加密系统实现

2.2.1 用户身份验证模块

其功能是对用户身份进行验证,在登录过程中,使用到登陆验证表,根据用户请求的类型和用户合法身份的级别,限制和和管理用户在应用系统中使用的功能和服务。采用基于角色的访问控制(RBAC)模型,系统通过数据库根据用户名取得登陆验证表中的已加盐口令摘要(以MD5方式加密保存),按照已规定的方式分离得到盐值。再根据输入口令与盐值计算出消息口令摘要,与数据库中的原有消息摘要进行对比,如果结果一致表示口令正确,否则表示口令错误,从而完成用户的合法性验证。

2.2.2 加/解密引擎模块

数据库的加/解密引擎是加密系统的核心部件,负责在后台完成数据库信息的加/解密处理。首先由用户接口程序判断用户数据是否需要进行加密处理,对于不需加密处理的数据,由系统程序与用户数据库通过数据库连接模块和数据库直接进行连接;若需要,则数据由加/解密处理模块进行加/解密模块处理。

数据加/解密过程是:JCE的Cipher类使用由Key Generator类产生的密钥对数据进行加解密算法操作,首先利用Cipher getInstance(“IDEA/ECB/PKCS5Padding”)创建Cipher对象,同时指明其采用IDEA算法和PKCS5填充方式,接下来用加密密钥将Cipher对象初始化为解密模式(ENCRYPT_MODE),再利用Cipher类的doFinal()方法将明文进行加密。数据解密与加密过程唯一不同的是,首先应用解密密钥将Cipher对象初始化为解密模式(ENCRYPT_MODE),再利用Cipher类的doFinal()方法将明文进行加密。其中数据密钥是被用户公钥加密后放在密钥数据表中,使用时首先用用户私钥进行解密以取得数据密钥。

2.2.3 密钥生成及管理模块

密钥管理模块功能是对数据密钥和用户密钥的生成和存储进行管理。每新产生一个数据库用户,本系统采用RSA算法产生用户密钥密钥对,密钥对中的公钥直接存放在数据表中,私钥被用户口令加密后存放。当新建一个数据表时,对每个需加密的字段系统用IDEA算法自动产生一个数据密钥,每个字段的数据密钥由用户密钥对中的公钥加密后存放入密钥表中。其实现利用JCE的Key Generate类和Key类,首先通过Key Generate类产生密钥对象,并利用IDEA加密算法参数进行初始化,得到IDEA密钥对象通过Key类提供的Generate Key方法返回字符串类型的IDEA密钥。其过程如图2所示。

2.2.4 数据库连接模块

此模块由几个JavaBean构成,主要任务是和数据库进行连接,读取和存入数据,系统程序采用JDBC-ODBC与数据库建立连接,将用户请求转换为相应的SQL语句,对数据库进行查询、添加、删除和修改等操作同。

2.2.5 加密字典与加密字典管理程序

加密字典是数据库加密系统必不可少的一部分。加密字典通常以配置文

件或数据库表形式存在,而相对于配置文件形式,数据库表形式更具有可扩展性,本系统采用的是数据库表形式存储。加密字典生成后,就需要系统程序对其进行控制、管理与查询,加密字典管程序就是完成该功能的模块。它是管理加密字典的实用程序,也是数据库管理变更加密要求的工具。加密字典管理程序通过被数据库加/解密引擎实现对数据表的加密、解密及数据转换等功能。

3 结束语

数据库中敏感数据经过加密系统处理后,以密文形式存储,即使非法使用者窃取了数据文件,仍然难以得到所需信息。对于那些敏感数据,系统管理员也不能见到其明文,提高了关键数据的安全性。该加密系统在用户管理设计中采用基于角色的访问控制以及基于口令的加密技术对用户密码信息进行保户;采取混合密码体制以及多级密钥的管理方法来提高整个系统的安全性和易用性。按照以上方案实现的系统有较好的安全性能,保证了数据的机密性和完整性。

参考文献

[1]陈云.数据库加密系统相关技术研究[J].信息科学,2005.

[2]万红艳.一种数据库加密系统的研究与实现[J].黄石理工学院学报,2007,23(3),27-29.

[3]陈睿,袁丁.密文数据库加脱密引擎关键技术研究[J].计算机工程与设计2007(14).

[4]王元珍,冯超.数据库加密系统的研究与实现[J].计算机工程与应用,2005,(8):171-172.

[5]Bruce Schneier.应用密码学[M].北京:机械工业出版社,2004.

[6]冯朝胜,袁丁.据库加脱密引擎的设计与实现[J].计算机工程与应用,2005,41(30).

[7]李新.密文数据库系统的设计[J].计算机工程与应用,2005,41(32):169-171.

数据库加密模型研究 篇6

数据库安全目标是为了维护存储于数据库管理系统(DBMS)中数据的三个安全特性,即机密性、完整性和可用性[1]。一般地,数据库的安全性控制措施主要通过用户标识与鉴别、访问控制、视图机制、数据加密、安全审计等机制来完成,然而这些安全机制只能满足一般的数据库安全应用,而对于高度敏感性数据,数据库系统所提供的安全性措施难以保证其安全。

造成数据库安全隐患的一个主要原因是因为原始数据以可读(明文)形式存放在数据库中。只要避开系统身份鉴别认证,进入到数据库系统中,就可以窃取或篡改数据库中的任何数据。因此,为了保证数据库中的数据安全,限制用户非法访问,必须对数据库中存储的重要敏感数据进行保护处理。数据库加密技术能有效弥补传统数据库安全手段的不足。

数据加密(Data Encryption)是防止数据库中数据存储和传输过程中失密的有效手段。加密的基本思想是根据一定的算法将原始数据(明文plaintext)加密成为不可直接识别的格式(密文,ciphertext),数据则以密文的方式存储和传播,从而保证敏感数据访问和传输的安全[2]。

2 数据加密技术(Data encryption technology)

数据加密是保证用户与数据隔离,防止敏感数据泄漏的重要手段。数据加密后,对于不知道密钥的攻击者,即使利用系统漏洞或其他方法非法访问到数据,也无法获取真正的数据内容;而经过系统验证确认其合法性和权限的用户拥有正确的密钥,可以从系统获得可识别的数据。

2.1 加密层次

一般地,数据存储加密可在三个层次实现数据库加密工作,即操作系统(OS)层、DBMS内核层和DBMS外层[3]。

(1)操作系统层加密:应用程序通过操作系统提供的API调用数据库文件,直接解密整个数据库文件,然后访问这个完全解密的文件,而在应用程序关闭时,再将已解密的文件进行加密。

(2)DBMS内核层加密:数据在物理存取之前完成加解密工作。这种加密方式功能强大、完全透明,应用程序不需要做任何修改可以直接访问数据库系统。

(3)DBMS外层加密:数据库中存储密文数据,应用程序和外层工具交互,对数据库的每一次操作都由加密系统转化后再交给数据库处理,然后再将数据库返回的结果解密后返回给应用程序。

2.2 加密粒度

加密粒度是指加密的最小数据单位,可分为数据库级、表级、记录级、字段级和数据项级。总体来说,加密的粒度越小,灵活度越高且安全性越好,但实现技术难度就越大,越不易实现。因此,选择合适的加密粒度是保证数据库灵活性、安全性和执行效率的重要因素。

数据库级加密的弊端是每查询一条记录,需要对整个数据库文件解密,极大地增加了系统时空开销;表级加密对包含敏感数据的表与表密钥运算,形成密文后存储,非敏感表则保持明文存储;记录级加密对记录统一进行加密和解密处理;记录级加密加解密钥数量非常庞大,密钥管理变得困难。

2.3 加密算法

密码算法的优劣决定敏感信息保护的有效性。密码学中有三大加密算法类型:对称密钥加密算法、公开密钥加密算法以及哈希函数[4]。

(1)对称加密算法的加解密过程–用同一个密钥。可以分为流密码加密和分组密码加密两种。

(2)公开密钥加密算法中,每一个公开密钥都对应一个私钥。公钥和私钥构成密钥对,加密和解密过程使用不同密钥,所以也成为非对称加密算法。

(3)哈希函数的特点是能够应用在任意长度的数据上,并且生成大小固定的输出,计算相对简单,易于软硬件实现。

3 透明数据加密(TDE)

Oracle提供两种数据加密方法:使用程序包DBMS_CRYPTO和透明数据加密(TDE)。

(1)DBMS_CRYPTO可以生成私有密钥,也可以自己指定并存储密钥。在Oracle Database 11g中,DBMS_CRYPTO甚至可以加密内部大对象,例如BLOB和CLOB类型。

(2)透明数据加密(TDE)是基于密钥的访问控制,依赖于外部模块实施授权。“透明”的意思是当访问表中或加密表空间中的加密字段时,授权用户不必指定密码或密钥[4]。

透明数据加密(TDE)的优点在于可以随时地对表中的一个或多个字段加密,只需将加密字段指定加密算法即可,不必编写代码。

4 TDE应用实例(TDE application examples)

“煤粉燃烧特性管理信息系统”基于Oracle 11g R2数据库,使用透明数据加密(TDE)对敏感数据进行了加密机制应用研究。现将加解密过程阐述如下。

数据库为每个包含加密列的表创建一个私密的安全加密密钥,采用指定的加密算法加密指定的明文数据。主密钥对表密钥加密,主密钥保存在“钱夹(wallet)”中,加密的表密钥保存在数据字典中。

当写入数据到加密的列中时,数据库首先从wallet中获取主密钥,用主密钥解密数据字典中的表密钥,然后用解密的表密钥加密输入的明文数据,再将加密后的数据保存在数据库。

当用户查询加密列的时候,数据库首先将加密的表密钥从数据字典取出,然后从wallet中取出主密钥,解密表密钥,再用解密的表密钥解密磁盘上的加密数据。

以数据库中煤粉燃烧特性工业分析表为例,表中C_No字段为试验编号字段(Primary Key,Not Null),C_Code字段为样品编号字段(Not Null),C_Mt、C_Mad、C_Aar、C_Vdaf和C_Qnetar等五个字段均为试验数据字段。由于涉及商业机密和知识产权等问题,这些试验数据均属于敏感数据,因此需要对五个试验数据字段进行加密保护,试验编号字段作为主键、索引字段,样品编号字段作为外键,不需要加密。

(1)创建主密钥的默认存放目录,在sqlnet.ora文件中添加wallet文件夹的绝对路径。

NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=G:APPADMINISTRATORPRODUCT11.2.0WALLET)))

然后,在SQL*Plus中创建Wallet密钥,如图1所示。

(2)创建数据库表结构,并为需要加密的字段指定加密算法。为了兼顾效率和时空开销,系统中选用了AES128加密算法。如图2所示。

并且确认所有需要加密的字段都已加密。如图3所示。

(3)打开Wallet的情况下,即使用主密钥解密表密钥,再用解密的表密钥解密磁盘上的加密数据,就可以正常浏览表数据。如图4所示。

关闭Wallet的情况下,密钥缺失,系统提示错误,无法正常浏览表数据。如图5所示。

但是,未加密字段不受影响,仍然可以正常访问。如图6所示。

可以看到,通过透明数据加密(TDE)可以最大限度的加密敏感数据字段,防止数据库被非法访问。透明数据加密(TDE)将密钥管理的复杂性交给数据库引擎来处理,同时允许数据库管理员(DBA)在不必实际看到数据的情况下管理数据库。

5 结论(Conclusion)

透明数据加密(TDE)方法基于wallet机制,当数据库表中的一个或多个字段被加密时,只需要为当前表分配一个表密钥(即一个表只需要一个密钥)。系统中所有的密钥再经过服务器中的一个主密钥加密后存储在数据字典中,即密钥本身也是加密存储的。而服务器主密钥则存储在数据库外部,使用外部安全机制来保证主密钥的安全。这种加密方法更加安全高效、易于实现。

摘要:信息系统在经济活动和社会活动中的地位和作用越来越重要,信息安全问题成为不可忽视的问题,数据加密能有效防止数据库中敏感数据泄漏。Oracle数据库透明数据加密(TDE)使用主密钥和表密钥对敏感数据字段进行加解密。本文结合“煤粉燃烧特性管理信息系统”项目开发,使用透明数据加密(TDE)对敏感数据字段进行了加密应用研究。

数据库加密模型研究 篇7

关键词:嵌入式数据库,SQLite,加密,CryptoAPI,Windows

0 引 言

数据库技术产生于20世纪60年代末,是信息系统的核心技术。数据库安全是数据库开发的重要环节。加密作为保障数据库安全的一种方式,越来越受到人们的关注,因而数据库加密技术也逐渐成为数据库安全的研究热点之一。常用的DBMS都在数据库安全上采取了各种策略,如Oracle、DB2等。嵌入式数据库由于受到空间限制和性能要求,需要更为简洁的加密方法来实现对数据的安全保障,SQLite就是一个典型的嵌入式数据库。本文主要研究和分析SQLite在Windows中如何实现对数据的加密,实现了初步的加密过程。

1 嵌入式数据库SQLite的简介

1.1 SQLite的产生和发展

SQLite是D·理查德·希普于2000年开发出来的用一个小型C库实现的一种强有力的嵌入式关系数据库管理体制。它提供了对SQL92的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动,适用于任何操作系统。在2006年10月9日SQLite已经发行了版本3.3.8,增加了全文搜索的功能。

1.2 SQLite的特点

SQLite实现了完备的、可嵌入的、零配置的SQL数据库引擎。它的特点包括:

(1) 事务处理是原子的、一致的、独立的和持久的(ACID),即使在系统崩溃和掉电以后。

(2) 零配置,即不需要设置和管理。

(3) 实现了绝大部分的SQL92标准。

(4) 一个单独的磁盘文件存储一个完整的数据库。

(5) 数据库文件在机器之间可自由共享。

(6) 支持数据库文件大小至2TB。

(7) 字符串和BLOG的大小只受限于可用存储器容量。

(8) 代码量小,即小于30K的C代码行和小于250K的代码空间(gcc在i486上)。

(9) 对于绝大多数普通操作来说,比流行的C/S模式的数据库引擎运行速度快。

(10) API简单、易用。

可以看出,基于以上特点,SQLite非常适合应用于嵌入式开发。SQLite的版权允许无任何限制的应用,包括商业性的产品。SQLite官方主站(www.sqlite.org)上可以下载到编译后的SQLite程序。

1.3 SQLite的体系结构

SQLite体系结构如图1所示。 主要由以下几个主要的子系统组成:接口(Interface)是一个C语言库,从接口接收到命令后传到编译器,编译器是由三个独立的步骤组成:标志处理器(Tokenizer)、分析器(Parser)、代码生成器(Code Generator)。

虚拟机(Virtual Machine)是为操作数据库文件而执行的一个抽象的计算机引擎。在虚拟机和低层存储、恢复程序之间,SQLite使用了一个抽象层执行B-树,页面缓冲(Pager),和操作系统接口(OS Interface)。最后是一个存储数据的数据库。

2 SQLite的加密方法分析

SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它。由于SQLite具有其他的优势,还广泛应用在非嵌入式领域。例如PHP5开始不再默认支持Mysql,而是默认支持SQLite。

SQLite在广泛应用的同时,对于数据库的安全也要提供足够的保障。SQLite在Windows中使用了巧妙而且有效的加密方法来保障数据的安全性。

2.1 加密原理

在对Windows API进行熟悉以后可以知道使用Microsoft提供的加密应用程序接口(即Cryptography API),或称CryptoAPI,可以方便地在应用程序中加入强大的加密功能,而不必考虑基本的算法。SQLite就是使用这个技巧,在Windows下为数据库提供了安全保障。

CryptoAPI本质上是一组函数,这些函数为程序员提供一个访问加密算法的接口。这个接口经过操作系统,最终由底层的CSP实现。CSP(CryptographicServiceProviders),即加密服务提供者(模块),是实现真正的加密服务的独立的模块。

Microsoft通过捆绑RSABaseProvider在操作系统级提供一个CSP,即RSA公司的公钥加密算法。根据需要,更多的CSP可以增加到应用中。现在国内已有一些公司提供兼容CryptoAPI的硬件设备,如全典网络(iSecureX.com)的UKey300型USB接口的电子钥匙,iSecureX CSP工具箱,都得到了微软的数字签名。

应用CryptoAPI,可以通过简单的函数调用来加密数据,交换公钥,计算一个消息的摘要以及生成数字签名等等。它还提供高级的管理操作,如从一组可能的CSP中选用一个CSP。此外,CryptoAPI还为许多高级安全性服务提供了基础,包括用于电子商务的SET、用于加密客户机/服务器消息的PCT、用于在各个平台之间来回传递机密数据和密钥的PFX、数字签名等等。CryptoAPI的体系结构如图2所示。

目前支持CryptoAPI的Windows系统有:Windows 95 OSR2、Windows NT SP3及后续版本、Windows 98、Windows 2000等。

2.2 加密实现

在分析SQLite的源码和接口以后,我们发现SQLite有sqlite3_key和sqlite3_rekey的接口。由于SQLite开放源码,所以可以对其进行修改,这样利用CryptoAPI可以很方便地实现对数据库的加密。

下面分别对数据库的加密过程实现进行描述:

(1) 首先打开数据库。使用函数sqlite3_open(FileRoot,&db)打开数据库,将信息返回到db中,db是sqlite3的类。

(2) 对数据库进行加密。使用函数intsqlite3_key(sqlite3*db,const void*pKey,int nKey)实现。*db指向要加密的数据库,*pKey指向加密的密码,是个字符串,nKey是密码的长度。

(3) 在完成加密后关闭数据库。使用sqlite3_close(db)函数来实现。

以上是对一个全新的SQLite数据库进行加密的过程。在使用数据库时牵涉到其他方面的操作,参照表1可以知道操作的相应步骤。

为了说明,从实现的加密工程中取了一段代码说明问题:

虽然只是一个sqlite3_key函数完成了加密的操作,但对于加密的过程,值得进行深入的研究。如图3所示,利用逐步挖掘的图来演示,加密算法的实现嵌套了多层函数。

2.3 安全性分析

由于CryptoAPI已经广泛地应用于Windows平台上的各种加密服务,例如利用CryptoAPI实现的电子签名业务、网络信息加密等。在使用嵌入式数据库SQLite的场合,CryptoAPI提供的加密程度已经满足使用需要。这是由CryptoAPI提供的完善的加密机制实现的。

CryptoAPI提供的加密体制是RSA公司的公钥加密算法。RSA公钥加密算法是由Ron Rivest,Adi Shamir和LeonardAdleman于1977年发明的一种运算法则,它是一个网络加密和提供认证的系统。从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,被普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。

3 SQLite和Access的安全性比较

由于嵌入式数据库SQLite在WEB中的应用与Access数据库功能相似,所以在这里将Web开发中使用SQLite的安全性同Access相比较来证明SQLite在使用中的安全性。

实验环境:Windows XP,IE6.0,网速10mbps。

实验内容:比较网站中SQLite数据库与Access数据库的安全性。

实验结果参见表2(时间单位为秒)。

SQLite在Web开发中的安全性比常用的Access要可靠,当然和大型DBMS例如Oracle、IBMDB2等相比,存在着较大的差距。但毕竟SQLite是一个小规模的数据库,能够实现这样的安全性实属不易。

4 SQLite的总结和前景

实现对SQLite数据库的加密是为推广SQLite的重要前提,也是完善一个数据库的重要方面。由于性能良好、资源占用少和零管理成本,再加上安全保障,嵌入式数据库SQLite有了用武之地,它将为那些以前无法提供用作持久数据的后端数据库的应用程序提供了高效的性能。基于SQLite的一些模块也发展起来,如PySQLite、SQLiteAnalyzer、SQLiteDB,这些模块的出现将更好地发挥SQLite的优良性能。

参考文献

[1]Michael Owens.The Definitive Guide to SQLite[M].Berkeley of theUSA:Apress,2006.

[2]黄渌,郑晓军,须文波.利用Windows CryptoAPI实现WPKI的方法[J].计算机工程,2004,30(12):108-110.

[3]王冠宇,关永,赵冬生.Java在SQLite嵌入式数据库中的应用[J].微计算机信息,2006,22(1-2):94-96.

[4]宋玲,李陶深,陈拓.在VC++中用CryptoAPI保证安全数据通信.计算机应用与软件.2005,22(7):29-31.

[5]SQLite英文官方网站[EB/OL].http://sqlite.org/,2006-10-08/2007-5-20.

电子商务安全中数据加密技术研究 篇8

1 电子商务对信息安全的要求

电子商务交易的安全性、可靠性一直是人们关注的问题。为了保障电子商务平稳快速的发展, 电子商务对信息安全有以下几点要求:

1.1 真实性和有效性

信息的真实性一方面是指网上交易双方提供信息内容的真实性;另一方面是指网上交易双方身份信息的真实性。要求电子商务能对其进行鉴别和虚假信息的过滤。而有效性是电子商务开展的前提, 电子商务交易的广泛性使得真实性和有效性直接关系到个人、企业和国家的经济利益和声誉。一般可通过认证机构和证书来实现。

1.2 数据的机密性

机密性是防止非授权用户对数据的获取和使用。电子商务交易中会产生大量的数据, 应保证其在网络上不被非法第三方窃取和偷看。一般地, 我们采用加密手段对数据的机密性进行保护。

1.3 数据的完整性

完整性是要确保网络上信息在存储或传输的过程中保持不被修改、不被破坏和不丢失的特性。即防止非法篡改信息、文件和业务流。用于预防主动威胁。解决方法通常是消息认证和数字签名技术。

1.4 不可抵赖性

也称作抗否认安全服务或不可否认服务, 是针对对方进行抵赖的防范措施, 可用来证实已经发生过的操作。可分为防发送方抵赖、防递交方抵赖和公正。要求在交易信息的传输过程中为参与交易的个人, 企业或国家提供可靠地标识。

1.5 审查能力

根据机密性和完整性的要求, 能利用电子商务交易系统日志文件对数据结果进行审查、追踪。

2 电子商务存在的安全问题

Internet本身具有开放性、虚拟性, 人们在网络上的行为也会被记录下来等等电子商务的特点, 给网络交易带来了种种危险, 这些危险主要表现在一下几个方面。

(1) 信息泄漏。在电子商务中主要包括两个方面, 一是交易双方进行交易的内容被第三方窃取;二是交易一方提供给另一方使用的文件被第三方非法使用。

(2) 信息被篡改。网络上传输的数据、文件等有可能被他人非法插入、删除、替换或修改。使得信息的完整性遭到破坏。

(3) 身份假冒或否认。首先, 身份认证是通信和数据系统正确识别通讯用户或终端的个人身份的重要途径。如果不进行身份识别, 就会产生身份假冒, 破坏交易或冒名行为;其次, 对信息的发送者否认交易的行为也需要身份认证, 保证不可抵赖性。

3 数据加密技术

3.1 对称密码体制

在对称密码体制这种传统密码体制下, 发送方使用的加密密钥和接收方使用的解密密钥相同或者从其中一个密钥易于得出另一个密钥。比较著名的对称加密算法有DES算法、3DES算法、TDEA算法、Blowfi sh算法、RC5算法、IDEA算法还有以代换密码和轮转密码为代表的古典密码等。

对称密码算法的优点是计算量小, 加解密速度快、效率高, 保密强度高, 是目前用于信息加密的主要算法。同时, 它的缺点主要有两三点, 一是密钥数目多, 管理困难。n个人相互通信, 密码的个数有n (n-1) 个, 密钥的生成与分发成为很大的麻烦。二是安全传输密钥也是一个难题。当用户群很大、分布很广时, 密钥传输的危险性也会随之提高。三是无法鉴别彼此身份。

3.2 非对称密码体制

非对称密码体制弥补了对称密码体制的缺陷。在非对称密码体制中有两个不同的钥匙, 一把为自己私有, 称为私钥;另一把则会向公众公开, 称为公钥, 并且从其中一把难以推出另一把。比较著名的公钥密码算法有:RSA算法、Diffe Hellman算法、椭圆曲线算法、零知识证明算法等。其中最著名的是RSA算法, 他能抵抗到目前为止的所有密码攻击。

非对称密码的优点是灵活、密钥的分配和保存简单, 便于密钥管理, 他不仅可以作为加密算法使用, 而且可以用作数字签名和对对称加密的密钥分配和管理。但其缺点也很明显, 加密速度慢, 不利于长信息加密。

在实际应用中, 通常将对称密码体制与非对称密码体制结合使用, 以便发挥各自优点、弥补各自缺陷, 例如:利用DES来加密信息, 而采用RSA来传递对称加密体制中的密钥, 相结合的方法在网络中往往能发挥极大作用。

4 基于数据加密技术的电子商务安全机制

建立一套可靠的电子商务安全机制可以大大提高电子商务交易的安全系数, 从而保证人们可以放心的进行网上交易活动。电子商务的安全机制有三个方面, 一是交易双方的身份识别;二是交易双方的不可抵赖性;三是交易过程中数据的机密性与完整性;

数据加密技术作为电子商务安全机制的基础, 很好的解决了电子商务安全机制以上三方面的问题。首先, 数据加密技术可以防止未授权人员非法获取信息并使用, 保证信息的机密性;其次, 通过数字证书保证交易双方的身份识别;再次, 通过数字摘要可以确保交易过程中信息的完整性;最后, 通过数字签名实现交易双方的不可抵赖性。

4.1 数字证书

数字证书是标志网络用户身份信息的一系列数据, 用来在网络通信中识别各方的身份, 有专门的认证机构颁发。数字证书的类型按照对象可分为个人身份证书、企业或机构身份证书、支付网关证书、服务器证书、企业或机构代码签名证书、安全电子邮件证书、个人代码签名证书和SET (安全电子交易) 证书。数字证书包含以下内容:证书版本号、证书序列号、签名算法标识符、颁发者、有效期、主体、主体公钥信息、颁发者唯一标识符、主体唯一标识符、颁发者签名等。

数字证书通过公钥加密技术 (非对称密码技术) 实现。其实现过程是:每个用户拥有一把仅自己知道的私有密钥, 并用它来解密和签名, 同时公开公钥, 作为其他用户加密和验证签名。在使用过程中, 可以保证信息不被第三方窃取和修改重放等, 并且发送方不能否认自己发过的信息。

4.2 数字摘要

数字摘要是发送的信息通过HASH函数映射出的一个较短的固定长度的散列值:h=H (M) , 将摘要用私钥加密签名, 再与原报文一起发送给接收方, 接收方用发送方的公钥对消息摘要解密得到原消息, 再用HASH函数算出散列值, 然后进行对比, 如果消息摘要相同, 则说明消息在发送过程中没有被篡改, 否则, 信息已被修改, 需要进一步采取保护措施。根据HASH函数的特点, 他可以为指定数据产生一个不可伪造的特征, 保证了数据的真实性;通过验证消息摘要可以保证数据的完整性。

4.3 数字签名

数字签名技术是一种基于加密技术的认证技术, 是笔迹签名的模拟, 也叫数字签字、电子签名、电子签章等, 是用于确认发送者身份和消息完整性的一个加密的消息摘要。数字签名为以下三点提供了保障:一是接收方可以对发送方签名进行核实;二是发送方不可抵赖对消息的签名;三是能够防止接收者对消息签名的伪造。数字签名可以实现电子商务中不可抵赖性。

目前数字签名是通过非对称加密体制实现的, 其过程为:发送方用私钥对所要传输的消息进行加密, 接收方用发送方的公钥解密, 也就是签名与核对签名的过程。而签名的功效就是使得事后发送方无法抵赖其发出的消息, 从而实现了交易的不可抵赖性。

总之, 目前的电子商务交易安全机制尚待完善、走向成熟, 有极大的发展空间与需求。加密体制的不完善是主要问题之一, 也是数据传输安全的核心与保障。尽管现在流行的一些算法功能比较强大, 能够为数据的安全提供高强度的数字保护, 但都存在一些薄弱环节, 会给攻击者留下可乘之机。在电子商务安全机制追求完美的同时, 还有很重要的一点, 即绝对安全的电子商务交易环境是不存在的, 须有清楚的判断与方向。

摘要:近年来, 电子商务的迅速发展与应用引起了人们对其安全问题的广泛关注与重视, 文章介绍并分析了了电子商务信息安全的要求和电子商务存在的安全问题, 对数据加密技术进行了分析与比较, 并在最后探讨了如何运用数据加密技术构建电子商务的安全机制。

关键词:电子商务安全,数据加密,数字签名

参考文献

数据库加密模型研究 篇9

就国内医学信息系统发展现状而言,由于该方面计算机网络技术及数据库的应用起始时间较晚,各方面仍然存在很多缺陷和不足。随着临床医学信息化的不断发展,传统意义上的CPR已经无法满足医疗管理部门及医生的需求,电子病历(EMR)也就随之产生。电子病历就是结合数据的方式获取医生所实施的各项医疗信息并实施有针对性的管理及应用。该种类型的数据信息能够促使医院在实际管理过程中实施多样化的显示及表达,并在此基础上实现数据统计、查询及操作。医院信息系统仍然是当今社会中最具复杂性的信息数据库,这主要源于医疗行业自身性质、目的及工作任务。正因为医疗业务领域自身具备一定的特殊性,作为医疗系统中最具重要性的信息数据之一,实际工作的病案记录中包含了所有诊疗信息,是医务人员实施患者治疗措施的依据、医疗纠纷中不可缺少的证据等,所以数据加密技术可以很好的实现对病案的保护,并且在身份明确及加密过程中具备极大的价值意义。换言之,唯有在医院信息系统中运用可靠、安全的数据加密技术,才能促使医疗信息化发展行为顺利进行。

1 医院数据加密技术的设计研究

数据加密的设计从某种程度上而言,就是为了实现在用户需求下,对相对敏感的数据实施加密储存,确保合法用户实施正常访问,避免非法用户读取或获得数据信息。作为一种数据安全性科学,数据加密从本质上而言就是实现数字的加密工作,在设计时需要一个密钥及加密算法。加密算法作为一种数学函数,其目的就是实现加密或解密计算。所以在进行数据加密的过程中,主要就是明确密钥保密性及加密算法的强度。数据加密技术结合因特网、Intemet等构建安全前提。数据加密技术作为保证信息系统安全的重要保障,基于业务视角而言,结合数据加密技术需要首先具备的安全功能包括以下内容:数据传输安全、数据完整性得到保障、身份验证以及数据操作的不可抵赖性。数据传输安全性需求是为了确保公网上传送过程中的数据不被第三方窃取。这一行为是通过数据加密实现,数据信封技术主要通过对称密钥及非对称密钥间的加密技术实现。数据完整性则是为了确保数据传输过程中不出现修改行为。此外用户进入安全通道之前,需要对身份进行鉴别与确认。最后在安全通道中实施数据传输的过程中,需要携带特殊、不能被人复制的信息,从而确保数据出现纠纷问题时能够提供证据。这一行为一般是通过数字签名及数字证书技术完成。

2 医院信息系统的数据加密技术

2.1 数据加密设计要求

针对医院信息系统而言,其数据管理系统中的运行平台一般使用Windows NT,该系统所设置的安全级别为C1或是C2,主要具备医疗人员的注册、识别及审计等功能。通过笔者的研究发现,医院信息系统的数据加密技术需要满足下述几点需求:(1)字段加密。在当前现状基础下,系统解密及加密中的粒度指的是记录的字段数据。以记录的字段数据为单位实现解密单位脱密,满足数据库操作需求,同时结合高效的密钥管理行为实现“一次一密”的密码操作行为。(2)密钥动态管理行为。由于数据库个体间的逻辑性关联,单个逻辑机构需要构建多个数据库客体,所以需要构建密钥实现系统动态化管理行为,从而满足组织、储存工作的复杂性。(3)实现数据的合理处置。数据处理中包含多个方面的内容,如处置数据类型的确定,不是相应的数据类型可以拒绝加载;数据处置后储存问题,确保数据加密行为完成之后,不额外增加储蓄空间的使用。对文献检索字段实施加密,确保索引检索行为具备精准性。(4)避免影响医院医务人员的日常作业。需要合理控制加密技术的运行时间,尽可能在短时间内实现。针对目前阶段的医院信息系统而言,均衡延迟时间的范围应该控制在0.1秒左右。随后实现医院医务人员的日常工作内容的稳定性,在进行数据录入、修改及检索行为时,应该具备相应的透明性,可以暂时忽略数据加、解密等方面的问题。(5)基于不同层面完善数据库加密行为。

2.2 医院信息系统的数据加密设计应用

结合上述五点内容的加密方式融入到医院信息系统中后,加密及解密计算行为可以直接放置到客户端后面进行,其最主要的优势在于不需要加重数据库就可以实现内网数据传输加密,但是其缺点在于存在一定局限性。不过由于医院的信息系统具备自身特征,导致很多在其余行业没有发生的问题在医疗信息系统中发生了,此外因医院自身环境的特殊性,使得医院信息系统在发展与开发过程中遭遇困难。在医院信息系统的基础上结合数据加密技术设计,提升系统安全性与可靠性的技术上,需要落实下述几项行为:医护人员进入系统之前需要实现两级安全控制(可通过用户名及密码实现用户身份认证);避免信息拷贝行为,可以通过对各科室客户机安装加密卡等硬件的方式确保其安全性;实施安全数据抽取行为,目前现存的数据抽取方式包括密文方式卸出及明文方式卸出。数据机密技术能够有效确保医院信息系统不被黑客袭击,出现数据流失或损坏等不良现象,即使被窃取之后也无法获取加密后的信息数据,大大提升了系统的安全性,促使医疗行为能够顺利、安全地实施。

3 结束语

综合全文内容,医疗信息化是国家实现信息化过程中极其重要的组成部分,社会医疗水平的提升从某种意义上来看与医疗信息化存在紧密关联。数据加密技术是一种新型的现代化技术,与医院信息系统结合的过程中,强化了医院信息系统的安全性,不过在这一过程中需要注重信息系统自身安全系统的安全性、系统使用人员的水平、系统外部安全情况等等。因此笔者建议,因为医疗行业自身的特殊性,在设计信息系统加密技术的过程中可以略微放松人员风险方面的设置,当然这一内容还需要更多专业学者进行研究,促使国内医院信息系统更加完善、安全。

摘要:医院信息系统作为医疗信息化的重要构成,其安全性是医院的首要任务,而其中的数据加密技术则是主要研究目标。本文从医院信息系统发展现状出发,简述了数据加密技术的内容,最后提出了医院信息系统下的数据加密技术设计。希望本次研究能够促使国内医院信息系统发展更加完善。

关键词:数据加密,医院,信息系统设计,研究

参考文献

[1]杨新光,郭江博,张超,田玉兔,蒋昆.大型医院IT运维及资产管理平台设计与应用[J].中国医疗设备,2016.

[2]陈能太,李世杰,韩周礼.医院信息系统与医保信息系统接口的实现[J].中国医院管理,2016.

上一篇:师德下一篇:阅读教学模式之反思