跳到主要内容

2.1 Challenge/Response (质询/响应)

2.1 Challenge/Response (质询/响应)

在质询/响应认证中, 用户会获得一个不可预测的数字, 并被要求加密它并返回结果。授权用户配备有特殊设备, 如智能卡或软件, 可以轻松地计算出正确的响应。未经授权的用户缺乏适当的设备或软件, 并且缺乏模拟此类设备或软件所需的密钥知识, 只能猜测响应。

Access-Challenge 数据包通常包含一条 Reply-Message, 其中包括要向用户显示的质询, 例如不太可能重复的数值。通常这是从外部服务器获得的, 该服务器知道授权用户拥有的认证器类型, 因此可以选择适当基数和长度的随机或不重复的伪随机数。

然后用户将质询输入到他的设备 (或软件) 中, 它计算响应, 用户将响应输入到客户端, 客户端通过第二个 Access-Request 将其转发到 RADIUS 服务器。如果响应与预期响应匹配, RADIUS 服务器回复 Access-Accept, 否则回复 Access-Reject。

示例: NAS 向 RADIUS 服务器发送一个 Access-Request 数据包, 其中包含 NAS-Identifier、NAS-Port、User-Name、User-Password (可能只是一个固定字符串, 如 "challenge", 或被忽略)。服务器返回一个 Access-Challenge 数据包, 其中包含 State 和 Reply-Message, 内容类似于 "Challenge 12345678, enter your response at the prompt", NAS 将其显示。NAS 提示输入响应, 并向服务器发送一个新的 Access-Request (具有新 ID), 其中包含 NAS-Identifier、NAS-Port、User-Name、User-Password (用户刚刚输入的响应, 加密的) 以及来自 Access-Challenge 的相同 State 属性。然后服务器根据响应是否与所需值匹配返回 Access-Accept 或 Access-Reject, 或者甚至可以发送另一个 Access-Challenge。