流媒体传输 - RTSP 协议认证过程
创始人
2024-02-28 05:01:59
0

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 * 密码:Abc12345Authorization = 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 * 密码:Abc12345response = md5(md5(admin:IP Camera(D1846):Abc12345):61f92652b25e740d73887108b419e8b6:md5(DESCRIBE:rtsp://192.168.199.242:554/ch1/main/av_stream));= md5(e03ca5323610c45d55574699008d1c34:61f92652b25e740d73887108b419e8b6:034c626594db40bb96121247d4492461)= 58ad47d8436ca5db7356e6a084abcbf9DESCRIBE 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

相关内容

热门资讯

原创 戴... 最近,关于前国脚戴琳的欠薪丑闻无疑是引发了球迷的持续关注,从10月25日,媒体人李平康率先爆料,晒出...
思想政治工作条例最新修订内容,... 思想政治工作条例最新修订内容,思想政治工作条例全文下载 思想政治工作条例最新修订,全文下载与深度解读...
CBA潜力赛为何打成“老将赛”... 计时钟归零,双方教练握手致意,观众开始退场,CBA联赛的正赛宣告结束。然而球场并未就此沉寂,替补席上...
“手术钻头断裂遗留患者体内”,... 12月21日,湖南祁阳市卫生健康局发布情况通报称,近日,有媒体报道祁阳市中医医院发生骨科手术钻头断裂...
代驾纠纷 代驾时撞伤行人、车辆发生故障…… 这些都和车主无关,应由代驾赔偿? 观点: 使用代驾服务并非将所有...
公司股东与妻子分居期间出轨女下... 近日据报道,宁夏永宁县人民法院一审查明公司股东李某乙在与妻子李某甲分居期间,与公司女员工马某某存在不...
动物学家、律师和创作者,Thi... 12月21日,以“一起·了不起”为主题的2025 ThinkPad黑FUN礼在京举办。活动现场,律师...
徐奇渊:扩内需与对外政策紧密相... 近日,中国海关总署发布了一组数据令人关注:2025年前11个月,我国货物贸易顺差达到1.08万亿美元...
46岁上海独居女子不幸离世,官... 居住在上海虹口区46岁的蒋女士因突发脑溢血于今年10月入院,远亲吴先生与其公司共同垫付了医药费,但她...