rtsp采用MD5加密摘要认证的交互过程

《RTSP使用MD5加密认证代码实现》链接:

https://edu.csdn.net/learn/38258/606141?spm=1003.2001.3001.4157


RTSP实时音视频传输介绍 文章中详细介绍了RTSP实时音视频传输的过程,本篇文章主要记录RTSP采用MD5加密认证的信令交互过程。

OPTIONS交互信令如下:

 客户端往服务器发送请求;

OPTIONS rtsp://127.0.0.1:554/live/chn0 RTSP/1.0
CSeq: 2
User-Agent: LibVLC/3.0.16 (LIVE555 Streaming Media v2016.11.28)

服务器给客户端返回401错误码。Digest 表示采用MD5的摘要认证,如果始Basic表示始Base64的基本认证方式;服务端同时返回realm和nonce;

RTSP/1.0 401 Unauthorized
CSeq: 2
WWW-Authenticate: Digest realm="RTSP-SERVER-1-0",nonce="90015098376bfe6e9bd6e7d3ccc1"

客户端重新往服务器发送请求。客户端根据用户名、密码、realm、nonce、RTSP方法、URL来生成response。

OPTIONS rtsp://192.168.2.105:554/live/chn0 RTSP/1.0
CSeq: 3
Authorization: Digest username="admin", realm="RTSP-SERVER-1-0", nonce="90015098376bfe6e9bd6e7d3ccc1", uri="rtsp://192.168.2.105:554/live/chn0", response="426c4136768c715ca212cb2a400218f1"
User-Agent: LibVLC/3.0.16 (LIVE555 Streaming Media v2016.11.28)

服务器会对客户端的response字段进行解析校验(服务端也会生成一个response,然后和客户端的response进行比较是否完全一样);response检验通过后服务器给客户端返回可以使用的方法;服务器可用的方法在Public字段中

RTSP/1.0 200 OK
CSeq: 3
Date: Sat Dec  3 15:25:30 2022
Transport: RTP/AVP
Public: DESCRIBE, OPTIONS, SETUP, PLAY, PAUSE, TEARDOWN
Server: rtspServer

DESCRIBE交互信令如下:

客户端往服务器发送请求;这里也会带认证信息,并重新计算新的response(在不同的方法下response是不同的需要重新生成新的response)发给服务器校验。

DESCRIBE rtsp://127.0.0.1:554/live/chn0 RTSP/1.0
CSeq: 4
Authorization: Digest username="admin", realm="RTSP-SERVER-1-0", nonce="90015098376bfe6e9bd6e7d3ccc1", uri="rtsp://127.0.0.1:554/live/chn0", response="74ef45c139e5b841ec0901602de99a23"
User-Agent: LibVLC/3.0.16 (LIVE555 Streaming Media v2016.11.28)
Accept: application/sdp

服务器给客户端返回SDP信息;

RTSP/1.0 200 OK
CSeq: 4
Date: Sat Dec  3 15:25:30 2022
Transport: RTP/AVP
Accept: application/sdp
Server: rtspServer
Content-Type: application/sdp
Content-Length: 471

v=0
o=- 0 0 IN IP4 0.0.0.0
s=h265+aac
t=0 0
a=control:rtsp://127.0.0.1:554/live/chn0
a=range:npt=0-
m=video 0 RTP/AVP 98
c=IN IP4 0.0.0.0
a=rtpmap:98 H265/90000
a=control:rtsp://127.0.0.1:554/live/chn0/track1
m=audio 0 RTP/AVP 97
c=IN IP4 0.0.0.0
a=rtpmap:97 mpeg4-generic/44100/2
a=fmtp:97 streamtype=5;profile-level-id=1;sizeLength=13;IndexLength=3;indexDeltaLength=3;mode=AAC-hbr;config=2210;
a=control:rtsp://127.0.0.1:554/live/chn0/track2

SETUP交互信令如下:

客户端往服务器发送请求;采用TCP的传输方式。这里也会带认证信息,并重新计算新的response发给服务器校验。

SETUP rtsp://127.0.0.1:554/live/chn0/track1 RTSP/1.0
CSeq: 5
Authorization: Digest username="admin", realm="RTSP-SERVER-1-0", nonce="90015098376bfe6e9bd6e7d3ccc1", uri="rtsp://127.0.0.15:554/live/chn0", response="e6932acc7556b4d257d2fe710ab9db1a"
User-Agent: LibVLC/3.0.16 (LIVE555 Streaming Media v2016.11.28)
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

服务器给客户端返回信息

RTSP/1.0 200 OK
CSeq: 5
Date: Sat Dec  3 15:25:30 2022
session: 305419896
Transport: RTP/AVP/TCP;ssrc=22345678;unicast;interleaved=0-1
Server: rtspServer

PLAY交互信令如下:

客户端往服务器发送请求。这里也会带认证信息,并重新计算新的response发给服务器校验。

PLAY rtsp://127.0.0.1:554/live/chn0 RTSP/1.0
CSeq: 7
Authorization: Digest username="admin", realm="RTSP-SERVER-1-0", nonce="90015098376bfe6e9bd6e7d3ccc1", uri="rtsp://127.0.0.1:554/live/chn0", response="f2431d604b7be3d046c2d379cfecaa68"
User-Agent: LibVLC/3.0.16 (LIVE555 Streaming Media v2016.11.28)
Session: 305419896
Range: npt=0.000-

服务器给客户端返回信息;

RTSP/1.0 200 OK
CSeq: 7
Date: Sat Dec  3 15:25:30 2022
session: 810817929
Transport: RTP/AVP
Server: rtspServer

注意:每个步骤(方法)都会重新计算response,response的计算需要方法,方法不同response的计算结果也会不同。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值