Re: [Lake] WGLC for draft-ietf-lake-reqs-01

Göran Selander <goran.selander@ericsson.com> Tue, 24 March 2020 16:38 UTC

Return-Path: <goran.selander@ericsson.com>
X-Original-To: lake@ietfa.amsl.com
Delivered-To: lake@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 512A53A0A6C for <lake@ietfa.amsl.com>; Tue, 24 Mar 2020 09:38:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.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 P9uB_-8oHRTY for <lake@ietfa.amsl.com>; Tue, 24 Mar 2020 09:38:20 -0700 (PDT)
Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02on0602.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe07::602]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EF47F3A09DE for <lake@ietf.org>; Tue, 24 Mar 2020 09:38:19 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D669jYw1gJXwzq0XOvGbLpkywxtULDMPIoMakAKyHYMR5kMGlqZTFp0szDZdp7czHqBzvV3TaHfRbK7rO1G0YU0Go1xbLArZ+FtHTBevaZYZBhcCa7ck6Enqyijpaw/CEhRfcgXoAhgzUK/OV3LfAKy/tkYpKjYrPyiiTTo2R+JSlc7BxxF6r6yxDUKQASwe9qk7HOXixu7uADCKmqkKb/JAew+JvRfL7A1uOgJI1HgReUcQqRuBXEkrps6zgXocd+N2j/PF9/nSbG3+bs/GbpVtcTgKkby1K4QrrNwEPACK9ct1zQrn6fzdt/sfsV1/u+gn9qkv+ZI7YTSRT/KrFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C3pSnxa5wa+tiuFFzJeIfAU+XVhfo1v9vpol/h0wXrE=; b=PU6gf4ldkIr97FqwOiNSjlQ3QDYo33ylhg2t6gp3axDqjTL4ClfsAET+ZFg6diH0beYRufCCFEsb+B9s3DOaf7sP9+LQbfqa5DF8xFoeciqkpDNn7gnLoWMy0RjBqZRqWmXNIKGsRCeS9U31jsHotbCV5b/D9bLLX/8Qs6JuTml0AKm/jLCP1+XLBuj3wb0jdZcrWWW/pRbUQFm88ef2vcRDlKlAkDuUpDsykmzE4ZVHTJ45VN6HlsDbIdNRKo5WpYT6yG5dmkEYb0of+MuHXIHUcEYc4yWtipvI87yV3QmpTkMPdEQA1Fvc8m3ZRmc/gA0NnNwmZETyBdLQuXHblw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C3pSnxa5wa+tiuFFzJeIfAU+XVhfo1v9vpol/h0wXrE=; b=EqWsWo59ODvh3salkSzFB/X9xfxg1nRODAEYfEtUvjcU6vSKsGEuV0H1bxEi4ffRVApAzArjPqXY8m3GFVWa8ST73KdfwVbYyrH9gyOPX/iPYgqKP+imC50k9CEZKU4B4T1rfJD1U+pF77H6zNe8ZbhmCYKITp8i8goTQuthTpQ=
Received: from HE1PR0701MB2217.eurprd07.prod.outlook.com (10.168.35.12) by HE1PR0701MB2153.eurprd07.prod.outlook.com (10.168.36.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.17; Tue, 24 Mar 2020 16:38:17 +0000
Received: from HE1PR0701MB2217.eurprd07.prod.outlook.com ([fe80::c086:6c8b:520f:6de6]) by HE1PR0701MB2217.eurprd07.prod.outlook.com ([fe80::c086:6c8b:520f:6de6%11]) with mapi id 15.20.2856.012; Tue, 24 Mar 2020 16:38:17 +0000
From: Göran Selander <goran.selander@ericsson.com>
To: Richard Barnes <rlb@ipv.sx>, "lake@ietf.org" <lake@ietf.org>
Thread-Topic: [Lake] WGLC for draft-ietf-lake-reqs-01
Thread-Index: AQHV6MwfpoQpCxgEvkuW+iJEnj1xX6hQPu4AgAAybYCAAAQ8AIAHvtAA
Date: Tue, 24 Mar 2020 16:38:17 +0000
Message-ID: <8DEF35C2-DD4D-41BF-B6A9-3A129D450E03@ericsson.com>
References: <b7c084b0-8489-5c05-046d-33aa70c85b94@cs.tcd.ie> <191b7e3c-4453-a60c-7d5d-07a051e8b85e@cs.tcd.ie> <4397.1584644781@localhost> <CAL02cgSM9utDXV_BWJu2uO7ovDetdRZNDRo43Pqw-BytYaF3ZQ@mail.gmail.com>
In-Reply-To: <CAL02cgSM9utDXV_BWJu2uO7ovDetdRZNDRo43Pqw-BytYaF3ZQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.35.20030802
authentication-results: spf=none (sender IP is ) smtp.mailfrom=goran.selander@ericsson.com;
x-originating-ip: [213.89.246.8]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: fd136635-dcfb-47fe-1d2b-08d7d011c17d
x-ms-traffictypediagnostic: HE1PR0701MB2153:
x-microsoft-antispam-prvs: <HE1PR0701MB2153E3EBCFE9F139DE29C48DF4F10@HE1PR0701MB2153.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:5236;
x-forefront-prvs: 03524FBD26
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(346002)(366004)(39860400002)(396003)(376002)(81166006)(8936002)(81156014)(478600001)(26005)(8676002)(2906002)(186003)(86362001)(66556008)(5660300002)(33656002)(85182001)(76116006)(66946007)(66446008)(64756008)(66476007)(30864003)(36756003)(110136005)(6486002)(85202003)(2616005)(71200400001)(6512007)(6506007)(316002)(53546011)(966005); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0701MB2153; H:HE1PR0701MB2217.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords;
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: mVC6ynoATlEj1/Sin70Cp7AOKbLw5MzLjPwAz5UmwHGKy/G9FG34ShpDxt6+nePd8YUi8owD9WvnH3recaCxFefSBSRWgdKfJPer/0xwpu6WEtTp4iIOUwd2SROGhsr3MJGlQ00qkVm8zaImWb/g2pwKN/TgJnNaNqiptJboc1jF0zNj+xPKpKsL5EW5aJq+JwXuLdCkbcpQPsYAtryO8EF7+dRGYmgJXq2LFlpeVGec95ppaJTw+AjOOWrMPbOnwGoYzvCqNVd2ny0TDqK8gFMx6ZN6sHtq95GDoMwrHiDamGg6MSLzn5XDFLmp7vg+Z5y03COWmXdFsbx0hCxMzF0Wtr3WXfwJxr0sjqSc7jCeSv3/a5HGnbU6ejgyY/3Lw0fHdzHu3as+Q8FQ4bqBZx576q13+WtAqpn4lIPXcqZUrR4xwsvkXNCs9iWwMCUvdON4pBDxGSGhlFHdUJpjsl5g82gp6xXODy6inTgNylCpvJ5gkz8FzYGT6/SZIpFWYErDkoNzYT3/IlNzdWWXxw==
x-ms-exchange-antispam-messagedata: MAQc0UwNdjjXoASkDWYllzrPNDbSHg1QYu5SlZPTcPN7mKer1iher2bBM328K5nofVintHQNDm3FU9qwJ9+EIwYPpQG/n2IhM3qwhlFhdKj+NHsF/7RDohOllJshpMyDIjYLQGDAwvZIOQOo0G2GyA==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_8DEF35C2DD4D41BFB6A93A129D450E03ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: fd136635-dcfb-47fe-1d2b-08d7d011c17d
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2020 16:38:17.3458 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 8f7/ZrWMtw9K0f9ele3SL5aivhLqUxR5L8yeHrk2B1eT3beR4UuW4dVh3MtHblI1/yF6aMqFNDBQT56bgFEkcwIdRrG6jzgqlSdr5vjklno=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2153
Archived-At: <https://mailarchive.ietf.org/arch/msg/lake/x5L7HtESOMXQNnohoKDz8m6T2yQ>
Subject: Re: [Lake] WGLC for draft-ietf-lake-reqs-01
X-BeenThere: lake@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Lightweight Authenticated Key Exchange <lake.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/lake>, <mailto:lake-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/lake/>
List-Post: <mailto:lake@ietf.org>
List-Help: <mailto:lake-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/lake>, <mailto:lake-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Mar 2020 16:38:24 -0000

Hi Richard

From: Lake <lake-bounces@ietf.org> on behalf of Richard Barnes <rlb@ipv.sx>
Date: Thursday, 19 March 2020 at 20:22
To: Michael Richardson <mcr+ietf@sandelman.ca>
Cc: "lake@ietf.org" <lake@ietf.org>
Subject: Re: [Lake] WGLC for draft-ietf-lake-reqs-01

Hi LAKE folks,

I have reviewed this document as part of the WGLC.  I do not believe it is ready yet.

Detailed notes follow, pointing out a bunch of inaccuracies and ambiguities, but the overriding problem is that this document doesn't provide a clear framework for evaluating protocols, which is the whole point of a requirements document.

Section 2.10 in particular is still quite hand-wavy, lacking even basic quantification for at least one link layer.  It seems like what we need to do a real evaluation (in addition to a bunch of more minor things noted below) is a set of scenarios, in terms of network environment and protocol functions, that we can evaluate different protocol candidates against.  Things like, "PSK mode with X25519/Ed25519/CCM8 over LoRa" or "RPK+PKI mode with P-256/GCM NB-IoT".


GS: First note that the primary reason for benchmarks/requirements was not to have a comparison between protocols:

https://mailarchive.ietf.org/arch/msg/lake/PkqiwDV6_s5iVVSCyL56Jy0wW4M/

But if you do want to evaluate protocol candidates, then the benchmarks provided should enable you to do that. The information was a bit spread out in 2.10 and is now compiled in 2.10.4. More below.


===

General - The document could be more clearly organized.  I would expect a structure something like:

* What the AKE can assume about the transport
* What it needs to provide for OSCORE
* What security properties it needs to provide
* What operational constraints it needs to meet

The content is largely there, but jumbled together and often insufficently specified (more details below).

GS: As the chairs urged us in the call to “keep the focus of your comments on the meat of the content” we propose we leave the structure as it is, as long as the content is largely there.

Section 1 - The mention of the Fairhair Alliance here seems unhelpful.  I thought we were agreed that the AKE we're discussing here would be 1-1, not group; the latter would call for quite different designs.  Assuming that agreement holds, the document should clearly reflect it.  This reference muddies the water.

GS: The references in this section were included to show the planned use of OSCORE, to identify the relevant technologies. Since OSCORE is designed to be efficient for securing group communication in constrained environments, e.g. building automation applications, it seemed relevant to mention an industry forum where that feature of OSCORE was acknowledged. After all - if you make a constrained implementation which supports groups, and 1-1 as a subset, you may want to use it also for 1-1. Meanwhile Fairhair Alliance merged with OCF, and last week there was a joint meeting OCF-IRTF/T2TRG presenting how (1-1) OSCORE is planned to be used in OCF. We replaced the reference to Fairhair Alliance with a reference to OCF instead.


Section 2.1, "The AKE shall specify how COSE can be reused for identification of credentials and algorithms of OSCORE and the AKE" - This requirement should be deleted.  For one thing, OSCORE doesn't have credentials.  And it's not clear that re-using COSE is the lightest-weight path.

GS: There are several reasons for reusing COSE for the AKE. OSCORE uses COSE crypto primitives, identification of algorithms for encryption, key derivation, etc.  COSE has a number of smart solutions used in constrained IoT, e.g. the COSE header parameters, CCM*, etc. Reuse of COSE implementation avoids duplicating implementations, representation of algorithms etc. for reduced footprint and maintenance. Both OSCORE and AKE uses an AEAD, key derivation, signature (in case of Group OSCORE, which is expected to be common in implementations). Having different constructs for using them creates unnecessary complexity that is bound to be a source of confusion and bugs in a combined AKE/OSCORE implementation. Imagine the TLS handshake and TLS record layer being different in this respect! Nevertheless, the text is now changed from “must” to “strongly recommend”.


Section 2.1, "the AKE must support transport over CoAP" - Does this mean that COAP framing needs to be included in the message size allocations?

GS: The AKE may support other transport (as noted below) but for the use cases where CoAP transport is required the CoAP message size needs be considered.


Section 2.1, "The AKE may use other transport than CoAP" - This section is a good start, but should be expanded to a normative list of things the AKE may depend on for transport.  These will be important design parameters for the AKE.  This would also be a good point to clarify that this is a two-party protocol and assign names to the parties (say, "client" and "server").

GS: The objective of this work is to produce a lightweight AKE for OSCORE, in which case the endpoint implements CoAP, and CoAP is expected to be the transport for the cases where OSCORE is used. This sentence is noting that other transports are not forbidden, but we don’t see the reason for detailing other transports at this stage as that is not required functionality.


Section 2.2 - You've laid out a massive number of possible scenarios here.  I count at least 17, by the time you count PSK plus all the combinations of (a) RPK vs. PKI (b) value vs. reference (c) both of the above for sender/receiver.  While this is possible (TLS does it for the most part), it might be helpful in an evaluation of candidates to understand which are the priority cases..

GS: Same remark as above about evaluation of candidates. The cases where the AKE must be performant are PSK and RPK, as stated in 2.10.4, in particular where RPK is pre-provisioned as PSK.

We are aware of some cases of mixed public key credentials where the constrained device provides a reference to its cert and gets RPK by value. We also know of one company who wants to transport RPK by value in an opportunistic setting. The constrained device seems to be Initiator in most cases. Perhaps others in the WG can provide other data points?


Section 2.3 - Do you really want to always require mutual authentication?  Are there not scenarios where it is acceptable for one party to be anonymous?

GS: In the use cases this work is focusing on at least one of the of the endpoints is a “thing” in the IoT. As far as we know no one has brought up a use case where the thing or the endpoint which the thing authenticates to is anonymous.

Section 2.3 - This section talks in terms of attacks, but doesn't say anything about actual authentication properties.  The latter would be helpful in supporting analyses of the protocol.

GS: Karthik has been active in the shaping this section for the purpose of supporting the analysis of the protocol. The different required methods are likely to have slightly different authentication properties, so may not be sufficient with one property. Those properties can come as an output of the analysis made during the design rather than being a requirement, since we anyway expect a discussion of the appropriate tradeoffs between performance and security.


Section 2.6, "the AKE is required to protect the identity of one of the peers against active attackers" - It's pretty clear from the constraints which peer is which in any practical protocol (server/passive, client/active, as in TLS 1.3).  You should just say that.

GS: Updated based on your and others’ comments.

Section 2.6, "Other identifying information that needs to be transported in plain text is cipher suites and connection identifiers" - This is the first and only mention of connection identifiers (!)  Section 2.1 talks about OSCORE sender IDs, but only as an *output* of the AKE, not something used within the AKE protocol.  I suspect this should just be dropped.

GS: The AKE needs identifiers in plain text to correlate messages. Since those identifiers are only discussed in this paragraph the term “connection identifier” is removed.


Section 2.6, "Encrypting crypto algorithms does not allow negotiation of cipher suite within 3 flights" - If you contrast this with the ESNI/ECHO work being done with TLS, it may or may not be true, depending on how you account for pre-configuration of server information.

GS: Removed based on your and others’ comments.

Section 2.7 - This section should be dropped or tightened up.  My preference would be to drop it, since the AKE's job is to negotiate keys, not carry application data.  If we're going to keep it, we need to be clear about what properties are expected, for example, by saying that the auxiliary data must be protected to the same level as AKE data in the same flight.

GS: Good formulation, we used that.


Section 2.7, "The auxiliary data must not violate the AKE security properties" - This is super vague.  Can you provide an example of what you mean?

GS: Auxiliary data can be used together with the AKE to build other security protocols, like in draft-selander-ace-ake-authz. Obviously this protocol needs to be analysed, for example that it does not introduce vulnerabilities into the underlying AKE. A stupid example is secret information carried in the AD.


Section 2.8, "Note that by supporting COSE" - The AKE is unspecified here.  It doesn't necessariliy support COSE.  This sentence should be struck.

GS: We rephrased this, but still mentions COSE since that is recommended to use.

Section 2.9 - Surprised to see this here, given that Section 2.1 says that DoS protection is provided by the transport.

GS: We agree that the first paragraph did not add much and removed that. But the second paragraph is still not covered elsewhere. Changed title to “availability”.



Section 2.10 - There's lots of information here, but not much of it actionable.  ISTM that in order to evaluate different protocols, we'll need to be able to predict how they perform in different network environments, on different platforms.  This section does not provide enough detail to support that analysis.

GS: Same remark as above about evaluation of candidates. Section 2.10.4 is now compiling information previously spread out in section 2.10 and should be actionable.