织梦CMS - 轻松建站从此开始!

罗索

让Diameter与RADIUS互 通

落鹤生 发布于 2012-09-02 14:56 点击:次 
前几年厂商之所以使用RADIUS,并修改它的缺陷来达到一定的功能,是因为根本就不存在其他更安全、功能更强大的协议。而Diameter吸取了RADIUS部署和运作中的各种教训,从设计上就克服了RADIUS功能上的限制,并将最终代替RADIUS。
TAG:

前几年厂商之所以使用RADIUS,并修改它的缺陷来达到一定的功能,是因为根本就不存在其他更安全、功能更强大的协议。而Diameter吸取了RADIUS部署和运作中的各种教训,从设计上就克服了RADIUS功能上的限制,并将最终代替RADIUS。虽然通过对RADIUS进行艰辛的扩展,在一定程度上也能达到Diameter所能提供的能力,但是,你想选择一个缝缝补补的产品,还是一个功能强壮灵活可靠的产品,可能对于绝大部分要购买新设备或者需要支持代理及用户漫游的业务提供商来说,这个回答是显而易见的;但对于那些在RADIUS上已经投入了大量财力和人力,且在一定范围内RADIUS提供的功能足够用的用户,一种比较合理的方式是选择协议转换器,让RADIUS在原来的范围内继续提供服务,然后逐步过渡到Diameter。

Diameter与RADIUS的比较

从1997年年初始版本推出以来,RADIUS有了很大的改进,很多厂商也推出了各种有关RADIUS的产品,如RADIUS服务器、支持RADIUS的接入路由器、交换机等。RADIUS已经成为网络环境中一个事实上的AAA标准。尽管有些产品针对RADIUS进行了改进,性能有所提高,但是由于RADIUS存在着先天缺陷,限制了其推广与应用。

1. 端到端安全性

RADIUS协议存在着明显的安全弱点,有些是由于协议本身引起的,有些是由于客户端劣质的实现引起的。如基于用户密码(User-Password)属性的共享密钥攻击,由于采用流加密(stream ciper)来保护用户密码属性,因此攻击者如果能观察到网络流量,就可以获得有关共享密钥的信息,并尝试认证过程。攻击者可以用某个知道的密码向客户端发起认证,这样就能捕获客户端发出的RADIUS接入请求的包。通过捕获的包进行一定的计算,就能使攻击者对共享的密钥发起离线的彻底的攻击。

这些安全问题主要来自于RADIUS的设计和实施,如用户密码保护技术的缺陷,认证值的使用不当,根本不对RADIUS接入请求包进行认证等。由于RADIUS的安全是基于安全密钥的,这样在认证或计费需要通过代理链的情况下就无法提供端到端的安全性。

RADIUS协议并不要求支持IPsec,而Diameter基础协议规定:Diameter客户端必须支持IPsec,可以支持TLS;Diameter服务器必须支持IPsec和TLS;在没有任何安全机制(TLS或IPsec)的情况下不能使用Diameter。这样就提供了统一的传输层面上的安全,使得域内和域间AAA的部署成为可能。

2. 扩容

在RADIUS协议中没有中继器和重定向器,这样当NAS需要支持更多的用户时,就需要增加新的AAA服务器。而Diameter能很好地支持中继、代理和重定向器,这样就可以把用户分组,把系统管理的能力分发到每个组,也能对来自不同用户组的请求进行集合,并转发到合适的目标,同时还能很好地实现负载均衡。

3. 传输可靠性

RADIUS运行在UDP之上,尽管可以在应用层实现重传,但仍很难有效地处理代理链情况下的可靠传输,更何况这样也会使不同实现的可靠性不同,增加互操作的难度,而传输的不可靠性会对计费产生影响。相反,Diameter运行在可靠的传输协议(TCP、SCTP)之上。

4. 漫游支持

由于RADIUS协议中并没有详细定义对代理的支持,并且缺乏可审计性及传输层面上的安全等,使得基于RADIUS的漫游不仅易于受到外部的攻击,还会受到其他漫游用户欺骗行为的影响,因此RADIUS并不适合大规模应用到漫游环境中。

由于Diameter协议中明确定义了域间漫游、消息的路由及强大的安全性,因此Diameter能提供安全的漫游,且易于升级。

5. 故障切换

RADIUS中没有明确定义故障切换(failover)和故障复原(failback)机制,尤其是在代理链情况下的故障问题根本没有提及,这就会对RADIUS的实现和不同产品间的互操作性产生很大影响。Diameter支持应用层的确认机制,定义了故障切换的算法和状态机。协议中定义的监视消息使应用能快速检测到传输层或应用层的故障,从一个发生故障的对等端切换到其他对等端。

6. 扩展性

Diameter非常易于扩展,这主要得益于其将基础协议和支持各种业务的应用协议分开的设计思想,能定义丰富的应用。例如,目前的Diameter不支持批量计费,如果需要的话,只须在基础协议上扩展一个应用就可以了。

Diameter与RADIUS的协议转换

1. 两者的互通性

Diameter在设计时就考虑了要与RADIUS互通,如在Diameter协议中保留了代码为0~255的AVP用于与RADIUS的后向兼容。采用Diameter NASREQ应用能很好地实现与RADIUS的互通,它能支持很大数量的RADIUS属性,这样就减少了AAA节点进行协议转换的负担。使用Diameter NASREQ应用可以很容易使拨号环境从RADIUS过渡到Diameter,从而享受Diameter安全、健壮、功能丰富的AAA业务,如图1所示。

新窗口浏览

2. 协议转换的要点

协议转换要注意以下两点:

(1)要保证转换后的响应消息能恢复成正确的对应于原来未被转换的请求消息。对那些转换后不能识别AVP或者属性的消息,以某种方式保存起来,或者保留在本地,或者以对消息透明的形式由消息一直携带着。

(2)由于RADIUS服务器本质上是无状态的,所以从RADIUS客户端发出的属于同一个会话的后续认证请求消息就不要求被同一个RADIUS节点收到,在协议转换的情况下,可能会被不同的转换器接收。如果新的转换器不知道这是一个已经存在的Diameter会话,就会创建新的会话,会影响准确的认证和授权,因此这种情况是必须避免的。而收到RADIUS计费消息的转换器也需要知道消息是属于哪个Diameter会话的,这样才能实现正确的计费和有效的控制。

Diameter与RADIUS在网络中的部署

通过转换器能实现两者的共存。图2是普通场合和在代理链下两者互通的配置。

新窗口浏览
除了使用转换器以外,使用双栈的AAA服务器也能使RADIUS与Diameter兼容。所谓的双栈AAA服务器是既支持RADIUS,又支持Diameter的AAA服务器。这种方式对服务器的要求很高,不适合大规模应用,只适合那些已有RADIUS部署而且只是小规模的网络使用。

(计算机世界报 第02期 B9、B11)

(乐燕群 刘清)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/200404/1959.html]
本文出处:未知 作者:乐燕群 刘清
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容