当前位置:首页 > 通信技术 > 通信技术
[导读]在使用Go语言编写的SIP客户端程序向FreeSWITCH注册时,返回了403 Forbidden错误,但不知道具体原因。如何通过Wireshark分析抓包文件来找出原因。如何通过Wireshark分析SIP流程中的403错误,定位问题所在。

1、SIP协议的相关知识

    403 Forbidden通常表示服务器理解请求,但拒绝执行,常见原因包括认证失败、权限不足、IP地址被阻止等。(最后找到是因为构造的HA2生成的MD5码导致认证失败)

2、解析SIP响应

    在Go中处理SIP消息需要解析收到的响应,提取相关的头部字段。根据每一个消息头字段逐一排查。如何查看SIP消息的具体内容REGISTER请求的结构,以及服务器返回的401和403响应的各个字段。特别是要注意WWW-Authenticate头中的参数,如realm、nonce、qop等,这些在生成认证响应时非常关键。
  • 如果qop是"auth",则response = MD5(HA1:nonce:nc:cnonce:qop:HA2)
  • 如果qop未指定,则response = MD5(HA1:nonce:HA2)
  • qop是"auth",所以需要包括nonce计数器、客户端nonce以及qop值。所以正确的response计算应该包含这些参数

具体实现:

    设置过滤器,在过滤器中输入sip进行过滤,找到相关的SIP请求和响应。然后,重点分析401和403响应的细节,比如头部信息、认证参数是否正确。比如nonce、cnonce、nc的值是否符合规范,或者哈希计算是否正确。需要指导他们在Wireshark中对比正常和异常的请求,查看Authorization头中的各个参数是否正确。

网络通信问题

    Go程序通过UDP发送和接收数据,需要正确读取服务器的响应,并处理可能的超时或网络错误。
NAT或防火墙导致的连接问题,虽然返回的是403,但实际可能是服务器没有正确接收到认证请求,或者客户端的Contact地址不可达。这时候需要检查SIP消息中的Via和Contact头部,确认地址和端口是否正确,是否被服务器接受。

3、Wireshark分析403 Forbidden全流程

分析freeswitch返回403 Forbidden的原因


(1)加载抓包文件

打开Wireshark → File → Open → 选择抓包文件
设置显示过滤器(快速定位SIP流量):
sip || udp.port == 5060或者sip

 (2)定位关键SIP事务

A.典型403错误流程

分析freeswitch返回403 Forbidden的原因


B.关键帧分析

  • 初始REGISTER请求
REGISTER sip:192.168.0.1 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.0:5060;branch=z9hG4bKd4e5f6a7
Max-Forwards: 70
From: <sip:1000@192.168.0.1>;tag=abcd1234
To: <sip:1000@192.168.0.1>
Call-ID: a1b2c3d4@192.168.0.0
CSeq: 1 REGISTER
Contact: <sip:1000@192.168.0.0:5060;transport=udp>
  • 检查要点:
Via头中的branch参数是否以z9hG4bK开头
Contact头是否包含正确的客户端地址
CSeq是否从1开始递增
  • 401 Unauthorized响应
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.0.170:5060;received=192.168.0.170;branch=z9hG4bKd4e5f6a7;rport=5060
WWW-Authenticate: Digest realm="192.168.0.31", nonce="5e8f7g6h", qop="auth", algorithm=MD5
  • 确认参数完整性:
realm 是否与FreeSWITCH域名匹配

qop 是否包含auth
algorithm 是否为MD5
  • 带认证的REGISTER请求
   REGISTER sip:192.168.0.31 SIP/2.0
  Authorization: Digest username="1000", realm="192.168.0.31", 
  nonce="5e8f7g6h", uri="sip:192.168.0.31", 
  response="d41d8cd98f00b204e9800998ecf8427e", 
  algorithm=MD5, qop=auth, nc=00000001, 
  cnonce="d4e5f6a7b8c9d0e1"
分析freeswitch返回403 Forbidden的原因

  •  403 Forbidden响应
    是否提取nonce,cnonce的值正确;计算的哈希值是否正确
nonce、cnonce、nc的值是否符合规范,或者哈希计算是否正确。需要指导他们在Wireshark中对比正常和异常的请求,查看Authorization头中的各个参数是否正确。
  • MD5的计算
ha1 := md5Hex(fmt.Sprintf("%s:%s:%s", sipUser,realm, password))
ha2 := md5Hex(fmt.Sprintf("REGISTER:sip:%s:%d",freeswitchIP,freeswitchPort)))
response := md5Hex(fmt.Sprintf("%s:%s:%s:%s:%s:%s",ha1, nonce, nc, cnonce, "auth", ha2))

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭