Skip to main content

The Session Initiation Protocol (SIP) Digest Access Authentication Scheme
draft-ietf-sipcore-digest-scheme-15

Yes

(Adam Roach)

No Objection

Warren Kumari
(Alvaro Retana)
(Deborah Brungard)
(Ignas Bagdonas)
(Magnus Westerlund)
(Martin Vigoureux)
(Mirja Kühlewind)
(Suresh Krishnan)

Note: This ballot was opened for revision 10 and is now closed.

Roman Danyliw
No Objection
Comment (2019-10-30 for -12) Sent
** Section 2.  Recommend a reference for SHA-256 and SHA-512/256

** Recommend consistent notation on “SHA-512/256” (Section 2.0 and 2.2) and “SHA-512-256” (Abstract).  “SHA-512-256” makes sense in the ABNF for Section 2.7.
Warren Kumari
No Objection
Éric Vyncke
No Objection
Comment (2019-10-25 for -10) Sent
Thank you for authoring this short document and deprecating MD5.

I have only two comments and they are the same as Barry's first two comments (weird abstract phrasing and not clear about MD5)

-éric
Adam Roach Former IESG member
Yes
Yes (for -10) Unknown

                            
Barry Leiba Former IESG member
Yes
Yes (2019-10-17 for -10) Sent
Thanks for doing this.  I have some editorial comments, and one substantive suggestion that we state more strongly here what's said in 7616: that MD5 is NOT RECOMMENDED.

— Abstract —

   to replace the broken MD5 algorithm, which might be used
   for backward compatibility reasons only.

I suggest that the “, which…” part isn’t useful in the Abstract, and should be removed.  It's said in the Security Considerations, and we don't need to lead with it.

— Section 2 —

   It replaces the reference to [RFC2617] with a reference to [RFC7616]
   in [RFC3261], and describes the modifications to the usage of the
   Digest mechanism in [RFC3261] resulting from that reference update.

I had a hard time with this sentence.  Let me suggest this:

NEW
   It replaces the reference used in [RFC3261] for Digest Access
   Authentication, substituting [RFC7616] for the obsolete [RFC2617],
   and describes the modifications to the usage of the Digest
   mechanism in [RFC3261] resulting from that reference update.
END

— Section 2.1 —

   The IANA
   registry named "HTTP Digest Hash Algorithms" specifies the algorithms
   that correspond to 'algorithm' values.

That is not the name of the registry; it’s “Hash Algorithms for HTTP Digest Authentication” (which you correctly cite in other sections).

— Section 2.2 —

   If the MD5 algorithm is used to
   calculate the digest, then the digest will be represented as 32
   hexadecimal characters, SHA-256 and SHA-512/256 by 64 hexadecimal
   characters.

As we’re phasing out MD5, I suggest not using it as an example.  Just:

NEW
   If the SHA-256 or SHA-512/256 algorithm is used to
   calculate the digest, then the digest will be represented as 64
   hexadecimal characters.
END

— Section 2.4 —

   If the UAC cannot respond to any of the challenges in the response,
   then it SHOULD abandon attempts to send the request, e.g. if the UAC
   does not have credentials or has stale credentials for any of the
   realms, unless a local policy dictates otherwise.

This is really hard to parse; I think your “e.g.” clause gets in the way.  I suggest this:

NEW
   If the UAC cannot respond to any of the challenges in the response,
   then it SHOULD abandon attempts to send the request unless a local
   policy dictates otherwise.  For example, if the UAC does not have
   credentials or has stale credentials for any of the realms, the UAC
   will abandon the request.
END

— Section 2.5 —

   When the forking proxy places multiple WWW-Authenticate and Proxy-
   Authenticate header fields from one received response into the single
   response it MUST maintain the order of these header fields.  The
   ordering of values received from proxies relative to values received
   from other proxies is not significant.

I can’t make sense of this; can you try rephrasing it?  There’s one response and a single response.  I don’t follow.  There’s values received from proxies and values received from other proxies.  What’s the difference between “proxies” and “other proxies”?  I don’t follow.

— Section 3 —

   This specification adds new secure algorithms to be used with the
   Digest mechanism to authenticate users, but leaves the broken MD5
   algorithm for backward compatibility.

I recommend being stronger about this by using text from 7616:

NEW
   This specification adds new secure algorithms to be used with the
   Digest mechanism to authenticate users. The broken MD5 algorithm
   remains only for backward compatibility with [RFC2617], but its use is
   NOT RECOMMENDED.
END
Benjamin Kaduk Former IESG member
Yes
Yes (2019-10-28 for -10) Sent
Thanks for this document; it's always good to see ways to move off of md5.

The genart thread suggests that we are expecting a new rev of the doc?

I do have some comments, despite balloting Yes; please note especially
the comment on Section 2.6, which may reflect an error in the document.

Abstract

nit: comma after "e.g." (as well as before).

Section 2.1

   A UAS prioritizes which algorithm to use based on the ordering of the
   challenge header fields in the response it is processing.  That

nit: the UAS is *preparing* the response, not processing it, right?

Section 2.4

Why does the first paragraph get an exemption for local policy but the
second paragraph does not?

Section 2.6

   6.  [RFC7616] requires that a server check that the URI in the
   request line and the URI included in the Authorization header field
   point to the same resource.  In a SIP context, these two URIs may
   refer to different users, due to forwarding at some proxy.
   Therefore, in SIP, a UAS MAY check that the Request-URI in the
   Authorization/Proxy-Authorization header field value corresponds to a
   user for whom the UAS is willing to accept forwarded or direct
   requests, but it is not necessarily a failure if the two fields are
   not equivalent.

I think there's a subtle difference between what this says and what we want;
we still want a "MUST check" requirement (right?), but the nature of the
check changes, with default still being exact match but a "MAY" option for
the relaxed target-user check.

   8.  A UAS MUST be able to properly handle "qop" parameter received in
   an Authorization/Proxy-Authorization header field, and a UAC MUST be
   able to properly handle "qop" parameter received in WWW-Authenticate
   and Proxy-Authenticate header fields.  However, for backward
   compatibility reasons, the "qop" parameter is optional for
   RFC3261-based clients and servers to receive.

Should we remind people what the default is when it's not specified?
Alexey Melnikov Former IESG member
No Objection
No Objection (2019-10-31 for -14) Sent for earlier
Thank you for addressing my comments.
Alissa Cooper Former IESG member
(was Discuss) No Objection
No Objection (2019-10-31 for -14) Sent
Thanks for addressing my DISCUSS.
Alvaro Retana Former IESG member
No Objection
No Objection (for -11) Not sent

                            
Deborah Brungard Former IESG member
No Objection
No Objection (for -10) Not sent

                            
Ignas Bagdonas Former IESG member
No Objection
No Objection (for -11) Not sent

                            
Magnus Westerlund Former IESG member
No Objection
No Objection (for -13) Not sent

                            
Martin Vigoureux Former IESG member
No Objection
No Objection (for -12) Not sent

                            
Mirja Kühlewind Former IESG member
No Objection
No Objection (for -10) Not sent

                            
Suresh Krishnan Former IESG member
No Objection
No Objection (for -13) Not sent