网络应用系统统一口令认证的研究与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络应用系统统一口令认证的研究与实现刘启新,蒋东兴,石碞,沈锡臣(清华大学计算机与信息管理中心,北京,100084)摘要:随着网络的发展,网络应用系统不断增加,迫切要求能够提供一个安全、可靠、高效的口令认证系统。本文研究了认证系统的需求,提出了一套安全、可靠、高效的口令认证算法,并着重介绍了统一口令认证系统的设计与实现的关键技术。关键词:口令;认证;认证服务器;Kerberos;RADIUS中图分类号:TP3091[1]TheResearchandDesignofUniversalAuthenticationSystemLiuQixin,JiangDongxing,ShiYan,ShenXichen(TsinghuaUniv.ComputerandInformationManagementCenter,Beijing,100084)【Abstract】WiththedevelopmentofInternet,networkapplicationsincreasingdaily,whichstronglydemandsamoresecurely,reliableandefficientPasswordBasedAuthenticationSystem.Inthispaper,westudytherequirementoftheauthenticationsystemandbringoutasecurely,reliableandefficientpasswordbasedauthenticationalgorithm,andemphasizesthedesignandkeytechnologyoftheauthenticationsystem.【Keywords】Password;Authentication;AuthenticationServer;Kerberos;RADIUS1引言自“211”工程建设以来,清华大学在校园网络环境下已建立了多个信息系统,为学校领导、各部门及全校教师、学生提供多种服务。如综合信息服务系统、综合教务管理系统、选课系统、办公自动化系统、网上学术沙龙、清华网络学堂等。今后还会不断增加新的应用系统,用户数量也会不断增加,这样就带来了信息安全方面的两个问题,一是上网的信息资源越多,受黑客攻击的可能性越大(尤其是一些敏感数据),二是众多用户面对多个系统要重复输入帐号、口令等信息,不仅烦琐,更重要的是容易出现口令丢失,一旦口令泄漏不仅会造成不可估量的损失。因此,信息系统急需有一个统一的、具有较高安全控制的身份验证系统,以保证数据安全和用户操作方便。开发本系统的目的就是要解决不同的网络应用系统用户名和口令不统一的问题,期望提供一种方便、安全的口令认证方法,让用户只要一套用户名和口令就可以使用校园网络上他有权使用的所有应用系统。2常用的认证技术对于一些计算机资源,只有经过授权的合法用户才能访问,而如何正确鉴别用户的真实身份是问题的关键。用户认证,也称为用户鉴别,就是用户向服务系统以一种安全的方式提交自己的身份证明,由服务系统确认用户的身份是否真实。一般而言,认证的机制分为两类:简单认证机制和强认证机制。简单的认证中只有名字和口令被服务系统所接受。由于明文的密码在网上传输极容易被窃听截取,一般的解决办法是使用一次性口令(OTP,One-TimePassword)机制。这种机制的最大优势是无须在网上传输用户的真实口令,并且由于具有一次性的特点,可以有效防止重放攻击(ReplayAttack)。根据一次性口令生成机制的不同,通常OTP可分为:TimeSynchronization的SecureID(安全标志符),Challenge-Response的CryptoCard(密码卡)和增强的S/Key(安全密钥)等。RADIUS协议就是属于这种类型的认证协议。强认证机制一般将运用多种加密手段来保护认证过程中相互交换的信息,其中,Kerberos协议是此类认证协议中比较完善、较具优势的协议,得到了广泛的应用。Kerberos协议的基础是基于信任第三方,用户需要向服务系统提供身份证明时,首先需要向认证服务器(AS,AuthenticationServer)验证自己身份,通过后用户将会获得一张票据(Ticket),并提交给票据许可服务器(TGS,TicketGrantingServer)确认有效,并经过服务器和客户之间的相互认证后,才可以使用服务系统提供的服务。Kerberos协议具有以下的一些优势:(1)(1)与授权机制相结合;(2)(2)实现了一次性签放的机制,并且签放的票据都有一个有效期;(3)(3)支持双向的身份认证,既服务器可以通过身份认证确认客户方的身份,而客户如果需要也可以反向认证服务方的身份;(4)(4)支持分布式网络环境下的认证机制,通过交换“跨域密钥”来实现。Kerberos机制的实现要求一个时钟基本同步的环境,这样需要引入时间同步机制,并且该机制也需要考虑安全性,否则攻击者可以通过调节某主机的时间实施重放攻击。3统一口令认证系统的设计校园网络上的应用系统主要都是基于口令认证,为了提高这些口令认证系统的安全性,并实现不同的应用系统间的口令的统一,设计了本统一口令认证系统。系统设计的功能和特性主要有:(1)基于简单认证机制中的口令认证机制,以用户名和密码为确认用户身份的标志;(2)有完善的认证接口,让多种应用系统可以方便地通过接口使用本认证系统统一认证用户的身份;(3)用户密码在系统中加密存放,且不可逆;在认证过程中,明文密码绝不能在网络上传输,防止窃听导致泄密,保证用户密码的安全;(4)可以实现认证客户端和认证服务器的双向认证,确保认证双方的身份;(5)能够抵抗重放攻击,既防止攻击者使用窃听到的过时的认证数据包再次获得认证而冒充合法用户的身份;(6)支持分布式认证的方式。统一口令认证系统主要包含三大部分:统一口令认证服务器、网络应用口令认证模块(包括Web口令认证模块、主机口令认证模块、Notes口令认证模块等)和用户信息数据库。用户信息数据库存放系统的相关用户信息,包括:用户名、单向加密后的用户密码、用户的权限信息、用户有效期以及用户附加信息等。统一口令认证服务器通过本系统中定义的安全认证通道接收认证客户的认证请求,并根据数据库中的用户相关信息确认用户的身份,再次通过安全认证通道返回认证成功或认证失败的信息。应用服务器(例如:Web服务器、主机服务器、Notes服务器等)既作为相对用户而言的服务器,又作为统一口令认证系统的客户。它们首先通过安全传输通道(如:SSL通道)获取用户提交的用户名和密码,然后通过口令认证系统提供的统一口令认证模块经由安全认证通道向口令认证服务器提交认证请求,并获得认证结果(成功或失败),最终确定是否给该用户提供服务。4关键技术4.1认证算法考虑到系统的安全和高效,要求设计的认证算法亦是安全、高效。安全主要有三方面:(1)在认证过程中传输的数据不怕被窃听,通过对传输的数据进行加密实现;(2)传输中的数据可以防止被篡改,通过对传输的数据进行数字签名实现;(3)可以抵抗重放攻击,方法是在认证数据包中打时戳,或在认证过程中使用Challenge-Response方法实现。采用时戳需要各系统实现时间同步,增加了系统的不安全性,故一般实现多采用Challenge-Response方法。认证算法采用类似RADIUS协议的算法,其流程如下:C:Client,认证客户,一般为应用服务器;S:Server,统一口令认证服务器;K:C和S之间的共享秘密,即待认证用户的单向加密后的密码;N:待认证用户的用户名;R:S产生的随机数;H{M}:对消息M做单向Hash消息摘要运算,常用的算法为MD5算法;CK{M}:以密钥K使用对称加密算法对消息M进行对称加密,常用的算法为DES或RC4算法;r:认证的结果,成功或失败;1.1.C=S:N,H{N+K+0}2.2.S=C:CK{R},H{N+CK{R}+K+R}3.3.C=S:N,CK{R,K},H{N+CK{R,K}+K+R}4.4.S=C:CK{r,R},H{N+CK{r}+K+R}在认证的每一个步骤中,无论客户端还是服务器端,都要求对数据包中的H{}域做校验。由于H{}域中包含了C和S之间的共享秘密,所以对于不知道此秘密的攻击者而言,是无法伪造合法的数据包的,也由此双向证实了C或S的身份。认证的过程分为预请求和正式请求两部分,其中预请求是C向S获取随机数R的过程,在正式的认证请求中C必须向S提交此凭据。由于R对于每次认证请求都不同,且在S端有记录,攻击者即使窃听到了一个成功的认证请求包,在下次使用时却失效了,所以可以很好得防止重放攻击。4.2数据库中用户权限管理在实际应用中,口令认证可以对多个应用系统进行用户的认证,而这些系统可能分属于多个不同的部门,而每个部分可能都有增加新用户和注销已存在用户的需求,这样就要求经过统一认证后,还需要能够灵活处理用户的权限问题,防止不同部门之间的用户未经授权而闯入其他部分的系统中。因此,在用户权限设置上采取掩码的形式,每个部门都可以自由处理自己掩码下的用户权限,而不会影响其它部门的用户权限。通过这样处理,可以比较灵活地把用户管理的工作分散到各个部门中去。4.3性能问题用户认证是各个应用系统的门户,每个用户进入到系统中都需要经过认证这一步骤。因此,口令认证服务器的性能问题将极大影响各个应用系统的可用性。为了消除认证的性能瓶颈,提高系统的认证响应速度,在系统设计时做了如下的考虑:(1)采用高性能的服务器,连接到高速网络上,避免网络拥塞;(2)认证协议采用类似于RADIUS协议的方式,通讯数据包使用UDP数据包。使用UDP方式有许多优势:系统是请求-应答方式,使用UDP可以大大简化服务器的处理流程,减少系统资源的消耗,提高系统的响应速度;无连接的UDP通讯方式,更适合于多认证服务器做分布式处理;(3)在服务器上对数据库中的用户信息做缓存,并在服务器轻载的时候与数据库进行同步。这样可以减少连接数据库时的资源消耗,能较大幅度提高系统的处理速度;(4)如果单台服务器负载过重,无法处理所有的认证请求时,可以很方便增加新的服务器作并行分布式认证请求处理。实践证明,经过优化后的口令认证服务器完全可以满足多应用系统的认证请求。5.结束语笔者设计的网络应用系统统一口令认证系统是为了解决多应用系统之间用户和口令不统一、用户使用不方便的问题,提出了一种安全、可靠、高效的口令认证算法,对优化系统性能、提高系统响应速度做了一定的探索。现在系统编码已经部分完成,已经在清华大学学生宿舍网计费系统和一些Web应用系统上得到了应用。另外一些认证接口(Notes等)还在研究阶段。该系统的使用,不仅提高了许多应用系统的安全性、可靠性,也给用户提供了极大的方便,方便了各系统的维护,具有很好的社会效益和经济效益。参考文献11KohlJ,NeumanC.“TheKerberosAuthenticationService(V5)”.RFC1510.1993-0922C.RigneyLivingston.“RemoteAuthenticationDialInUserService(RADIUS)”.RFC2138.April199733C.RigneyLivingston.“RADIUSAccounting”.RFC2139.April199744LeechM.“SOCKSprotocolVersion5”.RFC1928.199655张晔,刘玉莎,张志浩.透明网络安全体系结构的研究.计算机工程与应用.2000.4.P11966许晓东,荆继武,阮耀平.一种混合密码体制的认证协议及分析.计算机工程.2000.2.P72

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功