移动通信网络中的 3A 实现
2019-12-11 22:08 云物互联 阅读(1779) 评论(0) 编辑 收藏 举报目录
3A
AAA,即认证(Authentication)、授权(Authorization)和计费(Accounting)的统称,简称:3A。是网络安全中进行访问控制的一种安全管理机制,提供认证、授权和计费三种安全服务。3A 是一种管理框架,因此,它可以使用多种协议来进行实现。本文中主要介绍几种在移动通信领域中最常使用到的 3A 实现。
- Authentication,认证:对用户的身份进行确认。
- Authorization,授权:确定用户是否有权限使用某种网络资源。
- Accounting,计费:监测用户使用网络资源的状况,可依照检测的记录对用户进行收费。
RADIUS
RADIUS(远程用户拨入验证服务,Remote Authentication Dial In User Service)是一个 3A 协议,通常用于网络访问、流动 IP 服务,适用于局域网及漫游服务。RADIUS 协议最初由 Livingston 公司提出,最初的目的是为拨号用户进行认证和计费。后来经过多次改进,形成了一项通用的认证计费协议。RADIUS 协议包括 RADIUS 验证协议(认证和授权)和 RADIUS 记账协议协议,分别由 RFC2865,RFC2866 定义。
虽说 RADIUS 是一种 3A 协议,但由于 RADIUS 协议本身创建于 AAA 标准确定之前。因此,RADIUS 协议中并没有区分 “认证” 和 “授权”,而是合二为一作为 “验证” 处理, 因此 RADIUS 客户端在实际操作中无法知道被拒绝的原因是由于密码错误还是因为没有权限。
RADIUS 采用了 C/S 架构。Client 对 Server 提出验证和计费请求,Server 针对 Client 的请求进行验证和计费给予应答。RADIUS 的客户端是对用户(人或者计算机)提供网络连接服务的设备,可以包括:
- 拨号调用设备、宽带接入服务器(BAS,Broadband Access Server)等网络接入服务器(NAS,Network Access Server)。
- 无线 LAN 环境中的无线接取器、VLAN 环境中的交换机。
- 在内容提供的服务中的 Web 服务器。
- 在移动电话网络中的核心网节点。
RADIUS 的运行过程:
Diameter
Diameter(直径)协议,意味是 RADIUS(半径)的改进或者替代,由 IETF 开发,被 AAA 工作组定位为下一代的 AAA 协议标准。
Diameter 协议不是一个单一的协议,而是一个协议簇,它包括基本协议(Diameter Base Protocol)和各种由基本协议扩展而来的应用协议,如:NAS(网络接入服务)协议,EAP(可扩展鉴别)协议,MIP(移动 IP)协议和 CMS(密码消息语法)协议等。
Diameter 采用 AVP(Attribute-Length-Value 三元组形式)属性值对来实现,但是其中详细的规定了错误处理, Failover(故障转移)机制,采用 TCP 协议,支持分布式计费,克服了 RADIUS 的许多缺点。
基本概念
Diameter Node:网络中的 Diameter 节点,分为 Client、Agent、Server 三种。
- Diameter Client:是处于网络边缘的节点,一般是发起请求的节点。离线计费中的 IMS 网元一般是 Diameter Client 角色。
- Diameter Server:是处理请求的节点。离线计费中的 CDF 一般是 Diameter Server 角色。
- Diameter Agent:一种提供中继(Relay)、代理(Proxy)、重定向(Redirect)、翻译(Translation)服务的 Diameter 节点。
- Relay Agent:根据消息中的路由信息转发消息,只能修改消息的路由信息,不关心消息其他内容。
- Proxy Agent:根据消息中的内容执行不同的策略,可以转发或拒绝消息,可以修改消息内容。
- Redirect Agent:不负责消息的转发,负责向 Client 提供 Server 地址,使 Client 能够直接与 Server 通信。
- Translation Agent:负责在 Diameter 协议与其他 AAA 协议之间转换消息,例如:RADIUS。
Diameter Peer:直接相连的两个节点互为 “Peer”。
基本协议
Diameter 基本协议为各种认证、授权和计费业务提供了安全、可靠、易于扩展的框架。其主要涉及性能协商、消息如何被发送、对等双方最终如何结束通信等方面。
Diameter 基础协议旨在提供一个 AAA 框架,以用于各种应用。Diameter 基本协议设定通讯是以对等的模式进行的,而不再是 C/S 模式,其注重能力协商,消息发送以及对等端如何最终被拒绝。同时,基础规则还制订了特定规则来进行 Diameter 节点之间所有的信息交换。其主要的设计思想为:
- 保持基本协议的轻巧和简单,易于实现协议。
- 所有由协议传送的数据都以 AVP 形式出现,并有与 RADIUS 相似的高效的属性编码,被使用的 AVP 包含的数据有用户认证信息、服务相关的授权信息、交换资源使用消息和中继、代理和重定向消息等类型,AVP 的标识符名字空间要足够大,以便扩展,还支持厂商自定义的 AVP 和命令。
- 能同时支持大量的请求。
- Diameter 网络节点运行在 TCP 或者 SCTP 上,能够提供可靠传输和具有重传机制,由传输层来提供可靠性。
- 能快速的检测出不可到达对等端的能力,并有很好的故障切换机制。
- Diameter 协议要求代理链上的每一个节点响应或确认每一个请求,代理链上的每一个节点有责任对没有响应的消息进行重传。所有的消息都要有应答,而不能无声丢弃。
- Diameter 协议是对等模式的协议,允许主动地消息发送到接入服务器。对等模式有很多好处,如可以按需返回计帐信息、由服务器发起会话终止信息等。
- 采用 IPSec 或 TLS 或二者为 Diameter 的对等双方提供数据完整和保密等安全性,有 AVP 级的完整性和保密性。
- 每一个认证/授权流有一个与之对应的会话,会话通过一个会话标识符来标识,这在一个给定时间内是全局唯一的,所有后续的 Diameter 事务(如计费)必须包含这个会话标识,以用来引用这个会话。
- 支持重定向服务。
应用协议
Diameter 基本协议一般不单独使用,往往被扩展成新的应用协议来使用。应用协议扩展了基本协议,以完成特定的接入和应用业务,它充分利用基础协议提供的消息传送机制,并以此为基础定义应用协议的应用标识、参与通信的网络功能实体、相互通信的功能实体间的消息内容以及协议过程等,目前已完成的应用主要有:Diameter NASREQ 应用、Diameter Mobile Ipv4 等应用。
freeDiameter
freeDiameter 是开源的 Diameter 协议实现。freeDiameter 提供了一个可扩展的平台,用于部署 Diameter 网络,以满足用户的 3A 需求。
官方网站:http://www.freediameter.net/trac/
freeDiameter 支持的功能:
- 全力支持 Diameter 基础协议在 RFC3588 中的定义,包括:
- IP/IPv6、TCP/SCTP 协议的支持
- TLS 协议的支持
- Diameter 故障转移和故障回复机制
- Diameter 路由回路的检测和避免
- app_acct.fdx 扩展提供的基本记帐功能
- 支持消息中继
- 通过 rt_redirect.fdx 支持 Diameter 重定向
- 由 app_diameap.fdx 支持 Diameter EAP 服务器(RFC4072)功能。
- 由 app_sip.fdx 支持 Diameter SIP(RFC4740)功能。
- 由 app_radgw.fdx 支持 NASREQ(RFC4005)、SIP(RFC4740)以及 RADIUS/Diameter 消息转换。