无法解释RTSP身份验证(基本和摘要)

2024-05-18 15:33:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在前面为那篇长文章道歉。寻找任何洞察和帮助。。。

所以我试图用python编写一个简单的rtsp身份验证磨床。在一次测试中,我在一个(摄像机)上遇到了一个rtsp端口,当我访问它时,我得到了:

Received, 'RTSP/1.0 401 Unauthorized\r\n
CSeq: 1\r\n
Session:        645252166;timeout=60\r\n
WWW-Authenticate: Digest realm="4419b63f5e51", nonce="8b84a3b789283a8bea8da7fa7d41f08b", stale="FALSE"\r\n
WWW-Authenticate: Basic realm="4419b63f5e51"\r\nDate:  Sat, Aug 16 2014 02:22:28 GMT\r\n\r\n',

如您所见,响应似乎表明连接同时支持基本身份验证和摘要身份验证。所以我先试试基本功。我生成了以下消息并将其发送:

SETUP rtsp://192.168.201.113 RTSP/1.0
CSeq: 1
Transport: RTP/AVP;unicast;client_port 4588-4589
Authorization: Basic YWRtaW46NDQxOWI2M2Y1ZTUxOjEyMzQ=
User-Agent: VLC media player (LIVE555 Streaming Media v2010.02.10)

其中,我base64编码了“user:password”,并得出“YWRtaW46NDQxOWI2M2Y1ZTUxOjEyMzQ=”。

这再次击退了401未经授权的错误。

所以我抽出VLC并尝试连接,只是为了确保cred实际工作,然后在VLC连接字符串中输入:

rtsp://user:pass@:554

很有魅力!

所以我启动了wireshark,看看它在做什么,观察交通状况。vlc使用摘要式身份验证,而不是基本身份验证。

所以,第一个问题是,基本身份验证是否适用于RTSP,还是对我撒谎?如果是这样的话,我缺什么才能让它工作呢?

对我所知有效。所以我尝试构建基于摘要的身份验证。首先我需要弄清楚的是,在阅读了几个关于摘要式身份验证的站点之后,它使用的参数是。从401的回答中我得到的只有:

  1. 领域
  2. nonce公司

我没有任何qop,在出站VLC消息中也看不到cnonce。我假设我们使用摘要式身份验证的基本形式,其中:

H(A1) = MD5(user:realm:pass)
H(A2) = MD5(method:digestURI)
response = MD5(H(A1):nonce:H(A2)

我的具体价值观是:

H(A1) = MD5(admin:4419b63f5e51:1234) = d43b7f7d7f627da1aded72517f2a3c6c
H(A2) = MD5(DESCRIBE:rtsp://192.168.201.113) = a7c212739387f1550970752dc7a17fa2
response = MD5(d43b7f7d7f627da1aded72517f2a3c6c:57fa10a142d6c1f9e3dfabccc3ba045d:a7c212739387f1550970752dc7a17fa2) = 33477d22629eb37a6fc2d3435f03eb81

VLC发送的特定响应是:

0bde767876cbe8e6a6dfbba3c62c6db1

啊!=33477d22629eb37a6fc2d3435f03eb81

它们不匹配??

没有合适的信息来执行其他形式的摘要身份验证,那么这里发生了什么?


Tags: 身份验证a2消息basica1wwwmd5nonce
2条回答

某些相机制造商不支持基本身份验证。例如,Axis在最近的版本中已经取消了对它的支持。

基本身份验证应该有效。我刚才在做你文章中的逆向工程,如果我们解码“YWRtaW46NDQxOWI2M2Y1ZTUxOjEyMzQ=”解码的字符串是“admin:4419b63f5e51:1234”,那么这里的密码和用户名是什么?可以吗?

在摘要式身份验证中,您可以传递空字符串来代替像qop或nor等字段。摘要式身份验证响应生成器的C实现出现在下面的RFC中

http://tools.ietf.org/html/rfc2617#section-5

相关问题 更多 >

    热门问题