Re: [http-auth] Pete Resnick's No Objection on draft-ietf-httpauth-basicauth-update-06: (with COMMENT)

Julian Reschke <julian.reschke@greenbytes.de> Thu, 19 February 2015 16:45 UTC

Return-Path: <julian.reschke@greenbytes.de>
X-Original-To: http-auth@ietfa.amsl.com
Delivered-To: http-auth@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A6D491A923C; Thu, 19 Feb 2015 08:45:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.561
X-Spam-Level:
X-Spam-Status: No, score=-1.561 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LTaZyLXUXR3W; Thu, 19 Feb 2015 08:45:46 -0800 (PST)
Received: from mail.greenbytes.de (mail.greenbytes.de [217.91.35.233]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 673301A9233; Thu, 19 Feb 2015 08:45:43 -0800 (PST)
Received: from [192.168.2.175] (unknown [93.217.98.69]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.greenbytes.de (Postfix) with ESMTPSA id 3DA6215A0309; Thu, 19 Feb 2015 17:45:40 +0100 (CET)
Message-ID: <54E61331.7080807@greenbytes.de>
Date: Thu, 19 Feb 2015 17:45:37 +0100
From: Julian Reschke <julian.reschke@greenbytes.de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Kathleen Moriarty <kathleen.moriarty.ietf@gmail.com>, Julian Reschke <julian.reschke@gmx.de>
References: <20150218214927.31074.15996.idtracker@ietfa.amsl.com> <54E511BF.1070503@gmx.de> <54E51652.4050301@qti.qualcomm.com> <54E51843.1050307@greenbytes.de> <CALaySJJCzgkUNpONxFdv9-ZUD_Qxa_70rt+3g+U60Ctt80CMAg@mail.gmail.com> <54E58D9C.5020207@gmx.de> <CAHbuEH7rf72Dx0QiLgEjPZ7vCDDinEYZE-E9yTvABfSii635Pg@mail.gmail.com>
In-Reply-To: <CAHbuEH7rf72Dx0QiLgEjPZ7vCDDinEYZE-E9yTvABfSii635Pg@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/http-auth/L2HkeNXqQ5nTAYbPJWAKDzqlhT4>
Cc: Pete Resnick <presnick@qti.qualcomm.com>, httpauth-chairs@ietf.org, "http-auth@ietf.org" <http-auth@ietf.org>, The IESG <iesg@ietf.org>, Barry Leiba <barryleiba@computer.org>, draft-ietf-httpauth-basicauth-update.all@ietf.org
Subject: Re: [http-auth] Pete Resnick's No Objection on draft-ietf-httpauth-basicauth-update-06: (with COMMENT)
X-BeenThere: http-auth@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: HTTP authentication methods <http-auth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/http-auth>, <mailto:http-auth-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/http-auth/>
List-Post: <mailto:http-auth@ietf.org>
List-Help: <mailto:http-auth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/http-auth>, <mailto:http-auth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Feb 2015 16:45:48 -0000

On 2015-02-19 17:20, Kathleen Moriarty wrote:
> Hi,
>
> On Thu, Feb 19, 2015 at 2:15 AM, Julian Reschke <julian.reschke@gmx.de
> <mailto:julian.reschke@gmx.de>> wrote:
>
>     On 2015-02-19 00:42, Barry Leiba wrote:
>
>                 "MUST NOT" does not mean the Internet Police will come
>                 to take you away.
>                 "MUST NOT" means "this won't work".
>
>
>             Ahem, no, that's not what "MUST NOT" means.
>
>
>         It is, modulo rhetoric.  It's an interoperability requirement.  "You
>         MUST NOT do <x>," means that if you do <x>, you will not
>         interoperate
>         -- something will break.  It seems to me that that's exactly the
>         case
>         here: If my username is "b:leiba", and a client sends
>         "b:leiba:plugh",
>         many servers will think the username is "b" and the password is
>         "leiba:plugh".  That means that allowing ":" in the username breaks
>         interoperability.  Whether or not it works sometimes, and whether or
>
>
>     Allowing colons in usernames when usernames are assigned is a
>     problem. We already say these names are invalid.
>
>     Requiring UAs to reject them is an entirely different story. If a
>     user id *did* contain the colon, and did "work" for some UA A and
>     server B, implementing the "MUST NOT" in the UA would remove the
>     user's ability to log on to the web site. That's a bigger failure.
>
>
> Pete and Barry are making the point that text in this draft can help
> clear this issue up going forward.  If a user id contained a colon, the
> user would need a new id if user agents decided this should not work.
> Since browsers do support this now, there must be some instances where
> this occurred to change their behavior, moving away from standard
> specifications to allow this, is that true?  I haven't seen user ids
> with :s in them, but that could just be me being unaware of this practice.
>
> I'm not reading this discussion as resolved yet.

True.

The problem here is the "long tail". We simply have no information about 
whether these IDs exist in practice. The fact that all UAs I checked 
indeed accept them at least *hints* that they might be used somewhere. 
Or none of the implementers ever thought about rejecting them.

I don't believe we can find out what the reason for this is.

In RFC 2617, the pseudo-ABNF prose production excluded the colon, but no 
additional prose requirements were present.

In the draft, we have replaced that pseudo-ABNF by prose, and that prose 
not only says "invalid" but also explains what common UAs do, and how 
that might affect results. I hope everybody agrees that this is an 
improvement over what we had before.

The discussion that we're having is whether "MUST NOT use colons" is 
better or worse than "colons are invalid". I don't believe it makes a 
difference. I'll also note that I'm very unhappy to include a "MUST NOT" 
when we know that current implementations actually do it anyway, and 
they are extremely unlikely to stop doing that. In the worst case, a 
user who previously could login now won't, and this might switch to a 
different UA. (And that's what scares UA implementors most :-).

Best regards, Julian