您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Radius协议及实现
Radius协议及应用1.Radius协议介绍Radius介绍Radius在协议栈中的位置Radius协议交互过程Radius包封装格式CHAP和PAP认证Radius三次握手认证2.Radius应用AAA介绍接入服务器介绍Radius服务器介绍Radius应用实例Radius介绍Radius是RemoteAuthenticationDialInUserService的简称.用来管理使用串口和调制解调器的大量分散用户。完成用户的认证、授权与计费功能,即实现AAA功能。RFC:2138和2865(新版)forRADIUS认证和授权2139和2866forRADIUS计费2618forRADIUS的客户端认证MIB2620forRADIUS的客户端计费MIB2869forRadius扩展认证协议2868for认证、授权相关的RADIUS隧道属性2867for计费相关的RADIUS隧道属性说明:1645/1646和sa-msg-port服务互相冲突,后来正式分配的UDP端口号为1812/1813Radius在协议栈中的位置RADIUSUDPTCPIPPPPEthernetRadius协议交互过程认证点(RadiusClient)认证服务器(RadiusServer)Access-Request/User_name,User_password,NAS_IP,Port_IDAccess-Reject或者Access-AcceptAccounting-Request/NAS_IP_Address,NAS_PortAccounting-Response说明:记帐开始、更新、终止等信息的区分是靠Accounting-Request中的一个属性account-sate(记帐状态)来实现的Radius包封装格式Radius包封装格式(续)编码Code1接入请求(Access-Request)2接入允许(Access-Accept)3接入拒绝(Access-Reject)4记费请求(Accounting-Request)5记费回应(Accounting-Response)11接入询问(Access-Challenge)标识符Identifier标识符域是一个字节,用于比较请求与回复。如果在一个很短的时间片段里,一个请求有相同的客户源IP地址、源UDP端口号和标识符,RADIUS服务器会认为这是上一个重复的请求。Radius包封装格式(续)长度Length长度域是两个字节。它指明了包括编码、标识符、长度、鉴别码和属性域在内的数据包的长度。在数据包长度以外的字节位必须以填充数对待,在接收时忽略它。如果包的长度比指定的短,则此包会被直接丢弃。最小的长度是20,最大的长度是4096。鉴别码Authenticator鉴别码域是十六个字节。最重要的字节是被第一个传输的。这个值是被用于验证来自RADIUS服务器的回复和密码隐藏算法。分为请求鉴别码和响应鉴别码。Radius包封装格式(续)请求鉴别码Request-Authenticator在接入请求数据包中的鉴别码,被称为请求鉴别码,是一个十六个字节的随机二进制数,在secret的整个生存周期中(如RADIUAS服务器和客户端的共享密钥),这个值应该是不可预测的,并且是唯一的。响应鉴别码Response-Authenticator在接入允许、接入拒绝和接入盘问数据包中鉴别码值叫做响应鉴别码,它包含了在一串字节流上的计算出的单向MD5序列,这些二进制数是由RADIUS数据包组成,以编码域开始包括标识符,长度,来自接入请求数据包的请求鉴别码以及执行共享机密的响应属性。即ResponseAuth=MD5(Code+ID+Length+RequestAuth+Attributes+Secret)其中“+”表示连接。CHAP和PAP认证CHAPCHAP(ChallengeHandshakeAuthenticationProtocol)。当用户请求上网时,由BAS产生一个16字节的随机码给用户(同时还有一个ID号)。用户端得到这个包后使用自己独用的设备或软件对传来的各域进行加密,生成一个response传给接入服务器。接入服务器将加密后的密码传递给Radius服务器,服务器根据用户名查找数据库,得到和用户名匹配的密码,然后根据原来的16字节的随机码进行加密,将其结果与response中的密码作比较,如果相同表明验证通过,如果不同表明验证失败。CHAP和PAP认证(续)PAP认证PAP(PasswordAuthenticationProtocol):用户以明文的形式把用户名和密码传递给接入服务器。接入服务器根据用户名在接入服务器端查找数据库,如果存在相同的用户名和密码表明验证通过,否则表明验证未通过。CHAP和PAP认证(续)PAP认证中的User-Password属性调用共享密钥S和伪随机128位请求认证鉴别码RA。把密码按16个字节为一组划分为P1、P2等等,在最后一组的结尾处用用null填充以形成一个完整的16字节组。调用已加密的数据组c(1)、c(2)等,b1、b2等是我们将用到的中间值。b1=MD5(S+RA)c(1)=p1异或b1b2=MD5(S+c(1))c(2)=p2异或b2......bi=MD5(S+c(i-1))c(i)=pi异或bi最后密码字符串包含c(1)+c(2)+...+c(i),其中“+”表示串联。CHAP和PAP认证(续)CHAP密码在CHAP认证中,不存在User-Password属性,密码是以CHAP标识和CHAP-Password一起来表示的,它的值是CHAP(盘问握手认证协议)用户在响应盘问时的响应值。CHAP-Password=MD5(id+password+challenge)Radius三次握手认证客户端网路接入服务器NASRadius服务器Challenge12Challenge-ResponseAccess-Request/Challenge-ResponseAccess-Challenge3Access-AcceptAccess-RequestRadius三次握手认证(续)1.由NAS或者radius服务器产生随机码,通知客户端进行接入认证,客户端根据id、用户密码、随机码进行MD5计算得出Challenge-Response结果,送往NAS;2.Radius服务器接收到NAS发送来的Challenge-Response值之后,根据数据包的用户名查找数据库,得到用户密码,然后从数据包中取得id值,按照客户端同样的方法计算响应值,跟NAS发送来的响应值进行比较,如果一致,则密码正确;同时Radius服务器根据请求鉴别码和将要回应的数据包类容重新生成响应鉴别码,发送给NAS;3.NAS接收到Radius服务器发送来的响应数据包后,按照跟Radius服务器相同的计算方法重新计算响应鉴别码值,然后跟Radius服务器发送过来的值进行比较,如果一致,证明此数据包是客户端所需要的响应包,通知客户端认证通过。AAA介绍AAA的定义AAA是验证、授权和计费(Authentication,AuthorizationandAccounting)的简称。它是运行于NAS上的客户端程序。它提供了一个用来对验证、授权和计费这三种安全功能进行配置的一致的框架。AAA的配置实际上是对网络安全的一种管理。这里的网络安全主要是指访问控制。包括哪些用户可以访问网络服务器:具有访问权的用户可以得到哪些服务:如何对正在使用网络资源的用户进行计费。AAA介绍(续)验证(Authentication):验证用户是否可以获得访问权.可以选择使用RADIUS协议.授权(Authorization):记录用户使用网络资源的情况.计费(Accounting):记录用户使用网络资源的情况.接入服务器介绍接入服务器分窄带接入服务器和宽带接入服务器,我们现在常把NAS(NetworkAccessServer)当作窄带接入服务器的代名词,而宽带现都用BAS表示。接入服务器的功能当用户想要通过某个网络(如电话网、以太网)与接入服务器建立连接从而获得访问其他网络的权利(或取得使用某些网络资源的权利)时,接入服务器起到了访问用户(或这个连接)的作用。接入服务器负责把用户的验证、授权和计费信息传递给RADIUS服务器。RADIUS协议规定了接入服务器与RADIUS服务器之间如何传递用户信息和计费信息。Radius服务器介绍RADIUS服务器负责接收用户的连接请求,完成验证,并把服务器传递给用户所需的配置信息返回给接入服务器。接入服务器和RADIUS之间的验证信息的传递是通过密钥的参与来完成的。用户的密码加密以后才在网络上传递,以避免用户的密码在不安全的网络上被窃取。RADIUS协议规定了接入服务器与RADIUS服务器之间如何传递用户信息和计费信息,因此很多接入服务器所要实现的功能必须有RADIUS服务器配合才能完成,比如用户帐号和MAC地址绑定,用户IP地址的分配等功能如果没有服务器的支持,根本就没法实现。Radius应用实例HostAccessConcentratorRADIUSServer广播,寻找PPPoE接入设备可提供PPPoE接入,应答PPPoE接入请求分配SessionID,建立SessionLCP,用户登录信息发给RADIUS认证RADIUS认证答复Host配置信息(IP地址等)一次成功、完整的PPPoE拨号和通信访问Internet(PPPoE封装)访问Internet计费信息(定时地)终结PPP会话通知RADIUS用户下线LCP:连接控制协议Radius应用实例(续)RADIUS协议的认证和计费端口号分别为1645和1646或者1812和1813,现在常用后者。在实际应用中主要要注意配置的正确。在接入服务器即客户端必须正确配置将要与自己通信的服务器的IP地址、认证和计费端口号、客户和服务器间的共享密钥。在此可配置多个服务器,可以进行服务器的切换;在服务器端必须正确配置与之通信的客户的IP地址、客户的端口号以及客户和服务器之间的共享密钥,在此也可配多个客户端,但是他们分别与服务器的共享密钥必须一一对应,否则无法进行正确的通信。Radius应用实例(续)RADIUS一般采用与PPP或其扩展的PPPoE结合使用完成合法用户的接入认证、授权与计费。对于二层交换常常采用RADIUS与802.1x结合使用来完成合法用户的接入认证、授权与计费。RADIUS的计费类型按用户帐号的时长计费;按用户帐号的流量计费(包括按字节数或者包数);实时扣费(实现预付卡和预付时长计费)
本文标题:Radius协议及实现
链接地址:https://www.777doc.com/doc-2848042 .html