移动通信网络中的 3A 实现
目录
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 消息转换。
移动通信网络中的 3A 实现的更多相关文章
- 关于3G移动通信网络中用户ip的配置过程的研究(中国电信cdma2000)
在RP口对ppp过程进行研究 PPP协商过程,如下图所示: 在建立ppp过程中pdsn需要与FAAA.HAAA交互.同时在分组数据业务进行过程中这种交互更加频繁,介绍如下,分为两种情况,简单ip,移动 ...
- 无线网络中的MIMO与OFDM技术原理分析
无线网络中的MIMO与OFDM技术原理分析CNET中国·ZOL 07年08月14日 [原创] 作者: 中关村在线 张伟 从最早的红外线技术到目前被寄予重望的WIFI,无线技术的进步推动我们的网络一步步 ...
- Android 从网络中获取数据时 产生部分数据乱码的解决
产生部分数据乱码的解决 标签: android部分中文乱码 2014-04-12 23:24 12366人阅读 评论(10) 收藏 举报 分类: [Android 基础](15) 版权声明:本文为博主 ...
- 网络中两台主机的通信过程(TCP)
两台主机通信有两种情况:1.在同一网段中 2.不在同一网段中 (1.)在同一网段的通信过程 主机在应用层上的操作: TCP/IP协议上tcp的端口对应的各种应用程序,客户机要访问某个应用程序就会要求打 ...
- 从网络中获取图片显示到Image控件并保存到磁盘
一.从网络中获取图片信息: /// <summary> /// 获取图片 /// </summary> /// <param name="url"&g ...
- Docker: 解决Docker无法在电信网络中访问外网
在电信网络中,Docker在build和run时会无法访问外网,原因是docker的默认dns地址是8.8.8.8,由于众所周知的原因,我们需要改写这个地址,方法如下: 修改/etc/sysconfi ...
- android优化从网络中加载图片速度。。
从网络中加载图片主要要注意两个方面的问题: 1.内存管理:图片占的内存很大,假如图片数量多,很容易让系统抛出out of memory的异常. 同时我们也要注意不同android版本中内存管理的区别. ...
- http报文在网络中是明文传输的,所以不安全。HTtp必然来临
HTTP数据在网络中裸奔 HTTP明文协议的缺陷,是导致数据泄露.数据篡改.流量劫持.钓鱼攻击等安全问题的重要原因.HTTP协议无法加密数据,所有通信数据都在网络中明文“裸奔”.通过网络的嗅探设备及一 ...
- Sun开发的JINI技术在网络中的应用
一.概述 Sun公司开发的Jini系统是一种创新技术,听说它的人很多但较少被人理解.Jini系统可利用Java扩展网络计算的范围,并有可能成为最佳解决方案. Jini是Sun公司的研究与开发项目,它能 ...
- Android从网络中获取xml文件并解析数据
public class XmlwebData { @SuppressLint("UseValueOf") public static List<Person> get ...
随机推荐
- #贪心,构造#AT2266 [AGC008D] K-th K
题目 给你一个长度为 \(N\) 的整数序列 \(X\),请判断是否存在一个满足下列条件的整数序列 \(a\),如果存在,请构造一种方案 条件如下: \(a\) 的长度为 \(N^2\),并且满足数字 ...
- Docker学习路线4:Docker基础知识
Docker是一个平台,简化了在轻量.可移植的容器中构建.打包和部署应用程序的过程.在本节中,我们将介绍Docker的基础知识.其组件以及您需要开始使用的关键命令. 容器是什么? 容器是一个轻量级.独 ...
- C#.Net WinForm学习笔记
.Net WinForm学习笔记 1,MDI窗体设有两个窗体frmMain,frmChild,则:frmMain: 设IsMdiContainer属性为true 打开子窗口: 在相关事件中写如下代 ...
- hive窗口分析函数使用详解系列二之分组排序窗口函数
1.综述 我们讨论面试中各大厂的SQL算法面试题,往往核心考点就在于窗口函数,所以掌握好了窗口函数,面对SQL算法面试往往事半功倍. 已更新第一类聚合函数类,点击这里阅读 hive窗口函数聚合函数类 ...
- Cloud-computing 实验镜像 chinaskills_cloud_iaas.iso chinaskills_cloud_paas.iso
Cloud-computing 实验镜像 最近因新项目再次进行云计算环境的搭建, 找这两个镜像( 找chinaskills_cloud_paas.iso chinaskills_cloud_iaas. ...
- [CentOS]压缩+解压+打包命令大全
[CentOS]压缩+解压+打包命令大全 --------------- .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注 ...
- 力扣580(MySQL)-统计各专业人数(中等)
题目: 一所大学有 2 个数据表,分别是 student 和 department ,这两个表保存着每个专业的学生数据和院系数据. 写一个查询语句,查询 department 表中每个专业的学生人数 ...
- 力扣405(java)-数字转换为十六进制(简单)
题目: 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字母(a-f)都必须是小写.十六进制字符串中不能包含多余的前导零.如果要转 ...
- [FAQ] FinalCutPro 竖版视频 加模糊背景变 横版视频
把一段影片拖到时间轴上面,注意自定义尺寸选择 1920 x 1080,因为竖版的是 1080 x 1920. 切换到仅视频,并选择变形,视频区左右拖动视频到最大. 设置模糊效果为高斯曲线. 切回到全部 ...
- [FAQ] Laravel 验证未通过 Route [login] not defined 处理
一种方式是在路由中定义一个name为 login 的请求. Route::get('xxx', [XxxController::class, 'x'])->name('login'); 第二种方 ...