




已阅读5页,还剩63页未读, 继续免费阅读
(计算机应用技术专业论文)数据库加密与验证的算法和实现机制研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库加密与验证的算法和实现机制研究 摘要 数据库是构建信息系统的重要基础,数据库安全也成为了信息安 全的重要研究领域。目前大部分数据库都是以明文存储并且没有验证 机制,采用一般的身份验证与识别和存取控制技术并无法充分保障数 据库的安全。本文探讨将数据库数据以密文方式存储并建立相应的验 证机制。 在数据库加密方面,本文分析了数种已有的数据库加密技术,认 为生成子密钥的字段加密技术最适合。基于此我们提出了一种改进的 基于连接的子密钥生成算法以及基于用户信息的多级密钥管理技术, 后者可有效地管理生成子密钥的字段加密技术所需的密钥,并可适应 于客户端或服务器端加解密的情况。 在数据库验证方面,本文分析了数种已有的数据库验证技术,并 提出了一种基于字段的记录验证技术。该技术改进了基于字段的验证 技术的安全性,同时保留了基于字段的验证技术的灵活性和效率。 本文设计了一个数据库加密与验证组件,将基于连接的子密钥生 成算法、基于用户信息的多级密钥管理技术和基于字段的记录验证技 术融入其中,并讨论了设计和实现时所涉及的s q l 语言扩展,加密 字典设计和二级密文索引设计等相关问题。本文在n e t 平台下基于 o d b c 接口实现了该组件,该组件可用于代替原有的o d b c 接口, 为各种n e t 应用程序提供一个快速实现数据库加密与验证的平台。 本文通过一个n e t 应用程序测试了该组件的功能和效率。 关键词数据库加密,数据库验证,子密钥生成,密钥管理,密文索 引 r e s e a r c ho na l g o r i t h m sa n d i m p l m e n t a t i o n so fd a t a b a s e e n c r y p t i o na n da u t h e n t i c a t i o n a b s t r a c t d a t a b a s ei st h eb a s eo fi n f o r m a t i o ns y s t e m ;t h e r e f o r ed a t a b a s es e c u r i t yi s b e c o m i n g a l li m p o r t a n tr e s e a r c hf i e l d t o d a y , m o s td a t a b a s ef i l e sa r es t o r e d - i n p l a i n t e x tw i t h o u ta u t h e n t i c a t i o n ,h o w e v e go n l ya d o p t i n gu s e ra u t h e n t i c a t i o na n d a c c e s sc o n t r o li nd a t a b a s es y s t e mc a l ln o tp r o t e c tt h ed a t a b a s ew e l l i nt h i sp a p e r ,t w o s c h e m e s :s t o r i n gd a t ai ne i p h e r t e x ta n de s t a b l i s h i n ga u t h e n t i c a t i o nm e c h a n i s m ,a r e i n t r o d u c e d , w ea n a l y z es e v e r a lc u r r e n t l ya v a i l a b l ed a t a b a s ee n c r y p t i o n a p p r o a c h e s a n d c o n c l u d et h a tt h ef i e l d b a s e dd a t ae n c r y p t i o nw i t hs u b - k e y g e n e r a t i n g ( f b d e ) a p p r o a c h i s t h eb e s to n e w et h e n p r e s e n t ac o n n e c t i o n b a s e d s u b k e y g e n e r a t i n g ( c b s k g ) a l g o r i t h m a n dau s e r - i n f o r m a t i o n b a s e dm u l t i l e v e l k e y m a n a g e m e n t ( u m k m ) s c h e m e ,w h i c hc a nm a n a g et h ek e y sr e q u i r e db yt h ef b d e a p p r o a c he m c i e n t l y a n dc a na d a p t t oe n c r y p t i o r d d e c r y p t i o no ns e r v e ro rc l i e n t w ec o m p a r es e v e r a lc u r r e n t l ya v a i l a b l ed a t a b a s ea u t h e n t i c a t i o na p p r o a c h e s a n d p r o p o s ea l la p p r o a c ho ff i e l d b a s e da u t h e n t i c a t i o no nr e c o r d ( f b a r ) t h i sa p p r o a c hi s s a f e rt h a nt h ef i e l d b a s e da u t h e n t i c a t i o na p p r o a c h ,a n dr e s e r v e si t sf l e x i b i l i t ya n d e f f i c i e n c y w ed e s i g nac o m p o n e n tf o rd a t a b a s ee n c r y p t i o na n da u t h e n t i c a t i o nb a s e do nt h e c b s k ga l g o r i t h m t h ei7 m k ms c h e m ea n dt h ef b a ra p p r o a c h w ea l s od i s c u s s s e v e r a lr e l e v a n ti s s u e s ,e g s q lc o m m a n de x p a n s i o n ,e n c r y p t i o nd i c t i o n a r ya n d 2 一l e v e lc i d h e n e x ti n d e x w ei m p l e m e n tt h ec o m p o n e n ti nl v l i c r o s o f l n c tf r a m e w o r k w i t ho d b ci n t e r f a c e t h ec o m p o n e n ti su s e dt or e p l a c et h eo r i g i n a lo d b ci n t e r f a c e a n dp r o v i d eac o n v e n i e n ti n t e r f a c et od a t a b a s ee n c r y p t i o na n da u t h e n t i c a t i o nf o r v a r i o u s n e ta p p l i c a t i o n s e x p e r i m e n tr e s u l t ss h o wt h ef u n c t i o n a l i t ya n de f f i c i e n c yo f o u ra p p r o a c h e si n n e ta p p l i c a t i o n s k e yw o r d sd a t a b a s ee n c r y p t i o n ,d a t a b a s ea u t h e n t i c a t i o n ,s u b - k e yg e n e r a t i n g ,k e y m a n a g e m e n t ,c i p h e r t e x ti n d e x i i 图1 i 图索引 数据库安全研究层次一3 图3 1 基于连接的子密钥生成算法生成子密钥及使用该密钥对数据进行加密的 过程一一2 3 图3 2 两种在数据库系统中加入数据库密码保护层的方案一2 4 图3 - 3 通过交换数据表中的某些行中特定列的数据或交换某些列中特定行的数据 对数据表进行攻击3 0 图3 4 生成子密钥的字段加密技术对交换某些行中特定列的数据的攻击的抵抗 3 1 图3 5 生成子密钥的字段加密技术对交换某些列中特定行的数据的攻击的抵抗 图3 - 6 基于字段的记录验证技术对于插入记录操作的处理过程一一3 5 图3 7 基于字段的记录验证技术对于读取记录操作的处理过程一3 6 图3 8 基于字段的记录验证技术对于更新记录操作的处理过程一一3 7 图4 - 1 数据库级配置表定义一一一4 0 图4 2 数据表级配置表定义一一一- - 一一- 4 1 图4 - 3 字段级配置表定义一一一- 一一4 1 图4 - 4 二级索引功能的一种典型应用一- - 4 3 图4 - 5 密文索引树结点数据结构一一一- 4 4 图4 - 6 数据库加密与验证组件用户接口模块类结构示意图一4 5 图4 7 数据库加密与验证组件s q l 查询处理模块类结构示意图一_ 4 6 图4 8 数据库加密与验证组件服务管理模块类结构示意图一4 8 图4 - 9 数据库加密与验证组件数据库索引模块类结构示意图4 9 图4 1 0 使用普通创建表命令创建的明文联系人表一一一一5 1 图4 1 1 使用支持加密与验证的扩展s q l 语言中的创建表命令创建的密文联系 人表 图4 1 2 插入1 0 0 0 0 0 条记录后,明文数据表中的内容5 3 图4 1 3 插入1 0 0 0 0 0 条记录后,密文数据表中的内容一一一一5 3 图4 1 4 对所有字段都加入了验证的密文联系人表一5 4 图4 1 5 插入1 0 0 0 0 0 条记录后,对所有字段进行验证的密文数据表中的内容5 5 图4 1 6 更改记录号为9 2 5 9 2 的记录的u s e r i d 字段中的数据后,再查询这条记 录,系统抛出错误信息 5 5 图4 1 7 交换记录号为9 2 5 9 2 的记录的u s e r l d 字段和u s e r p h o n e 字段中的数 据后,再查询这条记录,系统抛出错误信息 一5 5 v 表索引 表4 。1 明文数据表和密文数据表的时空效率对比5 6 v l 浙江工业大学学位论文原创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工 作所取得的研究成果。除文中已经加以标注引用的内容外,本论文不包含其他个 人或集体已经发表或撰写过的研究成果,也不含为获得浙江工业大学或其它教育 机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,硇 已在文中以明确方式标明。本人承担本声明的法律责任 作者签名:孤明 日期:“拜,扣月7 。日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权浙江工业大学可以将本学位论文的全部或部分内容编入有关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 本学位论文属于 作者签名 l 、保密口,在年解密后适用本授权书。 2 、不保密斫 ( 请在以上相应方框内打“”) 玟峭 同期:z c ! 薛j 月;口i :t 聊魏征匀琵相 胁曰 1 1 本章摘要 第一章数据库安全现状及需求分析 随着数据库应用的日益广泛,数据库安全问题也越来越受到关注。目前大部 分数据库都是以明文存储并且没有验证机制,采用一般的身份验证与识别和存取 控制技术无法充分保障数据库的安全。数据库加密与验证机制在身份验证与识别 和存取控制后使用密码技术对数据库作进一步的保护。数据库加密将数据库中的 数据作密文存储;而数据库验证可以检测数据是否被非法修改,并在必要时可将 其还原。通过数据库加密与验证可以更有效地保护数据库安全。 1 2 数据库及其重要性 自从上个世纪六十年代以来,数据库应用有了巨大的增长,而1 9 9 0 年以来 的互联网革命则对用户与数据库交互起了巨大的推动作用。例如用户访问网上商 店并浏览书籍和音乐专辑时,就在访问存放在数据库中的数据;当用户在网上输 入命令时,命令将被存放在数据库中:当用户访问网上银行页面并获取银行的事 务信息时,信息就从银行的数据库中取出。 虽然用户界面隐藏了访问数据库的细节,甚至使得绝大多数人们感觉不到他 们正在与数据库打交道,但访问数据库已经成为人们同常生活中一个不可或缺的 重要组成部分。 各个行业也采用数据库支撑起日常事务处理,比如目前广泛应用的企业资源 管理( e r p ) 系统,数据库是其最重要的支撑环境。没有数据库,大量的企业资 源信息就无法有效地保存,信息亿系统也就无从谈起。 1 3 数据库安全 虽然很多数据库中的资源是可以共享的,有些数据库中的资源甚至是完全公 开的,如国书馆的书籍目录数据库,但是大多数的数据库是无法完全公开的,有 些数据库甚至是完全保密的。例如,就商业部门而言,一般数据可以共享,但一 些敏感数据或信息( 如商业情报、员工工资等) 则是保密的:而对政府或军队等 特殊部门的数据库而言,园其存储的全是一些机要数据,所以就要求完全保密。 对于有保密要求的数据库,数据库安全就非常重要。那么,什么是一个安全 的数据库系统? 安全的数据库系统具备机密性、完整性与可用性三项基本条件【i 】。机密性是 为了保护敏感性的数据避免被非法用户窃知;完整性是要防范数据库被有意或无 意的破坏,以维持数据的正确性;而可用性是一旦数据库遭受不当的修改时,应 能迅速恢复正常运作的能力,如备份或还原1 2 3 4 1 。三项基本条件中,机密性约 束数据访问者,只有合法用户能够访问数据库中机密信息;完整性和可用性约束 数据修改者,只有合法用户能够对数据库中机密信息进行合法修改。 1 4 数据库安全的实现 为了保护数据库的安全,人们做了大量的研究,主要可以分为三个层次来实 现数据库安全,如图1 1 所示: 应用层 系统层 数据层 亭 茸 毒 口令验证 持卡验证 生轫辨识 随意控制 强制控制 数据库加密 数据库验证 图1 - 1 :数据库安全研究层次 1 应用层 这一层主要的安全控制手段是身份验证与识别。文酬5 1 1 6 1 专门陈述了面向数 据库安全的,从身份验证与识别角度出发的几种方法,包括: 口令验证法:口令验证法是最常用的身份验证方法,用户通过提供自己 的用户名和口令来表明身份,系统一般将用户名和口令或口令的h a s h 码存入稳 定存储介质中供将来用户登录时比较。然而口令容易泄露、被猜测或丢失,因此, 在实际使用时有较大的风险。 持卡验证法:将个人的身份凭证储存在智能卡上,提供用户的身份验证, 但仍有被复制伪造以及遗失的风险。 生物辨识验证法:这是目前正在蓬勃发展的一种新兴的身份验证与识别 方法,采用用户生物特征如指纹、声音、瞳孔与容貌等等,事先存在计算机内作 为判定身份的依据。用户无需记忆或携带额外的身份标识,并且也不存在被猜测 或丢失韵风险,但是需要配合专用的仪器,因此目前尚未进入实用和普及阶段。 2 系统层 这一层主要的安全控制手段是存取控制。文献3 】【刀【8 9 1 f l o l 【1 j 】从数据库的存取 控制角度陈述了相关方法。因为单就身份验证与识别并不足以防范非法的使用, 在用户通过身份验证与识别后进入数据库系统存取资源的同时,必须防范蓄意破 坏或泄漏数据的行为,所以数据库系统均以提供存取控制( a c g c s sc o n t r 0 1 ) 的数 据安全方法将用户依不同身份做合理的授权。般可分为随意型存取控制 ( d i s c r e t i o n a r ya c c e s sc o n t r o l 简称d a c ) 及强制型存取控制( m a n d a t o r ya c c e s s c o n t r o l :简称m a c ) 两种f 1 】 3 】: 随意型存取控制:随意型的方式可依据企业组织的策略( 谁该存取仟么数 据,对数据能拥有什么权f 艮) 来制定存取规则。包括:指定权限与授权能力、虚 表( v i e w ) 机制、以及基于角色的存取控制( r o l e b a s e da c c e s sc o n t r 0 1 ) 等 7 j 1 8 l 吼 强制型存取控制:在要求保密性高的数据库系统,通常将存取的数据库 对象与用户强制分为不同的安全等级( s e c u r i t yc l a s s ) ,将数据分为极机密( t o p s e c r e t ;t s ) 、机密( s e c r e t ;s ) 、密( c o n f i d e n t i a l ;c ) 与一般类( u n c l a s s i f i e d ;u ) 四 种安全等级【l o 】【1 1 】,等级关系为t s s c u ,以安全等级为基础执行存取控制的 数据库系统,又称多层次数据库系统( m u l t i l e v e ld a t a b a s es y s t e m ) ;另外,对于 用户也需区分安全等级,并遵循b e l l l a p a d u l a 模式【删二个安全策略,即“禁止往 上读”( n or e a d u p ) 和“禁止往下写”( n ow r i t e d o w n ) 。 由于前两个层次上的数据库安全研究工作的充分开展,目前多数数据库应用 系统都建立了基于前两个层次的安全系统,例如设置防火墙和分布式入侵检测系 统、采用口令、访问权控制等等。这的确可以在一定程度上遏制黑客的入侵,但 每周都有新的系统漏洞发现,手段高明的入侵者和新的攻击手法仍然能得逞。据 美国安全杂志“s e c u r ec y b e r s p a c e ”调查,8 9 的用户安装了防火墙, 6 0 的用户安装了入侵检测系统,但其中仍有9 0 的用户的系统安全受到破 坏。所以,网络安全措施不是信息安全的全部,来自外部的黑客和来自内部的攻 击行为不可避免,而且这些非法攻击的真正目标是数据库1 3 数据层 这一层主要的安全手段是密码技术保护。密码技术保护法通过将原本明文存 储的数据库文件变为密文存储来保护数据库存储安全,即使攻击者攻破了前两层 安全机制的防护,还需要破解数据的密文才能够看到数据明文,而日前广泛使用 的加密技术都具有相当高的安全性,想要破解密文十分困难。密码技术保护法包 括了数据库加密和数据库验证。 1 5 数据库加密与验证及其重要性 1 什么是数据库加密: 数据库加密( d a t a b a s ee n c r y p t i o n ) 是指建立一个系统,该系统能侈对数据 库中的明文数据进行加密,并以密文保存;当合法用户读取数据时,该系统能够 将密文解密成明文返回给用户。通过数据库加密可以加强数据库的机密性。 数据库加密有两个基本需求: - 安全性。即加密后的密文能够防止非法用户获取数据明文。 高效性。即加密功能不能对数据库性能产生太大的影响。 2 什么是数据库验证: 数据库验证( d a t a b a s , a u t h e n t i c a t i o n ) 是指建立一个系统,该系统能够检查 数据库中的数据是否完全和正确,并在必要时可以恢复数据库中的数据。建立数 据库验证是为了更好地维护数据库完整性。 数据库完整性主要包括以下三个方面:语义完整性,结构完整性。数据项完 整性。前两层的完整性维护在数据库管理软件中一般都已经有了完整的实现,但 是目 i 数据项完整性方面的研究还处于起步阶段。通过数据库验证可以维护数据 项完整性以进一步维护数据库完整性,配合适当的备份还原措施可以使得数据库 具备可用性。 目前数据层上的研究相比应用层和系统层而言还处于刚刚起步的阶段,而国 内对于数据库安全的研究也主要集中于前两个层次上。如果仪有前两个层次的数 据库安全机制是否就能够保证数据库安全了昵? 答案是否定的。 首先,如前所述,前两个层次的安全机制存在较多的漏洞,攻击者可咀利用 这些漏洞进入数据库系统。 其次,即使前两个层次的安全机制是绝对安全的,由于数据库文件是明文存 储的,因此只要能够接触到数据库文件的人,不需要通过身份验证和存取控制, 而可以直接打开数据库文件浏览其中的数据甚至篡改数据库文件中的内容。b e 如 可咀利用硬盘拷贝机,直接拷贝硬盘上的所有数据从而获取数据库文件 并且随 可咀利用硬盘拷贝机,直接拷贝硬盘上的所有数据从而获取数据库文件 并且随 着目前笔记本计算机的曰益普及,许多商务人士也将重要的文件、资料都存在自 己的笔记本计算机中,然而笔记本计算机容易遗失、被盗,这也使得攻击者有更 多的机会接触数据库文件:而对于有备份的数据库,则攻击更加简单,由于管理 人员一般将数据库备份在光盘等可靠介质上,这样攻击者无需接触数据库所在计 算机,而只要拿到那张光盘,就可以得到数据库文件。然而不幸的是,越是重要 的数据库,就越需要备份,而备份的数据反过来加大了数据库安全的风脸。 遗憾的是国内数据库几乎都是明文存储,没有任何加密措施。不通过应用程 序和d b m s 直接修改数据表的情况常常发生。甚经有一些应用单位发现,究竟 是谁修改了数据库的数据不得而知,数据库数据有没有被修改不得而知,被修改 了的数据库如何恢复原貌不得丽知。因此数据库存储安全才是信息系统安全的核 心1 1 2 】。 面对这种现实情况,为保护存储在数据库中的数据( 信息) 的安全,加强对 数据库安全技术的研究,尤其是加强对数据库加密与验证技术的研究,找出一种 比较高效简洁的数据库加密与验证技术就显得具有特别的现实意义1 1 6 国内外数据库加密与验证研究现状 基于上述事实,近年来数据库加密与验证技术的研究逐渐兴起。国内外学者 也提出了相当多的理论来支持该技术的实现,甚至已经出现了一些实际的产品。 目前的数据库加密的研究主要集中于加密粒度,加密算法,密钥管理和密文 查询上。 从加密粒度的角度上看,有基于文件( 表) ,记录和字段的加密技术。文献 ”副介绍了一种子密钥加密技术,该技术以记录级粒度加密,字段级粒度解密, 该方法比较灵活,但是需要生成的密钥数量巨大,致使密钥管理十分困难。文献 ”4 提出了生成子密钥的字段加密技术,该技术以字段级粒度对数据库进行加解 密,而每条记录不同字段的加密密钥则由子密钥生成器生成,文献0 4 l l ”】f 1 6 给出 了数个子密钥生成算法。该方法灵活性高,需要保存的密钥数量小,是一种非常 适合于数据库加密的技术。 从使用的加密算法上看,可以使用传统的密码算法,如对称密码算法,使用 传统密码算法的优点是技术成熟,安全性得到广泛认可,但是对于密文无法直接 操作,需要将其解密后才能操作,操作完成后需要再加密存放,因此对于那些不 必显示所有密文而只需结果的操作,比如数据库内部函数a v e r a g e ,s u m 等,有 比较严重的性能损失;为此有学者提出了一种新的秘密同态的密码算法【3 0 】,经 过具有秘密同态特性的密码算法加密后的密文可以直接进行操作,但是该类型算 法目前在安全性和效率上还有待进一步完善0 0 1 3 1 】 3 2 1 【3 3 1 【3 4 3 5 】【3 6 1 。 在密钥管理方面,文献【1 6 3 介绍了适合生成子密钥的字段加密技术的多层密 钥管理体制。文献【l8 则提出了一种新的密钥管理技术,其核心思想是对密钥进 行转换,但是该方法不够灵活,对于安全级数较多的情况,处理难度较大。文献 ”9 】对该技术进行了改进,使用密钥转换表进行密钥转换。 同时,针对数据加密导致的数据特征变化,对数据处理查询可能造成影响, 有学者提出了密文索引的思想。该思想的核心是以密文索引树代替原本数据库的 明文索引树对密文数据进行索引以加快数据查询速度。文献【2 0 1 1 2 1 1 2 2 1 叙述了密文 索引方面的相关工作。 而数据库验证方面的相关叙述则较少,文献【1 4 】提出了基于字段的验证技术, 该技术以密钥产生器产生密钥进行验证码计算。文献 】介绍了基于字段的加密 封缄验证方法,该方法对每个字段的数据生成h a s h 码并与字段的明文一起加密 存储。基于字段的验证技术的共同缺点是仅能保证字段内数据不被修改,安全性 不够高。文献田】贝0 提出了基于记录和属性的二维检查法,对记录( 行) 和属性 ( 列) 分别生成校验值,使得在发生数据错误时能够正确定位错误位置,但是由 于该方法基于记录和属性,因此不够灵活,应用时效率通常也比较低。 而在实现的产品方面,亦有相当多的产品问世,这些产品大致可分为两种类 型: 一类产品是在数据库核心实现加密与验证功能,比如o r a c l e 公司在其著名 的数据库软件o r a c l e8 i 之后引入了数据库加密的机制,并在o r a c l e9 i 中做了 进一步增强1 2 。 另一类产品是在数据库核心之外加上了加密和解密功能层,用户可以通过这 个功能层使用带有加密与验证功能的数据库,这类产品包括n c i p h e rs e c u r e d b 2 5 1 和n e t l i be n c r y p t i o n e rf o rs q ls e r v e r t ”j 等。 以上两种实现方式各有优缺点,在核心实现可以更彻底地实现数据库加密与 验证,且效率也较高,但开发周期长,且需要数据库厂商的资料配合;在核心外 实现的方式开发周期短,并且可以使得产品支持多种数据库,因此目前独立开发 的数掘库加密与验证软件大都是在数据库核心外实现的,但是这种实现方式使得 数据库加密与验证的功能会受到一定的限制,效率一般也较低。 虽然随着数据库加密与验证技术研究的日益深入,产生了很多的数据库加密 与验证研究成果,但是仍然存在以下问题: 对于数据库某些功能的影响无法消除。比如o r a c l e 要求不要对索引字 段加密【2 4 ,然而这在很多应用场合是无法接受的。 对于数据库效率的影响比较严重,这里包括访问效率和存储效率。由于 目前数据库加密一般使用传统的加密算法,比如d e s ,加解密的过程必然会导 致数据库访问效率的降低,而无法对加密数据进行直接操作也是传统加密算法的 重大缺点;并且现有各加密算法一般都有密文长度大于或等于明文长度的特点, 导致存储压力加大。这一点有待于新的可靠加密算法的出现,尤其是能够对密文 数据作直接操作的加密算法。 几乎所有已提出的加密方案都基于服务器端加解密,而在客户端加解密 的方案则甚少提及。相对于服务器端加解密的方案,在客户端加解密具有工作量 分散的优点。但是,由于需要将加解密的密钥分布到客户端,因此在客户端加解 密对于密钥管理有特殊的需求。 关于数据库验证的研究较少。而这一点恰是最为实际需要的。数据库验 证可以确保数据库内容的正确性、整个数据库的完整性,与适当的备份还原方法 相配合还能够保证数据库的可用性。假设数据库系统不足以信赖,遭到攻击者蓄 意更改,则数据库的正确性将遭受到质疑,所以采用数据库验证可在数据遭到篡 改对探测到被篡改的数据并配合复原措施将数据库还原到被篡改前的状态,以维 护数据库的正确性。 1 7 论文目标和论文组织 1 7 1 论文目标 针对目前数据库加密与验证技术的不足,尝试找出一个性能与安全性较 为平衡的技术方案。 依据该技术方案,设计并实现一个数据库加密与验证的组件,并对其功 能和效率做实验分析。 l 7 2 论文组织 本文的组织结构如下: 第一章,( 即本章) 阐述项目的背景,国内外研究现状及本文拟解决的关键 问题。 第二章,简要介绍数据库加密与验证所涉及的相关知识和技术。 第三章,分析现有的数据库加密与验证技术,并提出基于连接的子密钥生成 算法、基于用户信息的多级密钥管理技术和基于字段的记录验证技术。 第四章,依据第三章提出的技术,并结合具体实现问题,设计并实现一个数 据库加密与验证组件,并且对其做功能和性能上的测试。 第五章,对全文的总结,并提出数据库加密与验证组件的不足之处和深入研 究方向。 2 1 本章摘要 第二章数据库加密与验证相关技术 本章主要介绍数据库加密与验证中应用的相关技术。 本章首先介绍了数据加密技术,包括对称密码算法,非对称密码算法和秘密 同态算法,并分析了目前主流数据加密技术实现;然后介绍了h a s h 函数的特性 和应用,以及主流实现;最后简要介绍了身份验证技术。 2 2 数据加密 数据库加密与验证系统使用数据加密技术将数据明文转换为密文并存储在 稳定介质中;当合法用户需要数据时,则通过数据加密技术将密文转换为明文, 供用户查询。 1 数据加密中常用的术语 明文( p l a i n t e x t ) 加密算法处理的所有数据在处理前都称为明文。 密文( c i p h e r t e x t ) :加密处理后生成的结果。 加密( e n c r y p t i o n ) :将数据( 明文) 变成无规律的数据( 密文) 的过程。 解密( d e c r y p t i o n ) :加密的逆过程。 密码算法( c i p h e r ) :可以加密和解密数据的密码算法。 密钥( k e y ) :密钥是许多密码算法用于控制结果的参数。同一种加密算法使 用不同的密钥对同一明文进行处理会生成不同的密文。 2 对称密码算法cs y m m e t r i ce n c r y p f i o n ) 对称密码算法用于加密和解密的密钥是相同的,所以说它是对称的,即如果 密钥k 用于将明文加密成n a j d s 7 8 a 那么密钥k 也用于解密n a j d s 7 8 a , 将其恢复成明文。由于加密和解密都采用相同的密钥,所以有时也称之为同一密 钥和单密钥。 然而,对称密码算法在实际使用中存在以下几个问题: 通信双方需要共享密钥,而很多情况下不可能面对面交谈,而只能通过 电子邮件等其他不够安全的方法进行。 对每一对通信者需要使用不同的密钥,密钥数量太多而导致难以管理。 一般不能提供完整性鉴别。 目前常用的对称密码算法主要有:d e s ,三重d e s ,a e s 等。其中d e s 不应被应用在对安全性需求较高的场合,它可以在短时间内被破解f 27 1 。已有2 0 年历史的三重d e s 则至今安全。a e s 由比利时科学家设计,与三重d e s 的 安全性相当,但速度更快 2 8 1 。 3 非对称密码算法( a s y m m e t r i ce n c r y p t i o a ) 与对称密码算法不同,非对称密码算法需要两个密钥:公开密钥( p u b l i ck e y ) 和私有密钥( p r i v a t ek e y ) 。公开密钥与私有密钥是一对在数学上有关联的数字, 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有 密钥对数据进行加密( 签名) ,那么只有用对应的公开密钥才能解密( 验证) 。因 为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称密码算法。 非对称密码算法的保密性比较好,它消除了最终用户交换密钥的需要。然而 在非对称密码算法中,只有具有某种数学特性的数字才能作为密钥,如果这些数 字非常巨大,攻击者就很难破解,因此需要许多位用于存储较大的数。从密码术 的角度看,1 0 2 4 位的r s a 密钥大致相当于7 5 位的对称密钥【2 9 】。 同时,对比对称密码算法,非对称密码算法的数学含义很复杂。由于这个原 因,非对称加密的速度大概要比对称加密慢1 0 0 0 倍2 9 1 。因此,非对称密码算 法不适合于对文件加密而只适用于对少量数据进行加密。 目前最常用的非对称密码算法是r s a ,到目前为止,世界上还没有任侗有 效韵攻击r s a 算法的方法。 4 秘密同态算法( p r i v a c yh o m o m o r p h i s m ) 使用上述的密码算法对数据库中数据加密有个共同的问题:对于所形成的 密文数据库无法进行操作,也就是说,对于密文数据库,若要对某些字段进行统 计、平均、求和等数学运算时,必须先对这些字段进行解密运算,然后对明文进 行数学运算,之后再加密。这样一来首先增大了时空开销:其次,在实际应用中, 对于某些重要或敏感数据,需要操作者对其进行数学运算但又不必要让操作者了 解其中的信息( 例如,在每个雇员的工薪信息保密的情况下给雇员的工薪增加 1 5 ) 。如果能对密文数据库进行数学运算和常规的数据库操作,显然能够解决 上面存在的问题,并可以大大削减加、解密所需要的时空开销,提高数据库的运 行效率。秘密同态【3 0 1 技术就是作为个能解决上述问题的有效方法而提出的。 秘密同态是由r i v e s t 等人于1 9 7 8 年在文献d 哪中提出的,是允许直接对密 文进行操作的加密变换。后来由j d o m i n g o - f e r r c r 在文献9 1 1 中作了进一步的改 进,给出了关于加法和乘法的同态运算的定义,并证明了算法是安全的。j d o m i n g o 。f e r r e r 和j h e r r e r a - j o a n e o m a r t i 在文献1 3 3 】中定义了关于同态逆运算并 论证了其安全性,于是就把同态运算推广到了除法上。秘密同态技术最早是用于 对统计数据进行加密的,由于算法的同态性,保证了用户可以对密文直接进行操 作。秘密同态理论是建立在代数理论之上的,其基本思想如下: 假设e x ,、d x :分别代表加密、解密函数,明文数据空间中的元素是有限集 合 m i ,m 2 ,坛) ,口和代表运算,若 口( ( m 1 ) ,- ( m 2 ) ,e x , ( m ) ) = e x ,( ( l ,m 2 ,胁) ) d x , ( a ( e x , ( m o ,e k ( 肘2 ) ,e k - ( 膨,) ) ) = f l ( m l ,m 2 ,m ) 成立,则称函数族( e x l ,d x 2 ,甜,卢) 为一个秘密同态。 j d o m i n g o f e r r e t 于1 9 9 6 年提出了一个秘密同态算法【3 1 ,然而此算法被 j u n gh e ec h c o n 和h y u ns o on a m 攻破3 4 1 ;j d o m i n g o f e r r e r 曾于2 0 0 2 年又 提出了一个秘密同态的密码算法【3 2 ,但是该算法很快被f b a o 和d w a g n e r 攻 破例【3 6 】。目前尚无法证明秘密同态算法是否存在,既没有人证明它存在,也没 1 2 有迹象表明其不存在,我们亦未看到进一步的研究成果。因此,对于安全性要求 较高的场合,该类型算法目前尚无法应用。 通过以上分析,我们可以看到,在数据库数据加密这样大数据量的数据操作 中,可以使用以a e s 算法为代表的对称密码算法;而在如传递对称密钥这样的 小数据量数据操作时,可以使用r s a 算法为代表的非对称密码算法。 2 3h e i s h 函数 数据库加密与验证系统可以使用h a s h 函数来进行数据验证。 h a s h 函数可以使用任意数量的数据( 作为一个大的二进制信息块) ,并利用 它生成该信息唯一的较小h a s h 码。 h a s h 函数具有以下两个特征: ( 1 ) 单向的,即根据h a s h 码重新创建文档是完全不可能的,因为h a s h 码 不包括文档中的所有信息。 ( 2 ) 抵抗冲突,即两个不同的文档无法创建出相同的h a s h 码。 h a s h 函数可被用于单向数据加密,而更多的时候,h a s h 码被作为强加密 的校验和。利用校验和( 类似于经常在文件系统中使用的循环冗余校验( c r c ) ) , 创建出生成相同校验和的其他文件相对容易很多。就h a s h 码而言,这几乎是不 可能的。因此,对比校验和,h a s h 码更适合于数据库验证。 目前流行的h a s h 算法有m d 4 ,m d 5 ,s h a 1 等。其中m d 4 和m d 5 已 不再安全 3 7 ,s h a 1 算法可以生成长度为1 6 0b i t 的h a s h 码,是现在使用最 广泛的h a s h 算法,t l s 协议和s s l 协议都实现了该算法。根据2 0 0 5 年2 月份的报道,山东大学的王小云教授宣布找到了一种新的计算方法能够在2 ” 时间内找出冲突,该方法比穷举法快了2 0 4 8 倍,但即使使用一秒钟运算3 0 亿 次的计算机仍需要6 0 0 0 年之久。因此在进一步的研究成果出来之前,该算法仍 是安全的,但是我们可能已经需要考虑新的h a s h 算法了。s h a 1 算法还有四 种变体s h a 2 2 4 ,s h a - 2 5 6 ,s h a 3 8 4 ,s h a 5 1 2 ( 也被称为s h a 2 系 列) ,它们可以生成长度更长的h a s h 码,相对更加安全,不过这些算法尚未经 过公众的严格审查,因此还未获得广泛应用。 通过将经过加密处理的数据及其h a s h 码同时存放在数据库中,我们就可以 保证密文数据的数据项完整性。攻击者对于数据的篡改将导致篡改后数据的 h a s h 码与存放的h a s h 码不同而使得验证无法通过。 2 4 身份验证 数据库加密与验证系统使用身份验证来确定是否及如何传递解密后的数据 或数据加解密密钥给用户。 身份验证协议有如下要求: 验迁者正确识别合法示 正者的概率极大化: 不具可传递性,即验证者b 不可能重用示证者a 提供给他的信息来伪装 示证者a ,从中骗取他人的验证,从而得到信任; 攻击者伪装示证者欺骗验证者成功g 概率要小到可以忽路的程度,特别 是要能抵抗己知密文攻击; 计算有效性,为实现身份验证所需要的计算量不能太大; 通信有效性。为实现身份验证所需通信次数和数据量要小; 秘密参数能安全存储。 目前使用的身份验证协议主要有两种:使用对称密码技术进行密钥交换和使 用非对称密码技术进行密钥交换。其中,使用非对称密码技术的协议( 也被称为 数字签名) 获得了广泛应用,在该协议中,通信双方通过一个共同信任的中间人 交换密钥。实际应用中,诸如v e r i s i g n 【3 8 1 这样的公司扮演着这样的角色,如果 您可以证明自己的真实身份,这样的公司就可以签发一个公钥( 创建我们所知的 认证) 。v e r i s i g n 和其他认证机构大量发送公钥,也称为根证书,使用根证书可 以确认任何出示由他们签发公钥的人的身份。 本文将使用一个为数据库加密特别设计的密钥交换协议来安全地传递数据 库加解密所需的密钥。 第三章数据库加密与验证算法分析和设计 3 1 本章摘要 本章首先分析了现有的数据库加密技术,认为生成子密钥的字段加密技术灵 活、高效且密钥管理容易实现,比较适合于数据库加密。在此基础上本章给出了 一种改进的基于连接的子密钥生成算法和基于用户信息的多级密钥管理技术,后 者可有效地管理生成子密钥的字段加密技术所需密钥,并可适应于服务器和客户 端加解密的情况。然后本章分析了现有的数据库验证技术,并给出一种基于字段 的记录验证技术,该技术改进了基于字段的验证技术的安全性,同时保留了基于 字段的验证技术的灵活性和效率。 3 2 现有数据库加密技术及其密钥管理分析 与一般的加密技术不同,由于数据库具有文件( 表) 、记录、字段多个层次 的概念,因此对数据库的加密也可以分别选用文件( 表) 、记录、字段作为加密 基本单位的技术。加密的单位越小,适用的范围越广,但实现的难度也越大。根 据应用具体要求的不同,实现时可以采用不同的方法。 下面我们以一张拥有m 条记录,个字段的数据库为例分析一下各种加密 技术的优缺点及其密钥管理的实现难度。 1 基于文件的数据库加密技术 把数据库文件作为整体,用加密密钥和加密算法对整个数据库文件加密,形 成密文来保护数据的机密性。利用这种方法,数据的共享是通过用户用解密密钥 对熬个数据库文件进行解密来实现的。但多方面的缺点极大地限制了这一方法的 实际应用:首先,数据修改的工作将变得十分困难,需要进行解密、修改、复制 和加密四个操作,极大地增加了系统的时空开销:其次,即使用户只是需要查看 某一条记录,也必须将整个数据库文件解密,这样无法实现对文件中不需要让用 户知道的信息的控制。因此,这种方法只适用于能回避这些限制的应用环境。此 方法的密钥管理很简单,只需要保存和管理一个数据库的总密钥,因此实现难度 不大。 2 基子记录的数据库加密技术 一般而言,数据库系统中每条记录所包
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宝鸡先行电力(集团)有限责任公司招聘(4人)模拟试卷及答案详解1套
- 2025广西南宁上林县禁毒委员会招聘禁毒社工1人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025广西防城港市中小学教师招聘501人模拟试卷及答案详解(典优)
- 2025湖北省三支一扶招募高校毕业生2000人考前自测高频考点模拟试题及答案详解(必刷)
- 2025内蒙古赤峰市林西金城医院招录专业技术人员6人考前自测高频考点模拟试题及答案详解(易错题)
- 律师常用信涵样式相互同意解除合同7篇
- 库房搬迁运输合同9篇
- 科研伦理考试题库及答案
- 甘肃消防考试题库及答案
- 绿色环保与可持续发展行动计划活动方案
- 人音版小学四年级音乐上册教案全册
- 第一次月考2024-2025学年度九年级英语
- 《大数据导论(第2版)》全套教学课件
- “上外杯”上海市高中英语竞赛初赛模拟试卷
- 小学语文课程教学设计与技能提升 课件 第二章第一二节 小学语文教师新技能
- 高考生物选择性必修1稳态与调节基础知识填空默写(每天打卡)
- 壳聚糖的生物相容性与安全性评价
- JT-T-1130-2017桥梁支座灌胶材料
- 会场布置及座次安排
- DB32T3916-2020建筑地基基础检测规程
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
评论
0/150
提交评论