(计算机软件与理论专业论文)secureoscar身份认证系统的设计.pdf_第1页
(计算机软件与理论专业论文)secureoscar身份认证系统的设计.pdf_第2页
(计算机软件与理论专业论文)secureoscar身份认证系统的设计.pdf_第3页
(计算机软件与理论专业论文)secureoscar身份认证系统的设计.pdf_第4页
(计算机软件与理论专业论文)secureoscar身份认证系统的设计.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机软件与理论专业论文)secureoscar身份认证系统的设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硬士研究生毕业论文 摘要 数据库管理系统是保护信息安全的关键。s e c u r e o s c a r 作为国产大型数据库管理系统 0 s c a r 的安全数据库版本,使用身份认证与访问控制、审计、加密及入侵检测等技术共同 确保数据库的安全。 数据库身份认证是数据库服务器通过某些途径确认是否允许客户端以它所声称的用户 名进行连接的过程。数据库的身份认证是数据库安全的第一道屏障。本论文详细讨论了 s e c u r e 0 s c a r 身份认证系统的设计,及其关键部分的实现。 本文首先分析了数据库身份认证系统的安全威胁,提出一个安全威胁模型。并研究了各 种威胁的对抗措施,结合s e c u r e o s c a r 数据库安全的其他技术,提出一个理想的对抗模型。 随后本文论述了s e o s c a r 身份认证系统的体系结构以及它的各个组成部分,包括 代理认证、数据库认证、外部认证、p a m 认证机带0 等,并专门讨论了对数据库管理员的身 份认证的设计。这些机制使用成熟的认证技术结合数据库的加密机制共同来确保身份认证 系统的健壮。 在本文接下来的四章中分别详细论述了其中代理认证机制、基于口令的认证机制、基于 指纹的认证机制、r a d i u s 认证机制、s s l 认证机制和p a m 认证机制的设计与实现。在设 计与实现中,详细分析了每种认证机制的优点与不足,根据威胁与对抗模型,重点解狭用户 信任凭证的安全存储、安全传输及认证协议本身的安全性等问题。 本文的最后是全文的总结,对研究的创新性及实现特点进行了概括与总结对 s e 乱 e 0 s c a r 身份认证的改进作了展望。 关键字:数据库安全s e c u r e o s c a r 身份认证威胁模型口令认证操作系统认证 指纹认证r a d i u ss s lp a m 浙江大学硕士研究生毕业论文 a b s t r a c t d a 扭b a s em a n a g e m e n ts y s l e m s ( d b m s ) i st h ek e yt 0e n s u r et h es e c 皿t yo fi n f o r m a t i 彻 o s c a ri sal a r g es c a l e 出髓i b 髂em a n a g e m e n ts y s t e m ,a n ds e c u r e - o s c a ri s 也es e c u r ev e r s i o no f o s c a r i ns e c u r e - o s c a r 、i m p l e i n e n t e dt h es 订o n ga u t l l e n t i c 鲥o n ,a c c e s sc o n 廿0 1 ,a u d n , e n c r y p t i o n 鲫di n t m s i o nd e t e 甜o nm e c h a i i i s m s a l lt h e s et e c h n o 】o g i e sa r eu 驼dt oe n s u r e 血e s e c 嘶t vo f s e c i l f e 0 s c a r d a t a b ea u m e n t i c a t i o ni st l l ep r o c e s sb yw h i c ht h ed a 扭b a s es e e re s t a b i i s h e st h ei d e n t i t y o ft 1 1 ec l i e n t ,a n db ys o m et e c h o n 0 1 0 9 i e sd e t e m i n e sw h e m e r 也ec l i e n t 印p l i c a t i o n ( o rt h ei l s e r s w h om n st h ec i i e n ta p p l i c d d o n ) i sp e m i n e dt oc o n n e c tw t l l eu s e rn 锄et h a tw 髂r e q u e s t e d a u t h e n t i c a t i o ni nd b m si s 出s en r s tb a r r i e rt od e f 色n s et h ea n “b i nt 1 1 i sp 8 p e rw ed i s c u s st h e d e s i g no fe a c ha u t h e m i c a t i o nm e c h a n s i mi ns e c u r e o s c a r ,锄da n a l y s et h er e a l i z a t i o no f s o m e e s s e n t i a lp a r t s w ef i r s ta n a l v s et h es e c u r i t v 血r e a t st h a ta 、l t 埒眦i c a t i o no fd b m sm u s tf k ea n di n 奸o 、传 输组件( t r a i l s p o r t ) 、验证组件( v e f i c a t l o n ) 四个相对独立的部分组成 1 】( 图1 i ) ,这四 部分一起工作来提供高效、可靠的用户身份认证服务。 图1 1 基本身份认证模型: a a u t h e n t i c a t o r s 是由个体提供的用来证明身份的证据。可以是秘密信息、物理对象或 者其他唯一的特征。 b i n p u tc o “p o n e n t s 是指用户和认证系统的接口,一般是计算机键盘、读卡器、视频采 浙江大学硕士研究生毕业论文 集仪器或其它相似的设备。 c t r s p o r t 身份认证的传输部分,负责在输入组件和能验证用户真实身份的组件之间 传递数据。传输可能发生在网络,也可能是在计算机内部。 d v e r i 丘c a t i o nc o m n e n 忸验证组件,用存储的用户账户信息与企图进入系统的用户提 供的身份标识信息进行比较,来确定用户身份的合法性。用户账户信息可以是存储在一个 专门的认证服务器或个人计算机中。 如果验证组件确认了用户的身份,身份认证系统将提供临时的信任凭证,授权用户访问 数据或服务,以及执行一定的操作。 需要强调的是,这个基本模型只是为了形象的说明身份认证系统的四个主要部分。事实 上,这些组件可能是存在于一台计算机上也可能是分布在网络上的多台计算机上。随后我们 将根据这个基本模型提出一个数据库身份认证的模型。 1 1 2 身份认证基本途径 根据认证因素与用户的关系,身份认证可以分为以下四类: 基于用户所知道的( w h a t y o u l ( i l o w ) 。比如知识、口令、密码等。 基于用户所拥有的( w h a t y o uh a v e ) 。比如智能卡、令牌等。 基于用户的个人特征( w h a l y o ua r e ) 。比如指纹,笔迹,声音,视网膜,虹膜。 双因素、多因素认证。以上三种认证方式的结合。 1 1 3 数据库身份认证的定义 数据库的身份认证是指数据库服务器建立客户端应用的标识,然后通过一些手段判断 是否允许此客户端应用( 或者运行这个客户端应用的用户) 与它所要求的用户名进行连接的 过程 38 。主要由以下三步组成: 1 、用户提供一个身份标识给数据库。例如输入用户名。 2 、要证明该用户剐才提供的身份标识是有效的,数据库需要用户进步提供认证凭证 并对此进行确认。例如:用户提供个口令,由数据库来检查口令是否与提供的身 份标识匹配。 3 、如果用户提供的信任凭证是正确的,数据库确认该身份标识是可信任的。就进入到 数据库授权与访问控制阶段。数据库服务器根据这个标识确定这个用户的权限,用 户所执行的操作都要由用户的权限来决定的。 数据库身份认证是数据库安全的基础。如果不能正确验证用户的身份就不能进行正确 的授权和实施必要的访问控制,也不能进行审计操作。数据库身份认证是通过“阻止,技术来 保障数据库安全的重要方法。 1 1 4 数据库身份认证的特点 数据库身份认证有以下特点: 用户具有不确定性。 除了常规比如h o s t - b a s e d ,c l i e 州s e r v e r 结构下的身份认证手段外,随着网络环境 2 下数据库多层应用的发展,必须要考虑新的认证机制。 攻击者通过网络对身份认证的攻击方法越来越多。越来越隐蔽。 在身份认证系统的设计上,大量加密算法的应用,葑须考虑加密的效率与可靠性的 关系。 因此数据库身份认证的设计必须考虑更全面的保障手段,确保信息的完整性、不可否认 性,避免用户身份的伪造、篡改、抵赖、冒充等,还要考虑认证过程对系统性能的影响。 1 2s e c u r e o s c a r 身份认证威胁模型 s e c u r e - o s c a r 安全数据库是有自主知识产权的大型国产数据库管理系统o s c a r 的安 全版本。主要应用于航天、军事等涉及国家信息安全关键领域的信息系统中。一旦爆发军事 战争,这些领域的信息系统将面f 临信息战的严峻考验。在这种特殊环境下,数据库的威胁 2 】 主要有: 信息战下,任何正常的访问措施都可能被攻破,即使拥有非常强大的身份认证和访 问控皋4 措施,也不能对其完全信任。 内部的授权用户甚至管理员用户可能因为贪婪或心情沮丧成为攻击者,攻击者也可 能获取合法用户的身份,获得对应的授权。 数据库周边的所有设施,包括操作系统、存储设备、网络设备等都有可能成为攻击 目标,从而间接地威胁数据库系统。 所有这些手段都可能导致数据泄露和破坏,而数据库的完整性约束和事务管理等等 措施又会导致这些数据污染进一步扩大。 s e c u r e - o s c a r 身份认证威胁模型: 通过对特殊环境下数据库身份认证的威胁进行分析,提出图1 2 表示的s e c u r e o s c a r 身份认证威胁模型,在图中我们用( 1 ) 、( 2 ) 、( 3 ) 、( 4 ) 、( 5 ) 来表示攻击点,即攻击可能发 生的位置。 浙江大学硕士研究生毕业论文 级 数据库管理系统 i 豳1 网 外部认证 r 络 服务( 3 ) ( 4 ) 身 份 认 5 ( 1 ) 证 数 系 据 统 库 ( 4 ) 一其 应用 他 1 。程序 部 ,1 7 服务 分 )器f 5 1 图1 2s e c u r e - o s c a r 身份认证威胁模型 下面我们根据攻击点来描述身份认证系统的威胁因素: 攻击点( 1 ) 是指认证因素的威胁。攻击者通过获取用户口令等的手段,来获取用 户身份认证的信息并以此用户的身份进入d b m s 中。 攻击点( 2 ) 是指身份认证内部管理的威胁。比如管理员滥用权力新增、修改、删 除用户认证信息,修改系统认证策略,泄露用户认证信息,或是提升用户的权限等。 攻击点( 3 ) 是指对外部认证服务的威胁。使用外部认证服务( 如k e r b e r o s 、l d a p 目录服务等) 时认证服务可能遭受攻击,使得其产生错误的认证决定允许非 法用户登录系统或拒绝合法用户登录系统或者是拒绝服务;存储在外部服务中的认 证信息可能被窃取导致信息泄露,使得攻击者可以以合法用户的身份登录。 攻击点( 4 ) 是指对认证机制的威胁。需要强调的是对于认证机制的攻击主要是指 那些不涉及破解底层密码算法的攻击,而是利用认证协议设计上的缺陷进行的攻 击,主要有截获在网络中传输的认证信息进行欺骗,或者对认证信息进行篡改,或 将合法用户的认证信息泄露以及底层操作系统的影响等。 攻击点( 5 ) 是指三层数据库结构下特殊的威胁。在三层应用中,面临着如何高效 的连接应用程序用户与数据库,满足高吞吐量的要求,以及提供端对端的安全性: 而且涉及大量用户账户的管理,权限的授予及中间服务器的认证与授权等重要问 题。 1 3 s e c u r e - o s c a r 身份认证安全威胁对抗模型 1 3 1s e c u r e 一0 s c a r 身份认证对抗模型 根据上面的论述,并结合s e c u r c ,o s c a r 安全数据库威胁模型与对抗措施分析【5 】,我们 4 浙江大学硕士研究生毕业论文 提出了s e c u ”o s c a r 身份认证理想对抗模型如图l - 3 所示。 三权分立管理员数据库管理系统 瓜 安全步 部 认证朋务 隧潮1 愿- 糟珊 内 常 规 - i入侵检测 潮1 即 身 份 始蝴员愈 网 认 隧潮 琦 r证 系统管理员 一一 一 & 。 v _ 一 安全审计 用尸 & 一 应用 程序 代理 服务 认证 器 用户 1 3 2 对抗措旌 物理隔离环境 图1 3s e c u r e - o s c a r 身份认证的理想对抗模型 1 3 2 1 安全认证机制 系统将成熟的认证技术与数据库其他安全特性相结合,提供多种安全的身份认证方式。 常规的身份认证机制包括安全口令认证、指纹认证、s s l 认证等。针对威胁( 1 ) 、( 4 ) 。 针对数据库三层结构的广泛应用中面临的问题,引入了代理认证的机制。针对威胁( 5 ) 。 在认证机制的设计中,我们使用威胁建模技术,对每种认证机制的威胁进行分类,借此 制定完整的安全策略来对抗系统所面临的威胁。针对威胁( 4 ) 。 1 3 2 2 人为干预措施 人为干预是实现信息安全的最有效的措施,对于身份认证系统来说可以通过以下人为手 段来保障安全: 对数据库身份认证核心服务实行物理隔离,数据库服务器不允许直接物理接触。针 对威胁( 3 ) 、( 4 ) 及时更新操作系统补丁t 防止操作系统控制权被非法获得进而更改系统的身份认 证策略。针对威胁( 4 ) 。 浙江大学硕士研究生毕业论文 在用户注册阶段,严格审核用户,加强对管理员和一般用户审查。针对威胁( 1 ) 、 ( 2 ) 。 1 3 2 3 权力分立 采用最小权限准则将系统管理员、系统安全管理员与系统审计管理员的职责分离,并分 派专人行使权力,使其不能互相干预,防止管理员滥用权力。针对威胁( 2 ) 。 1 3 2 4 审计和入侵检测 对用户的认证信息提供全面、详细且可分析的审计记录,并防止审计信息造成的信息泄 露。针对威胁( 2 ) 、( 4 ) 、( 5 ) 。 通过对行为、安全日志或审计数据或其它网络上可以获得的信息进行操作,检测到对身 份认证系统的攻击或攻击的企图。针对威胁( 4 ) 、( 5 ) 。 1 4s e c u r e o s c a r 身体认证体系结构 s e c u m o s c a r 实现了中华人民共和国公共安全行业标准计算机信息系统安全等级保 护数据库管理系统技术要求中第三级以及美国国防部发布的可信计算机系统评价标准之可 信数据库说明t c s e c 厂r d i 中bl 级( 安全标记保护级) 的要求。该安全级别的数据库管理 系统,要求必须设计和实现更强的身份认证,以生物特征( 如虹膜、指纹等) 认证和数字证 书认证相结合的方式,采用多鉴别机制,对用户身份的真实性进行鉴别 6 】。据此要求,结合 现有身份认证技术,针对上一节中描述的对抗措施。我们设计如下的s e c u r e o s c a r 身体认 证系统。 1 4 1 总体结构 图1 4s e c u r e - o s c a r 身份认证系统结构 其中: 数据库认证,是指用户身份认证信息存储于数据库服务器内,并由数据库服务器来 6 浙江大学硕士研究生毕业论文 执行标识用户身份和鉴别用户的功能。主要实现了基于口令的认证和安全的指纹认 证。 外部认证,是指由操作系统、网络上第三方认证服务器,或者需要第三方支持的认 证。主要包括操作系统认证、r a d i u s 认证及s s l 认证。 p a m 认证机制,是指可插入认证模块。主要用来对将来新认证机制的支持,用户 可以在不修改应用程序的基础上,进行认证方式的扩充。 代理认证机制,与上面所述的常规认证方式相比,这是数据库身份认证的特有方式, 主要是指中间层服务器代替数据库服务器对用户的身份进行鉴别,中间层服务器的 身份鉴别则由数据库服务器实施。 1 4 2 数据库认证 数据库认证是指认证机制所使用的用户信息存储在数据库系统内,比如用户口令与指纹 信息等。在s e c u r e - o s c a r 中,我们在数据库的安全系统表存储这些信息。在数据库认证中, 管理用户账号、口令和鉴别用户的工作都将由数据库管理系统来完成。 数据库认证的优点: 用户账户和所有的鉴别过程都由数据库管理系统独立控制,不依赖于数据库以外的 任何服务。 数据库系统提供了严格的管理机制来增加认证机制的安全性。 当系统用于较少用户规模时,这种方式便于管理。 s e c u r e - o s c a r 中的数据库认证包括口令认证机制与指纹认证机制。 1 4 2 1 口令认证 基于口令的认证是应用于数据库系统的最常见的初始的单向认证机制。要使用口令认 证,在创建用户时,必须要关联口令。口令是用户在尝试连接时必须提供的,借此来防止非 授权使用数据库。在s e c u r e o s c a r 的实现中,数据库以加密的方式在安全系统表中存储口 令- 用户可以随时更改口令,数据库系统保持口令在任何情况下都是加密的不直接暴露。 口令机制实现起来简单,不需要额外的硬件支持。但是口令易于被偷盗,遗忘和泄露, 所以通常还要包括以下管理策略: 传输加密 账户锁定 密码生命期和终止期 口令历史 密码复杂性检查 1 4 2 2 安全指纹认证 指纹认证是指使用指纹识别技术对用户身份进行确认,近年来已得到快速的发展和普 及。与口令认证相比指纹认证具有以下的优点 7 】: 指纹不能被猜测。 7 浙江大学硕士研究生毕业论文 用户不用考虑自己想出一个强壮的指纹,其安全性不依赖于人为因素。 用户不可能忘记指纹信息,在实现上排除了相应机制的支持。 用户把自己的指纹给别人的可能性很小,与口令相比不易受到社会工程方面攻击。 因为指纹是一个物理特征,而不是一些必须要记忆和携带的信息,对用户来说很方 便,而且不会象其他认证方法一样被滥用。 s e c u r e 0 s c a r 中实现的安全指纹认证,利用数据库的加密机制,将用户注册的指纹模 板信息加密存储在系统用户表中,加密密钥利用数据库的密钥管理机制结合用户口令进行安 全保护。在用户认证过程中,拥有数字证书用户还可以使用s s l 对指纹信息的传输进行保 护,没有数字证书支持的用户,则必须使用系统口令认证产生的会话密钥,对传输进行保护。 1 4 3 外部认证 外部认证是指数据库只保留用户账户,认证信息则由外部服务管理,某些机制的鉴别也 可以由外部服务来完成。s e c u r e o s c a r 的外部认证机制主要有操作系统认证、s s l 认证【8 和r a d i u s 认证【9 】。外部认证有眺下的优点: 更多的认证机制可必选择。 许多的网络认证服务支持s s o ,这意味着用户可以只记忆少量的密码。 使用外部认证,可以减轻数据库系统管理的负担,同样达到和使用数据库认证一样 的效果。 1 4 3 1 操作系统认证 操作系统认证是指数据库使用操作系统账户信息和认证机制来对数据库用户进行身份 认证。默认情况下,只有用户登录是在安全连接的保护下,数据库才允许使用操作系统认证。 这种限制是为了防止一个远程用户通过网络来模仿操作系统用户。操作系统认证的一般过程 是:先在操作系统建立一个用户群,分配其相应的数据库权限,然后将具备这种权限的用户 加入到这个群中,并在数据库系统用户表对这些用户进行记录。 操作系统认证的优点: 一旦被操作系统认证后,用户可以更方便的连接数据库,不需指定用户名和密码。 用户的身份认证在操作系统的集中控制下,数据库不需要存储和管理用户的口令等 信息,仅需保留用户名。 在数据库和操作系统中的审计纪录都使用相同的用户。 但是当使用操作系统来认证数据库用户时,系统必须要满足: 在操作系统中,数据库管理员必须有新建和删除文件的权限。 一般的数据库用户不应该有新建和删除数据库相关文件的操作系统权限。 如果操作系统分派给用户数据库权限,数据库安全管理员必须要有修改操作系统账 户域的权限。 1 4 3 2s s l 认证 s s l 认证 8 】系统基于p 机制发给用户的数字证书,使用数字证书通过s s l 协议来与 浙江大学硕士研究生毕业论文 数据库服务器进行认证,而不需要专门的认证服务器。s s l 除了认证用户外。还提供了网络 数据安全和数据完整性保证。可以用于多种类型的连接。特别适用于网络环境下数据库的三 层应用中的身份认证。 s e c u r e o s c a r 通过实现一系列p k i 组件,来对s s l 认证进行支持。主要有: l 、s s l 协议实现。用于实现身份认证和建立安全的通信链路。 2 、专门的函数调用接口。包括对证书容器的搡作接口,使用私钥和证书对用户指定的 数据进行签名和使用一个信任证书来验证数据上的签名的接口等。 3 、证书容器:p k c s # 1 2 格式的证书存储数据结构,存储用户私钥、x 5 0 9 数字证书与 信任c a 证书链等。这个证书容器使用用户口令作为密钥利用3 d e s 算法对私钥进行加 密【2 4 】【1o 】【1 1 。 4 、证书容器管理工具:一个独立的应用程序,用来管理和编辑容器内的证书、私钥等 等,隐藏了用户管理私钥和证书的复杂性。 s s l 认证的优点: 证书可以唯一的标识一个组织内的一个个体,从而可以提供强认证。同时不用记忆多个 口令,用户只需要记住打开其证书容器的口令。证书容器内的证书和私钥可以用在多项服务 中认证用户,包括应用程序服务和数据服务。并且不需要管理和存储用户本地口令。 1 。4 3 3r a d i u s 认证 r a d i u s ( r e m o t ea u t h e n t i c a t i o nd ia 1 i nu s e rs e r v i c e ) 远程认证拨入用户服务是一个在 网络接入服务器( n e t w o r ka c c e s ss e r v e r ) 和共享认证服务器间传输认证、授权和配置信息 的工业标准协议。r a d i u s 用户的信任凭证和访问信息存储在一个r a d i u s 服务器中,通 过这个外部服务器来进行用户认证,授权和计账 9 】。 在s e “r e o s c a r 中,实现了r a d i u s 客户端协议,主要用来对兼容r a d i u s 标准的 智能卡、令牌及动态口令硬件的支持。 r a d i u s 主要特征如下: 客户服务器模式;网络接入服务器( s e c u r e o s c a r 数据库服务器) 作为r a d i u s 的客户端,负责将用户信息传递给指定的r a d i u s 服务器,然后根据返回信息进 行操作。r a d r u s 服务器负责接收用户连接请求,认证用户后,返回所有必要的 配置信息以便r a d i u s 客户端为用户提供服务。r a d i u s 服务器可以作为其他 凡d i u s 服务器或认证服务器的代理。 网络安全:r a d 兀j s 客户端与r a d i u s 服务器之间的通信是通过共享密钥来实现 的,这个共享密钥不会通过网络传送。此外,任何用户口令在r a d i u s 客户机和 r a d i u s 服务器问发送时都需要进行加密过程,以避免有人通过嗅探非安全网络 得到用户密码。 灵活认证机制:r a d i u s 服务器支持多种用户认证方法。当用户提供了用户名和 原始口令后,r a d i u s 服务器可支持p p p 、p a p 、c h a p 、u 1 岍x 登录和其它认 证机制。 协议的可扩充性:所有的事务都是由不同长度的“属性一长度一值,的三元组构成 的。新的属性值的加入不会影响到原有协议的执行。 9 1 4 4 数据库管理员的身份认证 在数据库管理系统中。管理员扮演着极其重要的角色。它执行一些不能由普通用户执行 的特殊操作,比如打开,关闭数据库服务等。正因为管理员的特殊性- 在s e c u r e 旬s c a r 系统 中专门设计了对管理员的认证。 数据库管理员的认证方法: 将数据库的管理分为远程管理与本地管理。对远程管理,如果要使用操作系统认证,必 须使用安全的连接服务。否则无法使用操作系统认证。对非安全连接的远程管理首选是安 全的指纹认证方式,最后才是安全口令认证。本地管理可以使用三种的任何一种( 图1 5 ) 。 1 4 5p a m 认证机制 图1 5 管理员认证的设计 p a m 妒l u 鳄a b l ea u l l l e n t i c a c i o nm o d u l e s ) 可插入的认证模块,用于实现应用程序的认证机 制,程序员或管理员不需要重新编写或编译程序就可以改变认证机制。它最大的优点是它的 弹性和可扩充性。你可以随意修改认证机制,按你的实际需要来定制身份认证系统( 1 2 】。 s e c u r e - o s c a r 实现了p a ma p i 函数,结合p a m 底层库一起提供对p a m 机制的支持。 在第5 章我们将详细介绍这种机制。 1 4 6 代理认证 代理认证是三层结构数据库应用的一个重要的安全特征,是通过中间层代替数据库认证 用户的能力。中间层通过用户信任凭证来鉴别需要访问数据库的用户的真实身份,而不需要 每个用户都拥有一个单独的数据库连接。代理认证能阻止非授权用户通过网络和中间层来访 问数据库数据,从而保护数据库的安全。在三层环境下,代理认证还能够控制中间层应用程 序的安全,并能进行审计【2 3 】 3 7 】。 代理认证的优点: 有限信任模型。可以控制连接到中间层并由中间层代理认证的用户的数量和赋予他 们的权限。 1 0 浙江大学硕士研究生毕业论文 支持轻量级用户线程,减轻了数据库重新认证用户的负担。 通过提供真实用户的身份标识给数据库系统,可以对中间层所代理的用户的操作进 行审计。 能过代理认证可以方便的将用户分为数据库用户和应用程序用户,分别进行管理。 塑垩查堂堡主竺塑皇竺些兰壅一 第2 章代理认证机制的设计 2 1 三层体系结构下数据库身份认证 客户端 服务器 应用程序 网络 应用服务器 数据库系统 图2 1 三层体系结构 三层体系结构下( 图2 1 ) ,客户端只作为一个前端并且不包含任何直接的数据库调用。 客户端通过应用程序界面与一个应用服务器进行通信接着应用服务器与数据库系统通信以 访问数据 3 8 】。 在c ,s 结构下,数据库知道哪个用户正在连接,并能够实施相应的安全能力,比如特殊 的访问控制与审计等。而在三层体系结构下,用户则不能象c s 结构下那样,通过单独的账 户直接与数据库采用1 :1 的映射模型相连,其主要原因有以下两种情况【3 6 1 【3 7 1 【2 3 】: 口令安全性问题。在三层结构下,应用程序如果通过使用每个用户的单独账号将应 用程序用户直接连接到数据库,则需要应用程序要掌握用户的数据库口令,给口令 管理带来安全问题。所以应禁止应用程序掌握用户的口令。 资源的限制是另一个关键因素。三层结构支持大量的终端用户,如果用户连接到数 据库时通过为每个用户建立一个专门的数据库连接的方式,则很快就会耗尽应用 程序服务器及数据库的内存和其他资源。 2 2 代理认证的定义 为解决上面描述的两个问题,在我们的系统中引入了代理认证的机制。通过指定的中间 层可以代替特定用户群的认证一旦中间层被数据库认证后,它建立一个轻量级的线程来代 理用户而不用提交用户特定的认证信息比如口令等。此外,中间层在代理用户操作数据库时, 还可以被赋予一定的角色集。数据库使用中间层的标识和用户的标识一起来决定授予中间层 什么样的权限。 1 2 代理认证能够通过应用程序服务器代替终端用户连接到数据库而没有管理口令信息的 风险,并且能够限制角色,保证通过应用程序连接的用户的最低权限。代理认证性能的问题 可以通过连接池技术解决。连接池是指预先通过代理账号建立一组应用程序服务器到数据库 连接,当新的请求到来时,应用程序服务器从连接池中选取一个连接,执行相应的查询操作, 完毕后再将连接放到池中由以后的调用使用 3 7 。 2 3s e c u r e o s c a r 代理认证的结构 堑婚女+ 提挥镕b - 蜊据库服务器 中间层认 证机制 图2 2 代理认证结构 图2 2 描述了数据库代理认证的结构【3 6 】 3 7 】。包括客户端、中间层服务器、相应的认 证机制、数据库服务器和授权服务器。 客户端认证机制是用来认证需要通过中间层服务器访问数据库服务器的每个客户端,其 中的认证方式包括用户名口令机制,数字证书及其他的认证技术等。客房端认证结束后, 它的身份标识通过客户端认证机制送到中间层服务器。 中间层服务器为了建立自己以及所代理用户的数据库连接会话,就必须要通过数据库的 中间层认证机制。认证结束后将中间层服务器的身份标识发送给数据库服务器。中间层认证 机制可以与客户端认证机制相同或不同。 授权服务器一般为l d a p 目录服务器,是系统可选的,授权服务器存储客户端和中间 层服务器的授权、角色等信息。数据库服务器将认证过的客户端、中间层服务器的身份标识 发送到授权服务器,授权服务器返回实体的授权及角色信息。 浙江大学硕士研究生毕业论文 2 4s e c u r e o s c a r 代理认证的流程 客户端连接到 中间层服务器 t 中间层对客户端进行身份认证 客户端通过中间层服务器 进行连接 t 中阀层服务器连接到 数据库服务器 t 数据库服务器认证中间层 服务器的身份 t 数据库服务器发送信任凭证给 中间层服务器 v 中间层使用信任凭证和客户端 i d 建立连接到数据库的会话 0 中间层服务器在自己的会话和 客户端的会话之间切换 图2 3 代理认证流程 1 4 浙江大学硕士研究生毕业论文 2 5s e c u r e o s c a r 代理认证的方式 代理认证支持以下四种方式: 仅提供用户名的代理认证 提供用户名和口令的代理认证 提供用户的唯一名称( d i s t i i l g u i s h e dn 咖e ) 的代理认证 提供用户x 5 0 9 证书的代理认证 2 5 1 提供单用户名代理 在这种模式下,中间层只传送用户名到数据库服务器,而不需要其他的信任凭证。应用 程序在代理发生时只需要知道要代理什么用户。这种机制需要相应的数据库系统的特权来保 证安全性。 2 5 2 提供用户名和口令的代理认证 在这种模式下,通过提供用户名和相应的数据库口令来进行代理。这与一般的数据库连 接最大的不同在于:代理认证能够限制应用程序的角色。并且这种方式下如果用户不能提供 数据库口令代理将不能发生。 2 。5 3 提供用户唯一名称的代理认证 在这种模式下,用户提供一个d n ( d i s t i n g 城s h 酣n a m e ) 。d n 在l d a p 目录中起到相 当于主健的作用,用来唯一标识目录中的用户。这种方式最吸引人的地方在于当前许多应用 程序和应用程序服务器都使用l d a p 作为它们的认证机制。 2 5 4 提供用户x 5 0 9 证书的代理认证 这种模式下,使用x 5 0 9 证书通过s s l 在用户与中间层服务器之间提供安全的身份认 证。中间层服务器也可以使用证书与数据库服务器进行认证。 2 6 s e c u r e o s c a r 代理认证配置的设计 2 6 1 强制使用代理认证 在应用中,某些用户只能使用代理认证来访问数据库,这就需要使用强制使用代理认证 的配置功能。强制使用代理认证是指创建数据库用户并且使他只能使用代理认证来访问数 据库。要限制用户通过一个专门的程序来访问数据库,不能通过锁定用户账户以及撒消 c r e a t es e s s i o n 的权限来实现,因为代理认证中要用到它们。 在我们的系统中我们通过将用户的口令设置成一个不可能的口令来实现强制使用代理 浙江大学硕士研究生毕业论文 认证。这样用户就不能直接通过口令来登录数据库,仅能够通过代理认证来获得一个数据库 会话。在我们随后介绍的数据库口令认证机制中,用户的口令信息都是以十六进制( 数字 o 一9 ,字母a f ) 的形式存储的。我们通过语句c r i 强t eu s e rs c o t td 姗f i e db y v a l u e s o n y m o u s 。就将用户的口令设置成| 龃o n y m o u s ,用户的真实口令经过相应变化肯 定不会有非十六进制的字符出现。这样用户直接通过口令访问数据库将永远不能通过口令认 证。 2 6 2 授权中间层代理和认证用户 在所有情况下,管理员必须要授权中间层来代理用户操作。可以使用a l t e r u s e r 语 句的g r a n tc 0 1 心正c tn 很o u g h 子句来实现。a l t e ru s e r 语句的i 乇】:、,o k e c 0 1 州e c tt 氓o u g h 子旬来取消代理认证。 1 、授权中间层a p p s e r 、,e 代理和认证用户s c o t t 。使用w i t h r o l e 子句指定印p s e r v e 拥 有s c o t c 的所有特权。 蘩蔗鬻鬻勰鬻鬻霾蕤黍黍| 缫黼繁 l 口日w m f 日1 趴u : 曩i ;攀蘩黛夔臻黧囊缀蘩燃黛翳骥骥囊翱纂缫熊黛;囊霹i ! | = 誊“。i ii 嚣j 囊攀曩ii ;:; 囊鎏鬻瓣纛黍攀鬻鬻蒸攀藜 鋈鬻鬻鬻鬻粪霾鬻纛瓣i 寨粪鋈鬻纂鬻鬻纛l 攀i 麟鬻麟蘩鬻黼蘩鬻黎鬓 - 譬誊:彝h i _ :刚霉蜒缀e pi 稻狲g 罂葭s s 习研0 袋磁强曩i 熏量誊量量翟j i 曩叠。量i 叠薯薯澍i 誊i 1 6 浙江太学硕士研究生毕业论文 第3 章数据库认证设计及实现 数据库认证机制的最大特点是用户的信任凭证需要安全保护在数据库中;并且还要确保 在网络传输过程的安全性;同时,用户的鉴别也要有数据库来完成。所以在设计中,我们重 点对这三个问题进行了分析与解决。 3 1 用户口令及指纹信息的存储的设计 在s e c u r e o s c a r 中,我们用系统用户表s y t _ s h a d o w ( 表3 1 ) 来存储用户的加密的口令 和指纹信息。在管理员进行用户注册时,将用户设置的口令通过协议要求的某种变换,加密 后存储在p a s s w o r d 字段。用户的指纹信息由于鉴别机制与口令机制的不同,指纹的比对 需要将存储的加过密的指纹信息还原,所以我们必须利用数据库提供的加密机制,通过加密 后存储于u s e f i n g e r i n f o 字段中,在需要时进行解密。在下面各自的设计中将会对这两种方法 进行详细介绍。 列名类型描述 u s e s v s i di n t 4 用户i d u s e n a m en a m e 用户名 d e f a u l n a b l e s p a c e n a m e 缺省表空间 a c c e s s c o u n ti n “ 用户连接的次数 l o g j n c o u m j n t 2 用户连接失败的次数 u s e c r e a t e d b b 0 0 l 用户是否可以创建数据库 u s e s u p e r b o o l 用户是否是超级用户 u s e c a t u d d b 0 0 1 用户是否可以更新系统表 p a s s w d t e x t 口令 v a l u n t i la b s d m e 帐户截止日期( 用于口令认证) u s e c o n n g t 刚 廷,仃时配置变燕的会话缺省值 u s e f i n g e r - n f o v a r b i n a r v 指纹特征信怠 表3 ,1 系统用户表结构 s y t - s h a d o w 包含关于数据库用户的信息。此表不应为所有人可读。 3 2s e c u r e o s c a r 加密机制介绍 数据库内部认证,必须要有数据库加密机制的支撑。下砸我们先简单介绍一下 s e c u r e - o s c a r 的加密机制及多级密钥管理机制 1 3 】。 1 7 浙江大学硕士研究生毕业论文 3 2 1 加密的基本概念 加密【1 1 】最初产生于消息传递的过程中,用于防止窃听者阅读发送的消息。消息被称为 明文( p i 抽1 t e x t ) ,可以是任意的二进制序列。用某种方法伪装消息以隐藏它的内容的过程称 为加密( e i l c d 叫i o n ) ,被加密的消息称为密文( c i i ) h e m x t ) ,也是任意的二进制序列。把密 文转变为明文的过程称为解密( d e a 咧i o n ) 。我们用p 表示明文,用c 表示密文,用e 表 示加密函数,用d 表示解密函数,则有以下数学公式: 鬟篓嚣嚣蒸| ;| 鍪錾纂缫l 嚣鎏嚣鬻l 蘩翳蘩鹣麟翼霪攀i 雾藜臻i 糕 嚣慧l 蘩羹寨羹囊鬣i l 羹i 鬻馨i 密码算法是用于加密和解密的数学函数。密码学历史上曾出现过受限制的算法,即加密 的安全性依赖于算法的保密性。由于算法的保密性通常得不到保障,而且算法豹安全性得不 到验证,因此这种算法只能应用于低密级的应用。为了解决这个问题,现代密码学引入了密 钥( k e y ) 的概念,我们用k 表示。k 可以是很多值里的任意值,k 的可能值范围通常称为 密钥空间( k e y s p a c e ) 。加密和解密运算都使用这个密钥,因此,上述公式变为: 囊i i ! 嚣i 鬻簿i 薹躐l 骥霉誊毒善曩i 纂黧;萋寨;誊鬻i 嚣纂囊i 躐麟墓i i 寨i 誊i 羹i 黎爨鬻l :蠢j 墓 有些算法使用不同的加密密钥和解密密钥,即: 器:;- ;| ! | ;l j 鬻萋蕊蕾鞠戮鬻鬻熏j j i 耄麟黪蘸骥鬻篓鬻i 婕麟;嘞鬻鬻i 蠹黼垂萋蓊攀鬟嚣黎i 整个过程如图3 1 所示。 j 翦密 囊侧 摆掣 谨镛 图3 1 加密和解密过程 所有算法的安全性都基于密钥的安全性,而不是算法细节的安全性。算法可以公开并大 量分析、使用,只要保持密钥的安全性,就不会造成明文泄露。因此,保持密文安全性的关 键在于密钥的保密性。密钥的管理始终是密码学中最困难的领域。 3 2 2s e c u r e o s c a r 加密机制的功能 s e c u r e o s c a r 加密机制除了基本的加懈密过程,还包含加密管理和多级密钥管理两部 分。其中加密管理由用户自己完成,这里面的工作包括加密算法选择,加密的授权等。密钥 管理分两部分,工作密钥管理和r s a 密钥管理。其中工作密钥是用于加密用户数据的密钥 由系统自动随机生成:r s a 密钥用于管理工作密钥,这种多级机制既方便了密钥管理,又 增加了系统的安全性。 3 2 3 加密算法的选择 选择加密算法时,除了安全性上的考虑,加密算法的效率也是比较关键的因素。通常它 和安全性之间是互相排斥的,因此针对不同的应用往往需要不同的折中。 1 8 浙江大学硕士研究生毕业论文 3 2 3 1 对称算法 对称算法是指加密密钥和解密密钥能够互推,很多对称算法中,加密密钥和解密密钥都 是相同的。这种算法也叫做秘密密钥算法或单密钥算法,它要求在加密和解密之前商定一个 密码。对称算法的安全性完全依赖于密钥的安全性。 d e s 是一种典型的对称密钥算法,也是a n s i 的数据加密算法。d e s 是分组加密算法 ( 另一种是序列加密算法) ,它以“位为分组对数据加密。密钥的长度为5 6 位,通常使用 8 个字节表示,每个字节的最后一位用于校验。破解d e s 密钥需要2 5 6 次穷举,尽管这对 普通安全性的数据加密来说是足够了,但随着现阶段计算性能的提高,需要使用更长的密钥 来保证加密的安全性。通常使用三重d e s 解决d e s 密钥不够长的问题,三重d e s 侵用两 个或三个5 6 位密钥,进行三次d e s 运算来对数据加密。破解三重d e s 需要2 1 1 2 或2 1 6 8 次穷举,相对要安全很多。 i d e a ( i n t e m a t i o n a ld a t a e n c r y p t i o n a l g o r i 廿h n ) 是另外一个对称加密算法,其密钥长度 为1 2 8 位,也是以6 4 位为分组对数据加密,同一个算法既可用于加密又可用于解密。目前 软件实现的l d e a 要比d e s 快两倍,并且在安全性上要比d e s 高,但它有专利权因此必须 有商业使用的许可证。 还有很多其他的加密算法,如新的高级数据加密标准a e s ( a d c e de n c i 卵t i o n s t a n d a r d ,被认为将成为加密所有形式电子信息的事实上的标准,取代d e s ) 等,我们不做 进一步的讨论。 考虑到效率问题,s e c u r e o s c a r 选择对称加密算法作为用户数据的加密算法。现阶段 采用d e s ( 单重或三重) 作为默认的标准数据加密算法,其他加密算法考虑到专利权问题 将有选择的实现。 3 2 3 2 公开密钥算法 公开密钥算法也称为非对称算法,它用作加密的密钥不同于用作解密的密钥,而且解密 密钥不能根据加密密钥计算出来。之所以叫公开密钥算法,是因为加密密钥能够公开,即任 何人都可以用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。通常加密密钥叫 公开密钥(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论