流媒体传输 - RTSP 协议认证过程

489 篇文章 14 订阅
464 篇文章 13 订阅

Rtsp 认证 主要分为两种:

基本认证 (Basic authentication)和 摘要认证 (Digest authentication)

基本认证是 HTTP 1.0 提出的认证方案,其消息传输不经过加密转换因此存在严重的安全隐患。

摘要认证是 HTTP 1.1 提出的基本认证的替代方案,其消息经过 MD5 哈希转换因此具有更高的安全性。

基本认证

  1. 客户端发送 DESCRIBE 请求到服务端

    DESCRIBE rtsp://192.168.199.242:554/ch1/main/av_stream RTSP/1.0
    CSeq: 3
    User-Agent: LibVLC/3.0.8 (LIVE555 Streaming Media v2016.11.28)
    Accept: application/sdp
  2. RTSP 服务端认为没有通过认证,发出 WWW-Authenticate 认证响应

     WWW-Authenticate 中应携带有 Basic 字样、realm 字段
    
    RTSP/1.0 401 Unauthorized
    CSeq: 3
    WWW-Authenticate: Basic realm="IP Camera(D1846)"
    Date:  Thu, Oct 15 2020 23:30:55 GMT
  3. 客户端携带 Authorization 串再次发出 DESCRIBE 请求

    Authorization 串计算方法:
     Authorization = base64(username:password)
    ​
     * 用户名:admin * 密码:Abc12345
     Authorization = base64(admin:Abc12345)
                   = YWRtaW46QWJjMTIzNDU=
    
    
    DESCRIBE rtsp://192.168.199.242:554/ch1/main/av_stream RTSP/1.0
    CSeq: 4
    Authorization: Basic YWRtaW46QWJjMTIzNDU=
    User-Agent: LibVLC/3.0.8 (LIVE555 Streaming Media v2016.11.28)
    Accept: application/sdp
  4. 服务器对客户端反馈的 Authorization 进行校验,通过则返回 200 OK

    RTSP/1.0 200 OK
    CSeq: 4
    Content-Type: application/sdp
    Content-Base: rtsp://192.168.199.242:554/ch1/main/av_stream/
    Content-Length: 594

摘要认证

【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  

  1. 客户端发送 DESCRIBE 请求到服务端

    DESCRIBE rtsp://192.168.199.242:554/ch1/main/av_stream RTSP/1.0
    CSeq: 3
    User-Agent: LibVLC/3.0.8 (LIVE555 Streaming Media v2016.11.28)
    Accept: application/sdp
  2. RTSP 服务端认为没有通过认证,发出 WWW-Authenticate 认证响应

     WWW-Authenticate 中应携带有 Digest 字样、realm 字段、nonce 字段
    RTSP/1.0 401 Unauthorized
    CSeq: 3
    WWW-Authenticate: Digest realm="IP Camera(D1846)", nonce="61f92652b25e740d73887108b419e8b6", stale="FALSE"
    Date:  Thu, Oct 15 2020 23:30:55 GMT
  3. 客户端以 用户名、密码、nonce、RTSP 方法、请求的 URI 等信息为基础产生 response 信息进行反馈

     response 计算方法:
     RTSP 客户端应该使用 username + password 并计算 response 如下:
     如果 password 为 MD5 编码, 则
         response = md5(password:nonce:md5(public_method:url));
     如果 password 为 ANSI 字符串, 则
         response = md5(md5(username:realm:password):nonce:md5(public_method:url));
    ​
     * 用户名:admin * 密码:Abc12345
     response = md5(md5(admin:IP Camera(D1846):Abc12345):61f92652b25e740d73887108b419e8b6:md5(DESCRIBE:rtsp://192.168.199.242:554/ch1/main/av_stream));
              = md5(e03ca5323610c45d55574699008d1c34:61f92652b25e740d73887108b419e8b6:034c626594db40bb96121247d4492461)
              = 58ad47d8436ca5db7356e6a084abcbf9
    
    
    DESCRIBE rtsp://192.168.199.242:554/ch1/main/av_stream RTSP/1.0
    CSeq: 4
    Authorization: Digest username="admin", realm="IP Camera(D1846)", nonce="61f92652b25e740d73887108b419e8b6", uri="rtsp://192.168.199.242:554/ch1/main/av_stream", response="58ad47d8436ca5db7356e6a084abcbf9"
    User-Agent: LibVLC/3.0.8 (LIVE555 Streaming Media v2016.11.28)
    Accept: application/sdp
  4. 服务器对客户端反馈的 response 进行校验,通过则返回 200 OK

    RTSP/1.0 200 OK
    CSeq: 4
    Content-Type: application/sdp
    Content-Base: rtsp://192.168.199.242:554/ch1/main/av_stream/
    Content-Length: 594
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gst-rtsp-server是一个基于GStreamer的RTSP服务器,它用于处理音频流。通过gst-rtsp-server可以搭建一个高性能的音频流服务器,并通过RTSP协议将音频流发送给客户端播放。 gst-rtsp-server的工作原理是通过GStreamer的插件来处理音频流。首先,用户需要创建一个RTSP服务器实例,并指定监听的端口号。然后,可以使用GStreamer的插件将音频流从输入源(例如音频文件、实时音频输入等)获取,并通过RTSP服务器发送给客户端。 通过gst-rtsp-server处理音频流,可以实现音频的传输和播放控制。客户端可以通过RTSP协议服务器建立连接,并向服务器发送播放、暂停、停止等控制命令。服务器接收到这些命令后,可以通过GStreamer的插件对音频流进行相应的处理,然后将处理后的音频流发送给客户端。 gst-rtsp-server的优势在于其高度可扩展性和可配置性。用户可以根据自己的需求选择合适的GStreamer插件来处理音频流,如音频编码、码率控制、媒体格式转换等。此外,通过RTSP协议,可以轻松地与其他多媒体设备(如IP摄像头、音频播放器等)进行互动,使得音频流的传输更加灵活和方便。 总而言之,gst-rtsp-server是一个功能强大的音频流服务器,通过GStreamer的插件可以高效地处理音频流,并通过RTSP协议与客户端进行音频流的传输和播放控制。通过灵活的配置和扩展,gst-rtsp-server可以满足不同场景下的音频流处理需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值