Re: [Hipsec] A review of draft-ietf-hip-dex-02.txt

René Hummen <hummen.committees@gmail.com> Mon, 16 May 2016 15:50 UTC

Return-Path: <hummen.rwth@gmail.com>
X-Original-To: hipsec@ietfa.amsl.com
Delivered-To: hipsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C0516128B44 for <hipsec@ietfa.amsl.com>; Mon, 16 May 2016 08:50:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, HTML_MESSAGE=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 tlSZM1XOcnlE for <hipsec@ietfa.amsl.com>; Mon, 16 May 2016 08:50:32 -0700 (PDT)
Received: from mail-yw0-x235.google.com (mail-yw0-x235.google.com [IPv6:2607:f8b0:4002: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 1F0BC12B074 for <hipsec@ietf.org>; Mon, 16 May 2016 08:50:32 -0700 (PDT)
Received: by mail-yw0-x235.google.com with SMTP id g133so165645579ywb.2 for <hipsec@ietf.org>; Mon, 16 May 2016 08:50:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc; bh=DOlJngVcgk5ABszd0KzFbJnTF+xw3B9kSp6g2cPbWuc=; b=qLGPPAZBYRBg/X1DzEoRXyNBVGYe/g3o82gJV+7VikmN6QGuXa3GDmhrtNUuOBV824 J7PDtG3+qf7qfRC/j1dXXh+pxIospHs18Vf7A3LnRHVDNteubSDHBm5xTuwHWkZMRZxh IXYkAp2bF0jNNP6i4U1JOFIbw2sZdBOxRHZ4g8aHyxUhyHnyKqwfFiCJcmEfsxYsiHFl SxZlsPBweW5Fu9L3V1rzf1R/zkghqwzFvyym4g744U8eVLC+PiwLBQZV7vRegFFbkEqw UJ/w2PLDrWdzDOAl8sWfBfHIxb+LIL7A+Zy2K8ImEYvITx56y9NY82EL57Ej5JpZ4k6Z Ah1w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc; bh=DOlJngVcgk5ABszd0KzFbJnTF+xw3B9kSp6g2cPbWuc=; b=eBCtCQ46KnHPs3vtVT5/GZqfWHVLVb1PR7N77FuT6Gmh6rLVuMgveHDAtoCaMNbHmQ X0sBdIOCJ0N4V9WqxhbmnFiCKE/mwGZKH0uFr3eRmHFhbwKNEZcFiGbZgrLU074ym+fs Yt4rCQmCS94qN5JbQf9gi9H7Ta+dTtKcuvTV4RvtxlGBuzJ9bJNirxDbRWc95eJQcx0E TAPlNk61Xt/3CWmB8zPpLqBST28xO61eOYcrDb8drBo+G1++nmqr20lwWjH+MWYmBuJK sRvxy7gNErEmueB7MmENE/J0KEHunzFan40OYbi2NKJQDtMUjeO+QvsuQI0z4dzc4xmP +APg==
X-Gm-Message-State: AOPr4FX/R1UozffXtm4W8/P4gazhxOh8WMlcmvYErY4y7zEtB+kwi69L5WiL4z4sKgs9K3S5fPeYVVwnFdhHgA==
MIME-Version: 1.0
X-Received: by 10.13.198.197 with SMTP id i188mr13959236ywd.207.1463413831423; Mon, 16 May 2016 08:50:31 -0700 (PDT)
Sender: hummen.rwth@gmail.com
Received: by 10.129.104.135 with HTTP; Mon, 16 May 2016 08:50:31 -0700 (PDT)
In-Reply-To: <56F98E90.10601@ericsson.com>
References: <20160321203627.12199.62928.idtracker@ietfa.amsl.com> <56F98E90.10601@ericsson.com>
Date: Mon, 16 May 2016 17:50:31 +0200
X-Google-Sender-Auth: CtktuQ5_XQMugaGX33iVgppNPnA
Message-ID: <CAEhFMchqnp4njqabjo3KOo=Zsmb4dtw7RBTsFgbtdP06wfKRxw@mail.gmail.com>
From: René Hummen <hummen.committees@gmail.com>
To: Miika Komu <miika.komu@ericsson.com>
Content-Type: multipart/alternative; boundary="001a114d6f7494ea1d0532f7954d"
Archived-At: <http://mailarchive.ietf.org/arch/msg/hipsec/RPl-dMRMoYDENMv5vunUPGBdpBM>
Cc: hipsec@ietf.org
Subject: Re: [Hipsec] A review of draft-ietf-hip-dex-02.txt
X-BeenThere: hipsec@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "This is the official IETF Mailing List for the HIP Working Group." <hipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hipsec>, <mailto:hipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hipsec/>
List-Post: <mailto:hipsec@ietf.org>
List-Help: <mailto:hipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hipsec>, <mailto:hipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 May 2016 15:57:46 -0000

Hi Miika, all,

thanks for reviewing the draft!

In this email I address the first part of your comments. I will send
another email concerning the remaining comments by the end of the month
latest.

On Mon, Mar 28, 2016 at 10:05 PM, Miika Komu <miika.komu@ericsson.com>
wrote:

> Hi,
>
> > 1.1.  The HIP Diet EXchange (DEX)
>
> > Data packets start to flow after the 4th packet.  The 3rd and 4th HIP
> > packets may carry data payload in the future.  However, the details
> > of this may be defined later.
>
> Similarly as in RFC7401, data packets start to flow...
>
> (I guess you could also mention RFC6078 as another further work item)
>

Changed. I didn't include RFC6078 as it appears to rely on signatures.


>
> > An existing HIP association can be updated with the update mechanism
> > defined in [RFC7401].  Likewise, the association can be torn down
> > with the defined closing mechanism for HIPv2 if it is no longer
> > needed.  HIP DEX thereby omits the HIP_SIGNATURE parameters of the
> > original HIPv2 specification.
>
> Why "thereby"? I don't see the connection.
>

Changed to "in doing so"


>
> > HIP DEX does not have the option to encrypt the Host Identity of the
> > Initiator in the 3rd packet.  The Responder's Host Identity also is
> > not protected.  Thus, contrary to HIPv2, there is no attempt at
> > anonymity.
>
> The anonymous bit still exists, so I suggest changing the wording:
>
> there is no attempt at anonymity -> such Responder anonymity is not
> preserved in HIP DEX.
>
>
The statement refers to both Initiator and Responder. I changed the
sentence as follows:
"Thus, contrary to HIPv2, HIP DEX does not provide for end-point anonymity
and any signaling that indicates such anonymity should be ignored."


> > 2.1.  Requirements Terminology
>
> In section 6.3, you are introduce also -> notation, which was
> not explained.
>

I didn't think an explanation of this formal notation was necessary as it
is also not further described, e.g., in RFC5869. What would you like me to
write here?


>
> > 2.3.  Definitions
>
> I suggest to add also the definitions of both MAC and CMAC because they
> are used throughout the document. They are also used in this section.
>
>
Thanks! We never really said what we meant by CMAC. I now added the
following definition:
"   CMAC:  The Cipher-based Message Authentication Code with the 128-bit
      Advanced Encryption Standard (AES) defined in RFC 4493 [RFC4493]."

I addressed the comment about the MAC by noting the abbreviation on first
use: "Still, note that CMAC is a message authentication code (MAC) ..."


> > 3.1.  Host Identity Tag (HIT)
>
> Just thinking aloud... should a DEX HIT have a different context ID?
> Probably not.
>

We decided against this as HIP DEX is a variant of HIPv2 and as such should
live in the same context.


>
> > 4.1.  Creating a HIP Association
>
> > The HIP Diet EXchange serves to manage the establishment of state
> > between an Initiator and a Responder.  The first packet, I1,
> > initiates the exchange, and the last three packets, R1, I2, and R2,
> > constitute an authenticated Diffie-Hellman [DH76] key exchange for
> > the Master Key SA generation.  This Master Key SA is used by the
> > Initiator and the Responder to wrap secret keying material in the I2
> > and R2 packets.  Based on the exchanged keying material, the peers
> > then derive a Pair-wise Key SA if cryptographic keys are needed,
> > e.g., for ESP-based protection of user data.
>
> (Suggest replacing "user data" with e.g. "data plane" in the entire
> document since you're talking about machines (sensors) that may not
> have a user)
>

If you don't object, I would prefer to keep it the way it is right now in
order stay in line with HIPv2.


>
> > In the I2 packet, the Initiator MUST display the solution to the
> > received puzzle.  Without a correct solution, the I2 packet is
> > discarded.  The I2 also contains a key wrap parameter that carries a
> > secret keying material of the Initiator.  This keying material is
> > only half the final session key.  The packet is authenticated by the
> > sender (Initiator) via a MAC.
>
> ...half *of* the...
>

Fixed.


>
> > The R2 packet acknowledges the receipt of the I2 packet and completes
> > the handshake.  The R2 contains a key wrap parameter that carries the
> > rest of the keying material of the Responder.  The packet is
> > authenticated by the sender (Responder) via a MAC.
>
> key wrap parameter -> parameter with encrypted contents
>

"Parameter with encrypted contents" is more generic than what key wrap
parameter (encrypted parameter with secret keying material) indicates. I
kept it as is.


>
> > 4.1.1.  HIP Puzzle Mechanism
> >
> > The puzzle mechanism enables a Responder to immediately reject an I2
> > packet if it does not contain a valid puzzle solution.  To verify the
> > puzzle solution, the Responder only has to compute a single CMAC
> > operation.  After a successful puzzle verification, the Responder can
> > securely create session-specific state and perform CPU-intensive
> > operations such as a Diffie-Hellman key generation.  By varying the
> > difficulty of the puzzle, the Responder can frustrate CPU or memory
> > targeted DoS attacks.
>
> ...can frustrate *an Initiator*...
>

I did not change the text as it is a straight copy/paste from RFC7401.
Moreover, "Initiator" would indicate to me that the adversary must be a
protocol-compliant entity. So, I would prefer keep this more general
statement here.


>
> > Conceptually, the puzzle mechanism in HIP DEX is the same as in
> > HIPv2.  Hence, this document refers to Sections 4.1.1 and 4.1.2 in
> > [RFC7401] for more detailed information about the employed mechanism.
> > Notably, the only difference between the puzzle mechanism in HIP DEX
> > and HIPv2 is that HIP DEX uses CMAC instead of a hash function for
> > solving and verifying a puzzle.  The implications of this change on
> > the puzzle implementation are discussed in Section 6.1.
>
> The other difference is mentioned in section 6.1:
>
> "The only exceptions are that HIP DEX does not use pre-computation of
> R1 packets and that RHASH is set to CMAC.  As a result, the pre-
> computation step in in Section 6.3 of [RFC7401] is skipped in HIP DEX."
>

True. I added the pre-computation bit here as well.


>
> > 4.1.2.1.  HIP DEX Retransmission Mechanism
>
> > The potentially high processing time of an I2 packet at a (resource-
> > constrained) Responder may cause premature retransmissions if the
> > time required for I2 transmission and processing exceeds the RTT-
> > based retransmission timeout.  Thus, the Initiator should also take
> > the processing time of the I2 packet at the Responder into account
> > for retransmission purposes.  To this end, the Responder MAY notify
> > the Initiator about the anticipated delay once the puzzle solution
> > was successfully verified and if the remaining I2 packet processing
> > incurs a high processing delay.  The Responder MAY therefore send a
> > NOTIFY packet (see Section 5.3.6. in [RFC7401]) to the Initiator
> > before the Responder commences the ECDH operation.  The NOTIFY packet
> > serves as an acknowledgement for the I2 packet and consists of a
> > NOTIFICATION parameter with Notify Message Type I2_ACKNOWLEDGEMENT
> > (see Section 5.2.19. in [RFC7401]).  The NOTIFICATION parameter
> > contains the anticipated remaining processing time for the I2 packet
> > in milliseconds as two-octet Notification Data.  This processing time
> > can, e.g., be estimated by measuring the computation time of the ECDH
> > key derivation operation at Responder boot-up.  After the I2
> > processing has finished, the Responder sends the regular R2 packet.
>
> ( boot-up -> start-up procedures (it doesn't have to be a boot) )
>

Changed.


>
> > 4.1.2.3.  Simplified HIP State Diagram
>
> > The following diagram shows the major state transitions.  Transitions
> > based on received packets implicitly assume that the packets are
> > successfully authenticated or processed.
>
> Is the new NOTIFY illustrated also in the figure?
>

Fixed.