(计算机软件与理论专业论文)基于otpap的安全单点登录系统的设计与实现.pdf_第1页
(计算机软件与理论专业论文)基于otpap的安全单点登录系统的设计与实现.pdf_第2页
(计算机软件与理论专业论文)基于otpap的安全单点登录系统的设计与实现.pdf_第3页
(计算机软件与理论专业论文)基于otpap的安全单点登录系统的设计与实现.pdf_第4页
(计算机软件与理论专业论文)基于otpap的安全单点登录系统的设计与实现.pdf_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

摘要 论文题目: 专业: 硕士生: 指导教师: 基于o t p a p 的安众单点登录系统的设计与实现 计冀枫软传与理谂 简伟军 龙冬阳副教授 摘要 随着i n t e r n e t i n t r 8 n e t 上电子商务以及企般级l t e b 应用系统应用越围的 不断扩展、应用程度的不断深入,如何实现安全身份认诞和授枚管理,满足企 业信息系统用户一次性登泶,按照不同系统的授权能力,访问多个业务系统的 统一安垒控翻,怒警兹鼷络安全磷究孛l 常重要静一个谍遂。 为此,广州市电信科技开发有限公司提出数字身份管理系统作为解决方 寰。该系绞主要霉露个功g 模块:鸯份认涯、单点登录( s s 0 ) 、授权管理褰安 全审计。根据该系统的需求,提出建立在一次性口令鉴别协议( 0 t p a p ) 的基 础上的设计方案,缝合j a a s 实现了前三个功能模块,并根据实际的需要开发 了一个单惫登录系统。 文章首先介绍了项目背景,次悭口令鉴别协议的概念和基本思想, 然蕊着重介绍了赛份认逶模块蠢援毂模块瓣设诗流程,丽途絮俺实现单赢登录 的目标。最后详细介绍了利用现脊的加密算法,农j a a s 一灵活的j a v a 安全机 测簇础上,竞成该系统戆实现。 关键字:单点登秉:o t p a p ;认涯;授投;j a a s t i t l e :d e s i g no f s e c u r es s o s y s t e mb a s e d o no t p a p m a j o r c o m p u t e rs o f t w a r ea n dt h e o r y n a m e :j i a n w e i j u n s u p e r v i s o r :a s s o c i a t ep r o f e s s o r 功鑫鐾d o n g y a n g a b s t r a c t w i 像t h ed e v e l o p m e n to fw e ba p p l i c a t i o ns y s t e ma n de b u s i n e s sw h i c ha r e b u i l to nt n t e r n e t i n t r a n e t 。h o w oi m p l e m e n ts e c u r ei d e n t i t ya u t h e n t i c a t i o na n d a u t h o r i z a t i o na r ei m p o r t a n tc o n c e l n s 。i na d d i t i o n ,h o wt ol e tr i s e r sa u t h e n t i c a t e t h e m s e l v e sj u s to n c et oa c c e s si n f o r m a t i o no na n yo fs e v e r a ls y s t e m sb a s e do n u n i f i e du s e rm a n a g e m e n t s y s t e mi sa l s oi m p o r t a n tq u e s t i o nf o rd i s c u s s i o n 。 f o rt h i sr e a s o n ,t i s s o nt e c h n o l o g i e sd e v e l o p m e n tc o ,l t d b r o t g h tf o r w a r d d i 瘿t a li d e n t i t ya d m i n i s t r a t i o ns y s t e m a st h es o l u t i o n 。t h es y s t e m m a i n l yh a s f o u r m o d u l e s :i d e n t i t ya u 氆e n t i c a t i o n , s i t g t es i g n - o n s 蛾a u t h o r i z a t i o n m a n a g e m e n t a n d a u d i t a c c o r d i n g t ot h ed e m a n df o rt h es y s t e m a d e s i g ns c h e m e b a s e do no n et i m ep a s s w o r da u t h e n t i c a t i o np r o t o c o l ( o t e a r 9w a s g i v e n 。t h i s s c h e m ed e a l tw i t ht h ef i r s tt h r e em o d u l e s ,a n di tw a sb u i l to nj a a s t h i sp a p e ri s o r g a n i z e da sf o l l o w s :f i r s t s o m er e l a t e db a c k g r o t m d sa n da t h e o r yo f 0 t p :a pw e r ei n t r o d u c e d t h e n 。t h ed e s i g nf l o wo f i d e n t i t ya u t h e n t i c a t i o n a n da u t h o r i z a t i o n ta n dh o wi tr e a l i z e dt h eg o 敷o fs s w e r ee m p h a t i c a l l y e x p l a i n e d f i n a l l y , t h ei m p l e m e n t a t i o no ft h es y s t e m , w h i c hw a sb u i l to nj a a s a n ds e v e r a le x i s t i n g e n c r y p t i o na l g o r i t h m ,w a s 西v e n k e yw o r d s :s s o ,o t p a p , a u t h e n t i c a t i o n ,a u t h o r i z a t i o n ,j a a s 薹薹 第一章绪论 1 1 弓l 言 第一章绪论 在弱终痘曩舔凌下,惩户登豢谤淹不筏戆栏瓣、频道、菇熹或嚣终资源对, 每个不同的应用一般都遵照一定的安全策略,如瑟求用户输入用户名、朋令进 行蹙份认诞。用户漫游的系统越多,口令麓越多,出错的可能性缴越大,受裂 非法截获和破坏的可能性也越大,安全性稻应地识就越低。如果用户忘记了口 令,就不能执行任务,从丽降低工作效率。最终用户必须请求系统管理人员帮 忙,在重新获得口令之前熬能等待,这样就造戒了系统和安全管联员等资源的 浪费。为了牢记登录信息,用户一般会简化密码,为多个系统使用相同的口令 或麓建一个叠令确表;或蠢将爨蠢l d 、强令记浆爨赍疆土,热纸张或磁盘。 这燃做法都容易造成口令的泄漏和扩散,进而危及个人以及公司信息的保密 瞧。 通过安全的单点登录方式,用户只需记住个用户i d 和口令( 或秘密通 行短语) ,一旦认诞结束,藏可以立即访阅所有被授权的w e b 应用系统? 从而 提高了整体安全像。 为此,广州市电信科技开发有限公司提出数字身份管理系统作为解决方 寨,箕叠秣是设计一个安衾身傍谈诞帮授权管瑾懿系统,爨满足众整蓿怠系统 用户一次性登录,并按照不同系统的授权能力,访问多个业务系统的统一安全 控粼。作考对一次瞧口令撩别协议送行了辑究,总结研究单熹登泶熬解决方寨, 并结合j a v a 程序歼发中获得的知识与经骏,在初步实现了基于o t p a p 的安全 单点登录系统的基础上,褥出此文。 1 2 单点登录( s s o ) 的简介 所谓单点登象系统,怒为了能够在分布式计算机环境中,安全和方便的鉴 象震户瑟产生戆,羧是撵弼产只器在网终牵主动逡送行一次身餐谈证隧爱霞胃 以访问其他被授权的所有网络资源,而撇需再主动地参与其他的身份认证过 程。这里艇援熬踺络资源霹鼓是一些嬲终共享中瓣设备,魏打印耄琏,也霹鞋是 各种文档数据或怒应用程序,如f t p 服务程序,这些瓷源可能处于不同的计 算枫环壤巾。 单点鼗录系统把原来分散静强户管琢集中越来,各系统之间依靠福甄信赖 的荧系来谶行用户身份的自动认诞。由予用户的信息是集中保存和管理的,管 毽爨其需农一个统一懿用户信惠数搽痒串添热、嚣l | | 除嗣户冁号,不努在多个系 统中分别设置用户信息数据库。除此以外,单点激录系统可以从根本上抛弃传 中山大学软件工程硕士学位论文 统认证中用户名密码以明文传输的方式,而是采用结合密码学技术的新的认 证机制,从而提高整个系统的安全性。 由此可见单点登录的优点是: , 1 提高工作效率用户无需为每访问一个网络资源而进行一次主动的身 份认证,从而使用户有更多的时间从事有益的工作。 2 增强系统的整体安全性由于用户只需记住一个唯一的登录密码,因 此该密码可以设计得非常复杂,可称之为秘密通行短语,从而增加了攻击者进 行口令猜测的难度,此外利用强认证机制,如一次性口令鉴别协议( o t p a p ) , 对用户进行基本身份验证,也提高了登录的安全性。 3 更有效的管理用户的帐号数据统一保存、集中管理,减少了出错的 机率,同事也减轻了网络管理员的维护负担。 正因为单点登录系统有如此突出的优点,为应对安全市场上的需求,研究 者们提出了一些常规的标准解决方案:例如b r o k e r b a s e ds s o 方案的 k e r b e r o s 、s e s a m e 和i b mk r y p t o k n i g h t ,a g e n t b a s e ds s o 方案的s s h , t o k e n b a s e ds s o 方案的r s a s e c u r d ,另外还有一些a g e n t a n db r o k e r - b a s e d 和g a t e w a y b a s e d 的s s o 解决方案。 1 3 术语定义 以下是本文所使用的部分术语: o t p a p :一次性口令鉴别协议( o n et i m ep a s s w o r da u t h e n t i c a t i o np r o t o c 0 1 ) s s o :单点登录( s i n g l es i g n o n ) j a a s :j a v a 认证和授权服务( j a v a t ma u t h e n t i c a t i o na n da u t h o r i z a t i o n s e r v i c e ) o t p 一次性口令协议( o n et i m ep a s s w o r dp r o t o c 0 1 ) k e r b e r o s :是业界的标准网络身份验证协议 s e s a m e :欧洲安全多环境应用系统( s e c u r ee u r o p e a ns y s t e mf o r a p p l i c a t i o n i nm u l t i v e n d o re n v i r o n m e n t ) ,被认为是欧洲版的k e r b e r o s k r y p t o k n i g h t :是i b m 公司的类似于k e r b e r o s 的鉴别和密钥分配系统。 s s h :英文全称是s e c u r es h e l l 。通过使用s s h ,你可以把所有传输的数据 进行加密,这样就能防止d n s 和i p 欺骗。 s e c u r i d :被称之为双因素的认证,构成认证的第一个因素是p e r s o n n e l i d e n t i f i c a t i o nn u m b e r ( p i n ) ,另外一个因素是s e c u r l dt o k e n ,一个小型的 数字发生器,这个发生器与网络环境中提供身份鉴别的服务器( a c e ) 保 持同步,并且与a c e 上的用户数据库保持映射。数字发生器每隔一段时 间( 比如一分钟) 产生新的数字,p i n + 同步时钟数字就是用户的登录代 码。 2 夺夺夺 夺夺夺 夺 夺 篇一章绪论 1 4 本文的组织结构 本文第一章介绍了项目背景、单点登录系统概念和一些术语;第二章介绍 一次蛙鉴鼷耱议的蓉本壤念稠基本设诗思想;第三章套缨了基予o t p a p 蕊单 点鼗录系统的体系结构和流程设计;第嘲章阐述该单点疑录系统的设计与实 现;第五章遴行安全性分檄,提出了存在的问题,并且给出了相应的防范方法; 第六章是结束语,并提出了未来工作的袋望。 3 第二章一次性口令鉴别协议 第二章一次性口令鉴别协议 单点登录系统的核心就是一个高效的、安全的认证。因此对认证机制的选 择显得很重要。支持单点登录的认证机制很多,包括o t p 、k e r b e r o s 、p k i 、 k r y p t o k n i g h t 和s e s a m e 等。在这里选择一次性口令鉴别协议o t p a p ,它是改 进o t p 之后得到的通信双方可以相互鉴别的强认证协议,以下介绍其基本概 念和基本设计思想。 2 1 基本概念 1 鉴别:是指验证通信对象是原定的那位而不是冒名顶替者的技术; 2 秘密通行短语( p a s s p h r a s e ) :由用户指定的秘密通行短语字段,本身 不显式地在信道上传输,是生成一次性口令的三个参数中唯一需要保 密的参数,因此需要妥善保管; 3 安全哈希函数( s e c u r eh a s hf u n c t i o n ) :单向的散列函数,仅从消息的 散列值恢复出消息本身被认为是非常困难的。r f c2 2 8 9 定义了3 种可 供使用的h a s h 函数算法:m d 4 ,m d 5 和s h a ,其中m d 5 算法是系 统缺省算法,算法输出一个6 4 位长的一次性口令( 这里用作一次性会 话密钥) ; 4 迭代值( i t e r a t i o n ) :使用若干次h a s h 函数。在该系统内,迭代值为n , 则计算ho ( 秘密通行短语+ 种子) ,用户每进行过一次身份识别,迭 代值就减2 ,当它减至o 或1 时用户就必须更改秘密通行短语并重置 迭代值了; 5 种子( s e e d ) :验证方发给用户的一个用于计算应答的初始值,它是 以明文方式在不可靠信道上传输的; 4 中山大学软件工程霹士学位论文 2 2 鉴别协议 a 工,r h 用户名 r 3 1 1 种子+ 选代值 窖 鼹 户 飘r 髑户名+ 轴+ t 。 务 r 端 器 u 3 2 l 鼹势器名+ 袋羲+ r 珏+ 苫l 1 2 装 a s b 3 f 用户名+ r 毫+ t 2 ) 戤 。 , 3 3 1 验证成功,提西奇准备接收凭证 一 醋2 1o t p a p 示意图 如图2 一i 掰示,o t p a p 要求羧鎏剐鹣双方分翔裁嗣菸享静秘密通行短语、 变化的迭代值和种子进行嗡希运算( 垫婴蚕丝! ! 生成一次性口令,即为一次 蛙会话塞锈( 鼓- f 搦一次瞧会话密锈表示) 。双方禳次狻立产生嚣个一次然会话 密钥,并利用这两个会话密钥,使用对称加密算法( 如d e s 算法) 加密解密 对方传送过来的摄文,只爱对方拥蠢正确的秘密邋行短语、迭代馕和静予方可 继续会话,从而达剜相互箍别的翳的。 其中,k l 为第一个一次性会话密钥;k 2 为第二个一次性会话密钥:( 用户 名十r u + 彳 k l 表示便霜密镅k l 翔密报文 磊产名+ r u 羊 ;t 为露标,r u 是 用户u 产嫩的随机数,r a 是服务器a 产生的随机数,为了保证身份认证之 磊,窖户蟪秘麦傍诀涯服务器双及客户矮窝瘟麓骚务器之润数攥谨送瓣安全 性,将串联r u 和r a 作为临时会话密钥。 每次爨录成功最,迭代值递减2 。迭代馕蛉递减保证了会话密钥的一次性, 即用以加密传送给认证服务器鉴别的消息的会话密钥每次都是不同的。当迭代 值小于阙馕( 一般设置为1 0 ) 时,要么修改秘密通行短语( 因为迭代值1 0 缀快就会递减为o ) ,要么选耩一个新的逡代值,为了安金超觅,可班黼薅嫠 改秘密通彳予短语和迭代值。 第三章基于o t p a p 的单点登录系统设计 第三章基于o t p a p 的单点登录系统设计 3 1 单点登录系统体系结构 从有利于统一的用户信息管理、满足系统安全性和充分利用o t p a p 协议 出发,采用b r o k e r b a s e d 的模型实现单点登录系统。系统由三个部分组成:支 持o t p a p 认证服务的客户端,o t p a p 认证服务器和应用服务器端。认证服务 器扮演了经纪人( b r o k e r ) 的角色,它主要完成两部份的功能:验证用户身份;发 放服务凭证。用户信息统一保存在认证服务器中的安全数据库里。 图3 1 单点登录系统体系结构 l :q 皿扯il :鼬目睦血o dl i s t ii s 滥【 l 1 :请求登录凭证 图3 2 单点登录系统协作图 6 哭 中山大学软件工程磷士学位论文 图3 3 单点登录系统交互图 3 2 单点登录系统流程设计 支持o t p a p 的程序 根据圈2 1 ,设计流程如下,该流稷将介绍支持o tp _ a p 的应用服务器为 主,兼顾以用户名+ 密码方式认诞的应用服务器: i 当掰户u 黹要使懿某个应掰服务器8 的旋源对,首先婺商。t p a p 认证 服务器a 发送认诞服务请求。“a u t h 用户名”。 2 a 鸯诲数攒津,著溺户是露存在,游存在粥放数攒痒至褥戮该焉户魏静 子、迭代慎和秘密通行短诺,然臌将种子和迭代德发给用户作为挑战。 “3 1 1 穗子+ 这代筐”。 3 用户u 收到种子和迭代值之后,客户端稷序根据自有的种子和遗代值 对比收到的种子和迭代值,若楣弼,则利用啥希冀法对串联在一怒的种予和秘 密通行短语进行当前迭代值数值大小次运算,产生一次谶密钥 ( 1 。用 ( 1 生成 密文 用户名+ r u 十t k l 发送给服务器a ,生成徽文之后,k 1 从内存中清除。 “f ! r 雳户名r u + 丁 莪i ”。 4 a 收到密文之后,利用先前从数据库获取的用户u 的秘密通行短语、 静予、迭代篷,生成一次性密钥k l ,鳃祭k l 2 麓密收劐懿塞文,列竞拔对鞋 豹身份认诞。u 得到认证之后,a 继续生成一次性密钥k 2 。并生成密文 服务 器褒+ r a + r u + t l k 2 发送给用户u 。“3 2 1 服务器名+ r 8 + r u + t 1 k 2 ”。 5 稍户u 也生成一次性密诵k 2 ,如果k 2 能将收到的密文解密,劐完成 对o t p a p 认证服务器a 的身份认证。认证完成后,生成密文 用户名+ r a + t 2 k 2 嚣复给矗,丽薅瓢内存中灞除k 2 帮霜户豹秘密邋行短语。a 投戮密文并成功解 密后,完成双向身份认证,至此用户u 登渌成功。“s e c 用。户名+ r a + t 2 ) k 2 ”。 6 爨录或珐之蜃,& 串联r u 容魏囊藏壤瓣会话察镪k ,劳取撂怒户疆 可以访问的所有_ i 暾用服务器的服务凭证p ( 用户名u 1 ,密文m ) ( 其中凭证中 密文m ( 密文格式:时标t + 用户名u i ) 先擐摆对应廒用服务器是否支持o t p a p , 选择公钥加密或怒不加密,然后褥用临时会话密钥加密;而用户名部份,若是 该应用服务器支持o t p a p ,则还要串联上使用该威用服务器的公钥g 加密的临 7 第三章基于o t p a p 的单点登录系统设计 时会话密钥k + 客户端i p 部份,即u l + k + i p g ) ,发送给用户u 。“3 3 1 验 证成功,提示准备接收凭证”。 7 用户u 收到凭证之后,串联r u 和r a 生成临时会话密钥k ,解密密文 部份,然后向相应的应用服务器b 发出认证请求。“u s e r 用户名”。 8 应用服务器b 接到请求之后,若b 支持o t p a p ,则用公钥解密剔除用 户名的部份,得到临时会话密钥k 和客户机i p ,若i p 符合,产生一个随机数 r 返回客户端;若不支持o t p a p ,按照传统用户名+ 密码认证方式处理。 9 用户u 接收到随机数r 后,生成密文 r + m ) g k 发送到应用服务器b , b 利用上一步得到的k 解密,得到随机数,若相符,则利用私钥s 解密得到m , 若用户名相符,而且时标在有效期内,则向用户u 提供相应的服务。 3 3 小结 本章简要介绍单点登录系统的体系结构和流程设计,可以看出,该系统采 用一个集中认证和用户帐号管理的服务器,减少了管理的代价,并为认证提供 一个公共和独立的“第三方”。另外将认证和授权机制相结合,采用一次性签 放的机制,而且签放的凭证都有一个有效期;支持双向的身份认证,既服务器 可以通过身份认证确认客户方的身份,而客户也可以反向认证服务方的身份。 8 第四章系统的设计与实现 4 1 编程语言 第四章系统的设计与实现 本系统采用j a v a 实现,主要源因: l 。j a v a 悬平台无关的语褰,能邋应不间月户馒愿不犀的平台; 2 j a v a 支持多线程,而多线程可以大大提高服务器性能; 3 j a v a 的位运算能力强大,而o t p a p 繇统的核心运算之一是移位运算; 4 j 2 s d k 提供了多耱鸯珏密算法漪a p i ,铡鲡s h a 、m d 5 、d e s 等,通过第 三方提供,我们还可以免费得到一些受出口限制的算法,如1 0 2 4 位以上的 r s a 舅法等。 4 。2 采用的加密算法 1 。认诞部分 认证部分用到两种加密算法; ( 1 ) m d 5 算法;主要用于通过种子、秘密通行短语和迭代值生成一次性密 锈。由于该算法其有荦淘瞧和运算茯翡特熹,可敬浃速生藏一次淫密爨, 而用它生成的1 2 8 b i t s 的一次性密钥可有效防止通过已知的种子和迭代 篷褥到秘密逶行短瀑。 ( 2 ) d e s 算法:通过m d 5 算法生成的一次性鬻钥,加解密客户端和认证服 务器之间传送的明文,以及在应用服务器端解密密文 2 授权部分 r s a 算法:当客户端和认证服务器双方认证通过,认证服务器需要向 客户端键拱各藏确霰务器豹凭证,当菜些应黧黢务器支持o t p a p 谈证露, 认证服务器利用这些应用服务器的r s a 公钥加密凭谶的需要保密部分,而 这些痰羯鼹务髅接峻到凭涯之嚣蘧垂涎戆r s a 懿缓簇密,势验涯。 4 3 身 ;! 认证服务器设计墨实现 构。 蹇份认证服务器是整个系统的核心,图4 l 描述了认证服务器的体系结 9 中n j 大学软件工程硕士学位论文 强4 一l 试涯疆务嚣体系绪褥 强4 2 鼓涯骚务器黼形赛瑟 认证服务器在模块划分上可分为认证模块、授权模块、密钥管瑷模块、加, 解密模块、控制管理模块、传输控制模块和错误处理模块。 认证横块对用户的身份的合法性进行判断,并根据结果决定魁否返回凭 _ i 垂。 授权横块鬏据焉户静鸯徐,生成程应豹凭诞 密钢擞成模块根据用户的种子、秘密通行筑谮和迭代值,生成一次性密锯。 加解密模块主要在传输过程中,负责解密鬻户端传来的密文,加密返回客 户端的明文。 控制篱蠼模块该模块不但可以对所有的线稷进行统一的管理,还可以设置 一些特殊参数。峦子认迁黢务器毒班羁嚣接受多个建户蕊认 证请求,翳良才骚务器蕊必须袋瘸多线程豹设诗方法来保证 系统的运行效果。在本次系统实现中,提供了动态修改系统 中最大遮行线程数的功能,来使系统更好的适_ 】敷不同的硬件 1 0 第四章系统的设计与蜜珑 传输控制模块 错误处理模块 耶境。弱外为了考虑特殊需簧,磁如端礤冲突阏越,还提供 了端口设鬣的功能。 接收来自餐户端的数据;并将处理后的数据按照地址返回到 客户溃。 对常觅的错误进行处理,擞成消息,由传输控制模块返回给 熙户。 其中认诞模块帮凭诞模块麓最重要静两个模块,因此下灏将戳认诞模块为核 心阐述身份认证服务器的设计向实现。 4 3 。薹j a a s 的麓介 露为j a v as d k1 4 敝零孛熬重要缀戏部分,i a a s 篷霹戮竞戏认涯蠢授投 途两项_ i 作,而这些正是认诚服务器要察现的最重要的两个功能。因此在认 芷 服务器的认证模块和授权凭 难模块的设计与实现中,运用了j a a sa p i 提供的 一些类魏接墨。 4 3 1 1j a a s 的体系结构 j a a s 狡设诗成搿撬绶( p l u g g a b l e 蕊方式。这虿鞋镁癍鼷稳痔对谈迁耪 授权技术保持独立瞧,也就怒说认证和授权部分的实现可以在不错翳改交应用 程序其他部分代码的情况下切换。使用j a a s 包接口,开发者或鼹第三方可阻 辨发一般绲件来实现嚣录认诞,或者通避与用户藏终部系统瓣交嚣作用来访| 1 稿 谈涯信怠。根据需爱,哭潜在j a a s 酝嚣文纬邀微一些改动,这些附加翁缀 孛 就麓被絮成到一个殿用程謦审。 鹫嫩,这穆可瑟谈夔攥絮绘设诗繁寒缀大豹霞巅。爨予镬簿j a a s ,交饲 将可以实现一个健妆而灵港的登录认涟和授权模块。 4 3 1 2j a a s 类与接口 j a a s a p i 由一篷类籁羧溪组残,忿稍协溺工于# ,提供了a p i 魏安全蒋瞧。 下蔼楚常用的类: 1 。l o g i n c o n t e x t蹙一令j a v a 类,它健震l o g i n 。c o n f i g 文转中载诿爨 来决定荽呼目q 哪魑登录模块 2 。l o g n m o d u l e 用于确认用户的合法性( 使用c a l l b a c k h a n d l e r 袋萁德的一些方法) ,著分配p r i n c i p a l 褒s u b j e c t 。 3 ;c a l l b a c k h a n d l e r 灏c a l l b a c k负资与用户交互,戳确认其身份既 含法靛 4 ,s u b i e c t表示登秉懿理豹警镕,著可戳关联一个或多令 p r i n c i p a l 表示具有访问权限的一个实体 中山大学软件工程硕士学位论文 2 图4 3j _ a a s 类交互示意图 如图4 3 所示,j a a s 的类交互流程如下: 1 应用程序创建一个l o g i n c o n t e x t ,然后调用其方法l o g i n o ) 2 l o g i n c o n t e x t 读取l o g i nc o n f i g u r a t i o n 文件,呼叫相应的l o g i n m o d u l e ; 3 l o g i n c o n t e x t 将认证的工作交给该l 0 9 i n m o d u l e ; 4 l o g i n m o d u l e 调用相应的c a l l b a c k h a n d l e r ; 5 c a l l b a c k h a n d l e r 使用c a l l b a c k 和应用程序或是用户交互,获取需要的认证 信息; 4 3 2 认证服务器的类与接口设计与实现 在j 2 s d k l 4 中的j a a s 包中提供了4 个l o g i n m o d u l e 的实现类,7 个 c a l l b a c k 的实现类和2 个c a l l b a c k h a n d l e r 的实现类,但是这些实现类只适用 于本地应用程序登录认证,而本设计的系统主要针对网络之间c s 模式的登录 认证,因此有必要自己实现相关的类。相应的实现类如下: 1 l o g i n m o d u l e 接1 2 1 实现类- - o t p a p l o g i n m o d u l e o t p a p l o g i n m o d u l e 实现类用于确认用户的合法性( 使用 c a l l b a c k h a n d l e r 或其他的一些方法) ,并分配p r i n c i p a l 和s u b j e c t ,而p r i n c i p a l 是用户以后访问应用服务器的凭证。以下是o t p a p l o g i n m o d u l e 中的六个方法: 1 1i n i t i a l i z e ( ) 当要创建一个o t p a p l o g i n m o d u l e 实例时会被构造函数调用 2 1l o g i n ( ) 调用o t p a p c a l l b a c k h a n d l e r 和各c a l l b a c k 接口实现类进行用 户验证 3 1 c o m m i t ( ) 4 ) a b o r t ( ) 5 ) l o g o u t o 当l o g i n c o n t e x t 对象接收o t p a p l o g i n m o d u l e 对象传回的结 果后将调用该方法,该方法将多个p r i n c i p a l 对象赋给 s u b j e c t 对象,这里的p r i n c i p a l 对象将存放应用服务器u r l 路径、端口、用户名和密文。 当o t p a p l o g i n m o d u l e 对象验证失败时将调用该方法,此时 没有任何p r i n c i p a l 对象关联到s u b j e c t 对象上 删除与s u b i e c t 对象关联的p r i n c i p a l 对象 第霆露系统静设谤鸯窭魏 6 ) r d b m s v a l i d a t e u s e r ( s t r i n gu s e r n a m e ) 访问安全数据库,验证用户是否 存在,若褥在,燃溺用户的秘密 满行短语、种子、迭代值和角色 2 ,c a l t b a c k h a n d l e r 接瑟实瑷类o t p a p c a l t b a c k h a n d l e r o t p a p c a l l b a c k h a n d l e r 焉予帮客户端迸霉亍嵇息交互,使 o t p a p l o g i n m o d u l e 程数据库孛获取竣惑瓣露辩,迄可戮麸耀户露受牧囊必 方法名客户端对应愈令对戏的c a l l b a c k 燕蘩撵用 h a n d l e ( )擞潞媚瘦靛c a i l b a c k 慰熬来获取绩息 | 如觚氆e o 撒穗瑟鼯 a b t 珏u s e r n a m e c a l t b a c k d o c h a l l e n :g e o c h a l l e n g e c a u b a c k d o f i r c o m m a n d o f i rf i r s t c a u b a c k d o f i r s t r s p of i r s t r s o c a l l b a c k d o s e c c o m m a n d o s e cs e c o n d c a l l b a c k d o s e c o n d r s 鼙o s e c o n d r s p c a l l b a c k d o q u i t c o m m a n d o q u r i 楚璩溺户鼗泵串途发窭静q u i t 禽令 l类名羹要作用 f l u s e r n a m e c a l i b a c k获取客户端传送过来熬用户联 | c h a l l e 建藏e c a l l b a c k运銎绘褰产壤秘子+ 迭霞穗 辩蒋翻强a e 襄获联客户滚第一次健输遗寒赘密文 u r 毽翳黼 f i r s t r s p c a l l b a c k返回缭客户端 服务器名+ r a + r u 十t 1 ) k 2 s e c o n d c a l l b a c k获淑窖户蝼第二次鼹瓣逑寒懿密文 u + 歉8 + t 2 l 笠 s e c o n d r s p c a l l b a c k 倘游认证通过,返回成功信息,并获取对方i p 地址 4 。熬黉文搏 j a a s 的霹扩展髅来源予它能够滋裙动态配置,丽醚鬣傣息通常是保 存在文本文释( l o g i nc o n f i g u r a t i o n 文彳牛) 中。这墅文本文件由狠多个配 徽块构成,我们通常把这些配置块称作申请( a p p l i c a t i o n ) 。每个申请对应 个袋多令特定熬l o g i n m o d u l e 对象。 娄蠡夔健码搀滚一个l o g i n c o n t e x t 辩象瓣黠误,你嚣要恕配置文终申 辩请魏名穆簧遂给它。l o g i n c o n t e x t 将衾校撰枣读孛熬售惑决定激溪瓣些 l o g i n m o d u l e 辩象,缀照什么顺序激活以及使用什么规则激满。 该系统的配置文件如下所示: o t p a p e x a m p l e o t p a p s e r v e t o t p a p l o g i n m o d u l er e q u i r e d 中山大学软件工程硕士学位论文 d e b u g = ”t r u e ” r a n d o m s i z e = ”4 ” s e r v e r n a m e - - ”1 2 7 0 0 1 ” u r l = ”j d b c :o d b c :o t p a p ” d r i v e r = ”s u n j d b c o d b c j d b c o d b c d r i v e r ” r o l e f i l e = ”r o l e x m l ”; ) 其中 o t p a p s e r v e r o t p a p l o g i n m o d u l e 后面的r e q u i r e d 表示 o t p a p l o g i n m o d u l e 对象必须被调用,并且必须需要通过所有的验证。 d e b u g = ”t r u e ”表示打开调试模式,将在控制台输出相关的信息 r a n d o m s i z e = ”4 ”确定认证服务器产生的随机数为4 位,根据实际安全 需要,可以加大位数 s e r v e r n a m e = ”1 2 7 0 0 1 ”表示认证服务器的机器名,双方通信检验时用 u r l = j d b c :o d b c :o t p a p ”表示安全数据库的地址 d r i v e r = ”s u n j d b c o d b c j d b c o d b c d r i v e r ”表示访问安全数据库使用的驱 动程序 r o l e f i l e = ”r o l e x m l ”表示存放角色及对应权限的x m l 文件名称 j a v a - d j a v a s e c u r i t y a u t h 1 0 9 i n c o n f i g = = j a a s c o n f i go t p a p s e r v e r m a i n ” 图4 4 j a a s 的配置文件 1 4 第四墩系统的设计与实现 圈4 4 描述了该配置文件和系统中各元素之间的关系。 4 3 3 数据库设计 宙予考虑妥演示拜寸系统配嚣薅方便性懿鬻要,该系统鹃数据澎使用 a c c e s s 2 0 0 0 ,实际应用中,可根据情况使用s q l 2 0 0 0 ,m y s q l 和o r a c l e 等兼系 数据疼。下嚣戳w i n 2 0 0 0 凳铡,分缨建交数据霹熬过程; 如图4 5 和图4 6 所示,进入菜单【开始】 【设置】 【控制面 援】 【管理工其】 【数据源( o d b c ) 】,选择【系统d s n 添加一个系 统数据源,驱动使用m i c r o s o r a c c e s sd r i v e r ,然后指定数据源名为o t p a p ,数 据库选择o t p a pm d b 。 罄毒一5 添热系统数据深 图4 6 选择数据库 1 5 中山大学软件工程硕士学位论文 数据库o t p a p 的设计如图4 7 所示 图4 7 数据库o t p a p 数据库o t p a p 只有一个表u s e r l n f o ,设计如下所示: i d n u m b e r ( 3 2 ) n o tn u l lp k自动增长的顺序号 u s e r n a m e v a r c h a r 2 ( 2 0 ) n o tn u l l用户名 v a r c h a r 2 ( 5 0 ) n o tn u l l秘密通行短语 v a s s p h r a s e n u m b e r ( 4 ) n o t n u l l迭代值 i t e r a t i o n s e e d v a r c h a r 2 ( 2 0 ) n o tn u l l种子 r o l e v a r c h a r 2 ( 2 0 ) n o tn u l l用户对应角色名 4 3 4 基于角色的授权控制的设计与实现 用户通过登录验证之后,需要授予相应的服务访问权限,倘若将用户与访 问权限直接相联系,当组织内人员新增或有人离开时,或者某个用户的职能发 生变化时,需要进行大量的授权更改工作。为此,该系统采用基于角色的访问 控制技术r b s c ( r o l eb a s e da c c e s sc o n t r 0 1 ) ,r b a c 在中间加入了角色,通 过角色沟通用户与资源,根据角色进行访问授权与控制。也就是说,对用户的 访问授权转换为对角色的授权,然后将用户与特定的角色联系起来,一旦角色 库建立起来,剩下主要的管理工作即是为用户在表u s e r i n f o 中授予角色或取消 角色。因此,系统管理员可以在一种比较抽象的,与企业的业务管理相类似的 层次上控制访问,这种授权十分接近日常的组织管理规则。 图4 8 是该系统基于角色访问控制的示意图 第翘章系统豹设计与实现 图4 8 基于角色访问控制示意图 在焦憩信息和访问权限撵酌设计上,该系统采用tx m l 技术。主要原因 懿下: 1 x m l 其有到器裁蠢止其他方法所不具备盼数据描述特点,控制信怠不 是聚用应用软件的独谢形式,而是采用谯都可以看得懂的标记形式来表 现,便于日后系统管瓒员维护和扩展; 2 x m l 可以作为数据仓储,一个x m l 文件就是一个小的数据库,通过 对数据关系的定义可以灵活静形成各耪关系、属性的数据 3 。x m l 是爨文本形式泉绉述豹一耱文转掺式垂手x m l 怒蕊文零澎式 播逑的,所以适用予释种平台环境的数据交换。这也是满麓该系统的 设计要求。 下灏炬系统中使用的r o l e x m l 的代码片断; ? x m lv e r s i o n = ”1 ,0 ”e n c o d i n g = ”g b 2 3 1 2 ”? f t p l 1 2 7 0 0 1 :2 1 f t p p a s s w o r d 1 7 中山犬学软件工程硕士学傲论文 f t p 2 3 0 8 1 9 f 3 0 0 d 0 6 0 9 2 a 8 6 4 8 8 6 f 7 0 d 0 1 0 1 0 1 0 5 0 0 0 3 8 1 8 d 0 0 3 0 8 1 8 9 0 2 8 1 8 1 0 0 d 7 3 9 0 2 2 5 0 8 2 f 0 2 7 f l b 7 8 1 6 5 2 4 2 f 3 f b 5 b a 4 e d 5 7 3 3 a 3 5 8 9 c o a l 9 d e 8 b a f 6 1 f 2 7 8 e c 2 9 c c 0 0 3 c f l e 9 3 9 9 b f 8 2 3 c 0 6 a b e 6 2 f 0 6 2 5 2 e 0 3 e f 7 3 7 6 8 1 9 c a 5 f c e d e e 6 c a 9 f 8 4 d 3 4 3 5 a d 7 5 f c b 4 a o c e 8 b d d l e a 6 0 d 6 e 8 6 0 9 7 2 8 7 4 a d 8 4 4 d o c 9 e 4 8 6 2 9 d e e e 6 0 1 b e 0 1 e f 5 3 4 d c 5 6 f 转0 6 6 c 5 b 5 f 6 l a f o b 7 9 d 0 0 6 e 曲5 3 b 3 4 6 d 1 6 6 e 4 6 0 3 e 8 c b 7 a 4 4 c l b 0 7 b 2 3 0 2 0 3 0 1 0 0 0 1 1 2 7 0 0 1 :2 2 j w j l 4 3 5 凭证设计 凭诞楚用户登录成功之厝,访问其他应用服务器应该拥有的身份证明。在 j a a s 旗懿孛,援p r i n c i p a l 获鞠豹实现类寒袭示袋一类具有访阉投羧静实体, 在该系绞黪实瑗这些p r i n c i p a l 接墨懿实魏类爵馘凌终凭涯。在系绫中,窦嚣 了名为f t p p r i n c i p a l 的予类。为了兼顾传统方式的用户名+ 密码的认证方式, f t p p r i n c i p a l 使用了两个构造

温馨提示

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

评论

0/150

提交评论