Diameter协议学习笔记一

 

 一、摘要:

   Diameter协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。

二、介绍:

  AAA协议、例如TACACS、RADIUS起初是为了提供PPP及终端接入,随着Internet及新的接入技术的发展,包括无线、DSL、移动IP, 以太网路由、网络访问服务器(NAS)在复杂和密集性方面有所增强,这对AAA协议提出了新的要求。

  例如,网络访问对AAA 协议提出的要求总结有以下这些:

  • Failover(故障转移)

  RADIUS协议没有定义failover机制,因此,failover的行为随着程序的实现不同而各异,为了提供一个明确定义的failover行为,Diameter支持应用层的应答,并定义failover的西装算法和偶联状态机。

  • 传输层安全

  RADIUS在定义了应用层的认证,但仅使用了响应包,RADEXT定义了另外的认证,但仅要求在EAP session中使用,且支持属性隐藏。RFC3162为RADIUS定义了IPsec,但对其支持并没有做要求,Diameter强制要求支持IPSec,TLS的支持可选择。

  • 可靠传输

  RADIUS运行在UDP上,且没有定义重传行为,所有,可靠性因实现不同而各异。Diameter运行在可靠的传输层(TCP, SCTP)上。

  • 代理支持

  RADIUS没有明确地规定支持agent,包括Proxies, Redirects, Relays。Diameter明确地定义了代理的行为。

  • 服务器发起消息

  RADIUS中对于服务器发起消息的支持是可选的,这就使用一些如主动断链、或者重新认证或重新鉴权等特性实现困难。服务器发起消息在Diameter中强制要求支持。

  • 可审核性

  RADIUS没有定义数据对象安全机制,结果,不受信任的代理可能修改属性或都包头,并且不会被检测出来,结合对能力协商机制的缺失,无法预期结果会发生什么。Diameter也没有定义数据对象安全机制,但支持能力协商。

  • 转换支持

  Diameter使用的通用协议数据单元(PDU)与RADIUS不同,但支持向前兼容RADIUS,所以两种协议可以部署在同一网络中。

  • 能力协商

  RADIUS不支持错误消息、能力协商、及表示属性强制/非强制的标志位。因此RADIUS的客户端和服务端不担心对方的能力,它们可能不会成功地协商一个相互接受的服务,或者在一些情况下,需要知道哪些服务对端已经实现,以上几点Diameter均支持。

  • 对端发现及配置

  RADIUS要求人工配置服务端或客户端的名称或地址,相应地增加了秘密的共享,带来管理和安全上的负担。通过DNS,Diameter可以动态发现对端,并通过传输层安全来保证。

  • 漫游支持

  RADIUS不提供对proxyr的明确支持,缺少可审核性、传输层安全,使得在漫游场景下容易引发安全问题,Diameter支持域内漫游、消息路由、可审核性、传输层安全特性,可提供可安全和可靠的漫游。

你可能感兴趣的:(Diameter)