Re: [ippm] draft-ietf-ippm-ipsec-01 review

John Mattsson <john.mattsson@ericsson.com> Thu, 07 November 2013 18:59 UTC

Return-Path: <john.mattsson@ericsson.com>
X-Original-To: ippm@ietfa.amsl.com
Delivered-To: ippm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E05F11E8254 for <ippm@ietfa.amsl.com>; Thu, 7 Nov 2013 10:59:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.892
X-Spam-Level:
X-Spam-Status: No, score=-3.892 tagged_above=-999 required=5 tests=[AWL=-1.894, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lr8i78qrdO-g for <ippm@ietfa.amsl.com>; Thu, 7 Nov 2013 10:59:04 -0800 (PST)
Received: from sesbmg20.ericsson.net (sesbmg20.ericsson.net [193.180.251.56]) by ietfa.amsl.com (Postfix) with ESMTP id 63F6511E8276 for <ippm@ietf.org>; Thu, 7 Nov 2013 10:57:43 -0800 (PST)
X-AuditID: c1b4fb38-b7f2c8e000006d25-e8-527be2a42d38
Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.253.124]) by sesbmg20.ericsson.net (Symantec Mail Security) with SMTP id 09.AE.27941.4A2EB725; Thu, 7 Nov 2013 19:57:40 +0100 (CET)
Received: from ESESSMB307.ericsson.se ([169.254.7.88]) by ESESSHC005.ericsson.se ([153.88.183.33]) with mapi id 14.02.0328.009; Thu, 7 Nov 2013 19:57:40 +0100
From: John Mattsson <john.mattsson@ericsson.com>
To: "Zhanglijia (A" <emma.zhanglijia@huawei.com>, "ippm@ietf.org" <ippm@ietf.org>
Thread-Topic: draft-ietf-ippm-ipsec-01 review
Thread-Index: Ac7WzwppfxHy7g5dSjWMtSxLJHcnNgAAhkkAAAC1fXAAikabAAC6byUwAAECdtA=
Date: Thu, 07 Nov 2013 18:57:39 +0000
Message-ID: <CAAB765F71FCD344B6BABC031C19EC490F4344@ESESSMB307.ericsson.se>
References: <CE92CE3FCF47934CBAE2CCECE119606C6338C8CD@nkgeml507-mbs.china.huawei.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.150]
Content-Type: multipart/alternative; boundary="_000_CAAB765F71FCD344B6BABC031C19EC490F4344ESESSMB307ericsso_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHLMWRmVeSWpSXmKPExsUyM+Jvje6SR9VBBgf/K1hcffWG2aLnwTtm ByaPliNvWT2WLPnJFMAUxWWTkpqTWZZapG+XwJVx/mwrc0HTIcaKTdf7WBoYP+xh7GLk5JAQ MJFo+tXCDGGLSVy4t56ti5GLQ0jgCKPE+U1HWCGcRYwSG/ecZwWpYhMwkJi7p4ENxBYRCJbY N20aWLewgI7Em45p7BBxXYnrSw4D1XMA2X4Shz+kgIRZBFQkbnzfxwJi8wp4S/R2bAcbKSQQ JnHr+RawMYxAR3w/tYYJxGYWEJe49WQ+E8RxAhJL9pyHOlRU4uXjf6wQtpLEiu2XGCHq8yVe 7bjICjFfUOLkzCcsExiFZyEZNQtJ2SwkZbOALmUW0JRYv0sfokRRYkr3Q3YIW0Oidc5cdmTx BYzsqxg5ilOLk3LTjQw2MQLj5OCW3xY7GC//tTnEKM3BoiTO+/Gtc5CQQHpiSWp2ampBalF8 UWlOavEhRiYOTqkGxuYPnq9Xykqx/JPL899zVXfv1uZJS4QkKpZOFPhbMitw7Wvnd/ZPl953 KtQ5Ha4i/aXxVdyza0+d+D6cdXinYsI00eGKe4MyY7jF1jt1S7RdXgWYSlybc91ScOJrXf+8 IxzCq+fnNQvdPusiZqCbPa39k8vFE1cnZ644k2jxPzMiWudzmn65pxJLcUaioRZzUXEiAJGm jM1hAgAA
Subject: Re: [ippm] draft-ietf-ippm-ipsec-01 review
X-BeenThere: ippm@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF IP Performance Metrics Working Group <ippm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ippm>, <mailto:ippm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ippm>
List-Post: <mailto:ippm@ietf.org>
List-Help: <mailto:ippm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ippm>, <mailto:ippm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Nov 2013 18:59:29 -0000

Hi Emma,

Thanks for your reply! I have comments on some your comments, I also have some suggested text to add to the draft:

(resending without the original message as my previous attempt hit the 50 kB limit)

/John



In general I think the abstract and Introduction could be clearer in what the problems and use cases are and what the document tries to achieve. E.g. do the document want to measure the performance of IPsec or use IPsec for protection, or both. What are the problems, if any, of just sending O/TWAMP over the existing IPsec tunnel?

Emma: The draft currently aims to capitalize on IPsec for deriving keys for O/TWAMP. We will further edit the introductory text to address this point.

John: Based on the comment by Alfred Morton, I think you should maybe reconsider that. If you only want to use *WAMP between the IPsec endpoints, I too see little benefit in deriving keys. If you want to use *WAMP outside of the IPsec tunnel, it makes sense to derive keys.



I suggest adding:

"If *WAMP is used for measurements between the IPsec endpoints, *WAMP can be viewed as typical user traffic inside the existing tunnel. As IPsec can be assumed to provide the protection needed for traffic between the IPsec endpoints, unauthenticated *WAMP can be used."


While extracting keying material from IPsec would be nice, to my knowledge there is no standardized (or de facto standard) API to extract SKEYSEED, SK_d, KEYMAT or even SPI from an IPsec implementation. This was even one of the reasons IPsec was not chosen as the default security protocol for O/TWAMP. You could of course do it with a new proprietary implementation, but that kind of beats some of the purpose from the Abstract "gaining popularity in several deployment scenarios".

Work on an IPsec API started a couple a years ago http://tools.ietf.org/html/draft-ietf-btns-ipsec-apireq-00
but died, and even that work did prohibit extraction of keying material and discouraged the extraction of SPI as the SPI might change.
Has the API proposals been discussed in the ipsecme working group?
Emma: We received this comment at the last meeting (I think it was Yoav who commented on that). We believe that this is in fact implementation-dependent. For example, for those with existing IPsec and O/TWAMP implementations this should not be a blocking point. If there was a “standard” API, this protocol could benefit. But what we’re interested primarily here is O/TWAMP deployment at large scale and for networks that have already deployed IPsec.
John: I do not really understand how an nonexistent API would not be a problem for "those with existing IPsec and O/TWAMP implementations" and "networks that have already deployed IPsec". I think the draft should at least make clear that there is currently no standardized IPsec APIs.

I suggest adding:
"There is currently no standardized IPsec API to retrieve keys, SPI, protocol, algorithms, or even find out if IPsec is used. As IPsec may be terminated in a separate node, such an API may not be possible to implement. If IPsec is terminated in the same node as *WAMP an implementation-dependent API may be provided."



I think the approach in Section 4 with extracting keying material would only work with a proprietary IPsec implementation and modifications (adding new fields) to O/TWAMP.



Have approaches that do not require extracting keying information been considered?

Emma: I think we could discuss this in Vancouver. In the meantime, do you have text to suggest?
John: I can provide some more detailed text after the meeting, but two approaches  could be:

-If the Child SA is encrypted. A *WAMP shared secret could simply be transferred in the KeyID field (similar to how *WAMP session keys are transferred):

KeyID: "Shared secret: RdJprY3Nvzb34gUtn96sZXM"

This would only require changes in the part of the *WAMP implementation (typically a separate function) that retrieves the key. As today the function would take KeyID as input

RetrieveSharedSecretBasedOnKeyID("Shared secret: RdJprY3Nvzb34gUtn96sZXM")

but instead of looking for a preconfigured shared secret, the function would see the unique string "Shared secret" and just return "RdJprY3Nvzb34gUtn96sZXM".

-If the Child SA is authenticated or encrypted (and it always is). A *WAMP shared secret could be generated with a Diffie-Hellman key exchange in the server greeting and Set-Up-Response messages.

Server greeting would include new field with g^x
Set-Up-Response would include new field with g^y
Both client and server can now calculate the shared secret as g^xy.

These approaches would require small changes to *WAMP but no changes to IPsec. As stated before, there is no API to find out if IPsec is used, so the client and server would need to get that information out-of-band.