收藏 分享(赏)

动态口令系统radius接口的简单实现方法.doc

上传人:cjc2202537 文档编号:191190 上传时间:2018-03-23 格式:DOC 页数:13 大小:106.50KB
下载 相关 举报
动态口令系统radius接口的简单实现方法.doc_第1页
第1页 / 共13页
动态口令系统radius接口的简单实现方法.doc_第2页
第2页 / 共13页
动态口令系统radius接口的简单实现方法.doc_第3页
第3页 / 共13页
动态口令系统radius接口的简单实现方法.doc_第4页
第4页 / 共13页
动态口令系统radius接口的简单实现方法.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、动态口令系统 Radius 接口的简单实现方法动态口令系统 Radius 接口的简单实现方法代亮,z 戴英侠(信息安全国家重点实验室(中国科学院研究生院),北京 100089)(中国科学院电子学研究所,北京 100080)E-mail:摘要在网络安全领域,认证是其中重要的一环.如今,动态口令认证已逐渐成为主流的认证趋势,然而各动态口令厂商都有自己的认证接口.这就加大了动态口令与原有系统的集成难度.该文介绍了国际通用的 RADIUS 认证协议,并针对动态口令系统的特点,实现了该协议的简单化版 Radius 服务器.成功地解决了动态口令与原有系统的结合问题.简化的 Radius 服务器克服了一般

2、Radius 服务器对动态口令系统针对性不强的缺点,运行起来更加稳定和有效率.关键词网络安全认证动态口令接口 RADIUS 协议文章编号 10028331 一(2005)32014203 文献标识码 A 中图分类号 TP393ASimpleMethodtoRealizeRadiusInterfaceforDynamicIdentityAuthenticationSystemDaiLiang-DaiYingxia(SKLOISatGraduateSchooloftheChineseAcademyofSciences,Beijing100089)(InstituteofElectricalEngi

3、neering,ChineseAcademyofSciences,Beijing100080)Abstract:Authenticationisanimportantaspectofnetworksecurity.Now,Dynamicidentityauthenticationisbecomingthemostpopularwayforauthentication.But,nearlyeveryproviderfordynamicidentityauthenticationsystemhastheirownauthenticationinterface,whichgreatlyincreas

4、esthedifficultytointegrateitintouserSoriginalsystem.Theauthorintroducesauniversalauthenticationprotocol,RADIUSprotoco1.Consideringthecharacteristicofthedynamicidentitysystem,theauthorrealizedasimpleeditionofRadiusServer,WiththissimpleRadiusServer,theauthorsuccessfullysolvedtheintegrationproblem.This

5、simpleRadiusServerconquersthedisadvantageofstandardRadiusServer,whichhaslesspertinencetodynamicidentitysystem.ThissimpleRadiusServerissteadierandmoreefficientthanstandardRadiusServer.Keywords:networksecurity,authentication,dynamicidentity,interface,RADIUSprotocol1 引言在网络应用越来越广泛的今天.人们对网络的依赖性也越来越强.但同时也

6、面临着越来越大的安全风险.在网上银行,网上证券,网上购物,电子政务,虚拟专用网等各种网络应用中,第一步就是要对用户的身份进行认证.黑客的兴起,木马技术的传播等,都使得传统的用户名/静态口令的认证模式风险越来越大.解决好认证问题已经成为某些网络应用发展的关键一环.如今.动态口令在美国等发达国家已经成为网络认证的主流趋势,在国内.这方面的应用也正在蓬勃兴起.动态口令在应用过程中往往遇到如下困难:用户原有的静态口令系统已经是一个完整的系统,如要加入动态口令认证,就需要做二次开发:同时.每个动态口令提供商都有自己的对外接口.开发应用软件的厂商对动态口令没有一个明确的支持接口,这就使得动态口令嵌入原系统

7、很困难,必须对原系统做二次开发.然而很多用户购买的应用软件本身又无法作二次开发,或是客户二次开发能力很弱,不愿对原有系统作改动,这些都成为动态口令应用发展的障碍.该文介绍了国际通用的 RADIUS 认证协议.RADIUS 协议是国际通用认证协议,大部分防火墙.VPN 厂商都支持RADIUS 接口.而现在用户的系统基本是通过防火墙保护内部网络服务的,利用防火墙对 RADIUS 接口的支持,可以在不改变用户的原有网络,不做二次开发的前提下.就将动态口令系统嵌入原系统,实现对原有服务的动态口令保护.这样就很好地解决了动态口令与原系统的结合问题.标准 RADIUS 服务器是参考 RFc 规范一系列复杂

8、的要求而设计的,没有考虑具体应用的特殊性,因而在动态口令的特定应用环境中有许多的冗余,既影响效率.又降低了服务器本身的可靠性.该文实现的简化的 RADIUS 服务器.针对动态口令的特点,去除了冗余,提高了 RADIUS 服务器的效率和可靠性,同时又可以和任何标准的 RADIUS 客户端完全兼容.2RADIUS 协议背景介绍RADIUS(RemoteAuthenticationDialInUserService)是现在使用最广泛的远程认证协议.利用 RADIUS 协议可以实现认证,计费,授权等功能.协议的具体的规定散见于 RFC 文档.由于 RADIUS 协议的可靠性和通用性,现在大部分安全厂商

9、都作者简介:代亮,硕士研究生,研究方向为网络安全.戴英侠 ,教授,研究方向为信息安全和网络安全.1422005.32 计算机工程与应用支持 RADIUS 协议.这样就有可能利用 RADIUS 协议实现动态口令认证系统与各大安全厂商的安全产品的无缝结合.由于实际的动态口令认证系统中,只涉及到认证功能,所以该文只围绕 RADIUS 协议的认证功能展开论述.其他的计费和授权功能可以在该文论述基础上通过扩展实现.3RADIUS 协议模型及协议内容介绍图 1 是 RADIUS 协议模型.网络接人服务器图 1RADIUS 协议模型RADIUS 协议是用于 NAS(NetAccessServer.即网络接人

10、服务器)和 RADIUSServer(RemoteAuthenticationDialInUserService,即远程认证服务器)之间交互的协议.其中,NAS 作为RADIUSServer 的客户端. 与 RADIUSServer 利用 RADIUS 协议进行交互.同时.NAS 又作为待认证用户客户端的服务器 ,接受待认证用户客户端的认证请求.在实际应用中,防火墙或是VPN 服务器往往就充当了 NAS 的角色.RADIUS 协议的安全性有一个很重要的方面,就是在 NAS和 RADIUSServer 之间,共享着一个 secret,这个 secret 通过特定算法.负责保护用户的密码信息,并且

11、提供 NAS 和 RADIUSServer 之间的鉴别.从而有效防止中间人伪装成 RADIUSServer 来破坏通信的安全性.这个 secret 是不通过网络传输的,而是 NAS 和 RADIUSServer 提前设定的.以下是 RADIUS 协议的包结构:8 位 8 位 16 位CodeIdentifierLengthAuthenticator(128 位)Attributes(不定长 )其中,Code 域表明包的性质,Identifier 域用于匹配请求数据包和回应数据包,Length 域指出包的总长度,Authenticator 域用于 NAS 和 RADIUSServer 之间的鉴别

12、,Attributes 域是包的具体信息.在后面将具体介绍这些域.Attributes 域的结构如下:8 位 8 位不定长(0 或多个字节)TypeL.gthValueAttributes 域采用 AttributeLengthValue 属性三元组来传输 NAS 向 RADIUSServer 发送的用户名和密码等信息,同时RADIUSServer 向 NAS 传送的 Attributes 域也采用同样结构.属性三元组之间没有顺序要求,可以按任意顺序排列.RADIUSServer 和 NAS 都可以忽略自己不认识的字段,只读取自己关心的字段.从而完成特定应用所需的功能,这也是该文实现简化 RA

13、DIUSServer 的基础.4 简化 RADIUS 服务器的实现该文讨论的 RADIUS 协议接口的实现主要是 RADIUSServer 的实现.下面分 NAS 和 RADIUSServer 两方面来说明RADIUS 协议的工作情况.限于篇幅,该文只给出对 RADIUS协议关键部分的处理,其余部分可参照 RFC 文档来实现.该文以下符号取此处含义:+代表串接,SHA1 代表 SHA1Hash 算法 .S 代表共享秘密 secret.RA 代表 RequestAuthenti.cator 域 ,ResponseAuth 代表 ResponseAuthenticator 域.XOR 代表按位异或

14、操作.首先,用户(待认证用户客户端)向 NAS 输入用户名和口令,提请进行认证.第一步:NAS 向 RADIUSServer 发送请求认证包.这一步的关键是对用户密码属性的处理.当 Attributes 域的 Value 字段表示密码时属性时 .密码要进行加密处理后才能赋值给 Value 字段.具体加密过程如下所述 :如果用户输人的 Password 长度不是 16 字节的整数倍,填充 0 使之为 16 字节的整数倍.但是填充结果的长度不能超过128 字节,多余的将被忽略.将填充后的密码字符串以 16 字节长度为一组分为 n 组,P1,P2,(其中,为 16 字节长)并按以下步骤进行计算:第

15、1 步:BI=SHA1(S+RA)CI=P1XORB1第 i 步:Bi=SHA1(s+c(i 一 1)Ci=HXORBi第 n 步:Bn=SHA1(S+C(n 一 1)Cn=PnXORBn将 C1.C2,Cn 串接起来,就形成了密码字段的 Value值.即 Value=Cl+C2+Cn;包的其他域,参照 RFC 文档即可.至此.NAS 向 RADIUSServer 发送的请求认证包已经填充好了.发送至 RADIUSServer 进行认证.第二步:RADIUSServer 处理 NAS 发过来的请求认证包 .这一步的关键是 RADIUSServer 对用户名和密码属性的快速提取.也是实现简化 R

16、ADIUSServer 的核心部分.利用以下伪码,简化 RADIUSServer 实现了对读取 Attributes 域的User-Name(明文)和 Password(密文)属性值的快速提取.伪码如下:lenAttribute=Length 一 20(20 为 RADIUS 包头长.应先减去包头长才是 Attributes 域的长);findFlag=0(当 findFlag=2 时,说明找到了 User-Name 和Password 两个字段.就可以跳过其他属性,这就是简化所在.开始时没有找到,所以应为 0);len=len_Attribute;while(1en0)并 K(findfla

17、g2)if(Code 域为 1)/说明是用户名属性字段读取 UserName(明文);len=len 一(User-Name 域中的 length);findFlag 增加 1:elseif(C0de 域为 2)/说明是密码属性字段读取 password(密文);len=len 一(Password 域中的 length);findFlag 增加 1;else计算机工程与应用 2005.32143len=lenAttributes 域中其他属性的 length 值;/说明是其他属性字段.实现和/标准 RADIUS 客户端的兼容l以上伪码伪是实现简化 RADIUSServer 的核心部分,它只关

18、注用于动态 1:3 令认证的用户名,密码属性,而不考虑用于计费等其他方面的属性,但同时又与标准 RADIUS 客户端完全兼容.以上得到的仅是密文形式的密码.需经过以下处理得到明文形式的密码(此处针对动态 1:3 令系统,动态密码一般只有 8字节,密码填充后为 16 字节):1=SHA1(S+R4)Cl-密文 PasswordP1=1X0RC1此时得到的是明文密码 P1,其前 8 字节即为明文动态口令.对于其它一般的 1:3 令认证系统,当密码长度超过 16 字节,按如下步骤解密出明文密码:将收到的秘文密码以 16 字节长度为一组分为 C1,C2,.Cn(其中,为 16 字节长),按以下步骤进行

19、计算:第 1 步:BI=SHA1(S+R4)PI=C1XORB1第 i 步:Bi=SHA1(S+C(i 一 1)Pi=CiXORBi第 n 步:Bn=SHA1(S+C(n 一 1)Pn=CnXORBn得到明文密码 P1+P2+丹+Ph.RADIUSServer 向动态口令认证服务器传递用户名和解析出来的明文密码,取得认证结果.如果认证结果为通过,则RADIUSServer 向 NAS 发送 AccessAccept 包.如果不通过 .则发送 AccessReject 包.第三步:RADIUSServer 向 NAS 发送认证响应包.这一步的关键是确定 Authenticator 域,是通过以下

20、面方法确定的:ResponseAuth=SHA1(Code+Identifier+Length+RA+Attributes+S).这样做是为了让 NAS 对 RADIUSServer 发回去的包进行鉴别,防止中间人伪装成 RADIUSServer 破坏安全性.包的其他部分,参照 RFC 文档即可.至此,RADIUS 服务器就填充好了向 NAS 发送的认证响应包,将此包发送给 NAS.第四步:NAS 处理 RADIUSServer 发回的认证响应包 .这一步的关键是检验 Authenticator 域,以判断是否是真实的 RADIUSServer,而不是非法的攻击者发回的响应包.通过以下面方法确

21、定(注:t_auhenticator 为临时计算出的 Authenticamr.用于和接收的 Authenticator 域进行比较):tauhenticator=SHA1(code+Identifier+Length+R+5)比较接收的包中的 Authenticator 域是否与 t_auhenticator一致.如果一致,认为是真实的 RADIUSServer,并接受该包;若不一致则丢弃该包.至此.NAS 与 RADIUSServer 完成了一次认证的交互.由于动态口令系统只需要完成认证功能,所以简化的 RADIUSServer 也已经成功实现,同时可以和标准 RADIUS 客户端兼容.最

22、后,NAS 根据 RADIUSServer 发回的响应包向用户客户端显示认证成功或失败的信息.如果在应用中要实现 RADIUS 协议的扩展功能,如计费等功能.只要 RADIUSServer 在查找用户名和密码的步骤中增加对计费等字段的处理,并与 NAS 进行必要的交互即可 ,程序基本不用变化太多.1442005.32 计算机工程与应用5RADIUS 协议特点及该文设计的 RADIUS 服务器特点通过以上的 RADIUS 协议的具体介绍,可以看出 RADIUS协议具有如下的特点:(1)NAS 和 RADIUS 服务器共享一个秘密 Secret,利用此共享 Secret,通过对密码的特殊处理,有效

23、地保护了密码信息的安全.(2)利用共享 Secret,通过特定算法保证,有效地防止了中间人攻击.(3)Attributes 域采用标准格式.这样可以根据应用随时加人相应的属性字段,同时又可与标准 RADIUS 协议兼容,这就使得 RADIUS 协议具有良好的可扩展性.该文针对动态口令的特点对标准的 RADIUS 协议的实现进行了简化,实现了简化版的 RADIUSServer.该文实现的RADIUSServer 具有以下特点 :(1)针对动态 1:3 令系统的特点 ,在 Attributes 域中只选取用户名和密码子段,忽略其他字段.并通过标志位,实现了Attributes 域的快速提取,从而提

24、高了 RADIUS 服务器的效率和稳定性.(2)对协议实现进行了简化,使得 RADIUSServer 的实现非常容易.以利于快速开发和应用.(3)可以与标准 RADIUS 客户端兼容,保证了简化的 RADIUSServer 的在实际应用中的兼容性.(4)动态 1:3 令认证服务器作为 RADIUSServer 的认证模块 ,防火墙或是 VPN 作为 NAS.这样用户可以不用对原有系统做任何改变,也不用进行二次开发,利用简化版的 RADIUSServer 就可以实现动态口令系统和原有系统的无缝结合.6RADIUS 服务器在动态口令认证系统中的应用实例人事服务器 ERP 服务器财务服务器后开通工作

25、站用户工作站用户工作站用户图 2RADIUS 服务器与动态口令系统结合的典型应用部署图(下转 202 页)CMA 的自治管理器.它包括管理 CMA 全部资源对象的资源管理器.管理远程数据文件下载的远程文件拷贝器等.任务移动 Agent(TMA)可携带分布任务规划在网络节点上移动并且在相应的网络结点上完成指定任务分布.它可表示为:TMA:=tmaID,dtpm其中 tmaID 是 TMA 的口 f#一标识:dtpm 是任务移动 Agent的分布任务规划.TMA 并不需要与用户交互,而是根据指派的分布任务规划自治地完成任务分配.如果该任务需要与其它节点进行协同工作.则它通过与当前运行平台上的 CM

26、A 通讯.将需要协同的任务信息交付于它.由 CMA 进行与其它节点进行通讯与协同工作.不同功能的移动 Agent 能够各司其职 ,使得工作流的运行更加流畅.有效提高工作流管理系统的运行效率.基于移动Agent 和任务 Agent 的协同分布式工作流管理系统的工作流的运行过程可如图 2 所示.4 结语移动 Agent 技术在分布式工作流管理系统中的应用能够有效解决管理者难以从全局角度协调各节点间工作的问题.由于基于单一 MA 的分布式工作流管理系统中 Agent 的任务过于繁重而导致工作流实例的等待时间过长,故采用协同移动Agent 和任务移动 Agent 替代传统的单一移动 Agent.通过他们之间的协同交互提升整个工作流实例的运行效率.(收稿日期:2005 年 4 月)参考文献1.吴旭东.基于可移动软件 Agent 的工作流管理J1.计算机工程与应用,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报