目录

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. #线段树#洛谷 4269 [USACO18FEB]Snow Boots G

    题目传送门 分析 模型转换一下,能通过当且仅当最长的无法通过段小于 \(d\),(这点应该是此题的精华吧) 那么按照最大深度从小到大排序,双指针在线段树上删除无法通过段,求最长区间即可 代码 #inc ...

  2. 学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程

    Python 可以用于数据库应用程序.最流行的 NoSQL 数据库之一是 MongoDB MongoDB MongoDB 将数据存储在类似 JSON 的文档中,使数据库非常灵活和可扩展. 您可以在 M ...

  3. c# checked 和 unchecked

    前言 我们知道一个东西在c# 中 比如说int 的max 加1会等于min. 如: static void Main(string[] args) { int i = 2147483647; int ...

  4. IIS 加载32dll失败

    前言 遇到一个这样的问题,因为在一个项目中是32位的,至于为什么是32位的呢,因为调用的都是老库,32位的,部署到iis出现错误如下: Server Error in '/' Application. ...

  5. css test-align 和 margin 居中什么区别

    共同点 test-align 和margin 都可以居中: test-align:Center. margin: 0 auto. 很好但是看下区别: <div style="backg ...

  6. 重新整理数据结构与算法(c#)—— 二叉树排序树补删除节点[二十二]

    前言 续前一章. 正文 删除节点规则: 1.假如删除的是叶子节点,让他的父节点,断开和它的联系. 2.如果删除节点右左子树或者右子树的话,那么应该这样. 如果删除节点是它的父节点的左节点,而删除节点有 ...

  7. Cache Aside Pattern缓存+数据库读写模式的分析

    1.Cache Aside Pattern(1)读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应 (2)更新的时候,先删除缓存,然后再更新数据库 2.为什么是删除 ...

  8. redis如何在保持读写分离+高可用的架构下,还能横向扩容支撑1T+海量数据

    单机redis在海量数据面前的瓶颈. 怎么才能够突破单机瓶颈,让redis支撑海量数据? redis集群架构 redis cluster 支撑N个redis master node,每个master ...

  9. Java中list集合深复制

    import org.apache.commons.collections.CollectionUtils; import java.util.ArrayList; import java.util. ...

  10. drf视图类的继承关系