Subject: [splices] draft-yusef-splices-invoke: Digest auth?

From: Adam Roach <[email-masked]>
Date: Tue, 26 Jul 2011 13:54:07 -0400

I'm not commenting on the larger issue of whether INVOKE is an 
appropriate means to accomplish what it intends in this email, as that's 
a far broader conversation.

However, one thing that jumped out at me in the current version of 
draft-yusef-splices-invoke is the following normative requirement:

    In most cases, the same user will be logged in to the different
    devices using the same credentials provided in the REGISTER requests.
    In this case, all INVOKE requests MUST be challenged using the digest
    authentication mechanism described by [RFC3261].

In practice, Digest was barely passable when we specified it in RFC 
3261, and we knew it. In the 15 years since we first did that, 
additional cracks have been made in the façade of MD5 that make Digest 
an even worse idea. The only real reason it's there is because there 
wasn't anything better available at the time. In fact, MD5-based Digest 
is so bad, you have protocols already deprecating it altogether (see RFC 
6331, for example).

At the same time, we do have additional means of authentication (mTLS, 
SIP Identity, and SIP Certs with S/MIME come to mind) that can be 
employed in certain architectures, and with far better security 
properties than Digest ever did (even back when MD5 was considered a 
good crypto algorithm). With any luck, one or more of these will become 
somewhat more widespread in the future.

So, if we *are* going to specify something in this area, I think that 
requiring Digest -- or, really, even suggesting it as a preferred 
mechanism -- are somewhat misguided. Yes, we need authentication for 
these types of operations. But Digest isn't a reasonable way to do it.

/a