RADIUS响应数据包是否包含请求数据包中发送的属性?

时间:2016-09-06 07:01:01

标签: authentication communication radius radius-protocol

我正在使用RADIUS服务器(我的源代码没有),其对RADIUS身份验证请求的响应也包含随请求一起发送的属性。

但是,我正在查看tinyradius的源代码,它似乎在生成响应数据包时不会复制请求数据包中的所有属性。它只复制属性号33(STATE属性)(如果存在)。

RadiusClients似乎接受任一响应。什么是正确的做法?

1 个答案:

答案 0 :(得分:3)

不,RADIUS响应不应包含所有请求属性。

状态是特殊的,它可以用于将多轮请求/响应链接在一起。

State的两个主要用例是OTP身份验证,其中密码和OTP代码通过两轮或更多轮发送,或者EAP身份验证再次发生在多轮中。

NAS                     RADIUS
---                     ------
# Password round
Access-Request      ->
                    <-  Access-Challenge
                        [Generates random state 0x01]
# OTP round
Access-Request
[Copies state 0x01] ->
                        Access-Accept/Reject

如果没有state属性,就无法将Access-Challenge和后续的Access-Request链接在一起。

注意:没有说明如何处理状态,它只是用于将数据包绑定在一起。在FreeRADIUS中,我们维护一个“会话状态”属性列表,这些属性可用于多轮认证尝试的所有轮次中的策略。