[dhcwg] My comments on draft-yiu-dhc-dhcpv6-sa-00
Tomek Mrugalski <tomasz.mrugalski@gmail.com> Tue, 24 March 2015 21:02 UTC
Return-Path: <tomasz.mrugalski@gmail.com>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E93C51A908D for <dhcwg@ietfa.amsl.com>; Tue, 24 Mar 2015 14:02:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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, 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 VSUB1G3e7HVi for <dhcwg@ietfa.amsl.com>; Tue, 24 Mar 2015 14:02:04 -0700 (PDT)
Received: from mail-wi0-x235.google.com (mail-wi0-x235.google.com [IPv6:2a00:1450:400c:c05::235]) (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 F01051A1A37 for <dhcwg@ietf.org>; Tue, 24 Mar 2015 14:01:40 -0700 (PDT)
Received: by wibgn9 with SMTP id gn9so9643498wib.1 for <dhcwg@ietf.org>; Tue, 24 Mar 2015 14:01:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=5IzbH/ZVBEdgBJ6L5Jy993wvlxiOGRIwLHApEDXKGww=; b=e6fYE3hXzssA/B+fgT7rS2BPfD+6GOlCKCsN+YYrR2WqlttzZP/ZJO+CMhOq2pSvct l8HoXhFQIvWq/TuEkYJtzlim2QaV+C0wcuODlVpAAy3mWN1qga5Bt5hhCFHbt2EyAoiZ vsuiVAjXjPjOdvDDccrdXDb22xYSxT0Eb4pitCVZrnDH/669ANQYC7f4vMqi0ywLoZ1r 6yHZBUccrHIwS4KI+SpGyiZ4dX84bqpaqKcJ4pZoeqSaHdOguIyqguZBpfGAbyKZybOW yhMbvxxHZcIv8+coiWnYvSWMhaKW7dGjAULct1c1irAzFwrTZnAp+ciwGEcQCJ3aKcTU Gmsg==
X-Received: by 10.180.219.102 with SMTP id pn6mr31133823wic.50.1427230899722; Tue, 24 Mar 2015 14:01:39 -0700 (PDT)
Received: from dhcp-b49b.meeting.ietf.org ([2001:67c:370:176:ed11:c631:184c:3294]) by mx.google.com with ESMTPSA id i5sm1211709wiz.0.2015.03.24.14.01.37 for <dhcwg@ietf.org> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Mar 2015 14:01:38 -0700 (PDT)
Message-ID: <5511D0B0.80109@gmail.com>
Date: Tue, 24 Mar 2015 16:01:36 -0500
From: Tomek Mrugalski <tomasz.mrugalski@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "dhcwg@ietf.org" <dhcwg@ietf.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/dhcwg/rDJdDR3fsiPU0Xe1InxICKnHL5Y>
Subject: [dhcwg] My comments on draft-yiu-dhc-dhcpv6-sa-00
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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, 24 Mar 2015 21:02:06 -0000
I read draft-yiu-dhc-dhcpv6-sa-00 and I like the concept. I'm afraid I have a number of concerns regarding the details, though. As defined, in my opinion the mechanism will not work in the typical case (relays). As currently defined, it wouldn't provide any significant protection over classic DHCPv6. Having said that, I got the impression that it's an early version with significant (e.g. encryption) pieces still missing. I encourage authors to continue improving it. Once the draft matures a bit, I'll possibly revise my opinion. My concerns: 1. This mechanism seeks to turn DHCPv6 into unicast service. DHCPv6 was intended as multicast service on purpose and many mechanisms require multicast to function properly. Rebind, Confirm or failover are 3 examples. 2. Unicast will not work with relays. Booting client typically has only link-local address and is unable to perform off-link communication. That will break two things you intend to use: contacting PKI and contacting the server over unicast. 3. Even when the client would be able to send unicast solicit, the server would drop it. Bernie pointed out to the specific text where it is mandated. See second paragraph in Section 15 of RFC3315: A server MUST discard any Solicit, Confirm, Rebind or Information-request messages it receives with a unicast destination address. 4. This mechanism assumes that the server's identity is verified using its certificate. The text does not specify whether any following transmissions (solicit, request, renew, ...) are protected or not. They must be protected, or the whole solution is useless. 5. This mechanism turns the DHCPv6 server into 6-messages exchange (or 4-messages with rapid-commit). It a non-trivial overhead. It may be acceptable, but there should be a significant benefit for that price. Detailed comments about the text: The text in section 4 says that the client validates received server certificate through PKI. There's a fundamental problem with this. As mentioned before, in a typical case where the client just booted, it only contains link-local address and is simply unable to reach PKI infrastructure yet. Does the Authenticate-reply contain server-id option? So far, every defined message that reached a client always contains server-id option. I presume that many client implementations may have a check that discard received messages that do not have server-id. How is the unicast option used? In a typical deployment there are relay agents and the client is not on the same link as the server. The client also initially doesn't have off-link communication capability (link-local address only), so it can't reach the server that is off-link. Therefore the Solicit and first Request are always sent over relays. After the client gets its global address (or other address with a scope larger than link-local), it then can use unicast to transmit subsequent messages, e.g. renew, release or additional requests. How does this mechanism is supposed to work? My understanding of the text is that the certificates are included in Authenticate/ Authenticate-reply only. If you meant to include them in other messages, can you point to specific text that codifies that? I seem to have missed it. Section 5 specifies that the client sends Authenticate messages to multicast address. Please be specific which multicast address you have in mind. I presume you have All_DHCP_Relay_Agents_and_Servers in mind, but this should be specified explicitly. Section 6.1 mentions that the client should implement a timer. That's not how timers are handled in DHCPv6. See Section 14 of RFC3315 for definitions and section 17.1.2 for an example of how those timers are used. Section 7.1 claims "If the client could unicast message to the server, the privacy could be improved effectively.". Can you elaborate on that? In particular, is there really any difference in complexity of eavesdropping unicast and multicast traffic? There's also the question whether Solicit, Advertise, Request, Reply and following are protected or not. If not, please consider the following: After that verification is done, the client will blindly trust everything that seems to be coming from the server's address. An attacker can disable the legitimate server and start an impostor and it would not be detected. The same is true for a variety of redirection attacks. And race condition attacks (attacker can wait for the client to send a message and then rapidly send response in hope it will reach the client before the legitimate server's actual response). How would such attacks be detected? Finally, I think you don't need new message types. Instead of using Authenticate / Authenticate-reply, you could use inf-request/reply exchange. You can do that even in an existing implementations that support custom option definitions. Note that client-id is usually included in inf-request, but it's not mandatory. It's possible and perfectly conformant to send anonymous inf-request. It is unclear whether you want to define encryption in this draft or seek to define it in the future as a follow-up draft. In any case, you should add some clarifying text about it. Hope that helps. I'm sorry I was unable to provide more positive feedback. Tomek
- [dhcwg] My comments on draft-yiu-dhc-dhcpv6-sa-00 Tomek Mrugalski
- Re: [dhcwg] My comments on draft-yiu-dhc-dhcpv6-s… Linhui Sun