[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Poll: pure SCRAM versa SCRAM-as-GS2




On Thu Feb 19 16:02:18 2009, ned+ietf-sasl@xxxxxxxxxxx wrote:
The real risk is that an overly complex mechanism will not deploy, or if it does deploy, will fail to interoperate. We're coming to the party very, very late with this, and even if we end up with as simple a mechanism as we possibly can there's still a significant risk this whole thing is going to go exactly
nowhere.

I'd go so far as to say that actual complexity isn't as important for the purposes of deployment as perceived complexity. This ceased to be a technical issue some time ago (although there are minor technical issues). This is really just a marketing issue, and one that's important to address if we want deployment.

Unfortunately, I suspect most of this boils down to the name.

If I understand Nico's proposal on 2/17 correctly, it could simplify the difference between auth-scram-09 and auth-scram-gs2 to just a blob at the beginning of the first client message. If it's possible to do that, then I
would support doing so.

Frankly, this is what I was expecting to see in the current set of drafts - the idea of reducing GS2 to an opaque blob has been mentioned many times in the past. What I found instead was a significantly more complex alternative.

I'd question whether the average developer is going to go as far as finding and reading the specification if the mechanism name is itself encrypted. This might sound flippant, and frankly it's hard not to make it sound that way, but it's a serious point - deployment isn't only about technical merit.

In any case, the key attraction for many operators isn't going to be that GSS-API and SASL share the mechanism, but that PLAIN and SCRAM can share a secure authentication database. If there's another mechanism, GSS-API based, that also shares this backend database, that'll no doubt please people who're offering GSS-API services alongside SASL services, but I honestly can't see that having wire compatibility is all that important by comparison.

Sure, it's a "nice if you can get it", but it ranks far, far below the shared authentication backend, which itself means that SCRAM-capable services can be deployed right now.

Right now, operators have to choose between storing plaintext passwords or require transmitting them, and when forced to choose, they appear to go for the latter. With SCRAM, they can deploy a SCRAM-style authentication database right now - it's probably very close to what they're already using in /etc/shadow or their hashed-passwords DSA - they can use it for PLAIN for existing clients, and offer SCRAM, and client developers will see SCRAM advertised, and implement it because it's simple enough.

So, my conclusion from this is actually very positive - we can have a native SASL SCRAM-HMAC-* family, a backend-compatible GSS-API SCRAM family, a document describing how to make PLAIN (and XEP-0078, IMAP LOGIN, X.509 Simple Authentication, POP3 USER/PASS, FTP, /bin/login etc) authenticate against the same backend, and actually have real deployment in services now.

On the other hand, if we choose a solution that appears more complex, I'm concerned that the result will be that we never get the momentum.

Dave.
--
Dave Cridland - mailto:dave@xxxxxxxxxxxx - xmpp:dwd@xxxxxxxxxxxxxxxxx
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade