Re: [dhcwg] Eric Rescorla's No Objection on draft-ietf-dhc-rfc3315bis-10: (with COMMENT)

"Bernie Volz (volz)" <volz@cisco.com> Tue, 23 January 2018 02:53 UTC

Return-Path: <volz@cisco.com>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 75779127011; Mon, 22 Jan 2018 18:53:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.529
X-Spam-Level:
X-Spam-Status: No, score=-14.529 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 PVsJexsRJbJG; Mon, 22 Jan 2018 18:53:05 -0800 (PST)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8DEDD126C0F; Mon, 22 Jan 2018 18:53:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=20387; q=dns/txt; s=iport; t=1516675985; x=1517885585; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=K6pHC8Lu7nPmXlYkWU+o5DlNGc6QxKGrwTEwAWezvSg=; b=dt4Bz3nkpLozKZwxIYTrln0ckmyvsB0kHwHGj+B52h7ANITIrlmhtYfO e/M4L+O1yd2X2ROJ4JLvAcedF9ectj+478AB0ScLx3X/5iy3GMlo5rnID w2Yvdx3lOkoHrkySLleDCf2i+eesTQ1FZuYUcFqOFvYnP9rDiOUUvtSjH c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CcAgDBomZa/5xdJa1UChkBAQEBAQEBAQEBAQEHAQEBAQGDETFmdCeDXZkKgVsniQ+IW4VUghcKI4UYAhqEVlYWAQEBAQEBAQEBayiFIwEBAQMBI1YFCwIBCA4KHQoDAgICHxEUEQIEDgWJT0wDDQgQtFKCJ4dKDYJoAQEBAQEBAQEBAQEBAQEBAQEBAQEBGAWERQSCFYM/KQyCeYJrRAICARiBKxUtgwAxgjQFiluHWJENPQKIEoN8hEiFBYIbijaHTo1SRYkHAhEZAYE7ASYIKoFQcBU9KgGBf4JTAQEbGYFOeAGKUwEBAQ
X-IronPort-AV: E=Sophos;i="5.46,398,1511827200"; d="scan'208,217";a="344712051"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by rcdn-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Jan 2018 02:53:04 +0000
Received: from XCH-ALN-002.cisco.com (xch-aln-002.cisco.com [173.36.7.12]) by rcdn-core-5.cisco.com (8.14.5/8.14.5) with ESMTP id w0N2r4hn015526 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 23 Jan 2018 02:53:04 GMT
Received: from xch-aln-003.cisco.com (173.36.7.13) by XCH-ALN-002.cisco.com (173.36.7.12) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Mon, 22 Jan 2018 20:53:03 -0600
Received: from xch-aln-003.cisco.com ([173.36.7.13]) by XCH-ALN-003.cisco.com ([173.36.7.13]) with mapi id 15.00.1320.000; Mon, 22 Jan 2018 20:53:03 -0600
From: "Bernie Volz (volz)" <volz@cisco.com>
To: Eric Rescorla <ekr@rtfm.com>
CC: Tomek Mrugalski <tomasz.mrugalski@gmail.com>, The IESG <iesg@ietf.org>, "draft-ietf-dhc-rfc3315bis@ietf.org" <draft-ietf-dhc-rfc3315bis@ietf.org>, Ralph Droms <rdroms.ietf@gmail.com>, "dhc-chairs@ietf.org" <dhc-chairs@ietf.org>, "dhcwg@ietf.org" <dhcwg@ietf.org>
Thread-Topic: Eric Rescorla's No Objection on draft-ietf-dhc-rfc3315bis-10: (with COMMENT)
Thread-Index: AQHTku2/O+JZUnNzuk+Gf9F5z7OW8KOA/OUAgAADG4CAAAvRAIAAEaMA//+nQ+c=
Date: Tue, 23 Jan 2018 02:53:03 +0000
Message-ID: <CCF96896-3AF5-4926-A50D-E4D9B4FE4E10@cisco.com>
References: <151656279222.3388.17356187412394517479.idtracker@ietfa.amsl.com> <85bba58c-e7ef-ce42-50a5-3ba83f2abba0@gmail.com> <CABcZeBNN1GFBZHo2kbvNKwbh1ehHaCcu4yOjz7cuEHcNGkxcxg@mail.gmail.com> <39b6f692-ca0f-fd8c-f6af-3410f0e8387e@gmail.com>, <CABcZeBOnYjOtitSpu9KEiDFb5AkV4iHe2da14X5N__qvdFg+sw@mail.gmail.com>
In-Reply-To: <CABcZeBOnYjOtitSpu9KEiDFb5AkV4iHe2da14X5N__qvdFg+sw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
Content-Type: multipart/alternative; boundary="_000_CCF968963AF54926A50DE4D9B4FE4E10ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/jg2ZsxDo8HumpfwXnzFfvrDe9os>
Subject: Re: [dhcwg] Eric Rescorla's No Objection on draft-ietf-dhc-rfc3315bis-10: (with COMMENT)
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dhcwg/>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Jan 2018 02:53:08 -0000

Hi:

I don’t see need to change DUID practices that have been used for a long number of years (as originally specified in 3315). There are a lot of things one could do, but what’s the benefit? And, if you’d really like the WG to develop a new format, that doesn’t seem something to do in a bis document?

Regarding Replay Protection, as this is for Reconfigure (server to client), there should only be a need for a single Reconfigure per client. Even if multiple are sent by server for a single client, that only causes some to fail replay checks if out of order delivery or processing and means maybe some are dropped, which isn’t an issue (especially as now Reconfigure no longer communicates what may need reconfiguration).

- Bernie (from iPad)

On Jan 22, 2018, at 9:11 PM, Eric Rescorla <ekr@rtfm.com<mailto:ekr@rtfm.com>> wrote:



On Mon, Jan 22, 2018 at 5:07 PM, Tomek Mrugalski <tomasz.mrugalski@gmail.com<mailto:tomasz.mrugalski@gmail.com>> wrote:
On 01/23/18 01:25, Eric Rescorla wrote:
> On Mon, Jan 22, 2018 at 4:14 PM, Tomek Mrugalski
> <tomasz.mrugalski@gmail.com<mailto:tomasz.mrugalski@gmail.com> <mailto:tomasz.mrugalski@gmail.com<mailto:tomasz.mrugalski@gmail.com>>> wrote:
>
>     On 01/21/18 20:26, Eric Rescorla wrote:
>     > Eric Rescorla has entered the following ballot position for
>     > draft-ietf-dhc-rfc3315bis-10: No Objection
>     Hi Eric,
>
>     Thank you for your review and your favourable ballot. See my answers
>     below.
>
>     > ----------------------------------------------------------------------
>     > COMMENT:
>     > ----------------------------------------------------------------------
>     >
>     > Document: draft-ietf-dhc-rfc3315bis-10.txt
>     >

>     Anyway, this part of the spec hasn't changed in bis. It would be
>     extremely difficult to make any changes as there are millions of devices
>     that already use those DUID types.
> Well, we could encourage people to move to a UUID type for sending, no?
In many environments there is no standard way of getting the UUID. As an
implementor of DHCPv6 client I have no idea how to check whether the
hardware provides access to its UUID. Also, sysadmins like usage of LLT
and LL, because it has MAC address in it. This is something they know
and can read from the box or from the device itself. It's reasonable to
ask a user "what's your mac address?" but it's much more tricky to ask
"what's your uuid?" and expect to get a coherent answer.

There may be privacy concerns, too. Once your phone discloses its UUID,
it's much easier to track it and changing MAC address wouldn't help you
at all. Devices using anonymity profile (RFC7844) must use LL type.

I'm not saying that UUID is a bad type of DUID, just pointing out that
it has its own issues. But does it matter that much? DUID is just a blob
that must be unique and the server uses it to identify a client. If the
DUID is of certain type, additional information about the client can be
printed and that's about it.

I think you're misunderstanding me. What I am proposing is that you take the
DUID input values, hash them, and use them as input to a name-based
UUID: https://tools.ietf.org/rfcmarkup?doc=4122#section-4.3


>     > The description of how to actually do replay detection seems pretty
>     > thin. Do you think more detail would be helpful here.
>     It would. How about this text added to the end of Section 20.3:
>
>     "The client that receives a message with RDM field set to 0x00 MUST
>     compare its replay detection field with the previous value sent by
>     the same server. If this is the first time a client sees Authentication
>     option sent by the server, it MUST record the replay detection value,
>     but otherwise skip the replay detection check.
>
>     The servers that support reconfigure mechanism MUST ensure the replay
>     detection value is retained after restarts. Failing to do that will
>     cause the clients to refuse reconfigure messages sent by the server,
>     effectively rendering the reconfigure mechanism useless."
> This seems like it scales badly as you need to keep an infinite replay
> list.
Not at all, unless your client interacted with infinite number of
servers and intends to visit them again. The server stores a single 64
bit integer. Every time a packet is sent, that value is incremented. The
client stores one value for every server it wants to continue
communicating with. For great majority of cases this would be one
server. For mobile clients that visited multiple locations and have the
capability to retain the information to possibly resume operation in
previous locations that would be a handful of servers at most.

It seems like you're assuming that the client can only have one outstanding
transaction with the server. Is that correct?

-Ekr



> What happens if you falsely declare something a replay?
If you falsely declare something a replay (why would you do that?), the
reconfigure packet is dropped by the client. The server will retransmit
its reconfigure message with a higher value which hopefully be accepted
by the client. If you somehow sabotage the client or trick it to believe
that a very high value of replay detection was sent previously, it will
continue to reject reconfigure messages. So you effectively disabled the
reconfigure mechanism on that client, but it continues to operate and
can still renew its configure, just after t1 timer, not immediately.

Note that the replay detection is intended to be used with RKAP. So in
principle you could perform an attack by sending a packet with high
replay detection to confuse the client, but to do that you'd have to
also put the correct HMAC-MD5 digest. Otherwise the client will discard
your packet. If you have that ability, then you can do worse things than
confuse client's notion of a replay value.

There is a text about possibility of exploiting the reconfigure key
mechanism to attack a client. Do you think we should extend it to also
mention the replay attack?

Tomek