Re: [IPv6] Link-local URI status (rfc6874bis)

Michael Sweet <msweet@msweet.org> Thu, 02 November 2023 03:05 UTC

Return-Path: <msweet@msweet.org>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CA692C18FCC2 for <ipv6@ietfa.amsl.com>; Wed, 1 Nov 2023 20:05:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=msweet.org
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EQbZ0KMmyvWj for <ipv6@ietfa.amsl.com>; Wed, 1 Nov 2023 20:05:01 -0700 (PDT)
Received: from mail.msweet.org (mail.msweet.org [173.255.209.91]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AE153C09BB5D for <ipv6@ietf.org>; Wed, 1 Nov 2023 20:05:01 -0700 (PDT)
Received: from smtpclient.apple (cbl-66-186-76-47.vianet.ca [66.186.76.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.msweet.org (Postfix) with ESMTPSA id DA147803D3; Thu, 2 Nov 2023 03:04:59 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail.msweet.org DA147803D3
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=msweet.org; s=default; t=1698894300; bh=tiNDKZjjYn7uOfu78xtCO106vSEdFlQhhgt2Ri1F84c=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=h9u7NALYag439okVQh/PO4bOdXxn3nA/ks5qMgoSxJHE4gfCRebASEmxBT+A7bCFx qWmT46SrvnShrihCkKfoR+G58Qk7e807TWxWfrdeSh9Is73CItckpCoBReiADMFBSe lLa9h/9IldjPBqNEvsBrxLsBPd2/UiYgo4AuGkN8=
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.300.13\))
From: Michael Sweet <msweet@msweet.org>
In-Reply-To: <17352fa3-c3c9-3cc3-27f2-f8f57dfff383@gmail.com>
Date: Wed, 01 Nov 2023 23:04:47 -0400
Cc: 6man <ipv6@ietf.org>, Bob Hinden <bob.hinden@gmail.com>, Stuart Cheshire <cheshire@apple.com>, "Rob Wilton (rwilton)" <rwilton@cisco.com>, "Murray S. Kucherawy" <superuser@gmail.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <5B3DDEB8-36F1-428C-89AA-B765A600824A@msweet.org>
References: <17352fa3-c3c9-3cc3-27f2-f8f57dfff383@gmail.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
X-Mailer: Apple Mail (2.3774.300.13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/mjYxDseY8Ku8End0_okPxy12DiE>
Subject: Re: [IPv6] Link-local URI status (rfc6874bis)
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Nov 2023 03:05:06 -0000

Brian,

Comments inline...

> On Oct 31, 2023, at 10:02 PM, Brian E Carpenter <brian.e.carpenter@gmail.com> wrote:
> ...
> 2. Re Murray Kucherawy's DISCUSS:
> 
> 2.1 The fact that almost no developers have decided to implement
> this so far seems non-blocking to me. For all the use cases listed in
> the draft, there is a user-side view that this just ought to work,
> and when it fails, this is perceived as a bug.
> 
> Arguments that it's 'unimplementable' or 'insecure' deserve answers:
> 
> 2.2 The 'unimplementable' argument is based on using the '%' sign
> as a separator, whereas its normal role in a URI is as an escape
> character. Roy Fielding has argued that there are many URI parsers
> around that handle percent-encoding in different ways (somewhat
> regardless of the formal ABNF syntax). As result, he asserts
> that stepwise introduction of the draft is impossible in practice.
> 
> The draft argues that it doesn't matter if unmodified parsers
> throw an error if they see the new syntax, because that is what
> they do today anyway, so the new syntax can be deployed
> progressively.
> 
> There is an alternative (discussed in this WG years ago):
> use a different separator, e.g. http://[fe80::1-eth0]
> This still requires URI parsers to be modified and progressively
> deployed, but without interacting with percent-encoding.
> That is mainly a simplification of the programming problem. It
> does have its own programming complication - the '-' must be
> replaced by '%' before making relevant socket calls.

WRT this, CUPS first added support for the Fenner draft in January 2006:

    https://datatracker.ietf.org/doc/html/draft-fenner-literal-zone-02

This format (scheme://[v1.fe80::0123:4567:89ab:cdef+eth0]/resource) requires rewriting ("+" to "%") and hasn't been an issue for implementation in the billions of IPP printers and client devices that use it...

One advantage of using "-" instead of "%" is that it is both unambiguous (there is no other meaning for a "-" between the address and zone ID portions) and allows existing RFC 6874 implementations (like CUPS) to continue working unchanged and support the new "-" delimiter as well.

Regardless, today you basically can't use IPv6 link local addresses in browsers at all.  Claiming that you can't add a new format because it wouldn't work everywhere immediately makes no sense - better stop developing new protocols and standards then...

> 2.3 The 'security' argument is related to what the Web community
> calls Cross-Origin Resource Sharing (CORS). This is a very
> complex topic that I do not claim to understand and will not
> attempt to summarise here. IPv4 and IPv6 link-local address
> literals are considered problematic, like other IP addresses
> with local (a.k.a. private) scope, such as ULAs. The background
> is at https://wicg.github.io/private-network-access/.

OK, so this is a little different from the normal CORS issues...  

> What I do not understand about this argument is that the CORS
> issue exists for http://[fe80::1] already, and as far as
> I can see is identical for http://[fe80::1%eth0]. If so,
> that is no reason to block rfc6874bis.

Agreed.  I suspect that, for any numeric address, the answer for CORS is simply to compare any two address fields and if they match, it is the same origin, otherwise it is not.  If you have a FQDN, then any numeric address does not match.

The zone ID can be part of this address string comparison because CORS applies to "security" restrictions the client browser is applying...
> ...
> 1. Drop the draft and leave the use cases unsolved.

That's what was done back in 2005 and the problem hasn't gone away...

> 2. Accept the change to http://[fe80::1-eth0] and push the
> IESG to dismiss the other objections as beside the point.

See above.  I've always been uncomfortable with a bare "%" given that it has a special meaning in URLs, can be misinterpreted with numeric zone IDs, and isn't backwards-compatible with RFC 6874.  If using "-" is enough to get this draft advanced, I'd go for it.

> 2a. Also undertake a major revision of RFC4007.

Barn | Door | -------------------> Horse

________________________
Michael Sweet