Re: [http-auth] Working Group Last Call for draft-ietf-httpauth-basicauth-update-03.txt

Julian Reschke <julian.reschke@gmx.de> Wed, 03 December 2014 17:21 UTC

Return-Path: <julian.reschke@gmx.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 38ADD1A1BD9 for <http-auth@ietfa.amsl.com>; Wed, 3 Dec 2014 09:21:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
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 fGL3cYAYM5Oc for <http-auth@ietfa.amsl.com>; Wed, 3 Dec 2014 09:21:36 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4D9091A1B32 for <http-auth@ietf.org>; Wed, 3 Dec 2014 09:21:22 -0800 (PST)
Received: from [192.168.1.26] ([217.91.35.233]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0LfjlS-1YFf8Q3TQI-00pMFd; Wed, 03 Dec 2014 18:21:16 +0100
Message-ID: <547F468A.2000209@gmx.de>
Date: Wed, 03 Dec 2014 18:21:14 +0100
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0
MIME-Version: 1.0
To: Michael Sweet <msweet@apple.com>
References: <20141202111608.27803.85751.idtracker@ietfa.amsl.com> <60D2DF51-5CD9-4A55-8031-4F974C0F8DF9@gmail.com> <61D95DD7-42F3-4483-8C72-E29C16180C56@apple.com> <547F3958.4020005@gmx.de> <1EB23215-FEFE-48D1-B634-04E6485A899F@apple.com>
In-Reply-To: <1EB23215-FEFE-48D1-B634-04E6485A899F@apple.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:DmbQDWMf6eYvy7z8awMNGu73+HuXYEyXxUHU8dDHebN/y1S1vQ4 tVTbQ2vlLcO8v3Ldefzg//YJDjXbH0i2Bin2XRdb6NrgI9g0eeL1fHEYNhRsswfrvw1HxGl jMStqBII7wC/Q8KuKP6u8Wd9R26U4fvVq+Lk64ZzEl7ge1gGQFytD2Y29Vra6VY/apLSIWu S02qkD6ULZh+K8Uf6VXQQ==
X-UI-Out-Filterresults: notjunk:1;
Archived-At: http://mailarchive.ietf.org/arch/msg/http-auth/CWik2HrcAOVaTeRE8xTrd681eI0
Cc: IETF HTTP Auth <http-auth@ietf.org>
Subject: Re: [http-auth] Working Group Last Call for draft-ietf-httpauth-basicauth-update-03.txt
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: Wed, 03 Dec 2014 17:21:40 -0000

On 2014-12-03 18:12, Michael Sweet wrote:
> Julian,
>
>> On Dec 3, 2014, at 11:24 AM, Julian Reschke <julian.reschke@gmx.de> wrote:
>>
>> On 2014-12-03 17:14, Michael Sweet wrote:
>>> My comments:
>>>
>>> - Section 2 makes the "charset" parameter OPTIONAL. I'm wondering if this should be RECOMMENDED in order to encourage adoption of UTF-8 usernames and passwords since that solves common deployment and interop issues.
>>
>> This being an optional feature has been the intention since we started.
>>
>> If a server has a use for non-ASCII characters, it has sufficient motivation to use it. In the other case, no amount of spec language will affect what it does.
>
> OK, I was under the impression that one of the motivations for updating RFC 2617 was to address I18N issues.

It is. But we can't make new normative requirements that will break 
existing implementations.

>>> - Section 2.1 uses "can" (servers can use the "charset" authentication parameter...) If "charset" is OPTIONAL in section 2, I think this should be "MAY" (servers MAY use ...), and if RECOMMENDED this should be "SHOULD" (servers SHOULD use ...), although then you'd want to clarify that it is a SHOULD when using UTF-8...
>>
>> How is "MAY" better than "can"? This is a statement of fact, not an interoperability requirement.
>
> Typically MAY is used in conjunction with OPTIONAL; from RFC 2119:
>
>     5. MAY  This word, or the adjective "OPTIONAL", mean that an item is
>     truly optional.  One vendor may choose to include the item because a
>     particular marketplace requires it or because the vendor feels that
>     it enhances the product while another vendor may omit the same item.
>     An implementation which does not include a particular option MUST be
>     prepared to interoperate with another implementation which does
>     include the option, though perhaps with reduced functionality. In the
>     same vein an implementation which does include a particular option
>     MUST be prepared to interoperate with another implementation which
>     does not include the option (except, of course, for the feature the
>     option provides.)
>
> Since the purpose is to indicate that servers will include the "charset" parameter to tell the client about the expected character encoding, something that is present specifically for interoperability with Unicode user IDs and passwords, I think that "MAY" is the right word to use here instead of its non-conformance synonym "can".

I disagree.

> Alternately just drop "can" with no replacement, e.g.:
>
>     In challenges, servers use the "charset" authentication parameter
>     to indicate the character encoding scheme they expect the user agent
>     to use when generating "user-pass" (a sequence of octets).  This
>     information is purely advisory.
>
> That avoids the whole consistency issues and makes it clear that the "charset" parameter is the one and only way of specifying the character encoding of the userid and password.

But that makes it sound as if servers have to use the parameter, which 
is not true.

> ...

Best regards, Julian