Diameter基础协议摘要

关于Diameter协议安全性分析 [摘要]Diameter协议是IETF目前制定的下一代AAA协议,它将取代目前广泛使用的Radius协议。文章首先介绍了Diameter协议的由来及其与Radius之间的区别,然后分析了Diameter在保障信息安全方面所采取的措施。 阅读详情

Diameter是新一代AAA协议,可以承载与TCP或者SCTP协议之上,被广泛应用于IMS,LTE网络中。RFC3588定义了Diameter的基础协议,各种应用可以在此基础上对其进行扩展(主要是定义新的Application ID,Command和AVP);基础协议中包括一个基本的Accounting功能,如果需要Authentication或者Authorization通常需要进行对基础协议扩展。

1.      基本概念:

·         Connection: 是传输层的概念,负责在两端直接传输Diameter消息;

·         Session: 是应用层的概念,可以用Session-id 这AVP来标识;下图展示了Connection与Session的区别;

+--------+            +-------+            +--------+
| Client |            | Relay |            | Server |
+--------+            +-------+            +--------+
          <---------->          <---------->
        peer connection A       peer connection B

<---------------------------------------------------->
                    User session x

·         Destination Host:用于标识一台运行Diameter应用的主机,命名方式类似DNS格式,但并不是域名,只是一个标识符而已,一台运行Diameter应用的主机可以支持一个或者多个Diameter应用;

·         Destination Realm:用于标识一组运行Diameter应用的主机,可以将多台Host划归为一个Realm中;

·         Peer Table:用于消息路由的数据配置, Peer table中的主机都是能和本地主机之间通信的(也就是说中间无需经过消息转发),格式如下表:

Host identity

StatusT

Static or Dynamic

Expiration time

abc.example.com

R-Open

statically

0

xyz.example.net

R-Open

dynamically

10

·         Realm-Based Routing Table : 用于消息路由的数据配置,格式如下表:

Realm Name

Application Identifier

Local Action

Server Identifier

Static or Dynamic

Expiration time

example

16777250

RELAY

abc.example.com

statically

0

example

16777272

RELAY

xyz.example.net

dynamically

10

2.      Diameter Agents:

·         Relay Agents:对消息进行转发,只增加或者删除路由信息,而不会修改任何应用层信息;在CER/CEA进行能力交互时,需要返回自己支持的Application ID为Relay Application Identifier ;使用Relay Agents的好处是简化网络的复杂性,不需要对所有Diameter节点都进行复杂的配置,比如只需配置节点让Diameter消息转发到Relay Agents,然后在Relay Agents上进行比较全面的路由配置即可。

·         Proxy Agents:Proxy Agents也负责转发消息,与Relay Agent不同的是,它需要理解应用层的信息,进而维护Transaction的状态;在CER/CEA进行能力交互时,需要返回自己支持的所有Application ID;

·         Redirect Agents:收到Diameter消息后不进行转发,而是回复一个应答消息给发送者,应答消息中包含一个或者多个地址,告诉发送者应该将消息发往这些地址;

·         Translation Agents:完成Radius和Diameter协议之间的转换;

3.      消息格式:

MAC header

IP header

SCTP | TCP header

Diameter header

Data :::

1)      Diameter header:

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Version

Message length

Flags

Code

R

P

E

T

r

r

r

r

Application ID

Hop by Hop ID

End to End ID

AVP[] :::

·         Version: Diameter的版本号,目前为1;

·         Message length:包含头部在内的消息长度,也就是头部+所有AVP的长度之和;

·         Flags:
R(equest):
如果 置位表示这是一个Request消息;
P(roxiable):如果被置位说明该消息可以被转发,否则必须本地处理;
E(rror):如果置位,说明产生了一个协议错误,只能出现在Answer消息中;
T:如果被置位,说明该消息有可能是一个被重传的消息;
r:保留位;

·         Code:消息命令码,用来标识各种Diameter消息,由IANA负责统一分配;

·         Application ID:用来表示不同的Diameter应用,由IANA负责统一分配;

·         Hop by Hop ID:用来匹配Request和Answer消息,在一个指定的Connection上的任何时间都必须是唯一的;该值在Diameter消息转发时会被Agent修改;

·         End to End ID:用来识别重复消息;该值在本地的一段时间内必须是唯一的,传输过程中一直保持不变;目标主机会根据该值和Original-Host AVP来判读是否是重复消息;

2)      AVP header:

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

AVP code

AVP flags

AVP length

V

M

P

r

r

r

r

r

Vendor ID (Optional)

Data :::

      ·         AVP code:用来标识一个AVP,由IANA来统一分配;

·         AVP flags:
V, Vendor specific:
如果置位说明 Vendor ID 存在;
M, Mandatory
:如果置位说明该AVP是必须的;
P
:如果置位说明需要保证该AVP端到端的安全性;
r
:reserved

·         AVP length:AVP长度;

·         Vendor ID:可选的,如果AVP flags中的V被置位,说明该域存在;该值也是由IANA分配的;

4.      Diameter和连接相关的三对基本消息:

Diamete通过传输层TCP/SCTP建立连接后,传输的第一个消息就是CER/CEA,通过该消息的交互了解对端都支持哪些应用,看是否有共同的应用;如果对端是Relay Agent,则认为肯定存在共同应用;获知对方支持你哪些应用后,发送消息的时候就不会发送对方不认识的消息,对方对收到的不认识的消息也不会处理。此外双方的IP地址也会在CER/CEA消息中交换。CER/CEA是不能被Proxy,Relay或者是Redirection的,所以说CER/CEA只能是直连节点之间的交换,如果节点A经过Relay Agent发送消息到节点B,那么需要建立两个连接,进行两次CER/CEA的交互。当需要断开连接时,主动方需要发起DPR消息给对端指示断开传输层连接。在连接期间,双方需要互发DWR/DWA (Watching Dog) 消息,用来检测对方是否处于Active状态.

5.      如何看规范中的Diameter命令的ABNF 定义:

具体参见协议的3.2,这里用一个例子大概总结一下:

Example-Request ::= < "Diameter-Header: 9999999, REQ, PXY,123456 >
<Session-Id>               //
该AVP必须存在一个,且位置固定

{ User-Name }            //
该AVP必须存在一个
 [ Destination-Host ]  //
该AVP可存在一个或者不存在
1*{ Origin-Host }        //
该AVP可存在一个或者多个
*[ AVP ]                       //
该AVP可存在零个或者多个

 

Java实现的IMS Diameter协议源码库 本文还有配套的精品资源,点击获取 简介:JavaDiameterPeer.tar.gz 提供了与IMS网络中Diameter协议相关的Java源代码,用于控制信息的传递和执行AAA任务。该源码包可能包含Diameter消息处理、连接管理、认证授权、路由重定向、事件监听、错误处理、性能优化、日志调试以及安全性相关的关键组件实现,适用于需要深入理解和实现Diameter协议的J... 阅读详情

相关推荐

RFC3588_RFC3261中文版

SIP协议中文版、Diameter 基础协议技术要求中文版,适合阅读,基础学习。

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

原文来自百度文库http://wenku.baidu.com/view/bc91976127d3240c8447efec.html?re=view一、摘要:Diameter协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。二、介绍:AAA协议、例如TACACS、RADIUS起初是为了提供PPP及终端接入,随着Internet及新的接入技术的发展,包括无线、...

weixin_28818643的博客 1689

rfc3588-diameter.pdf

rfc3588-diameter 直径协议RFC文档,英文最新原版,用于4G信令解析,是半径协议Radius的提升版,用于4A认证,鉴权,注册,计费等

diameter

http://blog.youkuaiyun.com/zhaolixin007/article/details/5333271 http://wenku.baidu.com/view/0527571959eef8c75fbfb34f.html 特点: Diameter客户端与Diameter服务器都可以组成相应的请求消息,发送给对方。正是从这点考虑,Diameter属于对等协议(pe

安子自语 4730

Abaqus梁模型仿真中的常见陷阱与优化策略

本文深入探讨了Abaqus梁模型仿真中的常见陷阱与优化策略,涵盖几何建模、材料属性设置、边界条件处理等关键环节。针对梁截面方向定义、网格划分、复合截面建模等典型问题,提供了实用的Python脚本示例和优化方案,帮助工程师避免计算错误并提升仿真精度。文章特别强调了动力分析中的网格密度要求和材料非线性考虑,为复杂工程应用提供专业指导。

weixin_29099217的博客 461

鸿蒙实战开发教程-注册登录页面

在密码输入框中,只要设置TextInput的类型就可以实现带眼睛logo的密码输入框效果:

2401_82546228的博客 3559

Diameter协议

Diameter是计算机网络中使用的一个认证、授权和审计协议。它从功能更少的RADIUS协议进化而来,并且取代之。        Dimater应用通过添加新的命令或属性扩展基础协议,例如使用扩展认证 协议(EAP)。 与RADIUS协议比较        名字是一个单词游戏(从RADIUS,半径到DIAMETER,直径),从前任RADIUS协议演化而来(直径是半径的二倍)。Diameter

勤能补拙 4万+

SAP HR模块配置假期日历和缺勤类型

SAP的HR模块。业务顾问在实施时一般会配置未来10年的假期日历,到期后再进行配置。同时,增加请假类型(缺勤信息类型)。记录这一过程。

福来阁86号技师的妖孽日常 5523

OpenDiameter 编译,安装,调试

OpenDiameter 编译,安装,调试 OpenDiameter安装指南 关于Diameter,请参照 rfc3588 和 rfc4006。OpenDiameter是实现Diameter协议的开源软件,通常需要我们自己编译运行, 从README下看可能觉得较

石头 1892

C/C++关于VScode报错“终端将被任务重用,按任意键关闭”的解决方案

这其实不是一种报错,有这个提示的原因是本地端口是被共享的,所以必须关闭一个进程才能执行另一个,只需要对 tasks.json文件做一些修改即可。 报错时候 此时的tasks.json为: { "version": "2.0.0", "command": "g++", "args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"], // 编译命令参数 "problemMatche

Jerry Man的博客 6424

【数据集】1970-2023年全球温室气体排放 GHG 数据集 EDGAR

1970-2023年全球温室气体排放 GHG 数据集 EDGAR

WW、forever的博客 1172

diameter协议栈_Diameter协议摘要

---------选择同学整理文档1. 协议概述Diameter协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。1.1. 特点介绍以前的AAA协议如RADIUS、TACACS主要是针对PPP服务和终端服务而设计的。随着网络技术的发展,新的接入方式如无线接入、DSL接入、移动IP陆续出现,以太网也不断发展,AAA中的网络访问服务器(NAS)自身也逐渐...

weixin_33746833的博客 3697

Python 爬虫实战:爬取豆瓣电影 Top250 完整数据

本文基于Python技术实现了豆瓣电影Top250榜单数据的合规爬取与分析。针对豆瓣电影页面的分页结构、反爬机制等特点,采用requests库获取数据,结合BeautifulSoup解析HTML节点,并通过正则表达式提取电影名称、评分、导演等核心字段。爬虫实现了随机User-Agent、请求间隔控制等反爬规避策略,严格遵守豆瓣社区使用规范。最终数据经清洗后存储为结构化Excel文件,并提供了数据可视化与增量更新方案。该方案为影视研究提供了可靠的数据获取方法,同时确保符合非商业使用、适度爬取等合规要求。

2503_91057718的博客 3459

Diameter协议摘要

      ---------选择同学整理文档 1. 协议概述 Diameter协议主要为应用程序提供认证、鉴权、计费框架,即AAA,并支持本地AAA和漫游场景下的AAA。 1.1. 特点介绍 以前的AAA协议如RADIUS、TACACS主要是针对PPP服务和终端服务而设计的。随着网络技术的发展,新的接入方式如无线接入、DSL接入、移动IP陆续出现,以太网也不断发展,AAA中的网络访...

weixin_30779691的博客 2840

Doris磁盘空间管理(生命周期管理、清理磁盘空间方法)

在进行数据仓库开发时,比较头疼的是历史数据不删除,磁盘空间不断增长,如果磁盘空间不足时,spark调度任务写入时就会报错。

大模型大数据攻城狮的专栏 1717

【知识分享】CAN总线中终端网络的重要性

P沟道和N沟道晶体管的漏源通态电阻匹配良好时,形成的CANH和CANL信号匹配良好;如果驱动器的一半具有比另一半低得多的导通状态电阻,那么总线共模电压将从VCC/2的显性状态偏离,并回到VCC/2的隐性状态,这将导致每一次状态转换都会伴随着共模电压噪声,从而导致更高水平的传导和辐射能量发射。

一只豌豆象的博客 1543

Diameter协议与SIP

一、引言   Diameter系列协议是新一代的AAA技术,由于其强大的可扩展性和安全保证,正在得到越来越多的关注。在ITU,3GPP和3GPP2等国际标准组织中,都已经正式将DIAM-ETER协议作为NGN,WCDMA和cdma2000等未来通信网络的首选AAA协议。对于用户的访问控制是下一代网络(NGN)网络安全的重要组成部分,而本文讨论的Diameter协议在SIP环境中的应用则是这个问

RTC hacker 4225

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Diameter 协议

   Diameter协议2009-10-23 09:43Diameter协议 Diameter协议族包括基础协议(Diameter Base Protocol)和各种应用协议。本文介绍的基础协议提供了作为一个AAA协议的最低需求,是Diameter网络节点都必须实现的功能,包括节点间能力的

781

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

wireshark diameter协议解码问题

wireshark正确将tcp&sctp解析为diameter协议 在现网中经常使用到diameter协议,例如EPC的Gx,Gy,S6a接口,IMS网络中有更多的是diameter接口,一般与PCRF和HSS交互的接口使用的都是diameter协议。 但是有时候我们wireshark抓到的diameter数据包,打开时没能正确显示成diameter协议,所以我们就无法看到里面承载的信息,...

weixin_45617372的博客 3892

AAA、RADIUS、TACACS、Diameter协议介绍

概述、模式、框架、流程、应用场景;RADIUS:特点、授权流程;TACACS、TACACS+、HWTACACS;Diameter、NAS、EAP、CMS、MIP

lonelymanontheway的博客 2691

探索Diameter协议的强大实现:go-diameter

探索Diameter协议的强大实现:go-diameter 项目介绍 go-diameter 是一个基于Go语言的Diameter协议实现,旨在为开发者提供一个高效、可靠的Diameter协议栈。Diameter协议是一种用于认证、授权和计费的网络协议,广泛应用于电信和移动网络中。go-diameter不仅实现了Diameter基础协议(RFC 6733),还支持多种扩展协议和3GPP特定的AVP...

gitblog_00303的博客 765

DIAMETER基础协议

Diameter协议族包括基础协议(Diameter Base Protocol)和各种应用协议。本文介绍的基础协议提供了作为一个AAA协议的最低需求,是Diameter网络节点都必须实现的功能,包括节点间能力的协商、Diameter消息的接收及转发、计费信息的实时传输等。应用协议则充分利用基础协议提供的消息传送机制,规范相关节点的功能以及其特有的消息内容,来实现应用业务的AAA。基础协议可以作为

liumyong的专栏 5219

DIAMETER 协议是在 RADIUS 协议基础上发展而来的下一代认证、授权和计费(AAA)协议

**核心改进** 1. **可靠性增强**:采用基于确认的消息传输机制,支持重传、失败检测与路径探测,避免 RADIUS 中因丢包导致的服务中断。 2. **可扩展性更强**:使用 AVP 结构允许灵活添加新参数,支持未来协议演进。 3. **支持漫游与跨域认证**:通过代理链路转发和路由回溯机制,实现多运营商间的 AAA 信息交换。 4. **兼容 EAP 协议**:可用于无线网络中基于 EAP-SIM、EAP-AKA 等的身份认证流程。 5. **强大的记账能力**:支持开始、中间、

[Blog][Domain] programb.blog.youkuaiyun.com 723
上一篇: 网路层路由与应用层路由
下一篇: Diameter消息应用层的路由
minico
博客等级 码龄22年 64粉丝 63原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值