目录

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 节点之间所有的信息交换。其主要的设计思想为:

  1. 保持基本协议的轻巧和简单,易于实现协议。
  2. 所有由协议传送的数据都以 AVP 形式出现,并有与 RADIUS 相似的高效的属性编码,被使用的 AVP 包含的数据有用户认证信息、服务相关的授权信息、交换资源使用消息和中继、代理和重定向消息等类型,AVP 的标识符名字空间要足够大,以便扩展,还支持厂商自定义的 AVP 和命令。
  3. 能同时支持大量的请求。
  4. Diameter 网络节点运行在 TCP 或者 SCTP 上,能够提供可靠传输和具有重传机制,由传输层来提供可靠性。
  5. 能快速的检测出不可到达对等端的能力,并有很好的故障切换机制。
  6. Diameter 协议要求代理链上的每一个节点响应或确认每一个请求,代理链上的每一个节点有责任对没有响应的消息进行重传。所有的消息都要有应答,而不能无声丢弃。
  7. Diameter 协议是对等模式的协议,允许主动地消息发送到接入服务器。对等模式有很多好处,如可以按需返回计帐信息、由服务器发起会话终止信息等。
  8. 采用 IPSec 或 TLS 或二者为 Diameter 的对等双方提供数据完整和保密等安全性,有 AVP 级的完整性和保密性。
  9. 每一个认证/授权流有一个与之对应的会话,会话通过一个会话标识符来标识,这在一个给定时间内是全局唯一的,所有后续的 Diameter 事务(如计费)必须包含这个会话标识,以用来引用这个会话。
  10. 支持重定向服务。

应用协议

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 实现的更多相关文章

  1. 关于3G移动通信网络中用户ip的配置过程的研究(中国电信cdma2000)

    在RP口对ppp过程进行研究 PPP协商过程,如下图所示: 在建立ppp过程中pdsn需要与FAAA.HAAA交互.同时在分组数据业务进行过程中这种交互更加频繁,介绍如下,分为两种情况,简单ip,移动 ...

  2. 无线网络中的MIMO与OFDM技术原理分析

    无线网络中的MIMO与OFDM技术原理分析CNET中国·ZOL 07年08月14日 [原创] 作者: 中关村在线 张伟 从最早的红外线技术到目前被寄予重望的WIFI,无线技术的进步推动我们的网络一步步 ...

  3. Android 从网络中获取数据时 产生部分数据乱码的解决

    产生部分数据乱码的解决 标签: android部分中文乱码 2014-04-12 23:24 12366人阅读 评论(10) 收藏 举报 分类: [Android 基础](15) 版权声明:本文为博主 ...

  4. 网络中两台主机的通信过程(TCP)

    两台主机通信有两种情况:1.在同一网段中 2.不在同一网段中 (1.)在同一网段的通信过程 主机在应用层上的操作: TCP/IP协议上tcp的端口对应的各种应用程序,客户机要访问某个应用程序就会要求打 ...

  5. 从网络中获取图片显示到Image控件并保存到磁盘

    一.从网络中获取图片信息: /// <summary> /// 获取图片 /// </summary> /// <param name="url"&g ...

  6. Docker: 解决Docker无法在电信网络中访问外网

    在电信网络中,Docker在build和run时会无法访问外网,原因是docker的默认dns地址是8.8.8.8,由于众所周知的原因,我们需要改写这个地址,方法如下: 修改/etc/sysconfi ...

  7. android优化从网络中加载图片速度。。

    从网络中加载图片主要要注意两个方面的问题: 1.内存管理:图片占的内存很大,假如图片数量多,很容易让系统抛出out of memory的异常. 同时我们也要注意不同android版本中内存管理的区别. ...

  8. http报文在网络中是明文传输的,所以不安全。HTtp必然来临

    HTTP数据在网络中裸奔 HTTP明文协议的缺陷,是导致数据泄露.数据篡改.流量劫持.钓鱼攻击等安全问题的重要原因.HTTP协议无法加密数据,所有通信数据都在网络中明文“裸奔”.通过网络的嗅探设备及一 ...

  9. Sun开发的JINI技术在网络中的应用

    一.概述 Sun公司开发的Jini系统是一种创新技术,听说它的人很多但较少被人理解.Jini系统可利用Java扩展网络计算的范围,并有可能成为最佳解决方案. Jini是Sun公司的研究与开发项目,它能 ...

  10. Android从网络中获取xml文件并解析数据

    public class XmlwebData { @SuppressLint("UseValueOf") public static List<Person> get ...

随机推荐

  1. HarmonyOS:Neural Network Runtime对接AI推理框架开发指导

      场景介绍 Neural Network Runtime作为AI推理引擎和加速芯片的桥梁,为AI推理引擎提供精简的Native接口,满足推理引擎通过加速芯片执行端到端推理的需求. 本文以图1展示的A ...

  2. 重新整理 mysql 基础篇————— 索引模型[五]

    前言 简单整理一下索引模型. 正文 对我们开发人员来说,索引感觉非常的重要. 因为索引好用,但是不能多建,因为这影响插入,不能少建,因为这影响读取. 有些为了能够多建索引,通过从多个从库中读取数据,再 ...

  3. CSS 中 MASK 实现图片遮罩登炫酷效果

    顾名思义,mask 译为遮罩.在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域. 其实 mask 的出现已经有一段时间了,只是没有特别多 ...

  4. drf——基于apiview写过滤、排序和分页

    基于APIView带过滤和排序 from rest_framework.views import APIView from .models import Book from .serializer i ...

  5. ERP财务管理有哪些功能?如何选择合适的ERP软件开发商定制开发适合自己的ERP财务管理?

    企业日常运营中,分工明确.结构清晰的财务管理非常重要,因此在完整的ERP解决方案中,财务管理是不可或缺的部分,甚至财务管理是整个ERP解决方案的核心,其它功能模块都围绕着财务管理构建价值链创造流程,最 ...

  6. 【Oracle】在PL/SQL中使用sql实现插入排序

    [Oracle]在PL/SQL中使用sql实现插入排序 一般来说,SQL要排序的话直接使用order by即可 不一般来说,就是瞎搞,正好也可以巩固自己的数据结构基础,主要也发现没有人用SQL去实现这 ...

  7. HL7标准的版本

    HL7V2 HL7v2是用于在系统之间交换临床和患者信息的最广泛使用的医疗保健消息传递标准.HL7v2的目标是使用代表临床事件信息的标准化消息(例如患者管理活动.人口统计.医疗订单.结果和财务信息)在 ...

  8. 第 7章 Python 爬虫框架 Scrapy(上)

    第 7章 Python 爬虫框架 Scrapy(上) 编写爬虫可以看成行军打仗,基本的角色有两个:士兵和将军,士兵冲锋陷阵,而将军更多地是调兵遣将.框架就像一个将军,里面包含了爬虫的全部流程.异常处理 ...

  9. C#的基于.net framework的Dll模块编程(二) - 编程手把手系列文章

    今天继续这个系列博文的编写.接上次的篇幅,这次介绍关于C#的Dll类库的创建的内容.因为是手把手系列,所以对于需要入门的朋友来说还是挺好的,下面开始咯: 一.新建Dll类库: 这里直接创建例子的Dll ...

  10. KubeVela 1.5:灵活框选 CNCF 原子能力打造独特的企业应用发布平台

    简介: KubeVela 1.5 于近日正式发布.在该版本中为社区带来了更多的开箱即用的应用交付能力,包括新增系统可观测:新增 Cloud Shell 终端,将 Vela CLI 搬到了浏览器:增强的 ...