[Live-devel] Digest authentication and stale nonces

Deanna Earley dee.earley at icode.co.uk
Thu Mar 19 04:09:24 PDT 2015


Hello Ross.

I've just noticed an oddity in the authentication handling.
Some servers record a timestamp with the nonce allowing them to reject a digest response that's too old.
While this is fine during initialisation, commands that are sent after a few minutes trigger an auth fail response with the stale flag.

PLAY rtsp://10.1.3.47/onvif-media/media.amp?profile=icana_0&sessiontimeout=60&streamtype=unicast RTSP/1.0
CSeq: 5
Authorization: Digest username="onvif", realm="AXIS_WS_00408CC17E5B", nonce="001b8708Y551373d6957b62f930e97d5284620c7981138", uri="rtsp://10.1.3.47/onvif-media/media.amp/", response="b409ff200a58303875e0198ff4f5fb4e"
User-Agent: iCatcher RTSP Client (LIVE555 Streaming Media v2015.03.16)
Session: 00E88F6A
Range: npt=0.000-

RTSP/1.0 200 OK
CSeq: 5
Session: 00E88F6A
Range: npt=0-
RTP-Info: url=rtsp://10.1.3.47/onvif-media/media.amp/trackID=1?profile=icana_0&sessiontimeout=60&streamtype=unicast;seq=33123;rtptime=438949229
Date: Thu, 19 Mar 2015 10:43:07 GMT

GET_PARAMETER rtsp://10.1.3.47/onvif-media/media.amp?profile=icana_0&sessiontimeout=60&streamtype=unicast RTSP/1.0
CSeq: 6
Authorization: Digest username="onvif", realm="AXIS_WS_00408CC17E5B", nonce="001b8708Y551373d6957b62f930e97d5284620c7981138", uri="rtsp://10.1.3.47/onvif-media/media.amp/", response="acbacc6cf34d3e20cbb90ba7f1277f30"
User-Agent: iCatcher RTSP Client (LIVE555 Streaming Media v2015.03.16)
Session: 00E88F6A

RTSP/1.0 200 OK
CSeq: 6
Session: 00E88F6A
Date: Thu, 19 Mar 2015 10:44:02 GMT

GET_PARAMETER rtsp://10.1.3.47/onvif-media/media.amp?profile=icana_0&sessiontimeout=60&streamtype=unicast RTSP/1.0
CSeq: 7
Authorization: Digest username="onvif", realm="AXIS_WS_00408CC17E5B", nonce="001b8708Y551373d6957b62f930e97d5284620c7981138", uri="rtsp://10.1.3.47/onvif-media/media.amp/", response="acbacc6cf34d3e20cbb90ba7f1277f30"
User-Agent: iCatcher RTSP Client (LIVE555 Streaming Media v2015.03.16)
Session: 00E88F6A

RTSP/1.0 200 OK
CSeq: 7
Session: 00E88F6A
Date: Thu, 19 Mar 2015 10:44:58 GMT

GET_PARAMETER rtsp://10.1.3.47/onvif-media/media.amp?profile=icana_0&sessiontimeout=60&streamtype=unicast RTSP/1.0
CSeq: 8
Authorization: Digest username="onvif", realm="AXIS_WS_00408CC17E5B", nonce="001b8708Y551373d6957b62f930e97d5284620c7981138", uri="rtsp://10.1.3.47/onvif-media/media.amp/", response="acbacc6cf34d3e20cbb90ba7f1277f30"
User-Agent: iCatcher RTSP Client (LIVE555 Streaming Media v2015.03.16)
Session: 00E88F6A

RTSP/1.0 401 Unauthorized
CSeq: 8
Session: 00E88F6A
WWW-Authenticate: Digest realm="AXIS_WS_00408CC17E5B", nonce="001b87aeY0895241e8c6fcca2822797d4ad2ef6ffa294b", stale=TRUE
Date: Thu, 19 Mar 2015 10:45:53 GMT

GET_PARAMETER rtsp://10.1.3.47/onvif-media/media.amp?profile=icana_0&sessiontimeout=60&streamtype=unicast RTSP/1.0
CSeq: 9
Authorization: Digest username="onvif", realm="AXIS_WS_00408CC17E5B", nonce="001b87aeY0895241e8c6fcca2822797d4ad2ef6ffa294b", uri="rtsp://10.1.3.47/onvif-media/media.amp/", response="025baa1409cd60448726eb4b582e1fa3"
User-Agent: iCatcher RTSP Client (LIVE555 Streaming Media v2015.03.16)
Session: 00E88F6A

RTSP/1.0 200 OK
CSeq: 9
Session: 00E88F6A
Date: Thu, 19 Mar 2015 10:46:48 GMT

The auth fail does trigger it to discard the authentication and reauthenticate next time, but doesn't seem to trigger a resend (RTSPClient.cpp:1263 ?).

Can the stale response in the WWW-Authenticate header be honoured to trigger a resend?

In our case, this isn't a huge issue as it's only a periodic GET_PARAMETER request, but it will affect TEARDOWN request as well as anyone that uses PAUSE and PLAY requests.
(Worst case with the TEARDOWN is that the server will carry on streaming UDP for the timeout period (another 60s here)

What are your thoughts on this?

Thanks

-- 
Deanna Earley | Lead developer | icatchercctv

w: www.icode.co.uk/icatcher | t: 01329 835335 | f: 01329 835338
Registered Office : 71 The Hundred, Romsey, SO51 8BZ. Company Number : 03428325




More information about the live-devel mailing list