Re: [Lager] Stephen Farrell's Discuss on draft-ietf-lager-specification-11: (with DISCUSS and COMMENT)

Stephen Farrell <stephen.farrell@cs.tcd.ie> Tue, 17 May 2016 16:16 UTC

Return-Path: <stephen.farrell@cs.tcd.ie>
X-Original-To: lager@ietfa.amsl.com
Delivered-To: lager@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1B71212DA70; Tue, 17 May 2016 09:16:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.727
X-Spam-Level:
X-Spam-Status: No, score=-5.727 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-1.426, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 U_7v_WqS6hpq; Tue, 17 May 2016 09:16:00 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 269F412D6EC; Tue, 17 May 2016 09:16:00 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id B75D4BE2D; Tue, 17 May 2016 17:15:57 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WZA0Sg3JS5JT; Tue, 17 May 2016 17:15:55 +0100 (IST)
Received: from [10.87.48.100] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id 62A6CBE35; Tue, 17 May 2016 17:15:33 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1463501733; bh=usIwgPdqzX9gTAnaVYMZ52dLnTLAIQVPeJiPBwZ7yQA=; h=Subject:To:References:Cc:From:Date:In-Reply-To:From; b=gsdvCrjmykokCunzrIwIUcXZ29UAaYDWJVq1giuLyTR3cuztnhcslLCd0XBoKWWrD klnJXYWOI5+e85rwSpts5xKM0pjLPrDCuGFR1AhC4norjsY/7OVfh9kIKT0TfSh+5n hx+Jh8lyXxoNduYlg/mn3KlJHfIE+nDfabIritXI=
To: "Asmus Freytag (c)" <asmusf@ix.netcom.com>, Alexey Melnikov <aamelnikov@fastmail.fm>
References: <20160421102401.19578.54300.idtracker@ietfa.amsl.com> <1461412191.851961.587365345.53A5CC4C@webmail.messagingengine.com> <571B634F.9070600@cs.tcd.ie> <df5235b5-314d-274f-0579-de5de36b7d85@ix.netcom.com> <5739C186.9040200@cs.tcd.ie> <0a7a8f7e-6e9f-6341-dcc7-55c5b5b6bd65@ix.netcom.com>
From: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Openpgp: id=D66EA7906F0B897FB2E97D582F3C8736805F8DA2; url=
Message-ID: <573B43A5.3020008@cs.tcd.ie>
Date: Tue, 17 May 2016 17:15:33 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
MIME-Version: 1.0
In-Reply-To: <0a7a8f7e-6e9f-6341-dcc7-55c5b5b6bd65@ix.netcom.com>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="------------ms050309020608040805090802"
Archived-At: <http://mailarchive.ietf.org/arch/msg/lager/cK8W_3Ksqw-D4XpvclfPW4UicFg>
Cc: audric.schiltknecht@viagenie.ca, draft-ietf-lager-specification@ietf.org, The IESG <iesg@ietf.org>, lager@ietf.org
Subject: Re: [Lager] Stephen Farrell's Discuss on draft-ietf-lager-specification-11: (with DISCUSS and COMMENT)
X-BeenThere: lager@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Label Generation Rules <lager.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lager>, <mailto:lager-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lager/>
List-Post: <mailto:lager@ietf.org>
List-Help: <mailto:lager-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lager>, <mailto:lager-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 May 2016 16:16:03 -0000

Hiya,

Yes, an addition such as you suggest below should be
good enough to sort the discuss.

Thanks,
S.

PS: You still didn't tell me if the WG plans to think
about origin auth and provenance or not. I guess that
means there are no such plans.

On 16/05/16 18:21, Asmus Freytag (c) wrote:
> On 5/16/2016 5:48 AM, Stephen Farrell wrote:
>> Hiya,
>>
>> This is the promised (and delayed, sorry;-) follow up...
>>
>> On 28/04/16 20:58, Asmus Freytag (c) wrote:
>>>> (4) section 12: I don't think this is at all sufficient.
>>>> Missing aspects include: Imprecise LGRs could result in
>>>> registration of identifiers that are unexpected in many other
>>>> protocols, leading to new vulnerabilities; LGRs could be
>>>> deliberately manipulated so as to create such imprecision, and
>>>> if I could feed one such to a registry (e.g. via some nice
>>>> friendly looking git repo) then I could exploit the vuln later
>>>> for fun and profit - that seems to call for some
>>>> interoperable form of data integrity and origin
>>>> authentication (is the lager WG doing that?) and lastly (for
>>>> now), the XML language defined here is very flexible as noted
>>>> earlier - I would expect there to be many implementation bugs
>>>> in new code that attempts to parse this language. So I think
>>>> the security considerations needs to be re-done really.
>>> My reading of this comment is that it presupposes a particular use-case.
>> Isn't that use-case the reason why this language was developed?
>> The charter says it is "primarily to support" that anyway, so
>> I don't accept that this is just one amongst many use cases,
>> if that's what you mean, but do correct me if I'm getting what
>> you meant wrong.
> 
> The use case I was referring to is your scenario of registries
> "grabbing" random LGR definitions from open source repositories and
> making them policy without substantial review.
> 
> I think the more fundamental issue to cover is that the use of the LGR
> format - by itself - offers no guarantee of suitability of the LGR
> content (more on that below). That is a fair point. The security issues
> ultimately stem from the use of unsuitable policies, not from how they
> are expressed.
>>
>>> The use case we've identified so far is that these will substitute for
>>> IDN tables.
>>>
>>> IDN tables are controlled by registries and define registry policy. As
>>> such it would be up to the registry to have a policy that is
>>> well-defined,
>>> and the registries would be in charge of developing or adopting an LGR
>>> that matches their policies.
>>>
>>> The LGR data format (and that's what it is) doesn't change anything
>>> in who
>>> can set and enforce registry policy.
>> Correct. But doesn't this change who is likely to develop the
>> (fragments of) documents that describe those policies and
>> in doing so it could (IMO fairly easily) create unexpected
>> side effects for other protocols.
>>
>>> I also do not understand what an "imprecise" LGR would be. In contrast
>>> to what they replace (IDN tables), LGRs are way more definite.
>> By "imprecise" I meant an LGR that allows some identifiers
>> to end up in protocols where those identifiers cause problems.
> 
> Thanks for the clarification. That puts a different spin on things. An
> "imprecise" statement of label generation rules usually means you can't
> tell reliably which labels are being generated. However, let's take your
> definition of "doesn't automatically prevent unsuitable labels".
> 
> I fully agree. Nothing in the LGR format prevents unsuitable labels.
> It's just a format. Deciding what labels are suitable or not is the role
> of the LGR content. The draft makes limited, if any, recommendations for
> the contents of label generation rules.
> 
>> If there's a good argument that that can never happen then
>> that'd be a fine counter-argument, but ISTM that the LGR
>> language would allow that. Yes, a registry who did that could
>> be called out for it, but fixing such things afterwards can
>> be hard and some of the subtleties might take a while to get
>> noticed.
> 
> Perhaps it would be useful to spell out that the draft (by specifying a
> format) does not by itself change what labels are generated.
> 
> It enables a number of techniques that might increase security: the
> format guarantees that each label will be definitely associated with a
> disposition, and many properties of a set of label generation rules can
> be mechanically verified.
> 
> In the root zone LGR process we found that having a consistent and
> unambiguous format greatly helps in understanding and reviewing LGR
> proposals, arguably a security benefit.
>>> Issues of deployment of LGRs in IDN registration seem out of scope for
>>> this document.
>> I agree the specifics of any given LGR or registry policy
>> aren't in scope but the fact that an "imprecise" (in the sense
>> above) LGR could cause wider trouble in perhaps unexpected ways,
>> is definitely worth noting here I think, unless that's just
>> not really possible. (See above.)
>>
>> As a near-aside, you didn't tell me if the WG are considering
>> issues such as origin authentication or provenance of LGR
>> fragments in some other document. I'm not asking that this
>> one be held up pending development of that, but I'd be
>> interested in knowing. And if the WG aren't ever going to do
>> that, which may be reasonable if nobody would deploy it,
>> then that also argues for recognising the potential threats
>> here. (E.g. that taking a snippet of an LGR from stackexchange
>> might be problematic.)
> 
> I think it's fair to note that the use of the format places very little
> constraints on what can be expressed as LGR - and, in particular, that
> the use of the format in and of itself does not guarantee that the
> results are suitable.
> 
> However, I would argue that this is not the place to discuss all the
> unsuitable ways labels can be defined - because there are other,
> existing formats for label generation rules (aka IDN tables) which also
> allow the definition of policies that range from good to bad.
>>
>> Lastly, I'm sure you're correct that LGRs are probably more
>> likely to be precise, compared to previous technologies such
>> as IDN tables, but that does not mean that there's no need to
>> recognise potential threats arising from LGRs even if those
>> threats existed and were more likely to occur with tables.
> 
> For comparison, here is the language used in RFC 3743 (which defines one
> of the IDN table formats with which this draft is compatible):
> 
>    As discussed in the Introduction, substantially-unrestricted use of
>    international (non-ASCII) characters in domain name labels may cause
>    user confusion and invite various types of attacks.  In particular,
>    in the case of CJK languages, an attacker has an opportunity to
>    divert or confuse users as a result of different characters (or, more
>    specifically, assigned code points) with identical or similar
>    semantics.  These Guidelines provide a partial remedy for those risks
>    by supplying a framework for prohibiting inappropriate characters
>    from being registered at all and for permitting "variant" characters
>    to be grouped together and reserved, so that they can only be
>    registered in the DNS by the same owner.  However, the system it
>    suggests is no better or worse than the per-zone and per-language
>    tables whose format and use this document specifies.  Specific
>    tables, and any additional local processing, will reflect per-zone
>    decisions about the balance between risk and flexibility of
>    registrations.   And, of course, errors in construction of those
>    tables may significantly reduce the quality of protection provided.
> 
> We could certainly write equivalent language - but note, that language
> also does not go into details on what kind of bad tables one can write,
> only that it is possible. (And unlike RFC 3743 the draft does not
> contain "guidelines").
> 
> Will post suggested language when we have it,
> 
> A./
>>
>> Cheers,
>> S.
>>
>