我正在 java 应用程序中的客户端上实现 RADIUS 身份验证过程。
RADIUS 服务器使用RSA SecurID对用户进行身份验证。众所周知,RSA SecurID使用令牌。当用户忘记了令牌的密码时,可以在服务器上将令牌设置为特殊的新密码模式,强制用户在下次登录尝试时设置新密码。
据我所知,与服务器的通信工作流程如下所示:
- 客户端:使用通常的属性向服务器发送访问请求包。
- 服务器:回复一个包,表示特殊的新pin模式
- 客户端:向用户显示一个界面以输入新的密码。将包含新 pin 的包发送到服务器。
- 服务器:回复一个包,说明已成功设置引脚。
- 客户:显示一条确认消息并要求用户输入他使用令牌上的新密码创建的新密码。我认为这与步骤 1 中的包基本相同。
- 服务器:如果 OK 则回复 Access-Accept 包,如果 Not-OK 则回复 Access-Reject
对于第 2、3、4 和 5 步,我不知道包结构是什么样的,因此无法在客户端上实现任何逻辑。有没有人知道服务器与令牌的通信处于新的 pin 模式?
干杯西蒙
使用的令牌如下所示。要创建有效的密码,您需要首先输入您的 PIN 并点击 7 下方的菱形键:
(来源:comprosec.ch)