diameter协议栈_Diameter协议学习笔记一(协议介绍)

原文来自百度文库

http://wenku.baidu.com/view/bc91976127d3240c8447efec.html?re=view

一、摘要:

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支持域内漫游、消息路由、可审核性、传输层安全特性,可提供可安全和可靠的漫游。

术语:

·AAA

认证、鉴权、计费

·Accounting(计费)

为能力计划制定、审计、账单、费用分配等目的而进行资源使用的信息的收集动作。

·Accounting Record (计费记录)

记录某个用户在整个会话期间资源消费的情况,

·Authentication(认证)

校验一个实体一致性的动作。

·Authorization(鉴权)

决定一个请求实体是否允许访问某项资源。

·AVP (属性值对)

Diameter消息由一个报文头后跟一个或多个Attribute-Value-Pairs(AVPs),一个AVP包含一个头用于协议细节数据(例如路由信息)。

·Broker (代理)

代理是一个用于AAA架构中的商业术语,可以是relay, proxy,或者redirect agent。

·Diameter Agent(Diameter 代理)

指一个提供relay、proxy、redirect或翻译服务的diameter结点。

·Diameter Client(Diameter 客户端)

为一个处于网络边缘的,提供访问控制的设备。如NAS。

·Diameter Node(Diameter节点)

为一个实现了diameter协议的主机进程,其行为为客户端、代理、服务端之一。

·Diameter Peer (Diameter 对端)

为一个具有直连连接的diameter节点。

·Diameter Security Exchange (diameter 安全交换)

为一个进程,两个diameter节点可以通

你可能感兴趣的:(diameter协议栈)