网络

半径的漏洞

RADIUS协议半径已知有一组弱点,这些弱点要么是在协议本身中出现的,要么是由糟糕的客户机实现引起的。无状态UDP协议本身允许更容易的数据包伪造和欺骗。本节中显示的漏洞并不代表协议问题的完整列表,而是突出显示了几种绕过用户身份验证的方法。攻击可以归纳为以下几种:

  • 强行使用用户凭证
  • 拒绝服务
  • 会话重播
  • 欺骗数据包注入

响应验证者攻击

Response Authenticator主要是一个基于md5的散列。如果攻击者观察到有效的Access-Request、Access-Accept或Access-Reject报文序列,就可以对共享秘密发起穷尽式离线攻击。攻击者可以计算(Code+ID+长度+RequestAuth+Attributes)的MD5哈希,因为Authenticator的大部分编译部分是已知的,然后为每个共享秘密猜测恢复它。

基于密码属性的共享秘密攻击

由于用户/密码凭据的保护方式,如果攻击者能够监视身份验证尝试,他们就可以获得关于共享秘密的信息。假设破解者可以尝试使用已知密码进行身份验证,然后捕获结果的访问请求包,他或她可以用他们提供给客户端的密码异或User-Password属性的受保护部分。由于请求验证器是已知的,并且可以在客户机的访问请求数据包中找到,因此攻击者可以对共享秘密发起脱机暴力攻击。

基于用户密码攻击

这与前面的攻击类似:通过知道共享秘密,攻击者可以通过修改和重放修改后的访问请求报文成功枚举用户密码。此外,如果服务器不强制执行基于用户的身份验证限制,这将允许攻击者有效地执行详尽的在线搜索,以查找正确的用户密码。始终记住,访问请求数据包中的强数据身份验证方案将使这种攻击几乎不可能。

请求基于验证者的攻击

RADIUS数据包安全性依赖于请求验证者字段的构成。因此,为了保证RADIUS的安全性,请求验证器必须是唯一的且不可预测的。然而,协议规范并没有强调Authenticator生成的重要性,而是创建了大量的实现,这些实现有时会导致生成的Request Authenticator很差。如果客户端使用重复值或具有短周期的PRNG,这可能会使协议在提供所需的安全级别时无效。

服务器响应回放

攻击者可以通过定期嗅探和拦截服务器/客户端流量来生成一个包含请求验证器、标识符和相关服务器响应的数据库。当破解者看到使用与数据库条目匹配的请求验证者时,他或她可以伪装成服务器并重放先前观察到的服务器响应。此外,攻击者可以重放看起来有效的Access-Accept服务器响应,并在没有有效凭据的情况下成功地向客户端进行身份验证。

共享秘密问题

RADIUS标准允许许多客户端使用相同的共享秘密。这种方法是不安全的,因为它允许任何有缺陷的客户端危及许多机器。我们建议您为每个客户端仔细选择共享秘密值,并使其成为难以猜测的非字典值,同时保留客户端设备的物理安全性。

Shaun Anderson的文章(11日文章

肖恩·安德森是LeraBlog的作者。作者的观点完全是他们自己的,可能不反映LeraBlog员工的观点和意见。