(计算机应用技术专业论文)事件同步身份验证系统的无共享存储架构的研究与实现.pdf_第1页
(计算机应用技术专业论文)事件同步身份验证系统的无共享存储架构的研究与实现.pdf_第2页
(计算机应用技术专业论文)事件同步身份验证系统的无共享存储架构的研究与实现.pdf_第3页
(计算机应用技术专业论文)事件同步身份验证系统的无共享存储架构的研究与实现.pdf_第4页
(计算机应用技术专业论文)事件同步身份验证系统的无共享存储架构的研究与实现.pdf_第5页
已阅读5页,还剩64页未读, 继续免费阅读

(计算机应用技术专业论文)事件同步身份验证系统的无共享存储架构的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 事件同步身份验证是一种一次性口令系统,它的实现特点是验证服务器处理 每一次验证都需要把服务器和t o k e n 两端的计数器调整到同步的状态。 本文的主要工作就是将运行在w i n d o w s 上的单结点数据库的事件同步身份 验证系统移植到l i n u x ,并设计新的体系结构以提升其处理能力和数据库的负载 能力,且新系统要具备良好的可扩展性。我们面临的主要问题有:1 ,设计和选择 新的可扩展性良好的系统架构:2 ,将原验证系统单点结数据库存储扩展成多结点 数据库存储;3 ,将原验证服务器从w i n d o w s 平台移植到l i n u x 上。 本文针对上述问题所相应采取的解决方案是:1 ,采用l i n u xv i n u a ls e r v e r ( l v s ) 建立验证服务器集群,从而可透明有效地扩展系统处理能力;2 ,设计二 叉树分裂算法在应用程序层实现了无共享存储结构的存储子系统;3 ,在l i n u x 上开发了一个网络服务器的小型框架,在此基础上顺利将原系统移植到l i n u 】( 。 由于事件同步系统每一次验证都必须更新数据库中的计数器以保证两端同 步,所以不能采用相应的内存或者磁盘缓存结构,于是直接对数据库造成了压力, 且系统处理的用户量极大,单结点数据库根本无法支持系统的运行。本文没有采 用共享存储设备如s a n 和数据库集群如r a c ,仅采用相互独立的多个m y s q l 结 点来实现无共享存储策略,以我们提出的二叉树分裂算法为基础,通过应用程序 为l v s 验证服务器集群提供了全局一致的存储映象,并能够透明地扩展存储结点 来对系统进行扩容,包括增加结点和更换结点。此外,运用设计模式和c + + 的 面向对象与范型特性设计开发了一个u n i x 类系统的网络并发服务器框架,此框架 封装了网络并发程序最常用的一部分u n i x 系统的底层特性,并引入了一套运行机 制,在此框架的基础上仅仅通过继承进程基类就能把验证服务的应用逻辑嵌入到 框架里,成功地将系统从w i n d o w s 移植到了l i n u x 。 关键宇:集群;数据库集群;框架设计;无共享存储;事件同步 华南理工大学硕士毕业论文 a bs t r a c t e v e n t s y n c h r o n o u sa u t h e n t i c a t i o ns y s t e mi s o n ek i n do to n e 。i 。l m e p a s s w o r d s y s t e m ,w h i c hh a st om a i n t a i nt h ec o u n t e rs y n c h r o n i z a t i o nb e t w e e nt h es e r v e ra n dt h e t o k e nf b re a c ha u t h e n t i c a t i o n t h em a i nt a s to ft h i sp a p e ri st om i g r a t et h es y s t e mw i t ho n ed a t a b a s en o d ef r o m w i n d o w st ol i n u xa n dd e s i g nan e wa r c h i t e c t u r et oa r c h i e v eh i g hp e r f o r m e n ta n d n e x i b i l i t y t h ep r o b l e m sw ea r ef a c e dw i t ha r ef o l l o w i n g :1 d e s i g nan e we x t e n d a b l e s y s t e ma r c h i t e c t u r e ;2 e x t e n dt h ef o m e rs y s t e mf r o mo n ed bn o d ei n t om u l t i p l e yd b n o t e s ;3 t r a n s p o r tt h ef o m e rs y s t e mf r o mw i n d w o st o “n u x t h es o l u t i o nw eh a v et a k e nt oo v e r c o m et h e s ep r o b l e m si sa sb e l o w :1 u s et h e l i n u x r t u a ls e r v e rt ob u i l du pac l u s t e rs y s t e m ;2 d e s i g nab i n a r y t r e ed i v i s i o n a l g o r i t h mt og e tt h e9 1 0 b a ls i n g l ei m a g eo fs t o r a g ef o rl v si nt h ea p p l i c a t i o nl e v e l ; 3 d e v e l o pam u l t i p l e xp r o c e s s e sc o n c u r r e n ts e r v e r6 a m e w o r ku n d e rl i n u x ,a n dt h e n t r a l l s p o r t t h es y s t e ms u c c e s s f u l l y 行o mw i n d o w st ol i n u xo nt h eb a s eo ft h i s f r a m e w o r k h a v i n gn o tb o u g h tt h es h a r e s t o r a g ed e v i c el i k es a na n dt h ed a t a b a s ec l u s t e r l i k er a c ,w ej u s ta d o p tt h em u t i p l e xm y s q ln o d e sa n dt h eb i n a i _ y - t r e ed i v i s i o n a l g o r i t h mt op r o v i d et h es t o r a g es e r v i c ef o rt h el v s ,a n dg e tt h eh i g hf l e x i b i l i t ya n d e x t e n s i o nm e a n w h i l ew eu s et h ec + +o b j e c t b a s e da n dg e n e r i cp r o g r e a m i n g c h a r a c t e rt od e v e l o pt h ef r a m e w o r kw h i c he n c a p s u l a t et h es p e c i f i cl o wl e v e ll i n u x a p ia n dg e tc l a r i t yd e s i g nh i e r a r c h y s ow ea r ee a s yt oi m p l e m e n tt h es y s t e m m i g r a t i o nb yi n h e r i t i n gt h eb a s ep r o c e s sc l a s sa n dp r o v i d i n gt l es p e c i f ia p p l i c a t o n l o g i ci nt h eh o o kf u n c t i o n k e y w o r d s : d a t a b a s ec l u s t e r ,f r a l l l e w o r k ,s h a r e n o t h i n g ,e v e n t s y n c h r o n o u s 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研 究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完 全意识到本声明的法律后果由本人承担。 作者签名:绲7 ,至 日期:泐箨月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权华南理工大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于 不保密日 ( 请在以上相应方框内打“”) 作者签名: 导师签名: 磁位 硝l 豇绝 f 日期:沙r 年厂月日 日期: 瓣月2 日 第一章绪论 1 1 项目背景和主要工作 1 1 1 项目背景 第一章绪论 随着计算机技术和网络技术的发展和成熟,这两项技术已经渗入了人民大众 的生活,人们的学习、工作和娱乐都离不开它们。安全技术在计算机和网络领域 起的作用也越来越重要,只有在安全、可靠和信任的条件下,才能保证计算机网 络技术健康蓬勃发展。而身份验证,是计算机网络安全的一个十分重要的基础部 件。 现在有不少企业和公司采用的验证技术还是基于早期的静态口令身份验证机 制,静态口令身份验证技术简单,完全可以由本企业自主开发。但是在一些对安 全要求相对较高的场合,比如电子银行和电子商务,静态口令已经远远不能满足 安全要求了。一般的公司和企业没有精力、能力和投入去独立研究开发配套的身 份验证产品,购买第三方的安全软件算是个好选择。于是国内外有许多公司瞄准 了这个市场,专门为其他的领域和企业提供相关的身份验证技术、系统和服务。 在理解无歧义的情况下,为了行文方便,将“安全”等同于“身份验证”,本文主 要是讨论身份验证技术,而不涉及到其他类型的安全技术。 由于安全系统和业务系统是由完全不同的两个企业独立研究开发的,这就给 两个子系统的无缝部署带来了一定的难度,主要的原因如下: 1 平台相关现在的操作系统种类繁多,常用的u n i x 种类就有b s d ( f r e e b s d ,o p e n b s d ,n e t b s d ) 、s u n 的s o l a r i s 、i b m 的a i x 和开源的l i n u x ( d e b i a n ,r e d h a t ) ,除此之外,还有m s 的w i n d o w s 。u n i x 的种类之间的移植相 对容易,但是在u n i x 和w i n d o w s 之间移植就不是件容易的事。 2 数据库管理数据库的使用是企业信息化的重要组成部分,常用的数据 库产品有o r a c l e 公司的0 r a c l e 系列如o r a c l e 9 i 、o r a c l e l o g :m s 的s q l s e r v e r ;优秀的开源软件m y s q l 等等。在一些业务量大的企业,单个数据库实例 是远远满足不了要求的,还需要数据库集群技术的支持,比如有0 r a c l er e a l a p p l i c a t i o nc 1 u s t e r ,m y s q lc l u s t e r 。 3 具体业务领域的差异由于业务的需求不一样,对安全系统的侧重点也不 一样,对安全策略的要求也不一样。有些业务的用户验证请求是接近平均分布的, 比如银行业务,而有些业务的则是蜂拥验证居多,比如游戏:验证的用户数量也 根据业务而有所不同,有的每日平均验证次数为1 0 万级别,而有的则为千万甚至 华南理工大学硕士毕业论文 上亿的级别:业务对安全性的级别要求不同,有些高安全性的地方要求运行加密 计算的单元是独立的硬件部件,而有些则用软件即可满足需求。 综合上述3 个原因可知,提供安全技术的企业要想方方面面考虑到各个环节 和技术细节是不可能的,当安全需求方在引入第三方的安全系统时,双方势必需 要根据具体的业务特点与要求来对业务子系统和安全子系统的融合进行架构和相 关技术层面的设计和部署。本文正是在这样的环境背景下进行的研究和设计。 1 1 2 项目需求环境和主要工作 从这里开始,笔者将用“我们”来表示“笔者从事的项目研究开发所在的企 业”或者“我、我的导师及其相关的同事”,具体的意思可由上下文区分开来,这 样可以有效促进我们和读者之间的交流。 我们进行研究和设计的项目环境大致如下: 1 我们需要在现有的业务系统之上从第三方引入一个基于事件同步技术的身 份验证系统,这个身份验证系统原先的架构设计和开发都是基于w i n d o w s 环境, 数据库用的是单结点的o r a c l e 9 i 。 2 由于我们的整个企业文化、氛围和技术环境都是基于u n i x 类系统和优秀 的开源软件,并具备大量优秀的u n i x 系统管理员和开源软件的研究者,同时对 w i n d o w s 操作系统的安全漏洞表示担忧,所以,我们要求操作系统选择的是l i n u x a d v a n c e ds e r v e r ;此外,数据库系统选用开源的m y s q l 而不用0 r a c l e 9 i 。 3 所要引进的身份验证系统受单数据库结点的限制,远远不能达到我们的要 求,需要重新进行架构设计以满足我们的业务要求。 基于上述的环境和需求,我们对此身份验证系统进行设计改造的主要工作有: 1 选择设计高可用性和高扩展性的验证系统集群架构,使验证系统不但能够 满足业务需求而且随着业务的增长可以方便透明地增加验证系统的处理能力,并 其在系统升级和扩容期间不能够停止验证系统的服务。 2 设计集群系统的存储子系统,存储子系统将为整个集群系统提供一个全局 一致的数据存储访问服务,存储策略要能够保证在系统扩展和升级的特殊情景下 仍旧能提供完整的数据映象功能。 3 平台相关代码移植的框架设计,使得原先的验证系统能够很好地从 w i n d o w s 系统移植到l i n u x 系统,因为w i n d w o s 系统底层的s o c k e t 通信、线程管 理、线程问通信等机制与u n i x 的进程管理、进程间通信和网络s o c k e t 是不相同 的,我们所面临的工作量并不小。 2 第一章绪论 1 1 3 工作中的创新点 根据具体的项目需求和应用背景,我们在努力设计和开发项目的过程中,产 生了两个好的想法: 1 针对存储子系统的设计,我们提出了一个在应用程序层进行存储访问管理 控制的二叉树分裂算法。在这个无共享存储算法的帮助下,我们并没有购买昂贵 的的数据库集群产品如r a c 和共享存储设备如s a n ,而仅仅使用开源的m y s q l 数据库系统和普通的磁盘阵列就达到了很好的设计和性能需求。 2 在移植平台相关代码的过程中,我们结合c + + 的面向对象机制、范型编 程机制和设计模式设计了一个小的较通用的u n i x 网络服务器开发框架。进程并发 管理、进程间本地通信与同步和网络s o c k e t 通信是构建网络服务器的基础,但这 些基础部件是与操作系统底层密切相关的,我们把它们的通用性的逻辑抽象出来 并对系统底层的相关a p i 进行封装便形成了一个开发网络服务器的框架。 1 2 研究现状 1 】企业用户在构建信息应用系统时可以选择基于单台主机的计算体系结构, 单台主机要求具有强大的计算能力,它昂贵的价格迫使用户在系统建设之初就在 硬件系统上投入巨大资源。当主机的能力不足以满足计算要求时,就依靠升级硬 件的方式来扩展系统的性能,通过购买更高主频的c p u 、增加内存容量和更换更 高速的磁盘阵列来提升系统的处理能力。虽然,添加高速磁盘阵列可以减少寻道 时间,提高响应的速度,使用c a c h e 技术能够加快页面访问效率。但是,一味地 依靠扩展单一系统的硬件终究会有上限,磁盘、内存、网络代宽的发展速度远远 低于c p u 的摩尔定律速度,造成彼此性能的互相牵制。而且,在单机系统种,越 到高端的硬件,成本与性能比越是成指数下降。 基于集群计算的体系结构是具有更高性能价格比的体系结构,集群系统把普 通主机组成机群,并根据计算系统的扩展需要随时在机群中增加新的硬件或者主 机结点,提高系统的伸缩性和可用性,从而能够在价格相对低廉的中低端平台上 享用过去只有高端系统才具备的高可伸缩性和高可用性,既提高了系统的性能, 同时也降低了成本。分布式集群计算提供了尽可能多的计算机处理能力和数据的 透明访问能力,同时实现高性能与高可靠性的目标。建立一个集群系统的主要目 的在于: 性能成本。集群系统的并行性降低了处理的瓶颈,提供了全面改进的性能, 也就是说,集群系统提供了更好的性能价格比。 华南理工大学硕十毕业论文 资源共享。集群系统能有效地支持不同位置的用户对信息和资源( 硬件和 软件) 的共享。 灵活性和可扩展性。集群系统可以增量扩展,并能方便地修改或扩展系统 以适应变化的环境而无需中断其运行。 实用性和容错性。依靠存储单元和处理单元的多重性,集群系统具有在系 统出现故障的情况下继续运行的潜力。 可伸缩性。集群系统能容易地扩大以包括更多的资源( 硬件和软件) 。 早在二十世纪七八十年代,d i g i t a le q u i p m e m 公司和d e m 计算机公司就开 始了集群系统的研究与开发工作。将多台同构或异构的计算机连接起来协同完成 特定的任务就构成了集群系统。 以往,集群系统主要都是基于商业操作系统的。例如c o m p a o 基于t r u e 6 4 u n i x 的集群产品t r u c l u s t e rs e r v e r ;n o v e l l 的n e t w a r ec i u s t e rs e r v i c e s ( n c s ) 等。这类产品价格十分昂贵,并且留给用户的选择余地十分有限。 l i n u x 可以运行于极为普及的p c 机上,不需要购买昂贵的专用硬件设备,并 在可靠性、负载能力和计算能力方面都有优秀的表现。随着l i n u x 的普及,人们 进一步将l i n u x 和集群技术相结合,成就了l i n u x 集群。集群中的每台服务器称 为一个节点。 按照侧重点的不同,可以把“n u x 集群分为三类。一类是高可用性集群,运 行于两个或多个节点上,目的是在系统出现某些故障的情况下,仍能继续对外提 供服务。高可用性集群的设计思想就是要最大限度地减少服务中断时间。这类集 群中比较著名的有t u r b o l i n u xt u r b o h a 、h e a n b e a t 、k i m b e r l i t e 等。第二类是负载 均衡集群,目的是提供和节点个数成正比的负载能力,这种集群很适合提供大访 问量的w 曲服务。负载均衡集群往往也具有一定的高可用性特点。t u r b o l i n u x c l u s t e rs e r v e r 、l i n u xv i r t u a ls e r v e r 都属于负载均衡集群。另一类是超级计算集群, 按照计算关联程度的不同,又可以分为两种。一种是任务片方式,要把计算任务 分成任务片,再把任务片分配给各节点,在各节点上分别计算后再把结果汇总, 生成最终计算结果。另一种是并行计算方式,节点之间在计算过程中大量地交换 数据,可以进行具有强耦合关系的计算。这两种超级计算集群分别适用于不同类 型的数据处理工作。有了超级计算集群软件,企业利用若干台p c 机就可以完成 通常只有超级计算机才能完成的计算任务。这类软件有t u r b o l i n u xe n f u s i o n 、 s c o r e 等。 1 3 论文结构 本文的共分为八章,各章的主要内容安排如下: 4 第一章绪论 第一章序论( 本章) ,简要说明了项目的背景、相关研究的情况和整篇论文 的结构安排。 第二章身份验证技术,说明了什么是身份验证,身份验证的类型,并着重阐 述了t o k e n 验证的原理及其相关的一次性口令系统c h a l l e n g e r e s p o n s e 、时间同步 和事件同步系统的技术特点。 第三章集群,先简要介绍了集群的分类,接着详细描述了l v s 集群系统的 体系结构和l v s 如何获得高可用性,然后介绍了两种数据库集群o r a c l er a c 和 m y s q lc l u s t e r ,最后介绍l s 的i p 负载均衡模式和负载调度算法。 第四章原事件同步身份验证系统架构,简要介绍了原系统的瓶颈和结构缺 陷,并提出了目标系统的初步需求。 第五章系统分析,对我们要开发的无共享事件同步系统进行详细的分析和阐 述,确定了系统的体系结构并建立了为系统提供数据存储一致性的d b c 模型。 第六章d b c 存储子系统的设计,详细阐述了实现d b c 模型的二叉树结点分 裂算法及其应用,并证明了此算法的正确性。 第七章d b c 存储子系统的实现,实现了二叉树分裂算法并分析其效率,然 后阐述了如何处理数据在结点中的移动,最后阐述了l v s 的均衡模式和负载调度 算法的选择。 第八章多进程服务器框架设计,阐述了基于设计模式和c + + 面向对象和范 型编程特性的u n i x 多进程并发框架的设计思想,在此框架的基础上,我们将验证 服务器从w i n d o w s 移植到l i n u x 。 华南理工大学硕士毕业论文 第二章身份验证技术 本章介绍身份验证的类型和种类,并着重介绍和t o k e n 验证相关的 c h a l l e n g e 依e s p o n s e 、时间同步和事件同步身份验证。 2 1 身份验证 要保证网络的安全,必须做好下列网络安全三大要素: 1 a u t h e n t i c a t i o n :身份验证,在做任何动作之前必须要有方法来识别动作执 行者的真实身份。即他是谁? 2 a u t h o r i z a t i o n :授权,在确认完身份之后,访问者到底被授予什么权限? 即他可以做什么? 3 a u d i t i n g :稽核,在做完事情之后留下记录。即他做了什么? 网络上身份认证最常用的方法就是“用户帐号+ 口令= 某人的身份”,其 中用户帐号代表网络或电脑系统中某个人的身份,口令是用来验证是否真的是网 络或电脑系统所允许的用户。 静态口令通常现今大部份的网络或电脑系统都是采用静态口令的方式来进 行身份验证,用户在设定好自己口令后基本上会一直使用同一个口令来进行验证。 然而以静态口令很容易被木马截获、被猜到、被破解或在网络上被偷听并发动重 放攻击。 动态口令和一次性口令如果使用者使用的口令可以不断改变就可以防止静 态口令的问题,因此这种不断改变使用者口令的技术便被称作动态口令( d y n a m i c p a s s w o r d ) 。只能使用一次的动态口令就叫做一次性口令。 2 2 验证类型和种类 计算机系统经常使用基本的四种类型来对用户进行验证:索要仅由被验证用 户所知的东西,测试仅由被验证用户所拥有的东西的出现,获得一些不可伪造的 用户的生物或者动作行为信息,或者判断用户是否在只能是被验证用户进入的地 方。这些不同的方式可以被组合起来以加强安全的级别,以获得某些特殊的需求, 或者弥补一些签定身份的脆弱性和不兼容性。 验证的种类包括无验证、记忆性口令验证、p i n 验证、t o k e n 认证、智能卡验 证、生物特征验证、数字证书验证和c h a p 验证等。限于篇幅,我们仅仅介绍和 我们的系统相关的t o k e n 验证方式。 6 第二章身份验证技术 t o k e n ,广义上的定义,是一种为用户提供身份证明的具有唯一性的软件或 者硬件实体。没有正确的t o k e n ,用户不能访问任何需要t o k e n 的系统。t 0 k e n 类 型有软件和硬件之分,硬件t o k e n 和手持计算器很相似,具体的种类包括智能卡, u s b 设备,一次性动态口令产生器等等。 t o k e n ,是在登陆网络时用来产生动态口令的设备。t o k e n 产生动态口令,但 不是所有的动态口令都是一次性口令,这两者的区别很重要。一次性口令的优点 在于:在它被使用过之后,即使被黑客截取到了,它就不会再次被验证通过,因 为它已经失效了。顾名思义,一次性口令,只能使用一次。 一般来说,t o k e n 采用两种验证方式:同步和异步( 挑战应答) 。下面对t o k e n 验证进行详细的描述。 2 3t o k e n 验证 2 3 1 t o k e n 如何工作 t o k e n 的运作方式【2 】是这样的:采取一个输入值,用加密算法对其加密,然 后把加密结果作为动态口令给显示出来,显示的结果必须是不可预测。加密算法 使用了t o k e n 内部的密钥作为加密的一部分来产生动态口令。这个密钥被指定给 明确的用户,因此将用户和指定t o k e n 捆绑在一起。 可以使用各种不同的算法进行加密,比如单向函数m d 5 、s h a 或者私钥加 密算法如d e s 和3 d e s 等。具体的算法种类并不重要,重要的是:加密算法很难 被破解,即使知道了加密过程的输入值。最好是选择公开发布的算法,这样,即 使黑客知道了输入值和加密算法,也不可能推导出密钥或者其他的输出。 就算是使用同一个输入值,但是密钥不同,产生的动态口令也是不相同的。 所以,两个具有不同密钥的t o k e n 会产生不同的口令,即使加密的是同一个输入 值。 验证服务器会有一份t o k e n 密钥的拷贝,它执行和t o k e n 相同的运算过程,采 取相同的输入,就能计算出正确的动态口令,然后将这个口令和用户提供的口令 进行比较。如果用户提供的口令和服务器计算出来的口令相匹配,用户的身份就 被确认了。 必须注意到,用户的密钥是存储在t o k e n 和服务器中的,密钥就像是某个确 定用户的数字指纹,所以是不能改变的。虽然每一个用户的密钥一直保持不变, 但是强认证系统会不停地改变输入值。实际上,每一个访问尝试都使用不同的输 入值,这就确保了口令总是不同的,从而有效地防止了攻击者用旧的口令获取对 系统资源的访问。无论什么时候,输入值改变了,结果的口令也相应地改变。每 一次访问尝试,都使用不同的输入值,就算口令在一次登陆中被偷窃了,也不能 华南理工大学硕士毕业论文 使用它进行再次验证,被盗口令已经失效。 用来选择和改变输入值的方法决定了三种t o k e n 的分类:挑战回应 ( c h a l l e n g e ,r e s p o n s e ) 、时间同步、事件同步。其中,挑战回应属于异步验证方式, 后两者是同步验证方式。 2 3 2l a m p o r t 算法j f 口c h a l l e n g e r e s p o n s e 1 9 8 1 年l e s l i el a m p o r t 引在 发表了名为 的文章,提出了一种一 次性口令算法,称为l a m p o r t 算法。在此算法的基础上,先后开发了s k e y 和 c h a l l e n g e r e s p o n s e 4 】等第一代一次性口令系统,接着便是第二代的时间同步一 次性口令系统,事件同步系统是第三代一次性口令系统。 l 锄p o r t 算法主要解决了两个问题: 1 不直接将用户的密码x 存在服务器罩,而是选定单向函数f ,将y = f ( x ) 的值存在服务器中。 2 为了防止窃听和保证密码安全,采用密码系列x l ,x 2 ,x 。,第i 次登陆 使用密码x ;。 密码系列x i 的选择如下:选定一固定的常整数,比如1 0 0 0 ,则第i 个密 码x i = f1 0 0 0 一i ( x ) ,其中x 为预先选定的数。那么,有密码系列f 9 9 9 ( x ) ,f ( f ( x ) ) ,f ( x ) ,x ,其对应的验证值系列y i 为f l o o o ( x ) ,f ( f ( f ( x ) ) ) , f ( f ( x ) ) ,f ( x ) 。所以,当服务器接收到第i 次的登陆密码x l ,并计算f ( x i ) 即可得到y ,将y i 和上一次的登陆密码x i l 做比较( 如为第一次发动验证, x i - l 则为一个初始值) ,如y i = x i l ,则身份验证通过,并保存x i 留待下次验 证。 u n i x 系统的p a s s w d 或s h a d o w 文件就采用了上述l 中的方式,不直接存储密 码,而是存储密码的m d 5 值,即使s h a d o w 文件泄漏,损失也不大。2 中的密码 系列即为动态密码的思想,但是2 有一个缺点,就是密码系列有一固定的长度, 如果密码用尽,就要重新初始化系列,就要重新选择种子x 。 基于1 锄p o r t 算法,c h a l l e n g e r e s p o n s e 系统的原理如下: 每一次登陆,服务器给客户端发一个c h a l l e n g e ,c h a l l e n g e 的格式是: o t p 一 - a l g o r i t h mi d e n t m e r 可取值为m d 4 ,m d 5 ,s h a l ,指明单向函数该用哪一 个算法; - s e q u e n c ei n t e g e r 指明是第i 次验证; s e e d 为一个随机数。 第二章身份验证技术 s e q u e n c ei n t e g e r ,s e e d 都是非保密的,将用户的通行短语( p a s sp h r a s e ) 也就 是用户的保密私钥和非保密的随机数s e e d 做连接得到串s ,对s 连续做n ( n 和 s e q u e n c ei n t e g e r 有关) 次单向函数运算从而产生了一个动态密码,叫做r e s p o n s e 。 将r e s p o n s e 发送到服务器,服务器收到这个密码后做一次单向函数运算并和上一 次的动态密码比较即可判断是否可通过身份验证。 一次性动态口令系统只能防止被动的偷听( e a v e s d r o p p i n g ) 重放攻击( r e p l a y a t t a c k ) ,并不保证传输数据的安全性和免遭会话挟持( s e s s i o nh i j a c k i n g ) 等攻击。 2 3 3 时间同步验证 时间同步要求t o k e n 和服务器端都有一个时钟,它们取当前的时间值作为输 入值。比如,每隔3 0 或者6 0 秒,t o k e n 从时钟读入时间作为输入值来产生口令。 用用户的密钥来加密作为输入值的当前时间。加密输出的结果数字就作为一次性 动态口令。 因为时间同步t o k e n 和验证服务器都从时钟获得输入值,理论上,时间是相 同的。时间同步t o k e n 采取了和服务器相同的处理方式来计算出它们自己的输入 值,这样就会有一个优点,不需要服务器将输入值以挑战( c h a l l e n g e ) 的方式传 送给t o k e n 。 然而,时间同步系统引入了一个新的复杂问题:对时间有不可避免的很强的 依赖性。两个时钟是很难获得确切相同的时间的。服务器有一个时钟,每一个用 户的t o k e n 都有一个时钟,这些时钟变化一个小值是很正常的。一些主机系统的 时钟漂移得很厉害,需要系统管理员周期性的调整时钟。但是,t o k e n 的时钟是不 可调整的,所以,它们在生命期内会离正确的时间漂移得越来越远。解决这个时 间不一致的问题会滋生一些新的困难,尤其是在具有1 0 万或者百万t o k e n 的大型 系统中。 因为所有的时钟是会产生漂移的,服务器和t o k e n 的时钟必须周期性的进行 同步。通常,为了防止漂移中断了同步从而影响了验证,这个紧密的同步是可以 稍微放宽松一些的。通过设定一个小的时间片断( 通常是7 分钟) ,在此片断内动 态口令一直有效,使得多个用户能够在一个短时间片断内使用口令。但是由于这 个因素,可让获取口令的人在几分钟内使用口令以合法用户的身份登陆系统,但 这多少会降低了系统的安全性。 2 3 4 事件同步验证 事件同步系统是继c h a l l e n g e r e s p o n s e 和时间同步系统之后的第三代动态 口令系统。事件同步系统并不依赖于会发生漂移的内部时钟,它仅仅使用了一个 9 华南理工大学硕士毕业论文 简单的计数器作为输入值。当一个t o k e n 被初始化的时候,它的内部计数器被设 置成为0 。当每一次事件发生了,就是当用户要求产生动态口令的时候,计数器 会自增并且把自增后的计数器作为输入值。然后对这个值进行加密,加密的结果 就是一次性动态口令。同样的,对应于每一个t o k e n 的帐户,服务器端都会维持 一个计数器,当这个帐户被创建的时候,这个计数器被设成o ,然后,这个t o k e n 被验证一次,服务器端的计数器也相应地进行自增1 。显然,比起时间同步,这 种方式更容易在服务器和t o k e n 问保持同步。必要的时候,这个服务器会维持两 个计数器的同步:调整服务器端的计数器和t o k e n 端的计数器相匹配。 但是对于事件同步系统,t o k e n 很容易和服务器不同步,即它们的计数器失步 了。原因很简单,用户可能会用t o k e n 产生了一些动态口令,但是并不送往服务 器进行验证,这样,t o k e n 端的计数器就和服务器端的计数器失步了。由于极易失 步,所以,验证服务器一般要维护一个有效验证范围,即验证窗口,只要t o k e n 的计数器小于等于服务器计数器与验证范围的和,那么验证成功并调整服务器计 数器等于t o k e n 的计数器,否则验证失败。 那么,当t o k e n 的计数器落在验证窗口之外了,那怎么办呢? 也就是该如何 进行同步的问题。一般的系统实现都是要求持t o k e n 的用户输入连续两个正确的 一次性口令,服务器就会调整服务器计数器等于t o k e n 的计数器进行同步了。为 什么要求输入连续两个一次性口令而不是一个或三个五个,这仅仅是一个同步策 略罢了。因为攻击者能够同时获得连续两个正确的一次性口令的几率是很低的。 事件同步一次性口令的弱点是不能防止伪造界面骗取口令的攻击,在用户用 下一个口令成功在系统上验证通过之前,被窃取的口令都是有效的,而时间同步 口令因为有一个有效期所以不会发生这样的情况。 2 4 小结 本章介绍了t o k e n 验证工作原理,并着重介绍了异步和同步的t o k e n 验证系统: c h a l l e n g e r e s p o n s e 、时间同步和事件同步一次性口令系统。 l o 第三章集群 3 1 集群的种类 第三章集群 集群【5 】是一种并行或分布式处理系统,由很多连在一起的独立计算机组成,像 一个单独集成的计算资源一样协同工作。 集群系统主要分为两种【6 】:高可用性集群和高性能集群。 高可用性集群:的主要功能就是提供不间断的服务。有许多应用程序都必须 一天二十四小时地不停运转,如所有的w e b 服务器、a t m 、远程通讯转接器等。 对这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。 高性能集群:通过将多台机器连接起来同时处理复杂的计算问题。模拟星球 附近的磁场、预测龙卷风的出现、定位石油资源的储藏地等情况都需要对大量的 数据进行处理。传统的处理方法是使用超级计算机来完成计算工作,但是超级计 算机的价格比较昂贵,而且可用性和可扩展性不够强,因此集群成为了高性能计 算领域瞩目的焦点。 3 2l i n u xv i r t u a ls e r v e r ( l s ) 集群的体系结构【7 】 l v s 集群采用i p 负载均衡技术和基于内容请求分发技术。调度器具有很好的 吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器 的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务 器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。 一般来说,l v s 集群采用三层结构,其体系结构如图所示,三层主要组成部 分为: 负载调度器( 1 0 a db a l a n c e r ) ,它是整个集群对外面的前端机,负责将客户的 请求发送到一组服务器上执行,而客户认为服务是来自一个i p 地址( 我们可称之 为虚拟i p 地址) 上的。 服务器池( s e r v e rp 0 0 1 ) ,是一组真正执行客户请求的服务器,执行的服务有 w e b 、m a l l 、f t p 和d n s 等。 共享存储( s h a r e ds t o r a g e ) ,它为服务器池提供一个共享的存储区,这样很容 易使得服务器池拥有相同的内容,提供相同的服务。 第三章集群 行,所以整个系统的性能基本上可以随着服务器池的结点数目增加而线性增长。 共享存储通常是数据库、网络文件系统或者分布式文件系统。服务器结点需 要动态更新的数据一般存储在数据库系统中,同时数据库会保证并发访问时数据 的一致性。静态的数据可以存储在网络文件系统( 如n f s c i f s ) 中,但网络文件 系统的伸缩能力有限,一般来说,n f s c i f s 服务器只能支持3 6 个繁忙的服务 器结点。对于规模较大的集群系统,可以考虑用分布式文件系统,如a f s 、g f s 、 c o d a 和i n t e r m e z z o 等。分布式文件系统可为各服务器提供共享的存储区,它们访 问分布式文件系统就像访问本地文件系统一样,同时分布式文件系统可提供良好 的伸缩性和可用性。此外,当不同服务器上的应用程序同时读写访问分布式文件 系统上同一资源时,应用程序的访问冲突需要消解才能使得资源处于一致状态。 这需要一个分布式锁管理器( d i s t r i b u t e dl o c km a n a g e r ) ,它可能是分布式文件系 统内部提供的,也可能是外部的。开发者在写应用程序时,可以使用分布式锁管 理器来保证应用程序在不同结点上并发访问的一致性。 负载调度器、服务器池和共享存储系统通过高速网络相连接,如1 0 0 m b p s 交 换网络、m y r i n e t 和g i g a b i t 网络等。使用高速的网络,主要为避免当系统规模扩 大时互联网络成为整个系统的瓶颈。 g r a p h i cm o n i t o r 是为系统管理员提供整个集群系统的监视器,它可以监视系 统的状态。g r a p h i cm o n i t o r 是基于浏览器的,所以无论管理员在本地还是异地都 可以监测系统的状况。为了安全的原因,浏览器要通过h t t p s ( s e c w eh t t p ) 协议和身份认证后,才能进行系统监测,并进行系统的配置和管理。 3 3 存储一致性 对于一个集群系统而言,不可避免的要考虑系统中的数据存贮问题。一旦采 用了分布式计算的构架,就一定要解决数据存储的容量和一致性两个方面的问题。 采用了分布式架构,海量存储自然变为可能。通过人工的方法或者预设的策 略,可以将数据按照一定的单位分割( 比如说块) ,分别存放在不同的物理存储设 备上。 对于集群系统而言,尤其是网络负载平衡系统,集群内的节点被均衡器无差 别地对待( 就数据访问能力而言) ,均衡器假定所有的节点能够对同一数据进行一 致读写。而同时出于容量和价格的考虑又需要将数据分布式存储。那么如何保存 各个节点的有效副本,如何对共享数据进行一致访问,就成为多数的负载平衡系 统中至关重要的问题。 l v s 通过l i n u x 的核心数据包投递程序,将进入集群系统的i p 包按照既定规 则转发到相应的集群节点进行处理。l v s 假设所有的节点访问同一个一致的、可 华南理上人学硕士毕业论文 靠的、大容量的磁盘共享系统。当然,n a s 或者共享r a i d 阵列和s a n 等硬件 上可以实现这一点,但是在兼顾效率和容量的分布式存储环境下,要求每一个节 点保存部分数据,而且不同结点的数据互相不交叉或者交叉比较少,这样就难免 出现数据读写不一致的情况。 而解决这类问题一般方法,要么是集中存储,使用共享的存储服务器或者存 储设备;要么采用分布式文件系统,将文件分块存放在不同的节点磁盘上;再不 然就是通过人工的手段对访问数据的应用程序进行改写,人为的设定程序的数据 访问策略,在应用层实现分布式存储。各种方法都有优缺点: 方法一比较简单,找一台i o 处理能力强的服务器作为n f s 服务器,提供唯 一的数据存储入口即可解决,但是容易造成瓶颈:方法二兼顾了性能和容量,但 是需要s a n 这样的专有系统,实现复杂造价高;最后一种方法需要定制特定的应 用层代码,这会增加项目的开发成本和风险。 3 4 数据库集群 l v s 的第三层是共享存储层,通过共享存储层提供一致的存储访问服务。下 面介绍两种不同结构的数据库集群,它们都能够给应用提供全局一致的存储访问, 采用共享存储结构的o r a c l er e a la p p l i c a t i o nc l u s t e r 和无共享存储结构的m y s q l c l l l s t e r。 3 4 1m y s q lc l u s t e r m y s q lc l u s t e r 【8 】是一种高可用性高冗余的数据库集群,它采用了内置内存 ( i n m e m o r y ) 的无共享数据库集群技术,无共享的体系结构使得采用廉价的硬件和 非特殊要求的硬件和软件就可以组建系统。因为每一个部件都有自己的内存和磁 盘,所以,系统没有单点故障。 m y s q lc l u s t e r 整合了标准m y s q l 服务器和称为n d b 的集群存

温馨提示

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

评论

0/150

提交评论