跳到主要内容

7. 安全注意事项

本文档规定了 RADIUS 计费协议,它是 RADIUS [2] 的扩展。因此,RADIUS [2] 中描述的安全问题同样适用于 RADIUS 计费。

此外,由于计费信息通过 UDP 发送,而 UDP 是不可靠的,因此计费数据包可能丢失。为缓解这一问题,计费服务器可以检测重复请求(因为其请求认证器在重传时保持不变),并忽略它们。然而,如果计费服务器本身崩溃,则可能丢失计费记录,该记录既未被存储,也未被 NAS 重传(因为 NAS 在收到响应后即认为完成)。因此,在计费服务器崩溃的情况下,可能会丢失计费记录。如果计费数据的持久性很重要,则应使用像 TCP 这样的可靠传输,而不是 UDP。

RADIUS 计费数据包未加密;因此,任何人只要能窃听客户端与服务器之间的通信,就能观察到计费信息。如果需要保密,则应使用 IPsec 或类似的机制来保护链路。

使用共享密钥对 RADIUS 计费数据包进行认证。如果共享密钥被泄露,攻击者可以伪造计费请求。因此,共享密钥必须通过安全通道分发,并且应当足够长以抵抗暴力攻击。

本备忘录中的属性未提供完整性保护(除请求/响应认证器之外)。因此,中间人可能修改在途的计费属性。如果这种风险不可接受,则应使用 IPsec 或类似的机制。

如果计费数据被发送到不受信任的第三方(例如,通过代理),则必须注意确保数据不会被滥用。代理必须保留 Acct-Session-Id、Acct-Authentic 和 User-Name 的原始值,以便接收方能够验证数据的来源。

实现必须防止重放攻击。由于请求认证器在每次请求时都是唯一的且不可预测,因此重放计费请求数据包应当很困难。然而,如果攻击者能观察到并存储有效的计费请求,然后在之后重放它,则可能造成重复计费记录。计费服务器可以通过维护近期请求认证器的缓存来检测重放。