TinyRadius.docx
- 文档编号:1020229
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:29
- 大小:328.66KB
TinyRadius.docx
《TinyRadius.docx》由会员分享,可在线阅读,更多相关《TinyRadius.docx(29页珍藏版)》请在冰豆网上搜索。
TinyRadius
Radius原理
RADIUS(RemoteAuthenticationDialInUserService)协议最初是由Livingston公司提出的,原先的目的是为拨号用户进行认证和计费。
后来经过多次改进,形成了一项通用的认证计费协议。
RADIUS认证要用到基于挑战/应答(Challenge/Response)的认证方式。
RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(NetAccessServer)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。
RADIUS协议认证机制灵活,可以采用PAP、CHAP或者Unix登录认证等多种方式。
RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。
RADIUS的基本工作原理是用户接入NAS,NAS向RADIUS服务器使用Access-Require数据包提交用户信息,包括用户名、密码等相关信息,其中用户密码是经过MD5加密的,双方使用共享密钥,这个密钥不经过网络传播;RADIUS服务器对用户名和密码的合法性进行检验,必要时可以提出一个Challenge,要求进一步对用户认证,也可以对NAS进行类似的认证;如果合法,给NAS返回Access-Accept数据包,允许用户进行下一步工作,否则返回Access-Reject数据包,拒绝用户访问;如果允许访问,NAS向RADIUS服务器提出计费请求Account-Require,RADIUS服务器响应Account-Accept,对用户的计费开始,同时用户可以进行自己的相关操作。
RADIUS服务器和NAS服务器通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作。
采用UDP的基本考虑是因为NAS和RADIUS服务器大多在同一个局域网中,使用UDP更加快捷方便。
RADIUS协议还规定了重传机制。
如果NAS向某个RADIUS服务器提交请求没有收到返回信息,那么可以要求备份RADIUS服务器重传。
由于有多个备份RADIUS服务器,因此NAS进行重传的时候,可以采用轮询的方法。
如果备份RADIUS服务器的密钥和以前RADIUS服务器的密钥不同,则需要重新进行认证。
RADIUS协议应用范围很广,包括普通电话、上网业务计费,对VPN的支持可以使不同的拨入服务器的用户具有不同权限。
越来越多的软件开始内置RADIUS协议,以方便和各种业务系统对接,如ERP、OA、VPN等,随着这些软件对安全性要求的日益增高,一部分软硬件开始采用双因素方式进行认证,静态密码+动态密码(动态令牌/短信密码)形式,那些支持RADIUS协议的ERP、OA、VPN,在无需对客户端做任何修改情况下就能很好整合动态密码,增强系统身份认证安全。
基本概念
简称
英文全称
中文解释
AAA
Authentication、Authorization、Accounting
验证、授权、计费
PAP
PasswordAuthenticationProtocol
口令验证协议
CHAP
Challenge-HandshakeAuthenticationProtocol
挑战握手认证协议
NAS
NetworkAccessServer
网络接入服务器
RADIUS
RemoteAuthenticationDialInUserService
远程用户拨号认证服务
TCP
TransmissionControlProtocol
传输控制协议
UDP
UserDatagramProtocol
用户数据报协议
PPP
PointtoPointProtocol
点对点协议
AAA可以通过两种途径实现:
1、在NAS端进行认证、授权和计费
2、通过协议进行远程认证、授权和计费。
实现了AAA的协议有:
RADIUS、Kerberos、TACACS等
当用户想要通过某个网络(如电话网)与NAS建立连接从而获得访问其他网络的权利时,
NAS可以选择在NAS上进行本地认证计费,或把用户的信息传递给RADIUS服务器,由Radius进行认证计费;RADIUS协议规定了NAS与RADIUS服务器之间如何传递用户信息和计费信息;RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户的配置信息返回给NAS.
本地(NAS)验证——PAP方式:
用户以明文的形式把用户名和密码传递给NAS,NAS根据用户名在NAS端查找本地数据库,如果存在相同的用户名和密码表明验证通过,否则验证未通过。
本地(NAS)验证——CHAP方式:
SecretPassword=MD5(ChapID+Password+challenge)
当用户请求上网时,
1、服务器产生一个16字节的随机码(challenge)给用户(同时还有一个ID号,本地路由器的hostname).
2、用户端得到这个包后使用自己独用的设备或软件对传来的各域进行加密,生成一个SecretPassword传给NAS。
3、NAS根据传来的用户名查找自己本地的数据库,得到和用户端进行加密所用的一样的密码,然后根据原来的16字节的随机码进行加密,将其结果与SecretPassword作比较,如果相同表明验证成功,否则失败.
远端(Radius)验证——PAP方式:
如果用户配置了RADIUS验证,其PAP验证过程如下:
采用PAP验证:
1.用户以明文的形式把用户名和他的密码传递给NAS。
2.NAS把用户名和加密过的密码放到认证请求包的相应属性中传递给RADIUS服务器
3.根据RADIUS服务器的返回结果来决定是不允许用户上网。
例1:
1)NAS:
192.168.1.16发送Access-RequestUDP数据包到RADIUSServer。
User-name:
nemo
Portloggingin:
3
Code=1(Access-Request)
ID=0
Length=56
RequestAuthenticator={16octetrandomnumber}
Attributes:
User-Name="nemo"
User-Password={16octetsofPasswordpaddedatendwithnulls,
XORedwithMD5(key|RequestAuthenticator)}
NAS-IP-Address=192.168.1.16
NAS-Port=3
2)RADIUSserver验证了nemo,并且发送了Access-AcceptUDP数据包到接入服务器,告诉把用户nemo登陆到主机192.168.1.3.
Code=2(Access-Accept)
ID=0(sameasinAccess-Request)
Length=38
ResponseAuthenticator={16-octetMD-5checksumofthecode
(2),id(0),Length(38),theRequestAuthenticatorfromabove,theattributesinthisreply,andthesharedsecret}
Attributes:
Service-Type=Login-User
Login-Service=Telnet
Login-Host=192.168.1.3
远端(Radius)验证——CHAP方式:
如果用户配置了RADIUS验证,其CHAP验证过程如下:
1、当用户请求上网时,NAS产生一个16字节的随机码给用户(同时还有一个ID号,本地路由器的hostname)。
2、用户端得到这个包后使用自己独有的设备或软件对传来的各域进行加密,生成一个response传给NAS。
3、NAS把传来的CHAPID和response分别作为用户我和密码,并把原来的16字节随机码(challenge)传给RADIUS服务器。
4、RADIUS根据用户名在服务器端查找数据库,得到和用户端进行加密所有的一样的密码,然后根据传来的16的字节的随机码进行加密,将其结果与传来的password作比较,如果相同表明验证通过,如果不相同表明验证失败。
另外,如果验证成功,RADIUS服务器同样也要以生成一个16字节的随机码对用户进行询问(challenge,暂不支持)
例2:
接入服务器192.168.1.16发送一个Access-RequestUDP数据包到RADIUSServer。
User-name:
floppy
Portloggingin:
20
Protocol:
PPP
接入服务器发送的数据包包含属性Service-Type=Frameduser,Framed-Protocol=PPP
暗示RADIUSserver这个用户要使用PPP服务。
Code=1(Access-Request)
ID=1
Length=71
RequestAuthenticator={16octetrandomnumberalsousedasCHAPchallenge}
Attributes:
User-Name="floppy"
CHAP-Password={1octetCHAPIDfollowedby16octetCHAPresponse}
NAS-IP-Address=192.168.1.16
NAS-Port=20
Service-Type=Framed-User
Framed-Protocol=PPP
RADIUSserver验证floppy,并发送Access-AcceptUDP数据包到NAS告诉NAS可以允许PPP服务并从它的动态地址池中分配一个网络地址给用户。
Code=2(Access-Accept)
ID=1(sameasinAccess-Request)
Length=56
ResponseAuthenticator={16-octetMD-5checksumofthecode
(2),id
(1),Length(56),theRequestAuthenticatorfromabove,theattributesinthisreply,andthekey}
Attributes:
Service-Type=Framed-User
Framed-Protocol=PPP
Framed-IP-Address=255.255.255.254
Framed-Routing=None
Framed-Compression=1(VJTCP/IPHeaderCompression)
Framed-MTU=1500
RADIUS协议
Radius服务分客户端和服务器端
通常对Radius协议的服务端口号是1645(认证)、1646
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TinyRadius