【问题标题】:Does the RADIUS Response packet contain the attributes sent in the request packet?RADIUS 响应报文是否包含请求报文中发送的属性?
【发布时间】:2016-09-06 07:01:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: authentication communication radius radius-protocol


    【解决方案1】:

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

    State 很特殊,它可以用来将多轮请求/响应链接在一起。

    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 中,我们维护一个“会话状态”属性列表,这些属性可用于多轮身份验证尝试的所有轮次中的策略。

    【讨论】:

    • 好的 - 谢谢。看起来我错了 - 这不是属性。但是,超出前 20 个字节(即超出身份验证器) - 我看到 12 12 后跟 Login Success。知道这 2 个 12 代表什么,并且登录成功字符串是必需的
    • 我认为第一个0x12是属性类型Reply-Message &第二个0x12是属性18的长度(我假设长度包括属性类型字段的长度,长度字段和价值本身)
    • 是的,完全正确 :) 所以你的最大字符串长度实际上是 253 字节,因为它包括类型和长度。
    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 2021-03-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多