Re: "Recommendation on Temporary IPv6 Interface Identifiers" (revised I-D) (Fwd: New Version Notification for draft-gont-6man-non-stable-iids-01.txt)

Mark Smith <markzzzsmith@gmail.com> Wed, 15 March 2017 20:20 UTC

Return-Path: <markzzzsmith@gmail.com>
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 9493F131815 for <ipv6@ietfa.amsl.com>; Wed, 15 Mar 2017 13:20:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.198
X-Spam-Level:
X-Spam-Status: No, score=-2.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, FROM_LOCAL_NOVOWEL=0.5, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 hzRSrhXdG3g7 for <ipv6@ietfa.amsl.com>; Wed, 15 Mar 2017 13:20:21 -0700 (PDT)
Received: from mail-qk0-x236.google.com (mail-qk0-x236.google.com [IPv6:2607:f8b0:400d:c09::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DAB331317F9 for <6man@ietf.org>; Wed, 15 Mar 2017 13:20:20 -0700 (PDT)
Received: by mail-qk0-x236.google.com with SMTP id 1so23067717qkl.3 for <6man@ietf.org>; Wed, 15 Mar 2017 13:20:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Uc9MI/vynyMDyxbWcKco7jUK+2+dxFRzkAh8Q3wvq5E=; b=H7ffmKQR09hAQs+d70poIthbqcKkxJJm2bnO7gUVGgAqhIilCtEd+Id8lhhZGe6Hyg TEpuZ2VWPgC/3Vd+NrXodaKTdsycbY2Bk3jIzciZv1znw2OgT91v1hycpL1loHnym7TZ JpivJkflpv7uzMBVhsIKMY23VGlBYnKNMfC231sKA1ERiUbd/DZ/n/KE5B1JwpuC8Zwk neixE/WLIEMRvqGat8xyjs9zAaSzChcVHFwGU+d/HJj1hw437YgmHNWxJCwxaAexcDP4 cFzhvkhz5E3sG6X+JjbE/CxHpHwEDQW9nOef5dgcP6hf+OjH7Ukb1liyAxL5kB/vkZUV EFoA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Uc9MI/vynyMDyxbWcKco7jUK+2+dxFRzkAh8Q3wvq5E=; b=TkgXK/ArigPcjwtpcgJn8j4SjBSmMkAea8Rq8wV45hipGBk+b4RdHFoAbLf6fQ7UCd rQEfbTPK4nB/qAQt5Hj/pno0qAw7S/bvJFsYTGlqLrJFLXL9Jha5XGjTVy17HC3+KmXL ix6f+Th+f9DTKEhjD7p2c5Ry2UAPaIR2LiwKjmK6g+j9AYBE0UNzZjbHDDS7DX5ESp1n Wz0kVBYkpwryIhG1RwEVF8dqFfvaNDf3mjqzuXcvJDaqKlmhECTImn0/0da57ekBsEFw iaE9bjd4is84b2dyJW4nXFq8JHpn+5FMk4qd29M5R1h9XFHKcsBtm9Woq9P/XUAAnzFp WgHA==
X-Gm-Message-State: AFeK/H2G+c9pb2WTtuxZqKCguPQrANmytIAbW7sntzvk0rH9lS2a2L0z2w7cPd65ubT0Cgt9B+xq8LkikL64yw==
X-Received: by 10.55.127.4 with SMTP id a4mr4917557qkd.215.1489609219948; Wed, 15 Mar 2017 13:20:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.142.207 with HTTP; Wed, 15 Mar 2017 13:19:49 -0700 (PDT)
In-Reply-To: <cb261f79-b008-f09b-e8af-d8718735f37e@si6networks.com>
References: <148942937853.9227.2944252822855237301.idtracker@ietfa.amsl.com> <cb261f79-b008-f09b-e8af-d8718735f37e@si6networks.com>
From: Mark Smith <markzzzsmith@gmail.com>
Date: Thu, 16 Mar 2017 07:19:49 +1100
Message-ID: <CAO42Z2wUzy1ew4f5TVuNOC-u+dak9fGjOYWpXdPFAuQnFeYcJw@mail.gmail.com>
Subject: Re: "Recommendation on Temporary IPv6 Interface Identifiers" (revised I-D) (Fwd: New Version Notification for draft-gont-6man-non-stable-iids-01.txt)
To: Fernando Gont <fgont@si6networks.com>
Cc: "6man@ietf.org" <6man@ietf.org>, draft-gont-6man-non-stable-iids@tools.ietf.org
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/GBvxTMNu1nrgZIJ7o5gKgKluLr4>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 15 Mar 2017 20:20:22 -0000

Hi,

Firstly, I really like this draft.

Suggestions/comments:


o  3.3.  Requirements for Temporary IPv6 Addresses

" Temporary addresses MUST have a limited lifetime, which should be
       different for different addresses."

For clarity, I'd suggest adding:

"This includes when a node has different addresses from within the same prefix."

just to be very clear that there is a requirement of individual
addresses, and that it doesn't change if they happen to be from within
the same prefix. (I assume this is the case?)



"  4.  The resulting interface identifiers MUST NOT embed layer-2
       identifiers (e.g.  MAC addresses)."

perhaps add,

"to prevent correlation between IPv6 IIDs and MAC addresses, when an
outside entity has been able to record both."



"This is
   in contrast with e.g. stable addresses [RFC7217], that do not have
   have a limited lifetime."

I think this is technically not true, the standard IPv6 preferred and
valid lifetimes could cause a stable address to expire, so in those
terms stable addresses, as do all IPv6 addresses, have a "lifetime"
which may be limited (static addresses could be considered an
exception, however it is only convention that when they're configured
they have a infinite preferred and valid lifetime.)

Perhaps this would be more accurate:

"This is in contrast with e.g. stable addresses [RFC7217], who's
values do not change in response to a privacy event or the expiration
of a timer, such as the address's preferred or valid lifetime."



"Having a variable maximum lifetime prevents
   an observer from synchronizing with the temporary address
   regeneration; that is, from being able to expect when address will be
   regenerated, and thus infer that one newly observed addresses is the
   result of regenerating a previously observed one."

This draft seems to be going a bit further in this direction (in a
good way) than RFC4941 does (based on my brief reading of "3.5.
Regeneration of Randomized Interface Identifiers") RFC4941 seems to
have either host or interface universal values
(TEMP_PREFERRED_LIFETIME: 1day, TEMP_VALID_LIFETIME:1 week) for the
maximum lifetimes of temporary addresses. It looks to be focusing on
avoiding synchronised address changes across clients rather than
across addresses within a client.



"That is, a host that de-
   attaches from a network and subsequently re-attaches to a (possibly
   different) network should regenerate all of its temporary addresses."

RFC4941 only very briefly deals with this scenario. I agree with doing
it, however I think there is a risk of a DoS on the link or similar if
an interface starts failing, and disconnects/re-connects rapidly. I
think there should be some prevention against this e.g., multiple
disconnects/connects within 3 seconds indicates the interface is
failing and regeneration of temporary addresses should not take place
if this occurs.


"Besides, a node that generates an IPv6 address by embedding
   a link-layer address in the IPv6 address will, when configuring
   addresses for different prefixes, result in the same IID being used
   for such prefixes, thus allowing the corresponding traffic to be
   correlated."

An example of significance might be correlation between internal ULA
address traffic and external GUA address traffic if the IIDs are
shared and the foreign entity has managed to capture both. ULA would
tend to have greater privacy expectations or semantics because they're
not global addresses and not intended to be exposed to global parties.



"The resulting Interface Identifier SHOULD be compared against the
       reserved IPv6 Interface Identifiers [RFC5453] [IANA-RESERVED-IID]
       and against those Interface Identifiers already employed in an
       address of the same network interface and the same network
       prefix."

Also against addresses on different network interfaces attached to the
same network. Perhaps this IID comparison should really be taking
place across all addresses from within and across prefixes independent
of interfaces?  Actually, I think that is really saying that there is
no IID duplication across any of the addresses used by the host.


 "The algorithm in [RFC7217] can be augmented for the generation of
   temporary addresses.  The benefit of this would be that a node could
   employ a single algorithm for generating stable and temporary
   addresses, by employing appropriate parameters.

   Nodes would employ the following algorithm for generating the
   temporary IID:"

A brief mention of what is changed verses RFC7217 before presenting
the algorithm would be useful. It seems MAC_Address and Time are the
differences?

Regarding using the MAC_Address,

"Employing the MAC address in this expression (in replacement of the
Net_Iface parameter of the expression in RFC7217) means that the
re-generation of a randomized MAC address will result in a different
temporary address."

it isn't clear to me whether randomised MAC addresses is a requirement
or a recommendation when using this algorithm. With it replacing
Net_Iface, it seems to be leaning towards a requirement.


nits:

-  " a
   node may want to use only Temporary address (e.g., a temporary
   address)."

This text seemed a little confusing because it seemed the temporary
address text was being repeated. I realised that the capital T
"Temporary" was a special word, perhaps the parenthesis text is
unnecessary here. e.g.

" a node may want to use only Temporary address ."


- In the terminology section, it might be worth quoting a few of the
repeatedly used terms from RFC7721 for the convenience of the reader.
"Temporary address" would be an example.


- Should "stable address" be capitalised throughout as it too is a
term defined in RFC7721?

- With both "Temporary address" and "temporary address" terms both
being used, it seems like there is some sort of difference between
what these terms mean. It's not really obvious to me what that
difference is. It would seem to me that "Temporary address" (and
"Stable address") should always be being used, as their definitions in
RFC7721 would seem to apply universally.


- "3.3. Requirements for Temporary IPv6 Addresses

   The requirements for temporary IPv6 addresses are as follows:"

-"t","+"T"

"The requirements for Temporary IPv6 addresses are as follows:"


Regards,
Mark.