From dda5576dae9d8530ee762b954943a1840b1ff36d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Selander?= Date: Thu, 1 Jun 2023 11:39:11 +0200 Subject: [PATCH 1/2] updated terminology --- draft-selander-lake-authz.md | 38 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/draft-selander-lake-authz.md b/draft-selander-lake-authz.md index 3ccf063..1cb5a69 100644 --- a/draft-selander-lake-authz.md +++ b/draft-selander-lake-authz.md @@ -1,5 +1,5 @@ --- -title: Lightweight Authorization for EDHOC +title: Lightweight Authorization using Ephemeral Diffie-Hellman Over COSE docname: draft-selander-lake-authz-latest ipr: trust200902 @@ -103,7 +103,7 @@ venue: --- abstract -This document describes a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange protocol EDHOC with third party assisted authorization, targeting constrained IoT deployments (RFC 7228). +This document describes a procedure for authorizing enrollment of new devices using the lightweight authenticated key exchange protocol Ephemeral Diffie-Hellman Over COSE (EDHOC). The procedure is applicable to zero-touch onboarding of new devices to a contrained network leveraging trust anchors installed at manufacture time. --- middle @@ -113,12 +113,12 @@ This document describes a procedure for augmenting the lightweight authenticated For constrained IoT deployments {{RFC7228}} the overhead and processing contributed by security protocols may be significant which motivates the specification of lightweight protocols that are optimizing, in particular, message overhead (see {{I-D.ietf-lake-reqs}}). This document describes a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange EDHOC {{I-D.ietf-lake-edhoc}} with third party-assisted authorization. -The procedure involves a device, a domain authenticator, and an authorization service. -The device and domain authenticator perform mutual authentication and authorization, assisted by the authorization service which provides relevant authorization information to the device (a "voucher") and to the authenticator. +The procedure involves a device, a domain authenticator, and an enrollment server. +The device and domain authenticator perform mutual authentication and authorization, assisted by the enrollment server which provides relevant authorization information to the device (a "voucher") and to the authenticator. The high-level model is similiar to BRSKI {{RFC8995}}. In this document we consider the target interaction for which authorization is needed to be "enrollment", for example joining a network for the first time (e.g., {{RFC9031}}), but it can be applied to authorize other target interactions. -The authorization service may represent the manufacturer of the device, or some other party with information about the device from which a trust anchor has been pre-provisioned into the device. +The enrollment server may represent the manufacturer of the device, or some other party with information about the device from which a trust anchor has been pre-provisioned into the device. The (domain) authenticator may represent the service provider or some other party controlling access to the network in which the device is enrolling. The protocol assumes that authentication between device and authenticator is performed with EDHOC {{I-D.ietf-lake-edhoc}}, and defines the integration of a lightweight authorization procedure using the External Authorization Data (EAD) fields defined in EDHOC. @@ -141,12 +141,12 @@ The (potentially constrained) device (U) wants to enroll into a domain over a co The device authenticates and enforces authorization of the (non-constrained) domain authenticator (V) with the help of a voucher conveying authorization information. The domain authenticator, in turn, authenticates the device and authorizes its enrollment into the domain. -The procedure is assisted by a (non-constrained) domain authorization service (W) located in a non-constrained network behind the domain authenticator, e.g. on the Internet, providing information to the device (the voucher) and to the domain authenticator as part of the protocol. +The procedure is assisted by a (non-constrained) enrollment server (W) located in a non-constrained network behind the domain authenticator, e.g. on the Internet, providing information to the device (the voucher) and to the domain authenticator as part of the protocol. The objective of this document is to specify such a protocol which is lightweight over the constrained link by reusing elements of EDHOC {{I-D.ietf-lake-edhoc}} and by shifting message overhead to the non-constrained side of the network. See illustration in {{fig-overview}}. -Note the cardinality of the involved parties, it is expected that the authenticator need to handle a large unspecified number of devices, but for a given device type or manufacturer it is expected that one or a few nodes host authorization services. +Note the cardinality of the involved parties, it is expected that the authenticator need to handle a large unspecified number of devices, but for a given device type or manufacturer it is expected that one or a few nodes host enrollment servers. ~~~~~~~~~~~ aasvg @@ -167,7 +167,7 @@ Note the cardinality of the involved parties, it is expected that the authentica # Assumptions -The protocol is based on the following pre-existing relations between the device (U), the domain authenticator (V) and the authorization service (W). +The protocol is based on the following pre-existing relations between the device (U), the domain authenticator (V) and the enrollment server (W). * U and W have an explicit relation: U is configured with a public key of W, see {{device}}. * V and W have an implicit relation, e.g., based on web PKI with trusted CA certificates, see {{domain-auth}}. @@ -205,8 +205,8 @@ U also needs to identify itself to W, this device identifier is denoted by ID_U. U is also provisioned with information about W: -* A static public DH key of W (G_W) used to establish secure communication with the authorization service (see {{U-W}}). -* Location information about the authorization service (LOC_W) that can be used by V to reach W. This is typically a URI but may alternatively be only the domain name. +* A static public DH key of W (G_W) used to establish secure communication with the enrollment server (see {{U-W}}). +* Location information about the enrollment server (LOC_W) that can be used by V to reach W. This is typically a URI but may alternatively be only the domain name. ## Domain Authenticator (V) {#domain-auth} @@ -224,9 +224,9 @@ Other details of proof-of-possession related to CRED_V and transport of CRED_V a -## Authorization Service (W) {#authz-server} +## Enrollment Server (W) {#authz-server} -The authorization service (W) is assumed to have the private DH key corresponding to G_W, which is used to establish secure communication with the device (see {{U-W}}). W provides to U the authorization decision for enrollment with V in the form of a voucher (see {{voucher}}). Authorization policies are out of scope for this document. +The enrollment server (W) is assumed to have the private DH key corresponding to G_W, which is used to establish secure communication with the device (see {{U-W}}). W provides to U the authorization decision for enrollment with V in the form of a voucher (see {{voucher}}). Authorization policies are out of scope for this document. Authentication credentials and communication security with V is described in {{domain-auth}}. To calculate the voucher, W needs access to message_1 and CRED_V as used in the EDHOC run between U and V, see {{voucher}}. @@ -242,8 +242,8 @@ W needs to be available during the execution of the protocol between U and V. The protocol consist of three security sessions going on in parallel: 1. The EDHOC protocol between device (U) and (domain) authenticator (V) -2. Voucher Request/Response between authenticator (V) and authorization service (W) -3. An exchange of voucher-related information, including the voucher itself, between device (U) and authorization service (W), mediated by the authenticator (V). +2. Voucher Request/Response between authenticator (V) and enrollment server (W) +3. An exchange of voucher-related information, including the voucher itself, between device (U) and enrollment server (W), mediated by the authenticator (V). {{fig-protocol}} provides an overview of the message flow detailed in this section. An outline of EDHOC is given in {{Section 3 of I-D.ietf-lake-edhoc}}. @@ -337,7 +337,7 @@ info = ( ) ~~~~~~~~~~ -## Device <-> Authorization Service (U <-> W) {#U-W} +## Device <-> Enrollment Server (U <-> W) {#U-W} The protocol between U and W is carried between U and V in message_1 and message_2 ({{U-V}}), and between V and W in the Voucher Request/Response ({{V-W}}). The data is protected between the endpoints using secret keys derived from a Diffie-Hellman shared secret (see {{reuse}}) as further detailed in this section. @@ -477,7 +477,7 @@ EDHOC message_3 may be combined with an OSCORE request, see {{I-D.ietf-core-osco V performs the normal EDHOC verifications of message_3. V may retrieve CRED_U from a Credential Database, after having learnt ID_CRED_I from U. -## Authenticator <-> Authorization Service (V <-> W) {#V-W} +## Authenticator <-> Enrollment Server (V <-> W) {#V-W} It is assumed that V and W have set up a secure connection, W has accessed the authentication credential CRED_V to be used in the EDHOC session between V and with U, and that W has verified that V is in possession of the private key corresponding to CRED_V, see {{domain-auth}} and {{authz-server}}. @@ -573,9 +573,9 @@ EDHOC provides identity protection of the Initiator, here the device. The encryp Although W learns about the identity of U after receiving VREQ, this information must not be disclosed to V, until U has revealed its identity to V with ID_CRED_I in message_3. W may be used for lookup of CRED_U from ID_CRED_I, or this credential lookup function may be separate from the authorization function of W, see {{fig-protocol}}. The trust model used here is that U decides to which V it reveals its identity. In an alternative trust model where U trusts W to decide to which V it reveals U's identity, CRED_U could be sent in Voucher Response. - As noted in {{Section 8.2 of I-D.ietf-lake-edhoc}} an ephemeral key may be used to calculate several ECDH shared secrets. In this specification the ephemeral key G_X is also used to calculate G_XW, the shared secret with the authorization service. + As noted in {{Section 8.2 of I-D.ietf-lake-edhoc}} an ephemeral key may be used to calculate several ECDH shared secrets. In this specification the ephemeral key G_X is also used to calculate G_XW, the shared secret with the enrollment server. -The private ephemeral key is thus used in the device for calculations of key material relating to both the authenticator and the authorization service. There are different options for where to implement these calculations, one option is as an addition to EDHOC, i.e., to extend the EDHOC API in the device with input of public key of W (G_W) and device identifier of U (ID_U), and produce the encryption of ID_U which is included in Voucher_Info in EAD_1. +The private ephemeral key is thus used in the device for calculations of key material relating to both the authenticator and the enrollment server. There are different options for where to implement these calculations, one option is as an addition to EDHOC, i.e., to extend the EDHOC API in the device with input of public key of W (G_W) and device identifier of U (ID_U), and produce the encryption of ID_U which is included in Voucher_Info in EAD_1. # IANA Considerations {#iana} @@ -673,7 +673,7 @@ The device SHALL map the message to a CoAP request: ### Flight 2 The domain authenticator receives message_1 and processes it as described in {{U-V}}. -The message triggers the exchange with the authorization service, as described in {{V-W}}. +The message triggers the exchange with the enrollment server, as described in {{V-W}}. If the exchange between V and W completes successfully, the domain authenticator prepares EDHOC message_2, as described in {{U-V}}. The authenticator SHALL map the message to a CoAP response: From 580b82a92c5cc56272352245494b77fd48d41fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Selander?= Date: Thu, 1 Jun 2023 12:32:22 +0200 Subject: [PATCH 2/2] ref --- draft-selander-lake-authz.md | 1 + 1 file changed, 1 insertion(+) diff --git a/draft-selander-lake-authz.md b/draft-selander-lake-authz.md index 1cb5a69..dc54c17 100644 --- a/draft-selander-lake-authz.md +++ b/draft-selander-lake-authz.md @@ -83,6 +83,7 @@ informative: RFC8174: RFC8446: RFC8615: + RFC8995: RFC9031: RFC9180: I-D.ietf-core-oscore-edhoc: