一、概述:
RADIUS协议包括RADIUS AUTHENTICATION PROTOCOL 和RADIUS ACCOUNTING PROTOCOL 两部分。RADIUS AUTHENTICATION PROTOCOL 完成拨号用户的认证工作,而RADIUS ACCOUNTING PROTOCOL 则完成用户服务的计费任务。
事实上,为了更好地向分散的众多接入用户提供互联网服务,必须对接入服务提供有效的管理支持。它需要对安全,配置,计费等提供支持,这可以通过对一个用户数据库的管理来达到,这个数据库包括认证信息,及细化的服务配置信息和计费信息。通常这个数据库的维护管理,对用户信息的核实及配置有一个单独的实体完成,这个实体就是RADIUS server。由于这些管理信息的众多与繁杂,通常RADIUS server放在一个独立的计算机上,而为了向RADIUS server取得服务,必须首先构建一个RADIUS client,通常RADIUS client 位于Network Access Server(NAS,网络接入设备)上。
下图示例了这些实体之间的关系:
二、RADIUS认证协议格式:
1、RADIUS AUTHENTICATION PROTOCOL 包格式
下面是协议报文格式:
CODE域可以包括如下一些值;
1Access-Request
2Access-Accept
3Access-Reject
4Accounting-Request
5Accounting-Response
11Access-Challenge
12Status-Server
13Status-Client
255Reserved
其中,CODE 1,2,3,11值为RADIUS AUTHENTICATION PROTOCOL使用,而CODE 4,5值为RADIUS ACCOUNTING PROTOCOL使用。其余未用或保留。CODE 占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH 占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH +AUTHENTICATOR+A TTRIBUTES的所有长度。
AUTHENTICATOR 是16字节的随机数,高位在先,此域用于认证答复和加密口令字。
ATTRIBUTES是若干属性状态的集合,其长度是不确定的,不同的CODE值可以跟随不同的属性值。下表是一个总结:
表中,
0表示在此类型包中,不可以跟随此属性状态;
1表示在此类型包中,只有一个此属性状态可跟随;
0+表示在此类型包中,0个或多个此属性状态可跟随;
0-1表示在此类型包中,0个或1个此属性状态可跟随;
2、RADIUS AUTHENTICATION PROTOCOL ACCESS-REQUEST
下面是ACCESS-REQUEST包格式:
其中,CODE=1;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH 占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH +REQUEST-AUTHENTICA TOR+ATTRIBUTES的所有长度。
REQUEST-AUTHENTICATOR 是16字节的随机数,高位在先,此域用于认证答复和加密口令字。
ATTRIBUTES是若干属性状态的集合。参考上表。
3、RADIUS AUTHENTICATION PROTOCOL ACCESS-ACCEPT
下面是ACCESS-ACCEPT包格式:
其中,CODE=2;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH 占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH +RESPONSE-AUTHENTICATOR+A TTRIBUTES的所有长度。
RESPONSE-AUTHENTICA TOR 是由REQUEST-AUTHENTICATOR计算得出,高位在先。
ATTRIBUTES是若干属性状态的集合。参考上表。
4、RADIUS AUTHENTICATION PROTOCOL ACCESS-REJECT
下面是ACCESS-REJECT包格式:
其中,CODE=3;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH 占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH +RESPONSE-AUTHENTICATOR+A TTRIBUTES的所有长度。
RESPONSE-AUTHENTICA TOR 是由REQUEST-AUTHENTICATOR计算得出,高位在先。
ATTRIBUTES是若干属性状态的集合。参考上表。
5、RADIUS AUTHENTICATION PROTOCOL ACCESS-CHALLENGE
下面是ACCESS-CHALLENGE包格式:
其中,CODE=11;CODE占一个字节
IDENTIFIER占一个字节,用于匹配请求和应答。
LENGTH 占二个字节,是整个数据报的长度,包括CODE+IDENTIFIER+LENGTH +RESPONSE-AUTHENTICATOR+A TTRIBUTES的所有长度。
RESPONSE-AUTHENTICA TOR 是由REQUEST-AUTHENTICATOR计算得出,高位在先。
ATTRIBUTES是若干属性状态的集合。参考上表。
6、RADIUS AUTHENTICATION PROTOCOL ATTRIBUTES
下面是属性状态的包格式: