Radius认证协议(三)报文属性-1

属性

RADIUS属性携带用于请求和应答的特定认证、授权、信息和配置细节。

Attributes列表的结束由RADIUS数据包的Length字段决定。

Attributes列表可以包含同一种属性多次。

如果存在多个相同Type的属性,则任何代理都必须保留相同Type的属性的顺序。不需要保留不同Type属性的顺序。RADIUS服务器或客户端不能依赖不同Type的属性顺序。RADIUS服务器或客户端不能要求相同Type的属性是连续的。

属性格式如下, 字段从左到右传输。

Type

属性名称

Type

属性名称

1

Acct-Status-Type

23

Framed-IPX-Network

2

User-Password

24

State

3

CHAP-Password

25

Class

4

NAS-IP-Address

26

Vendor-Specific

5

NAS-Port

27

Session-Timeout

6

Service-Type

28

Idle-Timeout

7

Framed-Protocol

29

Termination-Action

8

Framed-IP-Address

30

Called-Station-Id

9

Framed-IP-Netmask

31

Calling-Station-Id

10

Framed-Routing

32

NAS-Identifier

11

Filter-Id

33

Proxy-State

12

Framed-MTU

34

Login-LAT-Service

13

Framed-Compression

35

Login-LAT-Node

14

Login-IP-Host

36

Login-LAT-Group

15

Login-Service

37

Framed-AppleTalk-Link

16

Login-TCP-Port

38

Framed-AppleTalk-Network

17

未分配

39

Framed-AppleTalk-Zone

18

Reply-Message

40-59

为计费保留

19

Callback-Number

60

CHAP-Challenge

20

Callback-Id

61

NAS-Port-Type

21

未分配

62

Port-Limit

22

Framed-Route

63

Login-LAT-Port

 

Length:1个字节,表示属性长度,包括Type、Length、Value三个字段。如果接收到的Access-Request中属性的Length无效,则发送Access-Reject。如果接收到的Access-Accept, Access-Reject或 Access-Challenge中属性的Length无效,则必须将该数据包视为Access-Reject,或静默丢弃。

Value:0或多个字节,包含特定于属性的信息,格式和长度由Type和Length字段决定。

注意,RADIUS中的所有类型都没有以NUL(十六进制 00)终止。特别是,RADIUS中的text和string类型不会以NUL(十六进制00)终止。属性使用Length字段,而不使用终止符。文本包含UTF-8编码的10646个字符,String由8位二进制数据组成。服务器以及客户端必须能够处理嵌入的null。使用C的实现RADIUS时在处理字符串时不要使用strcpy()。

value字段的格式是以下五种数据类型之一。text文类型是string类型的子集。

text:1-253个字节,包含UTF-8编码的10646个字符。不能发送长度为零的text。

string:1-253个字节,包含二进制数据。不能发送长度为零的string。

address:32位值,最高有效字节在先。

Integer:32位无符号数,最高有效字节在先。

time:32位无符号值,最高有效字节在先--自1970年1月1日00:00:00 UTC以来的秒。标准属性不使用此数据类型,此处给出了该数据类型,为了供将来的属性使用。

User-Name

要认证的用户名,如果可以获取,则必须在Access-Request中发送。

User-Name可以在Access-Accept中发送,在这种情况下,客户端应该在此会话的所有Accounting-Request中使用Access-Accept中返回的用户名。 如果Access- Accept包括Service-Type = Rlogin和User-Name属性,则NAS在执行Rlogin功能时可以使用返回的用户名。

User-Name属性格式如下, 字段从左到右传输。

Type:1。

Length:>=3

String:一个或多个字节。NAS可以限制User-Name的最大长度,但建议最少可以处理63个字节。

用户名的格式可以是以下几种形式之一:

text:仅由UTF-8编码的10646个字符组成。

Network Access Identifier:网络访问标识符。

专有名称:公钥(Public Key)认证系统中使用的ASN.1抽象语法标记:Abstract Syntax Notation One)格式的名称。

User-Password

要认证的用户的密码,或是Access-Challenge后用户的输入,仅用于Access-Request数据包。

在传输时,密码是隐藏的。在密码末尾加null至16字节的倍数。对共享密钥和Request Authenticator进行MD5计算,MD5结果与密码的第一个16字节异或,结果放在User-Password属性的String字段的前16个字节。

如果密码长度超过16个字节,则对共享密钥和第一个xor的结果进行MD5计算,MD5结果与密码的第二个16字节异或,结果放在User-Password属性的String字段的第二个16字节。

如有必要,重复此操作,共享密钥与每个xor结果进行MD5计算,MD5计算结果与密码的下一个16字节进行xor,但结果不超过128个字符。

对该方法的更精确解释如下:

调用共享密钥S和伪随机128位Request Authenticator(RA)。 将密码分为16个字节的块p1,p2等,最后一个在末尾以null填充到16个字节。密文块c(1),c(2)等。中间值b1,b2等。

b1 = MD5(S + RA)       c(1) = p1 xor b1

        b2 = MD5(S + c(1))     c(2) = p2 xor b2

                .                       .

                .                       .

                .                       .

        bi = MD5(S + c(i-1))   c(i) = pi xor bi

String为c(1)+ c(2)+ ... + c(i),其中+表示串联。

收到后,相反过程就可以产生原始密码。

User- Password属性格式如下, 字段从左到右传输。

Type:2。

Length:最小为18,最大为130

String:长度介于16到128个字节之间(含16和128个八位字节)。

CHAP-Password

PPP质询握手身份验证协议(CHAP)用户响应质询时提供的响应值,仅用于Access-Request数据包。

如果数据包中存在CHAP-Challenge,则CHAP质询放置在CHAP-Challenge属性中,否则,存在于Request Authenticator字段。

CHAP-Password属性格式如下, 字段从左到右传输。

Type:3。

Length:19

CHAP Ident:1字节,用户CHAP响应中的CHAP标识符。

String:16字节,用户的CHAP响应。

NAS-IP-Address

正在请求用户认证的NAS的IP地址,在RADIUS服务器范围内唯一。 NAS-IP-Address仅用于Access-Request数据包。NAS-IP-Address或NAS-Identifier必须存在于Access-Request中。

提示:NAS IP地址不能用来选择用于验证请求的共享密钥。必须使用Access-Request包的源IP地址来选择共享密钥。

NAS-IP-Address属性格式如下, 字段从左到右传输。

Type:4。

Length:6

Address:4字节。

NAS-Port

正在验证用户身份的NAS的物理端口号,仅在Access-Request中使用。注意:这是在NAS上的物理连接意义的“端口”,而不是在TCP或UDP端口号。 如果NAS区分端口,则Access-Request中应包含NAS-Port或NAS-Port-Type (61))或两者。

NAS-Port属性格式如下, 字段从左到右传输。

Type:5。

Length:6

Value:4字节。

Service-Type

用户请求的服务类型或要提供的服务类型,可以在Access-Request和Access-Accept中使用。 NAS不需要实现所有的服务类型,必须将未知或不支持的服务类型视为接收到Access-Reject。

Service-Type属性格式如下, 字段从左到右传输。

Type:6。

Length:6

Value:4字节,在Access-Accept中时,服务类型定义如下。在Access- Reques中可以被认为是对RADIUS服务器的一个提示,说明NAS认为用户需要的服务类型,但服务器可以接受该提示,也可以不接受。取值如下表:

名称

含义

1

Login

用户连接到主机。

2

Framed

为用户启动帧协议,例如PPP或SLIP。

3

Callback Login

应该断开用户的连接并回拨,然后连接到主机。

4

Callback Framed

应该断开用户的连接并回拨,然后为用户启动一个帧协议,例如PPP或SLIP

5

Outbound

应该授予用户访问传出设备的权限。

6

Administrative

应该授予用户访问NAS管理接口的权限,从该接口可以执行特权命令。

7

NAS Prompt

应该在NAS上为用户提供一个命令提示符,从中可以执行非特权命令。

8

Authenticate Only

仅请求身份验证,不需要在Access-Accept(通常由代理服务器而不是NAS本身使用)中返回任何授权信息。

9

Callback NAS Prompt

应该断开用户的连接并回拨,然后在NAS上提供命令提示符,从中可以执行非特权命令。

10

Call Check

通常基于Calling-Station-Id或Called-Station-Id属性,由NAS在Access-Request数据包中使用,表示一旦接到呼叫, RADIUS服务器应基于Calling-Station-Id或Called-Station-Id属性,发送Access-Accept以接受应答呼叫,或发送Access-Reject以不接受呼叫。建议此类访问请求使用Calling-Station-Id作为用户名的值。

11

Callback Administrative

应该断开用户的连接并回拨,然后授予对NAS管理界面的访问权限,从中可以执行特权命令。

 

Framed-Protocol

表示帧协议,可以用于Access-Request和Access-Accept数据包。

Framed-Protocol属性格式如下, 字段从左到右传输。

Type:7。

Length:6

Value:4字节,取值如下:

名称

1

PPP

2

SLIP

3

AppleTalk Remote Access Protocol (ARAP)

4

Gandalf proprietary SingleLink/MultiLink protocol

5

Xylogics proprietary IPX/SLIP

6

X.75 Synchronous

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值