[OpenSER-Devel] nonce errors in trunk

Iñaki Baz Castillo ibc at in.ilimit.es
Fri Jun 6 18:37:23 CEST 2008


El Friday 06 June 2008 18:23:09 Iñaki Baz Castillo escribió:
> El Friday 06 June 2008 17:46:14 Bogdan-Andrei Iancu escribió:
> > Hi Iñaki,
> >
> > could you please point me to the RFC section?

More info:

22.1 Framework

   Under an authentication scheme that uses responses to carry values
   used to compute nonces (such as Digest), some problems come up for
   any requests that take no response, including ACK.  For this reason,
   any credentials in the INVITE that were accepted by a server MUST be
   accepted by that server for the ACK.  UACs creating an ACK message
   will duplicate all of the Authorization and Proxy-Authorization
   header field values that appeared in the INVITE to which the ACK
   corresponds.  Servers MUST NOT attempt to challenge an ACK.

   Although the CANCEL method does take a response (a 2xx), servers MUST
   NOT attempt to challenge CANCEL requests since these requests cannot
   be resubmitted.  Generally, a CANCEL request SHOULD be accepted by a
   server if it comes from the same hop that sent the request being
   canceled (provided that some sort of transport or network layer
   security association, as described in Section 26.2.1, is in place).



Many UAC's don't add credentials in ACK for 2XX, and normally OpenSer doesn't 
ask authentication for those ACK's, but if it would ask for authentication 
then the already sent credentials in the INVITE MUST be valid in the ACK. So 
in this case OpenSer MUST allow reusing credentials and not challenge the 
ACK.



Also take in consideration this text:


 22.3 Proxy-to-User Authentication
 
  If a UA receives a Proxy-Authenticate header field value in a 401/407
   response to a request with a particular Call-ID, it should
   incorporate credentials for that realm in all subsequent requests
   that contain the same Call-ID.  These credentials MUST NOT be cached
   across dialogs; however, if a UA is configured with the realm of its
   local outbound proxy, when one exists, then the UA MAY cache
   credentials for that realm across dialogs.  Note that this does mean
   a future request in a dialog could contain credentials that are not
   needed by any proxy along the Route header path.


It says that a UAC should reuse credentials for in-dialog requests (if they 
are challenged). I know that there is not a MUST but...


Regards.

-- 
Iñaki Baz Castillo
ibc at in.ilimit.es



More information about the Devel mailing list