基于扩展存储过程的数据库加密技术.docVIP

基于扩展存储过程的数据库加密技术.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于扩展存储过程的数据库加密技术.doc

基于扩展存储过程的数据库加密技术 利用加密技术对数据库文件进行加密能够有效地保证数据的安全,即使黑客窃取了关键数据,得到的也只是密文,他仍然难以得到所需要的信息。实现数据库加密以后,各用户(或用户组)的数据由用户用各自的密钥加密,从而保证了用户信息的安全。另外,经过加密的敏感数据在数据库的备份中以密文形式存在,从而减少因备份介质失窃或丢失而造成的损失。因此,数据库文件加密对于保障数据安全十分重要。 文章介绍了扩展存储过程技术,并在此基础上提出了一个数据库加密系统逻辑模型,分析了各主要模块,实现了基于扩展存储过程的数据库加密系统。 一、扩展存储过程 扩展存储过程是一种特殊的存储过程。它通过Microsott的开放式数据服务(open data services,ODS)技术,提供了一个基于服务器的编程接口来扩展SQL Server的功能。从而用户可以使用高级语言创建自己的外部例程,以满足特定的功能需求。扩展存储过程实质上是SQL Server可以动态装载并执行的动态链接库,可直接在SQL Server的地址空间运行,并使用SQL Server ODS APl(application programming interface)编程。 扩展存储过程的工作原理如图1所示。 扩展存储过程是关系数据库引擎的开放式数据服务层的一部分,而开放式数据服务层是该引擎和服务器Net-Iibrary之间的接口。服务器Net-Library接收客户端TDS (tabular datastream)数据包并将它们传递给开放式数据服务。开放式数据服务将TDS数据包转换成事件并传递到关系数据库引擎的其它部分。而后数据库引擎使用开放式数据服务,通过服务器 Net-Library将回复发送回SQL Server客户端。 二、系统的设计 1、系统设计目标 一个有效的数据库加密系统,必须达到以下目标: ①利用加密技术,对数据库中存储的“敏感”数据实现字段级加密: ②恰当地处理数据类型转换等问题,保证加密和解密处理过程中数据的完整性; ⑨使用户不需考虑数据的加、解密过程,实现数据库合法用户对于数据的录入、修改和检索操作的透明性; ④实现对各级加密密钥的存储和管理。 2、系统的模块划分 系统实现的逻辑模型如图2所示。 系统可以划分为3大模块:加/解密引擎模块、数据库对象模块和加密系统管理模块。 加/解密引擎模块是数据库加密系统的核心部分,它由加/解密动态库和SQL语句解析两部分组成,实现对应用程序提交的SQL语句的解析、对加密密钥的加载以及对数据信息的加/解密处理; 数据库对象模块是数据库加密系统与DBMS的接口,数据库加密系统通过该模块实现对数据库的访问和操作,而DBMS则通过该模块调用加/解密动态库来实现相应的加、解密操作; 加密系统管理模块用于系统管理员对密文数据库中的信息及加密密钥进行管理,如修改加密字段信息、加载密钥和变更加密密钥等。 下面以应用程序访问密文数据库为例,简要说明系统的工作原理: 首先,SQL解析模块对应用程序提交的SQL语句进行分析,根据DBMS中的加密字典对SQL语句进行解析和扩展; 然后,加密系统将重组后的SQL语句提交给DBMS。DBMS通过数据库对象模块调用加/解密动态库,对数据库中的密文数据进行解密,并将解密后的结果反馈给数据库对象模块; 最后,应用程序通过数据库对象模块获取解密后的明文数据。 3、加/解密引擎模块 (1) 加/解密动态库 加/解密动态库是加/解密引擎模块的核心部分,也是整个加密系统的核心。动态链接库(dynamic link library,DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源,由Windows应用程序直接或间接调用来执行。系统中的加/解密动态库主要实现了3DES加密算法、不同数据类型与二迸制流之间的相互转换和加密密钥的加载等。加/解密动态库由数据库对象模块的加/解密存储过程根据需要调用并执行,从而实现相应的功能。 ①3DES加密算法:3DES(即Triple DES)是DES向AES过渡的加密算法,是DES的一个更安全的变形,三重DES增加了密钥长度。因此,系统中采用3DES算法实现对数据信息的加/解密,具有较高的安全性。 ②不同数据类型与二进制流之间的相互转换:由于数据库中字段的数据类型是多样的,就需要考虑不同数据类型与二进制流之间的相互转换。当用户读数据时,首先将密文二进制流数据解密为明文二进制流,而后根据加密字典中的信息,通过UDF(user-defined func-tions)将明文二进制流转换为与之匹配的数据类型之后返回给前台用户:当用户对密文字段写入数据时,首先将写入的数据类型转换为二进制流类型,对转换后的二进制流数据进行加密并保存。 ③加密密钥的加载

文档评论(0)

aiwendang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档