• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 政法军事 > 正文

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

    时间:2021-04-07 07:52:43 来源:达达文档网 本文已影响 达达文档网手机站

    摘要:数据库加密就是对数据库的文件或敏感数据进行加密,数据加密后以密文方式存储,即使被窃取、被拷贝,机密数据也不会被敌对方获取。该文给出了一个基于B/S模式的数据库加密新方案,并运用Java平台的JCE技术设计和实现了一个基于校园网的高校科研管理加密系统。

    关键词:数据库加密;JAVA;密钥管理;加/解密引擎

    中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)34-9644-03

    Research and Implementation of Web-based Database Encryption System

    WU Xing-hui1, CHEN Ming-rui2

    (1. School of Information Science and Technology, Hainan Normal University, Haikou 571158, China; 2.College of Imformation Science and Tchnology, Hainan University, Haikou 570228, China)

    Abstract: Database encryption is the database of documents or date encryption, date encryption, after the manner of storage, even if the theft, copy, confidential data will not be an adversary access. In this paper, base on B/S encrypted database structure of the new program is proposed, and use JAVA platform of JCE technology design and implementation of a WEB environment of research and development encryption system in University.

    Key words: database encryption; JAVA; encryption-key management; encrypt and decrypt engine

    随着计算机网络技术的发展和Internet技术的普及,Web系统结构越来越多地得到了广泛的应用,Web系统结构的网络平台在很大程度上扩充了信息的收集、处理和交互方式上的灵活性,将各个不同业务之间的信息集成在一起,通过浏览器提供管理及查询功能。但是当构造一个基于Web结构的管理系统的同时,安全性问题也是一个关注的重点。在系统的安全问题上主要包括数据传输安全与数据存储安全。许多DBMS(数据库管理系统)已经提供了较好的安全策略,例如Oracle和Sybase等。但是还有一些数据库由于其自身原因并没有达到用户所需的安全级别,数据库文件缺乏有效的保护措施。对于这些安全保护,有经验的黑客会“绕道而行”,直接利用操作系统的工具窃取或篡改数据库文件内容。这种隐患被称为通向DBMS的“隐秘通道”,它所带来的危害一般数据库用户难以觉察。利用密码技术对数据库中的敏感数据进行加密处理,是堵塞这一“隐秘通道”的有效手段。实现数据库加密以后,各用户的数据由用户用自己的密钥加密,而数据库管理员获得的信息无法进行正常解密,从而保证了用户信息的安全。另外,通过加密,数据库的备份内容成为密文,从而能减少因备份介质失窃或丢失而造成的损失。由此可见,数据库加密对于企业内部安全管理,也是不可或缺的。

    本文在对已有数据库加密技术的分析和研究的基础上,给出了一套适用于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类提供的GenerateKey方法返回字符串类型的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.

    [8] 吴春明,郑志强.基于WEB数据库加密研究[J]. 西南农业大学学报,2004,26(2),223-226.

    相关热词搜索: 加密 数据库 研究 系统 Web

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网