radius协议.docx
- 文档编号:23068852
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:24
- 大小:21.42KB
radius协议.docx
《radius协议.docx》由会员分享,可在线阅读,更多相关《radius协议.docx(24页珍藏版)》请在冰豆网上搜索。
radius协议
一、概述:
RADIUS协议包括RADIUSAUTHENTICATIONPROTOCOL和RADIUSACCOUNTINGPROTOCOL两部分。
RADIUSAUTHENTICATIONPROTOCOL完成拨号用户的认证工作,而RADIUSACCOUNTINGPROTOCOL则完成用户服务的计费任务。
事实上,为了更好地向分散的众多接入用户提供互联网服务,必须对接入服务提供有效的管理支持。
它需要对安全,配置,计费等提供支持,这可以通过对一个用户数据库的管理来达到,这个数据库包括认证信息,及细化的服务配置信息和计费信息。
通常这个数据库的维护管理,对用户信息的核实及配置有一个单独的实体完成,这个实体就是RADIUSserver。
由于这些管理信息的众多与繁杂,通常RADIUSserver放在一个独立的计算机上,而为了向RADIUSserver取得服务,必须首先构建一个RADIUSclient,通常RADIUSclient位于NetworkAccessServer(NAS,网络接入设备)上。
下图示例了这些实体之间的关系:
用户A
RADIUS
SERVER
(AAA)
用户N
用户B
RADIUS
CLIENT
(NAS)
INTERNET
二、RADIUS认证协议格式:
1、RADIUSAUTHENTICATIONPROTOCOL包格式
下面是协议报文格式:
LENGTH
IDENTIFIER
CODE
AUTHENTICATOR
ATTRIBUTES
CODE域可以包括如下一些值;
1Access-Request
2Access-Accept
3Access-Reject
4Accounting-Request
5Accounting-Response
11Access-Challenge
12Status-Server
13Status-Client
255Reserved
其中,CODE1,2,3,11值为RADIUSAUTHENTICATIONPROTOCOL使用,而CODE4,5值为RADIUSACCOUNTINGPROTOCOL使用。
其余未用或保留。
CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+AUTHENTICATOR+ATTRIBUTES的所有长度。
AUTHENTICATOR是16字节的随机数,高位在先,此域用于认证答复和加密口令字。
ATTRIBUTES是若干属性状态的集合,其长度是不确定的,不同的CODE值可以跟随不同的属性值。
下表是一个总结:
Request
Accept
Reject
Challenge
#
Attribute
1
0
0
0
1
User-Name
0-1
0
0
0
2
User-Password
0-1
0
0
0
3
CHAP-Password
0-1
0
0
0
4
NAS-IP-Address
0-1
0
0
0
5
NAS-Port
0-1
0-1
0
0
6
Service-Type
0-1
0-1
0
0
7
Framed-Protocol
0-1
0-1
0
0
8
Framed-IP-Address
0-1
0-1
0
0
9
Framed-IP-Netmask
0
0-1
0
0
10
Framed-Routing
0
0+
0
0
11
Filter-Id
0
0-1
0
0
12
Framed-MTU
0+
0+
0
0
13
Framed-Compression
0+
0+
0
0
14
Login-IP-Host
0
0-1
0
0
15
Login-Service
0
0-1
0
0
16
Login-TCP-Port
0
0+
0+
0+
18
Reply-Message
0-1
0-1
0
0
19
Callback-Number
0
0-1
0
0
20
Callback-Id
0
0+
0
0
22
Framed-Route
0
0-1
0
0
23
Framed-IPX-Network
0-1
0-1
0
0-1
24
State
0
0+
0
0
25
Class
0+
0+
0
0+
26
Vendor-Specific
0
0-1
0
0-1
27
Session-Timeout
0
0-1
0
0-1
28
Idle-Timeout
0
0-1
0
0
29
Termination-Action
0-1
0
0
0
30
Called-Station-Id
0-1
0
0
0
31
Calling-Station-Id
0-1
0
0
0
32
NAS-Identifier
0+
0+
0+
0+
33
Proxy-State
0-1
0-1
0
0
34
Login-LAT-Service
0-1
0-1
0
0
35
Login-LAT-Node
0-1
0-1
0
0
36
Login-LAT-Group
0
0-1
0
0
37
Framed-AppleTalk-Link
0
0+
0
0
38
Framed-AppleTalk-Network
0
0-1
0
0
39
Framed-AppleTalk-Zone
0-1
0-
0
0
60
CHAP-Challenge
0-1
0
0
0
61
NAS-Port-Type
0-1
0-1
0
0
62
Port-Limit
0-1
0-1
0
0
63
Login-LAT-Port
表中,
0表示在此类型包中,不可以跟随此属性状态;
1表示在此类型包中,只有一个此属性状态可跟随;
0+表示在此类型包中,0个或多个此属性状态可跟随;
0-1表示在此类型包中,0个或1个此属性状态可跟随;
2、RADIUSAUTHENTICATIONPROTOCOLACCESS-REQUEST
下面是ACCESS-REQUEST包格式:
LENGTH
IDENTIFIER
CODE
REQUEST-AUTHENTICATOR
ATTRIBUTES
其中,CODE=1;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+REQUEST-AUTHENTICATOR+ATTRIBUTES的所有长度。
REQUEST-AUTHENTICATOR是16字节的随机数,高位在先,此域用于认证答复和加密口令字。
ATTRIBUTES是若干属性状态的集合。
参考上表。
3、RADIUSAUTHENTICATIONPROTOCOLACCESS-ACCEPT
下面是ACCESS-ACCEPT包格式:
LENGTH
IDENTIFIER
CODE
RESPONSE-AUTHENTICATOR
ATTRIBUTES
其中,CODE=2;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+RESPONSE-AUTHENTICATOR+ATTRIBUTES的所有长度。
RESPONSE-AUTHENTICATOR是由REQUEST-AUTHENTICATOR计算得出,高位在先。
ATTRIBUTES是若干属性状态的集合。
参考上表。
4、RADIUSAUTHENTICATIONPROTOCOLACCESS-REJECT
下面是ACCESS-REJECT包格式:
LENGTH
IDENTIFIER
CODE
RESPONSE-AUTHENTICATOR
ATTRIBUTES
其中,CODE=3;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+RESPONSE-AUTHENTICATOR+ATTRIBUTES的所有长度。
RESPONSE-AUTHENTICATOR是由REQUEST-AUTHENTICATOR计算得出,高位在先。
ATTRIBUTES是若干属性状态的集合。
参考上表。
5、RADIUSAUTHENTICATIONPROTOCOLACCESS-CHALLENGE
下面是ACCESS-CHALLENGE包格式:
LENGTH
IDENTIFIER
CODE
RESPONSE-AUTHENTICATOR
ATTRIBUTES
其中,CODE=11;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+RESPONSE-AUTHENTICATOR+ATTRIBUTES的所有长度。
RESPONSE-AUTHENTICATOR是由REQUEST-AUTHENTICATOR计算得出,高位在先。
ATTRIBUTES是若干属性状态的集合。
参考上表。
6、RADIUSAUTHENTICATIONPROTOCOLATTRIBUTES
下面是属性状态的包格式:
VALUE
TYPE占一个字节,表示属性状态的类型,、;
LENGTH占一个字节,表示属性长度,包括TYPE+LENGTH+VALUE;
VALUE长度不定,由类型确定。
下面是所有TYPE的集合描述:
1User-Name
2User-Password
3CHAP-Password
4NAS-IP-Address
5NAS-Port
6Service-Type
7Framed-Protocol
8Framed-IP-Address
9Framed-IP-Netmask
10Framed-Routing
11Filter-Id
12Framed-MTU
13Framed-Compression
14Login-IP-Host
15Login-Service
16Login-TCP-Port
17(unassigned)
18Reply-Message
19Callback-Number
20Callback-Id
21(unassigned)
22Framed-Route
23Framed-IPX-Network
24State
25Class
26Vendor-Specific
27Session-Timeout
28Idle-Timeout
29Termination-Action
30Called-Station-Id
31Calling-Station-Id
32NAS-Identifier
33Proxy-State
34Login-LAT-Service
35Login-LAT-Node
36Login-LAT-Group
37Framed-AppleTalk-Link
38Framed-AppleTalk-Network
39Framed-AppleTalk-Zone
40-59(reservedforaccounting)
60CHAP-Challenge
61NAS-Port-Type
62Port-Limit
63Login-LAT-Port
7、单个ATTRIBUTES介绍
由于ATTRIBUTES多达40多个,不可能一一介绍。
这里选择几个重要且常用的作简单介绍,其余可参照RFC文档。
USER-NAME属性状态:
格式:
STRING
TYPE=1,表示USER-NAME属性状态;
LENGTH,表示整个属性状态长度,大于3;
STRING,是名字字符串,可以为如下几种形式:
简单数字字符串,用于本地管理NAS;
简单可打印字符串;
SMTP地址格式,如:
name@
ANS.1名字:
以ANS.标准出现的名字。
USER-PASSWORD属性状态:
格式:
STRING
TYPE=2,表示USER-PASSWORD属性状态;
LENGTH,表示整个属性状态长度,大于18小于30;
STRING,是加密后的MD5摘要字符串。
计算方法如下;
假设S表示共享密码,RA表示REQUEST-AUTHENTICATOR,而口令被分为16位BITS的快,p1,P2,等等。
则:
b1=MD5(S+RA)c
(1)=p1xorb1
b2=MD5(S+c
(1))c
(2)=p2xorb2
..
..
..
bi=MD5(S+c(i-1))c(i)=pixorbi
STRING=c
(1)+c
(2)+……+c(i)
NAS-IP-ADDRESS属性状态:
格式:
ADDRESS
ADDRESS
TYPE=4,表示NAS-IP-ADDRESS属性状态;
LENGTH,表示整个属性状态长度,6个字节;
ADDRESS,表示IP地址,4字节。
NAS-PORT属性状态:
格式:
PORT
PORT
TYPE=5,表示NAS-PORT属性状态;
LENGTH,表示整个属性状态长度,6个字节;
PORT,表示PORT号码,4字节,0-65535。
SEVICE-TYPE属性状态:
格式:
VALUE
VALUE
TYPE=6,表示SEVICE-TYPE属性状态;
LENGTH,表示整个属性状态长度,6个字节;
VALUE,表示服务属性,4字节,有如下一些取值:
1Login
2Framed
3CallbackLogin
4CallbackFramed
5Outbound
6Administrative
7NASPrompt
8AuthenticateOnly
9CallbackNASPrompt
FRAMED-PROTOCOL属性状态:
格式:
VALUE
VALUE
TYPE=7,表示FRAMED-PROTOCOL属性状态;
LENGTH,表示整个属性状态长度,6个字节;
VALUE,表示协议属性,4字节,有如下一些取值:
1PPP
2SLIP
3AppleTalkRemoteAccessProtocol(ARAP)
4GandalfproprietarySingleLink/MultiLinkprotocol
5XylogicsproprietaryIPX/SLIP
三、RADIUS计费协议格式:
1、RADIUSACCOUNTINGPROTOCOL包格式
下面是协议报文格式:
LENGTH
IDENTIFIER
CODE
AUTHENTICATOR
ATTRIBUTES
CODE域可以包括如下一些值;
4Accounting-Request
5Accounting-Response
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+AUTHENTICATOR+ATTRIBUTES的所有长度。
AUTHENTICATOR是16字节的随机数,高位在先,此域用于认证答复和加密口令字。
ATTRIBUTES是若干属性状态的集合,其长度是不确定的。
不同的CODE值可以跟随不同的属性值。
下表是一个总结:
Request
Response
#
Attribute
0-1
0
1
User-Name
0
0
2
User-Password
0
0
3
CHAP-Password
0-1
0
4
NAS-IP-Address
0-1
0
5
NAS-Port
0-1
0
6
Service-Type
0-1
0
7
Framed-Protocol
0-1
0
8
Framed-IP-Address
0-1
0
9
Framed-IP-Netmask
0-1
0
10
Framed-Routing
0+
0
11
Filter-Id
0-1
0
12
Framed-MTU
0+
0
13
Framed-Compression
0+
0
14
Login-IP-Host
0-1
0
15
Login-Service
0-1
0
16
Login-TCP-Port
0
0
18
Reply-Message
0-1
0
19
Callback-Number
0-1
0
20
Callback-Id
0+
0
22
Framed-Route
0-1
0
23
Framed-IPX-Network
0
0
24
State
0+
0
25
Class
0+
0+
26
Vendor-Specific
0-1
0
27
Session-Timeout
0-1
0
28
Idle-Timeout
0-1
0
29
Termination-Action
0-1
0
30
Called-Station-Id
0-1
0
31
Calling-Station-Id
0-1
0
32
NAS-Identifier
0+
0+
33
Proxy-State
0-1
0
34
Login-LAT-Service
0-1
0
35
Login-LAT-Node
0-1
0
36
Login-LAT-Group
0-1
0
37
Framed-AppleTalk-Link
0-1
0
38
Framed-AppleTalk-Network
0-1
0
39
Framed-AppleTalk-Zone
1
0
40
Acct-Status-Type
0-1
0
41
Acct-Delay-Time
0-1
0
42
Acct-Input-Octets
0-1
0
43
Acct-Output-Octets
1
0
44
Acct-Session-Id
0-1
0
45
Acct-Authentic
0-1
0
46
Acct-Session-Time
0-1
0
47
Acct-Input-Packets
0-1
0
48
Acct-Output-Packets
0-1
0
49
Acct-Terminate-Cause
0+
0
50
Acct-Multi-Session-Id
0+
0
51
Acct-Link-Count
0
0
60
CHAP-Challenge
0-1
0
61
NAS-Port-Type
0-1
0
62
Port-Limit
0-1
0
63
Login-LAT-Port
表中,
0表示在此类型包中,不可以跟随此属性状态;
1表示在此类型包中,只有一个此属性状态可跟随;
0+表示在此类型包中,0个或多个此属性状态可跟随;
0-1表示在此类型包中,0个或1个此属性状态可跟随;
2、RADIUSACCOUNTINGPROTOCOLACCOUNTING-REQUEST
下面是ACCOUNTINGREQUEST包格式:
LENGTH
IDENTIFIER
CODE
REQUEST-AUTHENTICATOR
ATTRIBUTES
其中,CODE=4;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+REQUEST-AUTHENTICATOR+ATTRIBUTES的所有长度。
REQUEST-AUTHENTICATOR是16字节的MD5HASH结果值,高位在先。
ATTRIBUTES是若干属性状态的集合。
参考上表。
3、RADIUSACCOUNTINGPROTOCOLACCOUNTING-RESPONSE
下面是ACCOUNTINGRESPONSE包格式:
LENGTH
IDENTIFIER
CODE
RESPONSE-AUTHENTICATOR
ATTRIBUTES
其中,CODE=5;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH+RESPONSE-AUTHENTICATOR+ATTRIBUTES的所有长度。
REQUEST-AUTHENTICATOR是16字节的MD5HASH结果值,高位在先。
ATTRIBUTES是若干属性状态的集合。
参考上表。
4、RADIUSACCOUNTINGPROTOCOLATTRIBUTES
下面是属性状态的包格式:
VALUE
TYPE占一个字节,表示属性状态的类型,、;
LENGTH占一个字节,表示属性长度,包括TYPE+LENGTH+VALUE;
VALUE长度不定,由类型确定。
下面是所有TYPE的集合描述:
40Acct-Status-Type
41Acct-Delay-Time
42Acct-Input-Octets
43Acct-Output-Octets
44Acct-Session-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- radius 协议