Re: [Lake] proposed scoping text

Göran Selander <> Thu, 09 April 2020 10:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 5458A3A1098 for <>; Thu, 9 Apr 2020 03:08:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.268
X-Spam-Status: No, score=-2.268 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.168, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id YDjYUxzeVKZR for <>; Thu, 9 Apr 2020 03:08:56 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A8B893A1097 for <>; Thu, 9 Apr 2020 03:08:55 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901;; cv=none; b=Dpx8aa2om8gptGrY8n1+koQUnstOMBHMa/8LH7suvNFxV6Qf0cGh/wZxLnjCVHyJdJrbDup+03FVNbvKsxPF/wP/13Fc2H6WWIai2xKZfte7ctwbIe0gV4iy4gINdiiNiEMeoDt2AQV5roatlPAxZofv2gSRH50EWKWuGDPtI3tzamCW1HF/QKRlGLGiuHqUr7MrV6ivIg6qT06LyLuI+arD+SeReVlQAt0BMBS1g3YZ/ecXN+KOcdyq/EVu/Isp+D/GU/NHxo+Ubkg/IexWazbnGWQfWU3exlPm4PuZsxNTMMTE7DEu0Pxm/40/mkJWVmc9IVI+5X91YkDjvgwlDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bVxoQBTnqoraXhgkomyMztXjJBy/bsDaCnmcDWn6dDQ=; b=GYRUG74olhwoGEQTuva6ec0s0MxLDIiIi7TuDoY9/k5kFb82NhPTEiE5AZ5jVjcrz7VNCkqjEXdQ3Wkuz7gvjNKMfdUMwlc/1BvqqvttXxtHZG/4/9JIBXwZH4JbLx2y/4g547h67o2M0OsPyKpI8Tbd2brDOke56JKxLfEkZsL4kxPn3ggYhSSRGWAtlOMBgQA6z4/79ei74y7+IRjxRUXBGJCkbn/AoxIDgATt+rV0uluIA/24CbxuXkoc62yb0p0y0cQ/yhVw9/Gz64X2pjlcuzbwizyqwj8HRVJlcQHCSL921oyVaxatkqcML8WLnDjq2KAWjh7ueIjhfZOMpQ==
ARC-Authentication-Results: i=1; 1; spf=pass; dmarc=pass action=none; dkim=pass; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bVxoQBTnqoraXhgkomyMztXjJBy/bsDaCnmcDWn6dDQ=; b=CJn65e7eLRLn0XA687xWbAc8Kg83q5rQghhjgOY1dsBar6K8W/eLcbe5lo0fTwCAPOws9HiVvhoyKCPU4yGxTZYuCCR/sD86/jKsn5Zh9vGKZ/pyu8Kr4h4gvg3pL4F9u787mjVmhU2gKv7BkgH4xmSJbu/xgNzcmFE1SiRm5Zg=
Received: from (2603:10a6:803:9e::13) by (2603:10a6:802:65::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.14; Thu, 9 Apr 2020 10:08:53 +0000
Received: from ([fe80::7c90:eb1a:e7da:2321]) by ([fe80::7c90:eb1a:e7da:2321%7]) with mapi id 15.20.2900.015; Thu, 9 Apr 2020 10:08:53 +0000
From: =?utf-8?B?R8O2cmFuIFNlbGFuZGVy?= <>
To: Stephen Farrell <>, "" <>
Thread-Topic: [Lake] proposed scoping text
Thread-Index: AQHWDbwwxw6VdyVM3EK090880yrRXKhws8wA
Date: Thu, 9 Apr 2020 10:08:53 +0000
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-GB
user-agent: Microsoft-MacOutlook/16.35.20030802
authentication-results: spf=none (sender IP is );
x-originating-ip: []
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 015b9d19-6b30-4c9d-3505-08d7dc6e0203
x-ms-traffictypediagnostic: VI1PR07MB4365:
x-microsoft-antispam-prvs: <>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0368E78B5B
x-forefront-antispam-report: CIP:; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM;; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(396003)(136003)(39860400002)(366004)(376002)(346002)(85182001)(66574012)(71200400001)(86362001)(91956017)(33656002)(36756003)(8936002)(5660300002)(316002)(478600001)(6506007)(6486002)(110136005)(8676002)(81166007)(186003)(296002)(76116006)(64756008)(2616005)(81156014)(66556008)(2906002)(26005)(66946007)(66446008)(85202003)(6512007)(66476007); DIR:OUT; SFP:1101;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: xYP+XzLIb5mi9g5e7HXN5X9lLvatA5CSBbFUR7Clvq+f6BdnQvo3OgTkdrsHIxUSQ9Uqq8WYnjIrvQx8icPtsGBMNIGmdM3uXMU1ptTDI6hqygLo6ooc6aJ4mHf04RnFMd+JeBHt9lSvum//wILrcvwsj/eJ37XfriBkCzP/fkp+kpVwVYH3TXh+oGf3cP8OXzIDLC8QGNSqntk5kbsqpU1hUrBveC5Y1bdm7JvXe95GzUmurcM374lvvMOwSmT50AW1+rD2zuHm9YXA4LdrktE/hItuR3Sczzm/NA+BJr6KXtUFtq6ptEOX05raCdzwQ6ObC8Zsb+97a/7EpEaEFMSnJyIrYWfzDyw+GKn+qCc0Y0rnhVeJjKAeFPNyr8XgHfWat2M7ubdSQeCfBJjZO1YP4DC6XH6Pc9tivDAzyLJYQyJ4WioQmS9LBYFneljk
x-ms-exchange-antispam-messagedata: +7bOxRIDdfyIn3AshOCPYdjWbj0klXdINv3aJDeIilPvcfJQDf7PVIY+7pbilhvUpcP3h1Smjuv3gcF1UrQoBe5r3W8ZteJ8qGdL0s/tj8C6fs+bsW0bu2H/QYvPGVdsChPobclMlgU1rPb+bD6y4g==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 015b9d19-6b30-4c9d-3505-08d7dc6e0203
X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Apr 2020 10:08:53.3103 (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: 95DfUCoTQKXJvCHehHZvGAc8jsJKJ6S1EXriHPywDJjsEtUF1v9Ko0Q/NvkCE8wdFw396rXh9QMRCyhr/ndGL6pdvhSDgswBJ9fjWiCRMEY=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB4365
Archived-At: <>
Subject: Re: [Lake] proposed scoping text
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Lightweight Authenticated Key Exchange <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 09 Apr 2020 10:08:58 -0000


TL;DR: I propose LAKE to initially focus on RPK, and certificate by reference.


Apologies for a long mail. Comments on Ben's proposal for a way forward at the end, but first we need to take a step back and try to understand what we are discussing.

We are working on requirements for an AKE for OSCORE. We require a lightweight AKE, since OSCORE may be applied in constrained IoT applications. Now there is a discussion about restricting the functionality of LAKE to address only the most lightweight scenarios, so that another AKE should be used in non-lightweight settings. While this may be an economy of standardization, this does not make sense for many reasons.

* Note that OSCORE is expected to be applied in both in constrained and non-constrained environments. OSCORE works whereever CoAP does, and CoAP is expected to be applied in PSK, RPK and certificate settings.

* Implementation-wise OSCORE is more or less integrated with CoAP, because it reuses CoAP processing. A combined OSCORE/AKE implementation will thus be more or less integrated in CoAP. So how should a developer handle the situation that there is a specification of AKE1 addressing part of the credential space and another completely incompatible specification AKE2 addressing another part? 

* OSCORE is designed for end-to-end security from constrained device to cloud. To be sure to support OSCORE based security you need to implement both AKE1 and AKE2.

* How could it be better security-wise to have two different AKEs for one security protocol? Twice the number of security analyses, etc. are needed. 

* Many companies want to move away from symmetric-key based IoT deployments to public key based, ideally to device certificates. If their current technology does not support transport of certificates, but maybe will later,  should they implement AKE1 or AKE2?

* etc.

Summarizing: At some point in time there needs to be one single AKE for OSCORE that is sufficiently lightweight to perform well in the most constrained settings but also has the functionality to protect CoAP for whatever settings it is expected to be deployed in, and that involves PSK, RPK and certificates.


Having said this, it may still be relevant to discuss which cases are most important right now, bearing in mind that this scoping should not prevent later adding the remaining components.  

One way to prioritize the scope of the first work on the AKE is to address a) the needs from current use cases, and b) the potential to provide something useful that is not already available:

a) There is a general request to deploy a lightweight AKE with OSCORE targeting general CoAP use cases 
i.e. based on PSK, RPK as well as certificates. More specific work items I'm aware of include RPK-based solutions (e.g. LoRa Alliance) and mixed RPK/certificate based solution (e.g. draft-selander-ace-ake-authz). As mentioned in my previous email, a PKI-based solution is necessary to handle IoT deployments with a large number of devices and many manufacturers, but the certificate does not necessarily have to be transported.

b) It is possible to do PSK and RPK by reference for the most constrained benchmark (1,1,1). RPK by value and certificate by reference can also be very lightweight, but may require more than one fragment per message. However, in case of transporting a chain of X.509 certificates, or even a single X.509 certificate, it is not clear that a lightweight AKE performs significantly better. 

The intersection of a) and b) correspond to where there is an active interest in a solution and where the solution can be made lightweight: RPK (by reference and value) and certificate by reference. 

This restricted scope leaves out the most lightweight and the least lightweight options. Removing symmetric key based authentication from first scope is a significant simplification since this is a different protocol in many respects compared to the asymmetric version. Moreover, since PSK and RPK by reference can be handled with the same transmission cost, there is less motivation for using PSK ECDHE as an intermediate deployment step.

Now for Ben's proposal:

On 2020-04-08, 17:41, "Lake on behalf of Stephen Farrell" < on behalf of> wrote:

    Ben's proposal is:
    Strip down the requirements document a lot, to have a
    qualitative sense of "these are the combinations of crypto
    primitives that we consider important *right now*" (e.g.,
    PSK and RPK). Have an acknowledgment that extensibility is
    inevitable, but disclaim that we are focusing on getting it
    right for these narrow cases right now, and if someone
    wants to do a broader case in the future, then more
    analysis will need to be done at that time.  

    But for now,
    we focus on getting RPK and PSK into:
     3 flights, 51-byte messages, and do that well.
[GS] Focus on RPK (by value and by reference) and certificate by reference, and do that well. For RPK by reference: 3 flights in (1,1,1) fragments. For RPK by value and certificate by reference the number of fragments should be kept at a minimum.

    If we end up with protocol X that does RPK well and
    someone has it deployed but wants to expand their
    deployment to also use certificates, they can extend
    protocol X to do that and have a fairly homogeneous
    deployment, vs. having to have a mix of protocol X
    and TLS.  It may well be that TLS would do fine for
    their extended use case, but not the original use
    case, and having a homogeneous deployment is valuable."

[GS] Agree.