使用RADIUS的RSA新引脚模式的服务器通信

时间:2012-07-31 10:14:21

标签: java security authentication rsa radius

我正在java应用程序中的客户端上实现RADIUS身份验证过程。

RADIUS服务器使用RSA SecurID对用户进行身份验证。众所周知RSA SecurID使用令牌。当用户忘记其令牌的引脚时,可以在服务器上将令牌设置为特殊的新引脚模式,迫使用户在下次登录尝试时设置新引脚。

据我所知,服务器的通信工作流程如下所示:

  1. 客户端:使用常用属性向服务器发送访问请求包。
  2. 服务器:回复指示特殊新引脚模式的包
  3. 客户端:显示用户输入新引脚的界面。将包发送到包含新引脚的服务器。
  4. 服务器:回复一个包,说明该引脚已成功设置。
  5. 客户端:显示确认消息并询问用户使用其令牌上的新引脚创建的新密码。我认为这基本上与步骤1中的包相同。
  6. 服务器:如果确定,则回复Access-Accept包,如果不正常则回复拒绝访问
  7. 对于步骤2,3,4和5,我不知道包结构是什么样的,因此无法在客户端上实现任何逻辑。有没有人知道服务器与令牌的通信是否处于新的引脚模式?

    干杯 西蒙

    使用的令牌看起来像这样。要创建有效的密码,您需要先输入您的密码并点击7:

    下方的菱形密钥

    this http://www.comprosec.ch/fileadmin/images/rsa/securid/SD520_450x297_72dpi_crop.jpg

1 个答案:

答案 0 :(得分:1)

事实证明,您需要查看来自服务器的RADIUS数据包中发送的“Reply-Message”(类型18)属性。它非常hacky,但它是官方解决方案,因为RADIUS协议不支持这种状态(参见RFC 2865)。与您的RSA联系人交谈,他们可以为您提供测试服务器和2个测试令牌来测试您的解析代码。

这是我到目前为止所发现的:

  • 新的PIN模式条目

回复 - 消息包含“输入4到6位数的新PIN:”

  • 新的PIN模式请求确认PIN

回复 - 消息包含“请重新输入新的PIN:”

  • 新的PIN模式成功

回复消息包含“PIN已接受”

  • 下一个令牌代码模式启动

回复 - 消息包含“输入新的令牌代码”