已阅读5页,还剩75页未读, 继续免费阅读
(计算机软件与理论专业论文)数据库加密技术的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 摘要:本文主要针对数据库安全问题中的加密技术加以研究,将加密技术结合到 数据库中,对数据库中的敏感数据进行加密,论证了基于字段的加密方式的可行 性。在这种加密方式的前提下,根据密钥使用的思想,选用对称加密算法,使授 权用户可以使用不同数据密钥对加密字段中敏感数据进行加密。而数据密钥本身 又由密钥加密密钥进行加密保护,同时根据密钥的生命周期按时更换系统的密钥 以达到更好的安全效果。 本文通过使用一种基于密码引擎、密钥库、密钥清单、密钥管理器、密码提 供者和使用者,还有受保护的数据七个组件之间协调运行的加密系统架构,在保 证加密数据库用户密钥安全性的同时,来尽量提高系统的易用性与安全性。通过 与数据库已有技术的结合,实现了加密数据库的一个简单模型,证明了以上加密 机制的有效性和可行性。 最后,提出了本文加密数据库中有待进一步研究和解决的问题。 关键词:数据库加密;加密算法;加密引擎;密钥库;密钥清单;密钥管理器 分类号:t p 3 0 9 7 a b s t r a c t a b s t r a c t :t h i sp a p e rm a i n l ys t u d i e st h ee n c r y p t i o nm e t h o do f t h ed a t a b a s es e c u r e p o l i c y , h o wt oc o m b i n et h ec r y p t o g r a p h yw i t ht h er e l a t i o n a ld a t a b a s et op r o t e c ts 锄s i b l e d a t a p r o v et h ef e a s i b i l i t yo ft h ef i e l de n c r y p t i o n a l o n gw i t ht h em e t h o da b o v ea n d m u l t l d a t a 。k e y1 d e a ,d e s i g nas y m m e t r i c a la l g o r i t h m st oe n a b l ea u t h o r i z e du s e r ss h a r e a c c e s st ot h ec o n f i d e n t i a l i n f o r m a t i o n ,a n dp r o t e c tt h ed a t ak e ye n c r y p t e db yu s e r p n v a t ek e y t h e na c c o r d i n gt ot h el i f ec y c l eo f k e y s y s t e m so nt i m ea n dt h er 印1 a c e m e i l t o f t h ek e y st oa c h i e v eb e t t e rs e c u r i t yr e s u l t s 1n r o u g ht h eu o fc r y p t o g r a p h i c e n g i n e ,k e yv a u l t ,k e ym a n i f e s t ,k e ym a l l a g c r y p t o 伊a p h l cp r o v i d e r , c r y p t o g r a p h i cc o n s u m e ra n dt h ep r o t e c t e dd a t aa n db e t w e e l lt h e s e v e nc o m p o n e n t so ft h ee n c r y p t i o ns y s t e ma r c h i t e c t u r e , w h i c hc a l l b ev 硎矗e dt ob e s e c u r e ,f e a s i b l ea n de a s y - t o 。u s eb yc o m p a r i n gi tw i t ho t h e re 1 1 c r ) ,p t i o ns c h 锄e s t h e n d e s l g nam o d e lt oi m p l e m e n tt h ef e a s i b i l i t ya n dv a l i d i t yo ft h ei n t e g r a t e de n c 帅t i o n s c h e m ea n d s e c u r i t yd i c t i o n a r y a tl a s t ,d i s c u s ss o m e p r o b l e m so fd a t a b a s es e c u r i t yi no u r 如t u r er e s e a r c h 1 ( e y w o r d s :d a t a b a s ee n c r y p t i o n ;e n c r y p t i o na l g o r i t h m ;e n c r y p t i o ne n g i n e :k e v v a u l t ;m a n i f e s t ;k e ym a n a g e r c l a s s n 0 :t p 3 0 9 7 v l l 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 签字日期: 口萝年 珍,肜 鼓。6始水 北京交通人学硕十学位论文 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名: 王f 琦! 签字日期:纱一8 年白j 日 8 0 致谢 本论文的工作是在我的导师魏慧琴副教授的悉心指导下完成的,魏慧琴老师 严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年 来魏慧琴老师对我的关心和指导。 魏慧琴老师悉心指导我们完成了实验室的科研工作,在学习上和生活上都给 予了我很大的关心和帮助,在此向魏慧琴老师表示衷心的谢意。 贾卓生教授对于我的科研工作和论文都提出了许多的宝贵意见,在此表示衷 心的感谢。 在实验室工作及撰写论文期间,宗腾腾等同学对我论文中的加密技术研究工 作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢家人,他们的理解和支持使我能够在学校专心完成我的学业。 引言 1 1 背景 1 引言 随着计算机技术的发展以及网络技术在我国的迅速普及,中国正在跟随世界 发展的趋势,向信息化大国的目标前进。各行各业都已经普遍接受“信息是企业 成败的关键”这一理念,而构成信息的数据却面临着严重的危机。据美国一位隐 私保护顾问预计,现在全球每年发生的数据失窃案大约在1 0 0 0 万起左右,损失可 达5 3 0 亿美元【3 】。从而使得数据信息的安全性问题越来越受到人们的关注。 而针对保障信息安全性中诸如安全策略、安全管理、物理安全、网络安全、 主机安全、应用安全和数据安全等领域已有了大量成熟的解决方案和最佳实践, 这些方案通过与发展成熟的密码学技术结合使用,已经能在实践中满足大多数安 全的需求,但是关于密码学在数据库中的应用这个领域,即数据库加密,却被很 多安全专家忽视,主要原因是大家一般寄希望于传统的物理安全、操作系统安全 机制和数据库管理系统来保护数据的安全性,而在实际生产应用中,这些机制提 供的保护作用是有限的,并不能满足数据库的全部安全需求,无法保证一些重要 部f - j ( 如政府、金融、国防等) 和一些敏感数据( 如信用卡号、身份证号、个人 的医疗信息等) 信息的安全。 总体来说,这些安全措施和机制不能抵御以下几种较为典型的攻击: 1 攻击者非法获取用户名和口令,窃取或篡改数据库中的信息 传统的数据库管理系统是通过用户名和口令来限制用户对数据库的访问,系 统的安全性完全依赖于对用户名和口令的保密。而攻击者往往通过在用户输入用 户名和口令的时候,偷看或偷录下来,或在用户使用的计算机上安装木马程序等 方式来窃取用户名和口令,从而达到窃取或篡改数据库中的敏感信息的目的。 2 攻击者绕过o s 或d b m s 入侵到系统中,窃取或篡改数据库中的信息 数据库对数据的管理建立在文件系统之上,数据库中的一个关系通常对应操 作系统中的一个文件。在传统的数据库中,文件中的数据是明文的,而且是通过 用户授权来限制用户的访问。有经验的攻击者往往会“绕道而行”,直接利用操作 系统工具窃取或篡改数据库文件内容。 3 数据存储介质( 如磁盘、光盘、磁带等) 失窃导致数据库中的信息泄漏 数据库的数据保存在存储介质上,而且为了数据的安全还要经常备份。攻击 者可以采用物理攻击的方式,窃取数据库的原始存储介质或备份存储介质,通过 北京交通人学硕十学位论文 对存储介质上的数据进行分析而获取敏感信息。 4 恶意的数据库管理员( d b a ) 窃取或篡改数据库中的信息 传统的数据库系统中数据库管理员的权力至高无上,他既负责如资源分配、 用户授权、系统审计等各项系统管理工作,又可查询数据库中的一切信息。如果 d b a 被收买或者是出于个人利益,他就可能会窃取或篡改数据库中的敏感信息, 对数据库的安全构成极大威胁。为此,不少系统以种种手段来削弱数据库管理员 的权力。然而即使限定d b a 只负责各项系统管理、维护工作而不能直接访问敏感 信息,因为他负责用户授权,有访问用户授权表的权限,因此d b a 就可以通过以 下步骤来伪冒用户窃取或篡改数据库中的敏感信息: 1 ) 用户的口令通常会采用单向加密算法加密后存储,d b a 首先将该加密后 的口令拷贝下来; 2 ) 用一个己知明文的单向加密后的口令替换原来的口令; 3 ) 使用用户名和新的口令登录系统,窃取或篡改敏感信息; 4 ) 用1 ) 拷贝下来的原口令替换新口令; 通过以上步骤,d b a 窃取或篡改了数据库中的敏感信息又不被察觉,对数据 库的安全构成极大威胁。 5 攻击者在用户访问数据库的过程中通过网络窃听的方式窃取敏感信息 用户对数据库的访问通常是通过网络来进行,如果在网络上传输的数据是明 文的,那么攻击者通过在线窃听的方式就能窃取敏感信息。j l # i - ,攻击者还可以 通过截获用户提交的用户名和口令,伪冒该用户访问数据库。 而对于以上五种典型攻击,大多数的防范都只是针对第五种攻击,通过 h t t p s 、s s h 和v p n 等技术来加密保护数据在网络上的短暂传输过程,以防止网 络数据包被窃取,从而保护数据的安全【5 】。但是,数据一旦到达目的地( 如电子商 务站点) 后,就会被解密、处理,然后以方便易读的形式存储在数据库中,这样 以明文形式存在的数据库就暴露在前四种方式的攻击之中。所以应对存放在数据 库中的数据通过合理的数据库加密系统进行加密保护,使得上述敏感数据面临的 安全问题得到解决。即使攻击者非法入侵到系统中或窃得数据存储介质,没有相 应的密钥,仍然不能窃取和篡改数据。 1 2 数据库加密技术研究现状 1 2 1国外研究现状 美国从七十年代就丌始从事安全数据库的理论研究,到了八十年代,美国发 2 引言 布了“可信计算机系统评估标准( t c s e c ) ”( 桔皮书) ,并于1 9 8 5 发布了其修订 版,书中对安全系统按照四大类划分不同的安全级别并促进了安全数据库管理系 统的研究,之后,一些公司和研究机构如:t r w 公司的a s d ,s e c u r ec o m p u t i n g t e c h n o l o g yc o r p o r a t i o n 的l d v 等也对安全数据库加密进行了深入的研究,提出了 多级安全d b m s 的数据模型、完整机制、多实例问题等的解决方案。进入9 0 年代, 为适应数据库安全技术发展的状况,美国于1 9 9 1 年发布了可信计算机系统评估 标准在数据库管理系统的解释( t d i ) ,极大地推进了安全数据库加密的研刭9 1 。 这些研究,被逐渐地体现到一些关系数据库产品中。近几年来,很多大型关 系数据库系统主要都是通过不同程度地修改d b m s 核心或者在d b m s 外部设立加 密来达到数据库安全的效果。例如,o r a c l e 从8 i 版本开始,逐渐提供出一个p l s q l 包一d b m so b f u s c a t l 0 nt o o l k i t ,专门用来对数据库中数据进行加密。 o r a c l e 的数据库加密方案主要有以下特点: 1 ) 采用d e s ,3 d e s ,m d 5 等加密算法。 2 ) 采用基于字段的加密方式。 3 ) 密钥管理不是很方便,需要应用程序提供解密的密钥。这使得应用程序开 发人员必须自己解决密钥存储和密钥提取的问题。 i b m 公司针对其自身数据库产品,也在做加强数据库安全和加密的工作【l 。 例如,i b m 的z j w a s t o nr e s e a r c hc a t e r 就有这方面的研究。一方面,i b m 从更 加底层来着手解决数据库加密问题,例如与d b m s 紧密结合的安全字典的概念。 另外一方面,i b m 加强了限制d b a 权利问题的研究。实践方面,i b md b 2 从7 2 版本丌始提出一些加密解密函数,可以直接在s q l 语句中使用。d b 2 的数据库加 密功能具有以下特点: 1 ) 采用1 2 8 位的r c 2 加密算法和m d 2 加密算法来实现对数据的加密。 2 ) 可以让一个字段中的所有数据采用同一个密钥,也可以为一个字段中的不 同数据项采用不同的密钥。 3 ) 对数据项加密的密钥实际上就是一个口令,而口令的长度有限,这使得安 全性比较脆弱。 4 ) 密钥的管理,必须由应用程序来完成,d b 2 本身不提供任何管理机制。 同时,s q ls e r v e r 2 0 0 0 、i n f o r m i xc l o u d s c 印e 和a d a p t i v es e r v e ra n y w h e r e8 0 等数据库产品也进行了相关方面的研究和产品的推出,从总体上来说,各个数据 库厂商一般都或多或少提供了数据库加密的解决方案,部分解决了对敏感数据加 密的问题【lo 】。然而,由于各方面的限制,各数据库厂商提供的解决方法都不能够 很好地达到多级密钥设置、定期更换密钥和加密数据的效果。 因此各种主流数据库,除了提出自身的数据库加密解决方案之外,还积极地 3 北京交通人学硕十学何论文 与第三方软件紧密结合,通过各种外围建立数据库加密系统的方法,来解决数据 库加密的问题。在今后的几年中,除了各种数据库自身的数据库加密解决方案之 外,将会出现各种解决数据库加密问题的外f = f 司产品以满足数据库加密的要求。 1 2 2国内研究现状 由于国内的计算机、数据库和网络的应用总体上要比国外落后,所以相应地, 加密数据库的研究与应用也落后国外若干年。在我国,很多公司、企业、甚至国 家部门使用的网络软硬件产品、防火墙硬件、入侵检测产品、操作系统甚至包括 数据库产品在内,都严重依赖国外。国外在其出口到我国的这些产品中是否留有 后门不得而知。因此,国内对数据库加密的需求非常迫切。这是因为,通过对数 据库中的数据进行加密,才可以从根本上、自主地保证数据的安全性。 从加密层次上考虑,采取修改d b m s 内核的方式来达到数据库加密的效果, 对国内研究来说不是很现实。这是因为,修改d b m s 内核的工作量不可低估,同 时这种方式必然需要d b m s 开发商的全力支持,这实现起来相当困难。所以通过 在d b m s 外围构造加密程序包来达到数据库加密的方式,成为国内相关研究的主 要途径。国内有关机构在这方面的研究也是基于这种方式来进行的。 从理论研究上看,在我国高校,清华和华中理工大学在加密数据库的研究方 面起步比较早。从九十年代中期开始,这两个高校对加密数据库进行了一定的探 讨。例如,清华大学在1 9 9 4 年提出密钥转换表的密钥管理方案,提出多级密钥的 思想。而华中理工大学对如何在加密数据库环境下提高查询速度进行了一些理论 探讨,还对分布式环境下数据库加密的密钥管理提出一些见解。还有人提出将网 络的密文传输通信与数据库静态加密结合起来,组成所谓的“网络密文数据库”。 从实践上来看,华中科技大学近期提出的数据库加密系统,能够初步达到对 数据库加密的效果,可以由用户选择加密的表和字段,做到加密对应用程序透明。 但是,其中也存在着一些问题。例如,采用多级密钥管理模式,加密机制过于复 杂。整个加密机制需要硬件支持,处于最高层的主密钥和主密钥变量需要保存在 加密器中,使得系统的易用性受到影响】。 从总体上来说,由于国内在数据库加密方面起步较晚,所以,真j 下在安全性 和易用性方面都达到令人满意的成熟产品尚未出现。然而,作为信息安全方面的 一项重要机会,加速数据库加密系统的研究势在必行。 4 引言 1 3 本文工作 本文研究的主要问题,是研究、开发性能高和扩展性好的数据加密系统。主 要工作放在构建加密数据库模型及构成数据库加密系统模型的各个组件的开发 上。工作内容主要从下面几个方向展开: 1 加密数据库安全模型的研究、分析及实现。在保证加密数据库用户私钥安 全性的前提下,通过一种基于密码引擎、密钥库、密钥清单、密钥管理器、密码 提供者和使用者,还有受保护的数据七个组件之间协调运行的加密系统架构可行 性的分析研究,来实现数据库加密系统,以尽量提高系统的易用性与安全性。 2 选取适当的数据库数据加密算法。以使密码系统具有加解密速度快,安全 强度高的优点,并通过使用合理的二级密钥管理机制来使密码系统达到更好的安 全与管理效果。 3 数据库加密技术中关键技术的研究与设计。对密钥生命周期以及密钥的迁 徙与更换进行了研究,详细分析了关于密钥中库、清单和管理器的使用,研究了 密码引擎以及密码算法的操作模式,并通过密码提供者和使用者之间的沟通分析 了应用程序如何与密码系统进行相应的交互。 本系统以j a v a 为前端开发工具,m y s q l 做服务器后台数据库来完成数据库加 密系统的软件丌发工作,并将上述理论研究的结果应用到系统中,实现相应的功 能,初步达到数据安全的目的。 1 4 本文组织 本文后面的章节结构如下: 第二章介绍了加密数据库的相关概念,并根据当今加密数据库的具体现状和 我国具体实际情况,提出了数据库加密的方式、层次和内容。 第三章基于数据库中数据加密的需要,介绍了当前密码学的基础知识及加密 数据库所选用的典型加密算法的原理及强度,并将对称密钥加密技术和非对称密 钥加密技术各自的特点作了分析和比较。 第四章提出了一种安全的、易用性高的数据库加密机制,详细介绍了密码基 础设施的设计架构以及密码系统中的各个组件,如密钥库,密钥管理器,密码提 供者,密码引擎等,并对密钥生命周期以及密钥清单、库的管理进行了深入研究, 最后对应用程序与密码系统的交互进行了描述。 第五章给出了该加密数据库模型各个组件的实现以及具体的运行情况。 第六章对全文进行了总结并给出了本文加密数据库今后有待解决的问题。 数据库加密技术 2 1 概述 2 数据库加密技术 随着电子商务的兴起,数据的安全问题被提到前所未有的高度。一方面,企 业本身需要对自己的关键数据进行有效的保护;另一方面,越来越多的企业开始 从应用服务提供商( a p p l i c a t i o ns e r v e rp r o v i d e r , a s p ) 处获得应用支持和服务,在 这种情况下,企业的业务数据存放在a s p 处,其安全性无法得到有效的保障。因 为传统的数据库保护方式是通过设定口令字和访问权限等方法实现的,这就留下 一个很大的安全漏洞一d b a 可以不加限制地访问数据库中的所有数据。解决这一 个问题的关键是要对数据本身加密,即使数据的存储时间比较长,相应密钥的保 存时间也随着数据生命周期而定。若所有数据使用同一密钥,则保密性差;假若 不同的元组采用不同的密钥,则密钥太多,造成管理复杂。因此,不能简单采用 一般通用的加密技术,而必须针对数据库的特点,研究相应加密方法和密钥管理 方法。在多级安全加密数据库管理系统中,提供了密码控制手段来保护数据库中 存储的数据。 大型数据库管理系统的运行平台一般是w i n d o w sn t 和u n i x ,这些操作系统 的安全级别通常为c 1 、c 2 纠】。它们具有用户注册、识别用户、任意存取控制 ( d a c ) 、审计等安全功能。虽然d b m s 在o s 的基础上增加了不少安全措施,例 如基于权限的访问控制等,但o s 和d b m s 对数据库文件本身仍然缺乏有效的保 护措施,有经验的网上黑客会“绕道而行”,直接利用o s 工具窃取或篡改数据库 文件内容。这种隐患被称为通向d b m s 的“隐秘通道”,它所带来的危害一般数据 库用户难以觉察。分析和堵塞“隐秘通道”被认为是b 2 级的安全技术措施。对数 据库中的敏感数据进行加密处理,是堵塞这一“隐秘通道”的有效手段。 2 2 数据库加密基本要求 2 2 1加密粒度的选择 数据库加密的粒度一直是一个令人困扰的问题。一般来讲,数据库加密的粒 度可以分为数据库级、表级、记录级和字段级【3 4 1 。根据不同的应用需要,应当选 择合适的加密粒度。 北京交通人学硕十学何论文 1 数据库级加密 加密的对象是整个数据库,这意味着对所有的用户数据表、系统数据表、索 引、视图和存储过程等等都进行加密处理。这种加密方法简单,只需要对存储在 磁盘中的相应数据库文件进行加密处理即可,密钥的数量少,一个数据库只对应 一个密钥,管理方便。但是,数据库数据共享性高,被多个用户和应用共享使用, 需要接受大量的随机访问。如果采用数据库级加密方式,即使用户只需要查询少 量的记录,也需要对整个数据库进行解密,对系统性能会产生极大的影响。 2 表级加密 表级加密是在表一级进行加密,加密解密的对象是整个表。与数据库级加密 比较,采用表级加密粒度,系统的查询性能会有所改善,因为对于未加密表的查 询,与传统查询方法一样,系统性能不会受到影响,在实行表级加密时,可以采 用对存储数据的磁盘块( 页面) 进行加密。但是,这种方法与d b m s 集成时,需 要对d b m s 内部一些核心模块进行修改,包括对词法分析器,解释器和查询执行 器的修改,而目前一些主流的商用d b m s 都不开放源代码,很难把这种方法与它 们集成起来。 3 记录级加密 记录级加密将数据库中的记录看成操作对象,通过调用专门的加密函数,对 页面中记录统一作加密解密处理。与数据库级和表级加密相比,这种加密的粒度 更细,可选择的灵活性更好。比如,一个公司的人事资料,要求对部门经理职位 以上的人员采取加密措旋进行保密,那么可以只选择这些记录加密,而不必要对 所有记录进行加密。 4 字段级加密 加密的对象是关系中的某个字段。字段级加密是一个很好的选择,因为在实 际卜活中,一些重要和敏感的信息往往出现在关系中的某些列,如信用卡号,身 份证号,银行账号等,只需要对这些重要数据进行加密保护,而没有必要对普遍 数据也进行加密。该方法可以对数据库中单个数据元素进行加密。其优点在于具 有最小的加密粒度,具有更好的灵活性和适应性,缺点在于由于工作量大导致加 解密效率不是十分高效。 而字段级加密方法与记录级加密方法相比,具有较高的效率。例如,在记录 加密方法中,为了对记录中的某些属性进行操作,必须先将整个记录脱密,然后 取出特定的数据项进行运算。这显然将严重影响整个数据库的处理能力。而在字 段级加密方法中,可以直接对特定的数据项进行脱密,从而提高了系统的效率。 数据加密通过对明文进行复杂的加密操作,以达到无法发现明文和密文之间、 密文和密钥之间的内在关系。但是,d b m s 要完成对数据库文件的管理和使用, 数据库加密技术 必须要具有能够识别部分数据的条件。因此,只能对数据库中数据进行部分加密。 以下几种字段不能加密【2 7 】: 1 索引字段不能加密 为了达到迅速查询的目的,数据文件需要建立一些索引,不论是字典式的单 词索引、b 树索引或者h a s h 函数索引等,它们的建立和应用必须是明文状态, 否则将失去索引的作用。 2 关系运算的比较字段不能加密 d b m s 要组织和完成关系运算,参加并、差、积、商、投影、选择和连接等 操作的数据一般都要经过条件筛选,这种“条件”选择项必须是明文,否则d b m s 无法进行比较筛选。 3 表间的连接码字段不能加密 数据模型规范化以后,数据库表之间存在着密切的联系,这种相关性往往是 通过“外部编码”联系的,这些编码若加密就无法进行表与表之间的连接运算。 2 2 2加密算法的选择 加密算法是数据加密的核心,加密算法本身的好坏直接影响数据库加密的安 全和性能。一个好的加密算法产生的密文应该频率平衡,随机无重码规律,周期 很长而又不可能产生重复现象。攻击者很难通过对密文频率,重码等特征的分析 获得成功。通常来说,加密算法又对称算法( s y m m e t r i ca l g o r i t h m ) 和非对称算法 ( a s y m m e t r i ca l g o r i t h m ) 。 ( 1 ) 对称算法就是加密密钥能够从解密密钥推算出来,反过来也成立。在大 多数对称算法中,加密密钥和解密密钥是相同的。目前有两个著名的加密算法: d e s 和a e s 。由于对称密钥加密算法一般要比公用密钥算法更快,所以无论是对 少量的数据或者是对大量数据的加密,对称算法都是很合适的。 ( 2 ) 非对称加密算法也被称为公用密钥加密算法,与前者相比,它是一种相 当较新的发明。由可以被公丌分发的公用密钥( p u b l i ck e y ) 和必须作为机密保护 的私用密钥( p r i v a t ek e y ) 组成,一般情况下,公用密钥用作加密密钥,私用密钥 用作解密密钥,比较著名的有r s a ,e 1 0 a m a l 和d i f f i e h e l l m a n 等。 由于加密最早是因保密通讯的需要而产生的,现有的加密算法几乎都是针对 通讯的特点而设计的,至今还没有专门用于数据库加密的加密算法。我们只有根 据数据库系统的特点,将现有的加密算法应用到数据库加密中来。有关加密算法 的选择在第三章将作详细分析。 9 北京交通人学硕j 卜学位论文 2 2 3加密密钥的管理 密钥管理是数据加密技术中的重要一环,密钥管理的目的是确保密钥的安全 性( 真实性和有效性) 。 1 密钥管理系统应具备的特性:一个好的密钥管理系统应该做到: 1 ) 密钥难以被窃取; 2 ) 在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制; 3 ) 密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。 2 密钥管理方式:层次化的密钥管理方式,用于数据加密的工作密钥需要动 态产生;工作密钥由上层的加密密钥进行保护,最上层的密钥称为主密钥,是整 个密钥管理系统的核心;多层密钥体制大大加强了密码系统的可靠性,因为用得 最多的工作密钥常常更换,而高层密钥用的较少,使得破译的难度增大。 3 密钥的生成:密钥的生成与所使用的算法有关。如果生成的密钥强度不一 致则称该算法构成的是非线性密钥空间,否则称为是线性密钥空间。 4 密钥的分配、传递:密钥的分配是指产生并使使用者获得一个密钥的过程; 密钥的传递分集中传送和分散传送两类。集中传送是指将密钥整体传送,分散传 送是指将密钥分解成多个部分,用秘密分享的方法以达到传递的目的。 5 密钥的保存:密钥既可以作为一个整体保存,也可以分散保存。整体保存 的方法有人工记忆、外部记忆装置、密钥恢复、系统内部保存;分散保存的目的 是尽量降低由于某个保管人或保管装置的问题而导致密钥的泄漏。 6 备份、销毁:密钥的备份可以采用和密钥的分散保存一样的方式,以免知 道密钥的人太多;密钥的销毁要有管理和仲裁机制,否则密钥会被有意无意的丢 失,从而造成对使用行为的否认。 2 3 数据库加密的层次 2 3 1操作系统层加密 数据库中的数据最终还是存在操作系统的文件中,所以对数据库加密的一种 可能方式是转化为对数据库文件进行加密。但显而易见,这种方式是不可取的。 假设整个数据库中的数据仅存储在一个文件中( 每个表对应与一个独立的操 作系统文件系统的情形也类似) 。由于操作系统文件是不可分割的,所以这种加密 方式虽然非常易于实现,但是会造成以下问题: 1 为了读取某个或某些数据,就必须对整个加密的数据库进行解密;而有数 1 0 数据库加密技术 据需要插入,也必须对整个加密数据库解密,加入新的数据,然后又对数据库进 行加密。这样的系统响应速度显然不可接受。 2 而且这种对整个数据库进行加密的方式必然会造成频繁的加解密操作。考 虑到加解密操作是消耗一定系统资源的操作,所以这种方式也一定会对整个数据 库系统的性能造成严重影响。 3 频繁的加密解密操作都使用到相同的密钥,必然会形成密钥的反复使用, 从而降低加密系统的可靠性。 4 由于加密是针对整个数据库来做的,关系数据库原有的权限控制视图触发 器等机制将很难实现,这会严重影响关系数据库的优势的发挥。 总的来说,在操作系统层,无法辨认数据库文件中的数据关系,从而无法产 生合理的密钥,也无法进行合理的密钥管理和使用。所以,在操作系统层对数据 库进行加密,对于大型数据库来说,是没有实际意义的。 2 3 2d b m s 内层加密 在d b m s 内核实现加密【3 4 1 ,优点是加密功能增强,并且加密功能集成为d b m s 的功能,可以实现加密功能与d b m s 之间的无缝耦合。对于数据库应用来说,库 内加密方式是完全透明的,数据在物理存取之前完成加解密工作。这种加密方式 如图2 1 所示。 数据库经过多年的发展之后,具有了一个比较稳定的架构。而如果采用修改 d b m s 内核的方式来建立加密数据库系统,必然需要在数据库中建立一些内置的、 基本的加解密原语,进而创立出带有加解密功能的数据库定义语句( d l l ) ,带有 加解密功能的数据库操纵语句( d m l ) 。并且具有如下缺点: 1 ) 对系统性能影响比较大,数据库管理系统除了完成正常地功能外,还要进 行加解密运算,从而加重了数据库服务器的负载。 2 ) 密钥管理风险大,加密密钥与数据库数据保持在服务器中,其安全性依赖 于d b m s 的访问控制机制。 3 ) 加密功能依赖于数据库厂商的支持,d b m s 一般只提供有限的加密算法与 强度可供选择,自主性受限。 北京交通人学硕j = 学位论文 图2 1d b m s 内核层加密关系图 商用数据库厂商对修改d b m s 内核持谨慎态度。因为商用数据库一般都有着 大量的用户。大范围地改动d b m s 会给数据库厂商带来很大的风险。如果由我们 采取这种方式来修改d b m s 内核,存在的问题更加难以解决,因为修改d b m s 内 核的工作量也是不可低估的,而且这种方式必然需要d b m s 开发商的全力支持。 考虑到现实的因素,这种方式也是不适合我们的。 2 3 3d b m s 外层加密 比较实际的做法是将数据库加密系统做成d b m s 一个外层工具( 图2 2 所示) 。 图2 2 中,“加密定义工具”模块的主要功能是定义如何对每个数据库表数据 进行加密。在创建了一个数据库表之后,通过这一工具对该表的加密特点进行定 义;“数据库应用系统”的功能是完成数据库定义和操作。数据库加密系统将根据 加密要求自动完成对数据库的加解密。 采用这种加密方式时【3 4 】,加解密过程发生d b m s 之外,d b m s 管理的是密文。 加解密过程大多在客户端实现,也有的由专门的加密服务器或者硬件完成。 与d b m s 内核层加密方式相比,d b m s 外层加密的优点如下: 1 ) 由于加解密过程在客户端或由专门的加密服务器实现,所以减少了数据库 服务器与d b m s 的运行负担。 2 ) 可以将加密密钥与所加密的数据分开保存,提高安全性。 3 ) 客户端与服务器的配合,可以实现端到端的网上密文传输。 1 2 数据库加密技术 其主要缺点是加密后的数据库功能受到一些限制。例如加密后的数据无法正 常索引,同时数据加密后也会破坏原有的关系数据的完整性与一致性,这些都会 给数据库应用带来影响。 图2 2d b m s 外层加密关系图 权衡的结果,我们将采用第三种加密方式,即考虑在数据库外围构造一个数 据库系统的加解密工具。它与数据库系统有机结合,从而共同构成所谓的加密数 据库系统。 2 4 数据库面临的攻击 构成计算机安全的三个基本因素是机密性、完整性和可用性。机密性的含义 是只有被授权个体才被允许访问信息;完整性保证信息是可信的并且没有被篡改 过;可用性意味着用户可以根据需要随时访问信息并进行数据计算。 数据库系统一般要对付的攻击者有两种类型:外部的和内部的。大多数情况 下,外部攻击者会面临更多的阻挠,他们必须要穿越防火墙、入侵检测系统,然 后在没有任何权限的情况下进入一个未知的网络。内部攻击者的主要优势是他们 身处防火墙内部,并且可以了解到网络拓扑结构的相关信息。因为外部攻击者的 数量相当大,几乎所有企业似乎都更担心他们,但是由于内部攻击者了解了内部 详情并具备一定的访问权限,因而来自他们的威胁往往更为严重。 在内部攻击者中,往往会忽视来自数据库管理员的威胁。数据库管理员拥有 访问数据库中任何数据的权限,他们可以把自己入侵数据库的大部分痕迹掩盖掉, 他们也可以读取和篡改任何数据。 当合理使用加密措施后,就可以显著地减少并消除来自数据库管理员的威胁。 北京交通人学硕十学位论文 2 4 1针对机密性的攻击 大多数支撑大型企业的数据库中都存储有敏感的信息,或者至少有一些不能 公开给所有数据库用户的信息。针对这些信息的机密性攻击就成为企业数据库所 面临的最重要的威胁,通过这种攻击,未经授权的个人就可以访问敏感信息。 许多企业依靠访问控制措施来保护数据库。访问控制是安全措施的重要构成 部分,但在许爹隋况下仅依靠它是不够的。从机密性角度来看,访问控制的一个 明显弱点就是允许数据库管理员查看数据。止l # i - ,如果访问控制措施配置有误, 或者黑客通过破解技术甚至社会工程学获得口令来绕过访问控制的限制,那么它 的保护作用就非常有限了,而且大多数企业都有进入数据库的合法后门,它也不 受严格的安全措施所限制,这些后门包括数据库只读账号、非生成环境中的数据 和备份的数据等,而由此造成的敏感信息的丢失往往会对企业造成很大的损失。 所以,针对数据库机密性的保护就显的尤为重要了。 2 4 2针对完整性的攻击 数据完整性攻击是指篡改数据库中的信息。对于那些存储在数据库中并将在 日后使用的信息来说,完整性攻击的危害性和机密性攻击是一样严重的。在防范 针对完整性攻击时,如何防止攻击者来读取数据并不是关注要点,而应关注如何 防止他们篡改数据库中的内容,或是在这种防范措施失效后,可以知道被篡改的 数据内容。 数据库完整性面临的最主要威胁是任何有悖于企业政策的数据篡改行为所造 成的不当修改。除了之前提到的数据库管理员的威胁外,针对数据库完整性的攻 击方式还有利用窃取的、具有可写权限的账号来破坏有缺陷的应用程序或提升其 他权限较小的账号的权限,然后更改数据库中的数据。 而计算机系统主要依靠两种做法来防止不当修改:一是职责分离,二是只允 许授权用户利用被许可的应用程序来对数据进行修改。如果恰当的、经过授权的 个人利用被许可的应用程序来完成所有操作,系统就会认为这些修改都是可信的。 其中职责分离需要多名人员配合才能完成数据的更改,这是一个数据库管理 系统必须强制施行的策略。用户授权是访问控制系统的任务,虽然它也会涉及加 密,不过不是数据库内部的加密。而个人利用的被许可应用程序中往往存在很多 安全缺陷,如果攻击者利用其中的缺陷使程序误认为他是一个合法用户,则同样 会破坏数据库的完整性,所以应该利用加密数据库系统来防止对数据库完整性的 攻击。 1 4 数据库加密技术 2 4 3针对可用性的攻击 虽然数据库加密并不适用于可用性,但仍有两点需要考虑,第一个是数据库 加密可以在确保安全系数的同时提高可用性,第二个要点则是强调保护密码系统 本身的重要性。 通过提供强有力的保护,加密措旋可以提高信息的可用性,其原因是经过加 密后的信息可以被轻松放置在任何授权用户可以访问到的地方。但是这种防范措 施却经常限制了这些敏感信息或者同一数据库中其他信息的可用性。如果对敏感 数据进行适当的加密,就可以使用户更为容易地访问数据库了,这样数据的可用 性就提高了。 如果在应用程序中集成密码技术,系统将对其中使用的密钥更为依赖。如果 攻击者将自己的密钥加载到系统中,虽然不会使系统瘫痪,但是其中的数据将会 使用他的密钥来加密,之后如果攻击者删除了密钥,系统就会瘫痪。 所以必须小心谨慎地使用密码技术,以免使之成为攻击的另一种手段。必须 给予密码系统足够的重视,否则它有可能成为数据库安全中最脆弱的环节。有加 密保护的数据库可以增强数据库的可用性,即使是一个较为脆弱的系统,只要经 过加密保护,也可以部署在一个不是很安全的位置。因此,密码系统本身更容易 遭受攻击,一旦它失效了,不管是机密性还是完整性,都会面临严重的风险。 1 5 密码学技术 3 密码学技术 随着i n t e m e t 的广泛使用和电子商务技术的普及,对于网络安全提出了更高的 要求,计算机的保密安全研究已经成为一项极为重要的任务。与通讯安全保密相 比,虽然计算机安全保密具有更广泛的内容,涉及计算机硬件,软件以及所处理 的数据等的保密和安全,甚至有自己独特的内容,但与通信安全保密所采用的理 论,方法和技术大致相同,其中最为根本的密码技术是信息安全的核心技术。 在计算机网络中,加密可分为“通信加密 ( 即传输过程中的数据加密,对动 态数据加密) 和“文件加密 ( 即存储数据加密,对静态数据加密) 。 加密的基本功能,一是实现身份认证,从而保证实体安全;二是实现可信性 和完整性,从而保护数据。 按密钥管理方式的不同来分,密钥体制可以分为对称密钥体制和非对称密钥 体制两个密钥体制。 3 1 对称密钥 3 1 1对称密钥工作原理 所谓对称密钥体制,就是加密和解密使用同一个密钥,即使不同,也可以有 一个推导出另一个。在做安全化的通信之前,通信双方必须商定通信要使用的密 钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接受方接收到数据 后,用对方所给的密钥进行解密。算法流程图如图3 1 所示。 发送方与接收方发送方与接收方 共享的密钥共享的密钥 明文土 密文 土 明文 加密算法解密算法 发送方 接收方 图3 - 1 对称密钥算法流程图 1 7 北京交通人学硕十学位论文 现代的对称加密算法主要有两种类型:块加密和流加密。块加密每次是对一 组固定比特长度的数据进行加密,而流加密则是在数据流传入时按照每个比特逐 次加密的。在块加密中,原始数据首先被拆分成相应大小的不同块,然后再应用 加密算法对每一块数据进行加密。而在每块数据的处理方式上存在很多模式,使 得块加密可以在不同情况下被安全的使用。而流加密优于块加密的就是它避免了 数据填充的工作。针对加密类型的选择在加密中视情况而定。 而对称密码系统的安全性主要依赖于以下两个因素。第一,加密算法必须是 足够的强,仅仅基于密文本身去解密信息在实践上是不可能的;第二,加密方法 的安全性依赖于密钥的秘密性,而不是算法的秘密性,因此,我们没有必要确保 算法的秘密性,而要保证密钥的秘密性。对称密钥算法的优点在于效率高,算法 简单,系统丌销小,适合加密大量数据。它的主要缺点式密钥管理比较困难,必 须有一种安全的密钥交换方式,这通常很难实现。 3 1 2a e s 和d e s 算法 下面着重介绍其中的两个著名算法3 】:数据加密标准d e s 和高级加密标准 a e s 。 1 d e s 密码算法 数据加密标准d e s 是一种世界范围内广泛使用的以密钥作为加密方法的加密 手段。与其他的加密方法一样,加密方与解密方必须使用相同的密钥,所以d e s 算法也属于对称算法。它的算法是对称的,既可以用于加密又可以用于解密。 d e s 密码算法输入的是6 4 比特的明文,在6 4 比特密钥的控制下产生6 4 比特 的密文;反之,输入6 4 比特的密文,输出6 4 比特的明文。6 4 比特的密钥中含有 8 个比特的奇偶校验位,所以实际有效密钥长度为5 6 比特【l7 1 。 由于d e s 算法自身安全性的原因,为了提高d e s 算法的抗攻击性,提出了 t r i p l e d e s 算法。t r i p l e d e s 算法的基本原理是用两个密钥对数据进行3 次加解密 运算,即首先使用第一个密钥对数据进行加密,然后用第二个密钥对其进行解密, 最后用第一个密钥再加密。这两个密钥可以是同一个,也可以不同,它们也可以 来源于一个1 2 8 位密钥,只是再加解密时将其分割成两个6 4 位的密钥,分别轮换 用该两个6 4 位密钥去完成加解密运算。t r i p l e d e s 算法保留了d e s 算法运算速度 快的特点,通过增加运算次数和密钥长度( 两个6 4 位密钥相当于1 2 8 位密钥) 来 增加破解者的破解时问,但是从密码学本身上米讲,其安全强度并没有随其加解 密增加而增加。 密码学技术 2 a e s 密码算法 a e s 为分组密码体制,分组长为1 2 8 比特,密钥长可以为1 2 8 、1 9 2 和2 5 6 比 特3 种。a e s 加密算法的数据处理单元是字节,1 2 8 比特的分组信息被分成1 6 个 字节。a e s 算法中引入矩阵的概念,分组的1 6 个字节按顺序被复制到一个4 * 4 的 矩阵中,称为状态( s t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年购买决策分析师招聘面试参考题库及答案
- 2025年新媒体经理招聘面试题库及参考答案
- 2025年幸福管理专员招聘面试题库及参考答案
- 2025年数据库管理专员招聘面试参考题库及答案
- 2025年战略投资经理招聘面试参考题库及答案
- 铁路试验工程师考试题库及答案
- 2025年市场研究分析员招聘面试参考题库及答案
- 2025年外籍人才招聘专员招聘面试参考题库及答案
- 2025年Python工程师招聘面试题库及参考答案
- 2025年图书馆管理专员招聘面试参考题库及答案
- 2025宁夏回族自治区大学生乡村医生专项计划招聘工作人员13人考试笔试模拟试题及答案解析
- 学校食堂满意度测评及管理方案
- 2025安徽清水街道招聘就业专干6人笔试考试参考试题附答案解析
- 小学语文教师素养大赛知识素养试题
- 北京市海淀区2025-2026学年高三上学期期中地理试题 含解析
- 商户消防安全培训课件
- 可靠性工程师培训讲义
- 教科版五年级科学《光的反射现象》
- JCT2112-2012 塑料防护排水板
- 110kV线路运维方案
- 北京第十三中学分校2023-2024学年九年级上学期期中物理试卷
评论
0/150
提交评论