<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.6 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC8392 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8392.xml">
<!ENTITY RFC8949 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
<!ENTITY RFC9052 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9052.xml">
<!ENTITY RFC9053 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9053.xml">
<!ENTITY I-D.ietf-lake-edhoc SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-edhoc.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3172 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.3172.xml">
<!ENTITY RFC6761 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6761.xml">
<!ENTITY RFC7228 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8446 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
<!ENTITY RFC8615 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8615.xml">
<!ENTITY RFC9031 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9031.xml">
<!ENTITY RFC9180 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9180.xml">
<!ENTITY I-D.ietf-core-oscore-edhoc SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
<!ENTITY I-D.ietf-cose-cbor-encoded-cert SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-cbor-encoded-cert.xml">
<!ENTITY I-D.ietf-lake-reqs SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-reqs.xml">
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc tocdepth="2"?>

<rfc ipr="trust200902" docName="draft-selander-lake-authz-01" category="std" submissionType="IETF">

  <front>
    <title>Lightweight Authorization for EDHOC</title>

    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization>Ericsson AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
      <organization>INRIA</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <author initials="A." surname="Schellenbaum" fullname="Aurelio Schellenbaum">
      <organization abbrev="ZHAW">Institute of Embedded Systems, ZHAW</organization>
      <address>
        <postal>
          <country>Switzerland</country>
        </postal>
        <email>aureliorubendario.schellenbaum@zhaw.ch</email>
      </address>
    </author>

    <date year="2023" month="April" day="21"/>

    <area>Security</area>
    <workgroup>LAKE Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>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).</t>



    </abstract>


  </front>

  <middle>


<section anchor="intro" title="Introduction">

<t>For constrained IoT deployments <xref target="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 <xref target="I-D.ietf-lake-reqs"/>).
This document describes a procedure for augmenting the lightweight authenticated Diffie-Hellman key exchange EDHOC <xref target="I-D.ietf-lake-edhoc"/> with third party-assisted authorization.</t>

<t>The procedure involves a device, a domain authenticator, and an authorization server.
The device and authenticator perform mutual authentication and authorization, assisted by the authorization server which provides relevant authorization information to the device (a “voucher”) and to the authenticator.</t>

<t>The protocol assumes that authentication between device and authenticator is performed with EDHOC, and defines the integration of a lightweight authorization procedure using the External Authorization Data (EAD) field defined in EDHOC.</t>

<t>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., <xref target="RFC9031"/>), but it can be applied to authorize other target interactions.</t>

<t>The protocol enables a low message count by performing authorization and enrollment in parallel with authentication, instead of in sequence which is common for network access.
It further reuses protocol elements from EDHOC leading to reduced message sizes on constrained links.</t>

<t>This protocol is applicable to a wide variety of settings, and can be mapped to different authorization architectures.</t>

<section anchor="terminology" title="Terminology">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

<t>Readers are expected to have an understanding of CBOR <xref target="RFC8949"/> and EDHOC <xref target="I-D.ietf-lake-edhoc"/>.
Appendix C.1 of <xref target="I-D.ietf-lake-edhoc"/> contains some basic info about CBOR.</t>

</section>
</section>
<section anchor="prob-desc" title="Problem Description">

<t>The (potentially constrained) device (U) wants to enroll into a domain over a constrained link.
The device authenticates and enforces authorization of the (non-constrained) domain authenticator (V) with the help of a voucher, and makes the enrollment request.
The domain authenticator, in turn, authenticates the device and authorizes its enrollment.
Authentication between device and domain authenticator is made with the lightweight authenticated Diffie-Hellman key exchange protocol EDHOC <xref target="I-D.ietf-lake-edhoc"/>.
The procedure is assisted by a (non-constrained) authorization server (W) located in a non-constrained network behind the domain authenticator providing information to the device and to the domain authenticator as part of the protocol.</t>

<t>The objective of this document is to specify such a protocol which is lightweight over the constrained link by reusing elements of EDHOC.
See illustration in <xref target="fig-overview"/>.</t>

<figure title="Overview of message flow. Link between U and V is constrained but link between V and W is not. Voucher_Info and Voucher are sent in EDHOC External Authorization Data." anchor="fig-overview"><artwork type="aasvg" align="center"><![CDATA[
                  Voucher
            EDHOC Info
+----------+  |    |   +---------------+  Voucher  +---------------+
|          |  |    |   |               |  Request  |               |
|  Device  |--+----o-->|    Domain     |---------->| Authorization |
|          |<-+---o----| Authenticator |<----------|     Server    |
|    (U)   |--+---+--->|      (V)      |  Voucher  |       (W)     |
|          |      |    |               |  Response |               |
+----------+      |    +---------------+           +---------------+
                  Voucher

]]></artwork></figure>

</section>
<section anchor="assumptions" title="Assumptions">

<section anchor="device" title="Device (U)">

<t>U takes the role as EDHOC Initiator with authentication credential CRED_I.
CRED_I may for example be an X.509 certificate or a CBOR Web Token (CWT, <xref target="RFC8392"/>).
For identification to W, U is provisioned with an identifier ID_U, from which W shall be able to retrieve CRED_I.
ID_U is for example a reference to the device authentication credential, or an identifier from a separate name space.</t>

<t>U is also provisioned with information about W:</t>

<t><list style="symbols">
  <t>A static public DH key of W (G_W) used to protect communication  between device and authorization server (see <xref target="U-W"/>).</t>
  <t>Location information about the authorization server (LOC_W) that can be used by V. This is typically a URI but may be optimized, e.g., only the domain name.</t>
</list></t>

</section>
<section anchor="domain-auth" title="Domain Authenticator (V)">

<t>V takes the role as EDHOC Responder with authentication credential CRED_R.
CRED_R is a CWT Claims Set (CCS, <xref target="RFC8392"/>) containing the public authentication key of V, PK_V, see <xref target="V_2"/></t>

<t>V needs to establish secure communication with W based on information in LOC_W.
The communication between V and W is assumed to be mutually authenticated and protected; authentication credentials and communication security is out of scope, except for as specified below in this section.</t>

<t>V may in principle use different credentials for authenticating to U and to W (CRED_R is used for the former).
However, V MUST prove possession of private key of PK_V to W, since W is asserting (by means of a voucher sent to U) that this credential belongs to V.</t>

<t>In this version of the draft is assumed that V authenticates to W with the public key PK_V using some authentication protocol providing proof of possession of the private key, for example TLS 1.3 <xref target="RFC8446"/>.
A future version of this draft may specify explicit proof of possession of the private key of PK_V in VREQ, e.g., by including a signature of the contents of the voucher request made with the private key corresponding to PK_V.</t>

</section>
<section anchor="authorization-server-w" title="Authorization Server (W)">

<t>W has the private DH key corresponding to G_W, which is used to secure the communication with U (see <xref target="U-W"/>).</t>

<t>Authentication credentials and communication security used with V is out of scope, except for the need to verify the possession of the private key of PK_V as specified in <xref target="domain-auth"/>.</t>

<t>W provides to U the authorization decision for enrollment with V in the form of a voucher, see <xref target="voucher"/>.
W may provide V with the authorization credential of U, CRED_I, after V has learnt the identity of U.</t>

<t>W needs to be available during the execution of the protocol between U and V.</t>

</section>
</section>
<section anchor="the-protocol" title="The Protocol">

<section anchor="overview" title="Overview">

<t>Three security sessions are going on in parallel:</t>

<t><list style="numbers">
  <t>EDHOC <xref target="I-D.ietf-lake-edhoc"/> between device (U) and (domain) authenticator (V)</t>
  <t>Voucher Request/Response between authenticator (V) and authorization server (W)</t>
  <t>An exchange of voucher-related information, including the voucher itself, between device (U) and authorization server (W), mediated by the authenticator (V).</t>
</list></t>

<t><xref target="fig-protocol"/> provides an overview of the message flow detailed in this section, for more details see Section 3.1 of <xref target="I-D.ietf-lake-edhoc"/>.</t>

<figure title="W-assisted authorization of U and V to each other: EDHOC between U and V (only selected message fields shown for simplicity), and Voucher Request/Response between V and W." anchor="fig-protocol"><artwork type="aasvg" align="center"><![CDATA[
U                               V                                  W
|                               |                                  |
|       SUITES_I, G_X, EAD_1    |                                  |
+------------------------------>|                                  |
|         EDHOC message_1       |  H(m1), SS, G_X, ENC_ID, ?PoP_V  |
|                               +--------------------------------->|
|                               |     Voucher Request (VREQ)       |
|                               |                                  |
|                               |            H(m1), Voucher        |
|                               |<---------------------------------+
|                               |       Voucher Response (VRES)    |
|  Enc(ID_CRED_R, SM_2, EAD_2)  |                                  |
|<------------------------------+                                  |
|         EDHOC message_2       |                                  |
|                               |                                  |
|      Enc(ID_CRED_I, SM_3)     |                                  |
+------------------------------>|                                  |
|         EDHOC message_3       |        (Credential lookup:)      |
|                               |             ID_CRED_I            |
|                               |--------------------------------->|
|                               |<---------------------------------|
|                               |                 CRED_I           |
|                               |                                  |

where
H(m1) = H(message_1)
EAD_1 contains Voucher_Info: LOC_W, ENC_ID
EAD_2 contains Voucher: MAC(H(message_1), CRED_R)

]]></artwork></figure>

</section>
<section anchor="reuse" title="Reuse of EDHOC">

<t>The protocol illustrated in <xref target="fig-protocol"/> reuses several components of EDHOC:</t>

<t><list style="symbols">
  <t>G_X, the ‘x’ parameter of the ephemeral public Diffie-Hellman key of party U, is also used in the protocol between U and W.</t>
  <t>SUITES_I, the cipher suites relevant to U, which includes the selected cipher suite - here denoted SS, also defines the algorithms used between U and W. In particular SS contains information about (see Section 3.6 of <xref target="I-D.ietf-lake-edhoc"/>):  <list style="symbols">
      <t>EDHOC AEAD algorithm: used to encrypt the identity of U</t>
      <t>EDHOC hash algorithm: used for key derivation and to calculate the voucher</t>
      <t>EDHOC MAC length in bytes: length of the voucher</t>
      <t>EDHOC key exchange algorithm: used to calculate the shared secret between U and W</t>
    </list></t>
  <t>EAD_1, EAD_2 are the External Authorization Data message fields of message_1 and message_2, respectively, see Section 3.8 of <xref target="I-D.ietf-lake-edhoc"/>. This document specifies EAD items with ead_label = TBD1, see <xref target="iana-ead"/>).</t>
  <t>ID_CRED_I and ID_CRED_R are used to identify the authentication credentials of U and V. As shown at the bottom of <xref target="fig-protocol"/>, V may use W to obtain CRED_I, the authentication credential of U. The authentication credential of V, CRED_R, is transported in ID_CRED_R in message_2, see <xref target="V_2"/>.</t>
  <t>Signature_or_MAC_2 and Signature_or_MAC_3 (abbreviated SM_2 and SM_3 in <xref target="fig-protocol"/>), containing data generated using the private key of V and U, respectively, are shown here just to be able to reason about the use of credentials. The definition of these fields depend on EDHOC method, see Section 5 of <xref target="I-D.ietf-lake-edhoc"/>).</t>
</list></t>

<t>The protocol also reuses the Extract and Expand key derivation from EDHOC (Section 4 of <xref target="I-D.ietf-lake-edhoc"/>).</t>

<t><list style="symbols">
  <t>The intermediate pseudo-random key PRK is derived using Extract():
  <list style="symbols">
      <t>PRK = Extract(salt, IKM)
      <list style="symbols">
          <t>where salt = 0x (the zero-length byte string)</t>
          <t>IKM is the ECDH shared secret G_XW (calculated from G_X and W or G_W and X) as defined in Section 6.3.1 of <xref target="RFC9053"/>.</t>
        </list></t>
    </list></t>
</list></t>

<t>The shared secret is derived using Expand() which is defined in terms of the EDHOC hash algorithm of the selected cipher suite, see Section 4.2. of <xref target="I-D.ietf-lake-edhoc"/>:</t>

<t><list style="symbols">
  <t>shared secret = Expand(PRK, info, length)  <vspace blankLines='1'/>
where</t>
</list></t>

<figure><artwork><![CDATA[
info = (
   label : int,
   context : bstr,
   length : uint,
)
]]></artwork></figure>

</section>
<section anchor="U-W" title="Device &lt;-&gt; Authorization Server (U &lt;-&gt; W)">

<t>The protocol between U and W is carried out via V with certain data protected between the endpoints using the equivalent of a hybrid public key encryption scheme such as <xref target="RFC9180"/>.
U uses the public DH key of the W, G_W, together with the private DH key corresponding to ephemeral key G_X in EDHOC message_1, and vice versa for W.
The endpoints calculate a shared secret G_XW (see <xref target="reuse"/>), which is used to derive secret keys to protect data between U and W, as detailed in this section.</t>

<t>The data exchanged between U and W is carried between U and V in message_1 and message_2 (<xref target="U-V"/>), and between V and W in the Voucher Request/Response (<xref target="V-W"/>).</t>

<section anchor="voucher-info" title="Voucher Info">

<t>The external authorization data EAD_1 contains an EAD item with ead_label = TBD1 and ead_value = Voucher_Info, which is a CBOR byte string:</t>

<figure><artwork><![CDATA[
Voucher_Info = bstr .cbor Voucher_Info_Seq
]]></artwork></figure>

<figure><artwork><![CDATA[
Voucher_Info_Seq = (
    LOC_W:      tstr,
    ENC_ID:     bstr
)
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>LOC_W is location information of W, used by V</t>
  <t>ENC_ID is the encrypted blob carrying an identifier of U passed on from V to W, calculated as follows:</t>
</list></t>

<t>ENC_ID is ‘ciphertext’ of COSE_Encrypt0 (Section 5.2-5.3 of <xref target="RFC9052"/>) computed from the following:</t>

<t><list style="symbols">
  <t>The encryption key K_1 and nonce IV_1 are derived as specified below.</t>
  <t>‘protected’ is a byte string of size 0</t>
  <t>‘plaintext and ‘external_aad’ as below:</t>
</list></t>

<figure><artwork><![CDATA[
plaintext = (
    ID_U:            bstr,
 )
]]></artwork></figure>
<figure><artwork><![CDATA[
external_aad = (
    SS:              int,
 )
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>ID_U is an identity of the device, for example a reference to the device authentication credential, see <xref target="device"/>.</t>
  <t>SS is the selected cipher suite in SUITES_I.</t>
</list></t>

<t>The derivation of K_1 = Expand(PRK, info, length) uses the following input to the info struct (<xref target="reuse"/>):</t>

<t><list style="symbols">
  <t>label = TBD1</t>
  <t>context  = h’’</t>
  <t>length is length of key of the EDHOC AEAD algorithm in bytes</t>
</list></t>

<t>The derivation of IV_1 = Expand(PRK, info, length) uses the following input to the info struct (<xref target="reuse"/>):</t>

<t><list style="symbols">
  <t>label = TBD1</t>
  <t>context = h’00’</t>
  <t>length is length of nonce of the EDHOC AEAD algorithm in bytes</t>
</list></t>

</section>
<section anchor="voucher" title="Voucher">

<t>The voucher is an assertion for U that W has performed the relevant verifications and that U is authorized to continue the protocol with V. The voucher is essentially a message authentication code which binds the authentication credential of V to message_1 of EDHOC, integrity protected with the shared secret context between U and W.</t>

<t>The external authorization data EAD_2 contains an EAD item with ead_label = TBD1 and ead_value = Voucher, which is a CBOR byte string:</t>

<figure><artwork><![CDATA[
Voucher = bstr .cbor Expand(PRK, info, length)
]]></artwork></figure>

<t>calculated with the following input to the info struct (<xref target="reuse"/>):</t>

<t><list style="symbols">
  <t>label is TBD1</t>
  <t>context  = bstr .cbor voucher_input</t>
  <t>length is EDHOC MAC length in bytes</t>
</list></t>

<t>where context is a CBOR bstr wrapping of the following CBOR sequence:</t>

<figure><artwork><![CDATA[
voucher_input = (
    H(message_1):  bstr,
    CRED_R:        bstr,
)
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>H(message_1) is copied from the associated voucher request.</t>
  <t>CRED_R is a CWT Claims Set (CCS, <xref target="RFC8392"/>) containing the public authentication key of V, PK_V, see <xref target="V_2"/></t>
</list></t>

</section>
</section>
<section anchor="U-V" title="Device &lt;-&gt; Authenticator (U &lt;-&gt; V)">

<t>This section describes the processing in U and V, which execute the EDHOC protocol using their respective authentication credentials, see <xref target="fig-protocol"/>. Normal EDHOC processing is omitted here.</t>

<section anchor="m1" title="Message 1">

<section anchor="processing-in-u" title="Processing in U">

<t>U composes EDHOC message_1 using authentication method, identifiers, etc. according to an agreed application profile, see Section 3.9 of <xref target="I-D.ietf-lake-edhoc"/>. The selected cipher suite, in this document denoted SS, applies also to the interaction with W as detailed in <xref target="reuse"/>, in particular, to the key agreement algorithm which is used with the static public DH key G_W of W. As part of the normal EDHOC processing, U generates the ephemeral public key G_X which is reused in the interaction with W, see <xref target="U-W"/>.</t>

<t>The device sends EDHOC message_1 with EAD item (-TBD1, Voucher_Info) included in EAD_1, where Voucher_Info is specified in <xref target="U-W"/>. The negative sign indicates that the EAD item is critical, see Section 3.8 in <xref target="I-D.ietf-lake-edhoc"/>.</t>

</section>
<section anchor="processing-in-v" title="Processing in V">

<t>V receives EDHOC message_1 from U and processes it as specified in Section 5.2.3 of <xref target="I-D.ietf-lake-edhoc"/>, with the additional step of processing the EAD item in EAD_1. Since the EAD item is critical, if V does not recognize it or it contains information that V cannot process, then V MUST discontinue EDHOC, see Section 3.8 in <xref target="I-D.ietf-lake-edhoc"/>. Otherwise, the ead_label = TBD1, triggers the voucher request to W as described in <xref target="V-W"/>. The exchange between V and W needs to be completed successfully for the EDHOC exchange to be continued.</t>

</section>
</section>
<section anchor="m2" title="Message 2">

<section anchor="V_2" title="Processing in V">

<t>V receives the voucher response from W as described in <xref target="V-W"/>.</t>

<t>V sends EDHOC message_2 to U with the critical EAD item (-TBD1, Voucher) included in EAD_2, where the Voucher is specified in <xref target="U-W"/>.</t>

<t>CRED_R is a CWT Claims Set (CCS, <xref target="RFC8392"/>) containing the public authentication key of the authenticator PK_V encoded as a COSE_Key in the ‘cnf’ claim, see Section 3.5.2 of <xref target="I-D.ietf-lake-edhoc"/>.</t>

<t>ID_CRED_R contains the CCS with ‘kccs’ as COSE header_map, see Section 9.6 of <xref target="I-D.ietf-lake-edhoc"/>. The Signature_or_MAC_2 field calculated using the private key corresponding to PK_V is either a signature or a MAC depending on EDHOC method.</t>

</section>
<section anchor="processing-in-u-1" title="Processing in U">

<t>U receives EDHOC message_2 from V and processes it as specified in Section 5.3.2 of <xref target="I-D.ietf-lake-edhoc"/>, with the additional step of processing the EAD item in EAD_2.</t>

<t>If U does not recognize the EAD item or the EAD item contains information that U cannot process, then U MUST discontinue EDHOC, see Section 3.8 in <xref target="I-D.ietf-lake-edhoc"/>. Otherwise U MUST verify the Voucher by performing the same calculation as in <xref target="voucher"/> using H(message_1) and CRED_R received in ID_CRED_R of message_2. If the voucher calculated in this way is not identical to what was received in message_2, then U MUST discontinue the protocol.</t>

</section>
</section>
<section anchor="message-3" title="Message 3">

<section anchor="processing-in-u-2" title="Processing in U">

<t>If all verifications are passed, then U sends EDHOC message_3.</t>

<t>The Signature_or_MAC_3 field calculated using the private key corresponding to PK_U is either a signature or a MAC depending on EDHOC method.</t>

<t>EAD_3 MAY contain a certificate enrollment request, see e.g., CSR specified in <xref target="I-D.ietf-cose-cbor-encoded-cert"/>, or other request which the device is now authorized to make.</t>

<t>EDHOC message_3 may be combined with an OSCORE request, see <xref target="I-D.ietf-core-oscore-edhoc"/>.</t>

</section>
<section anchor="processing-in-v-1" title="Processing in V">

<t>V performs the normal EDHOC verifications of message_3. V may retrieve CRED_I from W, after V learnt ID_CRED_I from U.</t>

</section>
</section>
</section>
<section anchor="V-W" title="Authenticator &lt;-&gt; Authorization Server (V &lt;-&gt; W)">

<t>V and W are assumed to be able to authenticate and set up a secure connection, out of scope for this specification, for example TLS 1.3 authenticated with certificates. V is assumed to authenticate with the public key PK_V, see <xref target="domain-auth"/>.</t>

<t>This secure connection protects the Voucher Request/Response Protocol (see protocol between V and W in <xref target="fig-protocol"/>).</t>

<t>The hash of EDHOC message_1, H(message_1), acts as session identifier of the Voucher Request/Response protocol, and binds together instances of the two protocols (U&lt;-&gt;V and V&lt;-&gt;W).</t>

<section anchor="voucher_request" title="Voucher Request">

<section anchor="processing-in-v-2" title="Processing in V">

<t>Unless already in place, V and W establish a secure connection. V uses H(message_1) as a session identifier associated to this connection with W. If the same value of H(message_1) is already used for a connection with this or other W, the protocol SHALL be discontinued.</t>

<t>V sends the voucher request to W. The Voucher Request SHALL be a CBOR array as defined below:</t>

<figure><artwork><![CDATA[
Voucher_Request = [
    H(message_1):    bstr,
    SS:              int,
    G_X:             bstr,
    ENC_ID:          bstr,
  ? PoP_V:           bstr,
]
]]></artwork></figure>

<t>where the parameters are defined in <xref target="U-W"/>, except:</t>

<t><list style="symbols">
  <t>PoP_V is a proof-of-possession of public key PK_V using the corresponding private key. PoP_V is optional.</t>
</list></t>

<t>Editor’s note: Define PoP_V (include G_X, ENC_ID in the calculation for binding to this EDHOC session). One case to study is when V authenticates to U with static DH and to W with signature.</t>

</section>
<section anchor="processing-in-w" title="Processing in W">

<t>W receives the voucher request, verifies and decrypts ENC_ID, and associates the session identifier H(message_1) to ID_U. If H(message_1) is not unique among session identifiers associated to this identity, the protocol SHALL be discontinued.</t>

<t>W uses the identity of the device, ID_U, to look up and verify the associated authorization policies for U. This is out of scope for the specification.</t>

</section>
</section>
<section anchor="voucher_response" title="Voucher Response">

<section anchor="processing-in-w-1" title="Processing in W">

<t>W retrieves the public key of V, PK_V, used to authenticate the secure connection with V, and constructs the CCS (see <xref target="V_2"/>) and the Voucher (see <xref target="voucher"/>).</t>

<t>Editor’s note: Make sure the CCS is defined to allow W to generate it uniquely from PK_V.</t>

<t>W generates the voucher response and sends it to V over the secure connection. The Voucher_Response SHALL be a CBOR array as defined below:</t>

<figure><artwork><![CDATA[
Voucher_Response = [
    H(message_1):   bstr,
    Voucher:        bstr
]
]]></artwork></figure>

<t>where</t>

<t><list style="symbols">
  <t>H(message_1) is copied from the associated voucher request.</t>
  <t>The Voucher is defined in <xref target="voucher"/>.</t>
</list></t>

</section>
<section anchor="processing-in-v-3" title="Processing in V">

<t>V receives the voucher response from W over the secure connection. If the received session identifier does not match the session identifier H(message_1) associated to the secure connection, the protocol SHALL be discontinued.</t>

</section>
</section>
</section>
</section>
<section anchor="rest-interface-at-w" title="REST Interface at W">

<t>The interaction between V and W is enabled through a RESTful interface exposed by W.
V SHOULD access the resources exposed by W through the protocol indicated by the scheme in LOC_W URI.
In case the scheme indicates “https”, V SHOULD perform a TLS handshake with W and use HTTP.
In case the scheme indicates “coaps”, V SHOULD perform a DTLS handshake with W and access the same resources using CoAP.
In both cases, V MUST perform client authentication to authenticate to W, using a certificate containing the PK_V public key.</t>

<section anchor="http-uris" title="HTTP URIs">

<t>W MUST support the use of the path-prefix “/.well-known/”, as defined in <xref target="RFC8615"/>, and the registered name “lake-authz”.
A valid URI thus begins with “https://www.example.com/.well-known/lake-authz”.
Each operation specified in the following is indicated by a path-suffix.</t>

</section>
<section anchor="voucher-request-voucherrequest" title="Voucher Request (/voucherrequest)">

<t>To request a voucher, V MUST issue an HTTP request:</t>

<t><list style="symbols">
  <t>Method is POST</t>
  <t>Payload is the serialization of the Voucher Request object, as specified in <xref target="voucher_request"/>.</t>
</list></t>

<t>In case of successful processing at W, W MUST issue a 200 OK response with payload containing the serialized Voucher Response object, as specified in <xref target="voucher_response"/>.</t>

</section>
<section anchor="certificate-request-certrequest" title="Certificate Request (/certrequest)">

<t>V requests the public key certificate of U from W through the “/certrequest” path-suffix.
To request U’s authentication credential, V MUST issue an HTTP request:</t>

<t><list style="symbols">
  <t>Method is POST</t>
  <t>Payload is the serialization of the ID_CRED_I object, as received in EDHOC message_3.</t>
</list></t>

<t>In case of a successful lookup of the authentication credential at W, W MUST issue 200 OK response with payload containing the serialized CRED_I.</t>

</section>
</section>
<section anchor="sec-cons" title="Security Considerations">

<t>This specification builds on and reuses many of the security constructions of EDHOC, e.g., shared secret calculation and key derivation. The security considerations of EDHOC <xref target="I-D.ietf-lake-edhoc"/> apply with modifications discussed here.</t>

<t>EDHOC provides identity protection of the Initiator, here the device. The encryption of the device identity in the first message should consider potential information leaking from the length of the identifier ID_U, either by making all identifiers having the same length or the use of a padding scheme.</t>

<t>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_I from ID_CRED_I, or this credential lookup function may be separate from the authorization function of W. 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 reveal’s U’s identity, CRED_I could be sent in Voucher Response.</t>

<t>As noted Section 8.2 of <xref target="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 server.</t>

<t>The private ephemeral key is thus used in the device for calculations of key material relating to both the authenticator and the authorization 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 identifier of U (ID_U), and produce the encryption of ID_U which is included in Voucher_Info in EAD_1.</t>

</section>
<section anchor="iana" title="IANA Considerations">

<section anchor="iana-ead" title="EDHOC External Authorization Data Registry">

<t>IANA has registered the following entry in the “EDHOC External Authorization Data” registry under the group name “Ephemeral Diffie-
   Hellman Over COSE (EDHOC)”.
The ead_label = TBD_1 corresponds to the ead_value Voucher_Info in EAD_1, and Voucher in EAD_2 with processing specified in <xref target="m1"/> and <xref target="m2"/>, respectively, of this document.</t>

<texttable title="Addition to the EDHOC EAD registry" anchor="ead-table">
      <ttcol align='right'>Label</ttcol>
      <ttcol align='left'>Value Type</ttcol>
      <ttcol align='left'>Description</ttcol>
      <c>TBD1</c>
      <c>bstr</c>
      <c>Voucher related information</c>
</texttable>

</section>
<section anchor="the-well-known-uri-registry" title="The Well-Known URI Registry">

<t>IANA has registered the following entry in “The Well-Known URI Registry”, using the template from <xref target="RFC8615"/>:</t>

<t><list style="symbols">
  <t>URI suffix: lake-authz</t>
  <t>Change controller: IETF</t>
  <t>Specification document: [[this document]]</t>
  <t>Related information: None</t>
</list></t>

</section>
<section anchor="well-known-name-under-arpa-name-space" title="Well-Known Name Under “.arpa” Name Space">

<t>This document allocates a well-known name under the .arpa name space according to the rules given in <xref target="RFC3172"/> and <xref target="RFC6761"/>.
The name “lake-authz.arpa” is requested.
No subdomains are expected, and addition of any such subdomains requires the publication of an IETF Standards Track RFC.
No A, AAAA, or PTR record is requested.</t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC8392;
&RFC8949;
&RFC9052;
&RFC9053;
&I-D.ietf-lake-edhoc;


    </references>

    <references title='Informative References'>

&RFC2119;
&RFC3172;
&RFC6761;
&RFC7228;
&RFC8174;
&RFC8446;
&RFC8615;
&RFC9031;
&RFC9180;
&I-D.ietf-core-oscore-edhoc;
&I-D.ietf-cose-cbor-encoded-cert;
&I-D.ietf-lake-reqs;
<reference anchor="IEEE802.15.4" >
  <front>
    <title>IEEE Std 802.15.4 Standard for Low-Rate Wireless Networks</title>
    <author initials="." surname="IEEE standard for Information Technology">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>


<section anchor="use-with-constrained-join-protocol-cojp" title="Use with Constrained Join Protocol (CoJP)">

<t>This section outlines how the protocol is used for network enrollment and parameter provisioning.
An IEEE 802.15.4 network is used as an example of how a new device (U) can be enrolled into the domain managed by the domain authenticator (V).</t>

<figure title="Use of draft-selander-lake-authz with CoJP." anchor="fig-cojp"><artwork type="aasvg" align="center"><![CDATA[
U                                    V                              W
|                                    |                              |
|                                    |                              |
+ - - - - - - - - - - - - - - - - -->|                              |
|    Optional network solicitation   |                              |
|<-----------------------------------+                              |
|          Network discovery         |                              |
|                                    |                              |
+----------------------------------->|                              |
|          EDHOC message_1           |                              |
|                                    +----------------------------->|
|                                    |    Voucher Request (VREQ)    |
|                                    |<-----------------------------+
|                                    |    Voucher Response (VRES)   |
|<-----------------------------------+                              |
|          EDHOC message_2           |                              |
|                                    |                              |
|                                    |                              |
+----------------------------------->|                              |
|   EDHOC message_3 + CoJP request   |                              |
|                                    |                              |
+<-----------------------------------|                              |
|            CoJP response           |                              |
|
]]></artwork></figure>

<section anchor="network-discovery" title="Network Discovery">

<t>When a device first boots, it needs to discover the network it attempts to join.
The network discovery procedure is defined by the link-layer technology in use.
In case of Time-slotted Channel Hopping (TSCH) networks, a mode of <xref target="IEEE802.15.4"/>, the device scans the radio channels for Enhanced Beacon (EB) frames, a procedure known as passive scan.
EBs carry the information about the network, and particularly the network identifier.
Based on the EB, the network identifier, the information pre-configured into the device, the device makes the decision on whether it should join the network advertised by the received EB frame.
This process is described in Section 4.1. of <xref target="RFC9031"/>.
In case of other, non-TSCH modes of IEEE 802.15.4 it is possible to use the active scan procedure and send solicitation frames.
These solicitation frames trigger the nearest network coordinator to respond by emitting a beacon frame.
The network coordinator emitting beacons may be multiple link-layer hops away from the domain authenticator (V), in which case it plays the role of a Join Proxy (see <xref target="RFC9031"/>).
Join Proxy does not participate in the protocol and acts as a transparent router between the device and the domain authenticator.
For simplicity, <xref target="fig-cojp"/> illustrates the case when the device and the domain authenticator are a single hop away and can communicate directly.</t>

</section>
<section anchor="the-enrollment-protocol-with-parameter-provisioning" title="The Enrollment Protocol with Parameter Provisioning">

<section anchor="flight-1" title="Flight 1">

<t>Once the device has discovered the network it wants to join, it constructs the EDHOC message_1, as described in <xref target="U-V"/>.
The device SHALL map the message to a CoAP request:</t>

<t><list style="symbols">
  <t>The request method is POST.</t>
  <t>The type is Confirmable (CON).</t>
  <t>The Proxy-Scheme option is set to “coap”.</t>
  <t>The Uri-Host option is set to “lake-authz.arpa”. This is an anycast type of identifier of the domain authenticator (V) that is resolved to its IPv6 address by the Join Proxy.</t>
  <t>The Uri-Path option is set to “.well-known/edhoc”.</t>
  <t>The Content-Format option is set to “application/cid-edhoc+cbor-seq”</t>
  <t>The payload is the (true, EDHOC message_1) CBOR sequence, where EDHOC message_1 is constructed as defined in <xref target="U-V"/>.</t>
</list></t>

</section>
<section anchor="flight-2" title="Flight 2">

<t>The domain authenticator receives message_1 and processes it as described in <xref target="U-V"/>.
The message triggers the exchange with the authorization server, as described in <xref target="V-W"/>.
If the exchange between V and W completes successfully, the domain authenticator prepares EDHOC message_2, as described in <xref target="U-V"/>.
The authenticator SHALL map the message to a CoAP response:</t>

<t><list style="symbols">
  <t>The response code is 2.04 Changed.</t>
  <t>The Content-Format option is set to “application/edhoc+cbor-seq”</t>
  <t>The payload is the EDHOC message_2, as defined in <xref target="U-V"/>.</t>
</list></t>

</section>
<section anchor="flight-3" title="Flight 3">

<t>The device receives EDHOC message_2 and processes it as described in <xref target="U-V"/>}.
Upon successful processing of message_2, the device prepares flight 3, which is an OSCORE-protected CoJP request containing an EDHOC message_3, as described in <xref target="I-D.ietf-core-oscore-edhoc"/>.
EDHOC message_3 is prepared as described in <xref target="U-V"/>.
The OSCORE-protected payload is the CoJP Join Request object specified in Section 8.4.1. of <xref target="RFC9031"/>.
OSCORE protection leverages the OSCORE Security Context derived from the EDHOC exchange, as specified in Appendix A of <xref target="I-D.ietf-lake-edhoc"/>.
To that end, <xref target="I-D.ietf-core-oscore-edhoc"/> specifies that the Sender ID of the client (device) must be set to the connection identifier selected by the domain authenticator, C_R.
OSCORE includes the Sender ID as the kid in the OSCORE option.
The network identifier in the CoJP Join Request object is set to the network identifier obtained from the network discovery phase.
In case of IEEE 802.15.4 networks, this is the PAN ID.</t>

<t>The device SHALL map the message to a CoAP request:</t>

<t><list style="symbols">
  <t>The request method is POST.</t>
  <t>The type is Confirmable (CON).</t>
  <t>The Proxy-Scheme option is set to “coap”.</t>
  <t>The Uri-Host option is set to “lake-authz.arpa”.</t>
  <t>The Uri-Path option is set to “.well-known/edhoc”.</t>
  <t>The EDHOC option <xref target="I-D.ietf-core-oscore-edhoc"/> is set and is empty.</t>
  <t>The payload is prepared as described in Section 3.2. of <xref target="I-D.ietf-core-oscore-edhoc"/>, with EDHOC message_3 and the CoJP Join Request object as the OSCORE-protected payload.</t>
</list></t>

<t>Note that the OSCORE Sender IDs are derived from the connection identifiers of the EDHOC exchange.
This is in contrast with <xref target="RFC9031"/> where ID Context of the OSCORE Security Context is set to the device identifier (pledge identifier).
Since the device identity is exchanged during the EDHOC handshake, and the certificate of the device is communicated to the authenticator as part of the Voucher Response message, there is no need to transport the device identity in OSCORE messages.
The authenticator playing the role of the <xref target="RFC9031"/> JRC obtains the device identity from the execution of the authorization protocol.</t>

</section>
<section anchor="flight-4" title="Flight 4">

<t>Flight 4 is the OSCORE response carrying CoJP response message.
The message is processed as specified in Section 8.4.2. of <xref target="RFC9031"/>.</t>

</section>
</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAJ57QmQAA9192XYbR5LoO74iD/QgwAIgkZTVFqfdY4qkLdqSyMsNPdPd
h6cAJIhqFarQlQVStKV5naf7DXfuT8wHzPJfE1tmZdYCUl76Ydh9LABVlRkZ
GRl7RA2Hw04RF4neVW/i60Vxq/G/am9dLLI8/jEq4ixV8yxXhwevj/c7s2ya
Rku4eZZH82JodBKlM50Pk+i9Hkbw0I/DZ1udTrzKd1WRr02x/ezZy2fbnWlU
7CpTzDpmPVnGxsCoxd0Kxjk6PP+2E+U62lVnerrO4+Kuc5vl76/zbL0CmPZ+
OFRj+B6n1+o7/K3zXt/BDTN4NC10nupieICwdKbZDG7aVetiPvyqs4p31SM1
jVK1NlpFeR7dqV48V1GSqDtt+gqWtIjMQi10rjtKFdl0Fy/AR5PlRa7nxn2/
W/pf4c6ZXhWLXbXd6USEp93OUDFavvvPf89hzjPBCz69zvmS91uWA5yHeTw1
BrC79wp+mmbrtMjv4LZbPdMp/KKXUZzsqusMBhxZRH+j5anRNFu6Wb/PFqk6
yfX6P/+fehsVBd4AI8RpXMRRApB/7wNSv/Fz4PkrzDVayrPN4LyNkvi//3+k
Ltf/9X8Bhv/6V392/0ea9+jd6dGeP+O3sOCpLmdcwnAmGt2sp/Dc9Js4zeNo
NM/L6eLpItKJOsV/8xkvyc0X/EoTniEmkyVuUzYvboH4iMKMD8N+lEazyINh
mj+JdTH/xtiHR9PIQbC3znUSZ+psutBJotNJtF4GWx/+zstODZy7daFVNleH
y4mezfRMnd2ZQi/NQP3z670x3BpNJrm+2bVfvV2Jix91jkRRAhkxGPl6otNZ
lMfZyHgTf/PjIrodTRedTifNctjB+EbvduDp02/3v9p5ub0rH18+fykfXz77
crv8uIMfj4YHI8QDH3g9W8CxgeOezqsjbm9t2WF2tn5nh3nxuxdb8vF329tf
2Sm3fvfcfnz+/IX9+GLrSzf7jn3s5dZXzwJAplmuh5mhfwSe4KrRw+kky4c6
BQahZ8Opzov6SnL9N0O/Hh4efvVse7T15YhAguPOzLGLV9RZMVP2MnyJEM0z
Yo9vstvhaQS7OY5hE7Qx6p0ukJGZLg1jGYWivzg1dkjjj3JkEQnH8FxPF2mW
ZNd33U7nRqdrjU8LX+xWmbVOixiYLJDQD/pOHX4Aok+vNc7NfLYbMFH8nWmm
i8v/BhExArLE36N8CrytuyiKldl9+hRvw59gb0f2tqf4w9NJnt0a/RQHeIoP
XsfFYj2BRy0nOdVG053RFISDFRB4awKQmsKbxfKRXB4Z8WCjOAsfftoqd0aL
YpkApobDIZwaU+TRtOh0zhexUSC01ktAkJppM83jiTYqUqs8m+oZnBhCfLS+
xjsQQYBLlXjYjQLsHsTzeayHr+FYIQcBYaS0IBuHBOGQJSwrFRzRBYwWw96u
ory4UxHIPYODRL50Hagiyq81zT3NUoQ8TuGmo+wcAF4l2R1CZlQPqF/hqemP
eJXLeDZLdKfzCCVhns3WU6Ib9dOjGL9/goP+LSxt05g//SQn8dMnWnd2o/OF
jgDCdMYYApAZrgIQt0bgJ3fKiKR2KzZATXdqopWJr9N4DrgCbN8ugPWqZQZs
AbebJjArPaXrBCpwPh/T5WjFIgLEw95kqyJexj8CDAM4NITHeLoGghyoJcAW
XXsw94zWsKL6wf70CVD2d6UEJoAqLMSeANNVwhg2E8YIyVd74MXpTZbcEMwz
fRNP9QA/ZXBCUx+2DJCD+xel4XiwbTngakSj8gB8n/+oWukceZBarot1lPgX
cQh7v0e9DnggDMRY05xCC7CUmxhQr5BF3iCNhDfHHvsrMhpN4OxFqnuTrUGc
5d0+QSHXA+BLjPE5BNBguy05hSuZAHvWOm1HBJCL4ALWRltGu8q4nek5HCim
aTht+jp3FB3VaKZcYLmXa2Mp7PADqrGA6lDnPoiKSPUO9w76CsgssVPO8BgQ
ILDYoxTJyCPrW03HHXCc09jMWQhC5IdWl+fdqODeqFRr1EEAs3CSuzrNMyBt
GLY7oKf0h2i5SjRogKCHAfARPEAijq7idPM4NwVIzCVsmB5djwbMYFB8wxkc
KGAgKi5IK4cZotUqiXk+CwqcZhgnb4DbVPdWp9EkobOQZLeOGZCChJQoW0dw
BuvE3SuXJkwFrAJQIGmTQzJBrgPEDdwFdjZGcv7bGjQJLSgEpIHiuxS0WnRE
U+Sbo85RoebrnBYEKrcBYEvoE80ceJ5nS2EXCUxDRJHB7cDNATV2WQZQYxRM
4zPzJE7fM1pib2T4TIidInoIt7CumVY3oBBqYNmwDqML5G+GSVl2YwlP8WbM
gLGBUVQ7naQFFHpaAP3ivI8egY6CKCYlRaHgKcrvn3i/kC2iuWZU9+3F2TmQ
Ev2r3h3T59PD/3NxdHp4gJ/PXu+9eeM+2DvOXh9fvDkoP5VP7h+/fXv47oAf
hl9V5ae3e//U5SV2j0/Oj47f7b3p4h6GRwalDFM8Udsq18SIjRMRdOJe7Z+o
redMzqjaAhenz6i6IkcHkuGpsjS5k6+w8Xe4F6DQ4BBoeU6jVVyARYZcU5lF
dpuS/QnIPIXN17khcPQHkJIFb8YiukHmpNao7pCuiCQCm7j/6vhUYACNHWDA
2TfKnVFnD4CBAT6o/dEWjtEmoFDcA40BiBkc5Ulk4inxZlCsMjjCODXuP1iS
GRDZUh0QqlZEJT89AlKcDBF7QgK9VVbgiQIE3PkE3HfM/aKvbiM8DbBgPpu4
GVkp3VDGw7cq9YeizJPORo45nMopfgnoGBaOzKqXZukwBKdBlKreZd8KbA2b
layYx4sw4k1fAvJYFnicJUdWYQqBsVFKIzGCjTiowF7U5TMxRwPM03hTwIbe
K9Ma1xSjvgY8wa3rV9F3W8muosWYQGWIGjaiUYXojfvA6hkqXJGqPObY70Qv
YlQQWtAuWggeo3Z9w9MwGseA44uqm6UliwkRUtnkr3CAwWLi6z67iYnIWQ0G
RXqNcrhEpJMq/oYQ8eMsVfJH9KFgwaU4gYLeBFYPzkAdjpNkjc+IegV7NI+v
hzjiTaxvcXM6/1L+qSgyN9dio/p/l0ztwRXedLRYO0+G7u+JUh/xKv7H+9le
k4EarnU+lkN/9Ab5qMI/+H7KJ6vhGg5ywDuoPsKgOHI2HP6BbjzgjaQby4nh
Wqh4fQwg+T0NkuGdH31DG2gArrk/fuSMKdVCooizOUieDC0kiriKXY7DiZ0X
Kd0bxN3o/mnEiVkBeegGnIS7455v2B33V98dVfuzNOETUOenXfXIpzB2n3zd
PbbfgTytUjMHxW2k3hAhC+O6oIN3yXpVSeyoNyb+fZd035iU1qwYWViujkhI
4RCCUxSnRvQ8JtgN6vaoC/cTDxlGcADTr7tTjTpBF03pR2oPrQkScoaUn4NS
ev30iPkG3HgByquVBsCoNbIKe1TQHYuU06BoqmmOflaUkmofFKKro1GH/yXT
2te/J6QQ/HH05bOXCr1ZbE9r9GhHrBaM9USdZ+8BUb398blo4ejjI0sYnQIx
zeUMcWBJ4wFgnxXJmxj989bqgbns3YDQo4OriwFrrcysxqDHoGqDUInGCSoU
6JrA/exC8CEc219FBLeRmjnVVd7bhpgBLTEAhwCJYItRiQccoL8VuGs0RZ2K
5gRtK6svyuf8rNSMdzudL9Qe+uNgarVaT0CHVgevSeQB1Y5V77srOJigx5No
QJ4NTJ70/3VqgW0zK+vSjJ0VF8Mx7ckX6k02rRvBDFqrVd17c7yPMJF9K3o8
wQeC4XKkyDBAgXO3AvhQ+4rUxekRHSfx14h/Rc8Gig020l89sYcIZV1f2Ode
TTsC4qdL5IeDE3DZegKYSaFx+pATcCon4JS2UQElq/0kipcG+GwBlL1/FlK2
VVutYS1bWJlFtvNyoE5+uIL/8j5cXsEICDrawKyHAiHA82bB3i5d2WhawBh1
Y41Kf7BrgCXaGNZ8wucaOBh7KazdzX4X3KtADxOHXEGGwT+0o44133BO566D
yZCe0AScZis9QFVOrwr2exnrnEP60WhUW1vJ6Kn4oy6JbtBmzuN0GuM5xvBa
aTH6gLA3rYSTTdsLq1vBgSq3l6jWuRHQ55LDqXid3QIbAUX5UpHRiMcY9jUz
RlMIEVcCkKB70e4rbqqwM9CL4ARaFCOjBAh6cDSWOkpNoMazjEDo5DDRuj2C
RISAxYy3XHqOFwDOeCYFOaeDLcWxLqvqPa7dqd5CpQg+wc7qHBlelU12WmKp
wMInmBqxEOCEVVKHl9B9c/7mTG2NduToPH/+gixDNV+jXR+uCBVXWhLuutVZ
wToFgOPigZO7TQGquQRz3zKaCdLRNFnP2JWEjuOIIJAh8DBbhRa/250Ss6pi
wPgTTrM8Z0YjJIfTMw8LZf6ZMyw6nTFGg4OhhPXXRgMpMCgVdSsOhEkUtQNP
IF5U+X3VcnvgAabZaMTLjYcZwUBOhpDBEnHbaGkP2qiAE5DN4PN3NBnGpSeX
TnRdQM3geWPdjZ5RbGFP3UGvmNOMJvmKk42J+GQ+eNRteTihd1ZhQFBRWPcA
03oOGhw8h9ub6ChPWZ6yDsH+sAtakuP8qMncYNQL1RkwWa080R9gG4oAeXIg
K+or+UaQ9Z/IDUR7VgVGEzHXutxU2RL2/Vxn5N9JfcckaCZbo3tiChW9A5VS
hKXHW9evOzU6205ttgbVU2dE2NHqrpB2hQZO0c5I7aWlfwDQJBs5zHUihrsT
kwPv/PsHPC6MTuaDthW1TY4BoVkcVQIRAfCwL2z/2o0DvDlCjtjLZI0UHMA3
VAAM0C0SPhG+VGTmusxyLbcYouEzvqp2NnraGs3vi7qtFRpe91yHv3GnagZW
/+67rnzz8+zi6PzwDE/Td1d/HKjDvYOrrdZB/uPfKqNUjcnK3x8+CxTrd5C9
YTgYlNe95RaQwdmZBfPd/tXRwUD940l2AmwtNKcb/+6BlIB9IGYrRwvID2Rf
v2E5mwbZfMvnDSLYcc6GBw/y+3uR8uTBkJRYEUaDaDnrO0gO02kPjEXWC2Er
315tM7lt9x+Kk3vAffKgQdznkNi2K8t54CAtd3zGID5ejggvO/2HD/KbHsCd
6nJ6+6UoTrLs/Xq1268P0jJN8M2tuA2SlkF+lVN8P9n/nC2uredXopPOLeUx
0iFXX+Nht/yx32F27WI6vq9slw1Vyyvp1u3arbvq7d5+zx9T1KvTfrP3zylG
4v0bt2Q4kPIlLj80uSPQqSkAvCtEVvUL9sg9AfoBx8ecgMYAuQ2ooTg28ZKN
lLv+IPAHtmo6Yo9vcgGCDneKYVznYlc/PaK47qdKaNo53a3+XNE5JBhs0LaF
QwK6PsASOO/JF0VCDPWQxx8eky641KjKinKiVwu9pOetq6oeqUHbjDKPQB+2
rjAyIUT/blFgxyOcvhT6ZNTEK7KT13Hh52+g+u+sIVLnbKKP3SP/QTWkcCco
SmmG11BUE1B+OkWUXAOBFIulGFdV2NSRnwcEY5T0Wned9UJd7MUGXaxPqYtK
fSGbuweHoQRm11l6Op3md6sGKyJ4mnKLq08jaeK+zDSZXTYdAQadRgkup9C+
KhwMCEcQ7Jf0mpyXoOLCNuzaH0ITOXgsCNg1rCac2CzABpmhapvroop5JAri
JSKSOXR+TwZL5YiW7n9gSRQ6taJ1oNDM5rBZcjeoKNFfbVKiVZjbZY1Xg2CC
OaGBkshq1NHsCqw6nQCHPH91sGWtzThKoyFcZMv8C0/uIIROH6H1WryJD7pm
aVSN+ZLDgW1kWVTE1DPJiiJb8spCFoEeLzR7kduMcbpsghTujNqNk7JJSwbo
xnsuLRcn5gD8KgWemAvTKlcNX7xN8tylzCWs3+Yqy6+ARpEsYLW1n3dUj3OZ
2URDzY5vBFWmiUkC3/bcuTMkpWudamaqZfJUxX/BXPyiSksUBXLZFuqva1NY
Q9+FLCIT+NuFz3tbyRglThV7XgDjaHumMbsCbXerIcFpmIWU/OUmBlRLX0PW
KMJCzhlmQ3Gmx4cV/lPhJl42Uc9O+fyeKb+gdVHyi1jQamX0epYNgSJmMB65
Jk9/QCKhqdwGCDy9/q6wHLzra/eziZJioI5+eNsvo4dfKFJUFF6DW599UD1c
2Y86z4bCzJC1KRCfMEPwIAxEdIqI2D94XeFVICzHque42YxRAb+Knx0473dX
Y/ryxz6n97h0OoupFyNnrUvKOxH5eY0xNmACd6PXL/2C3vCIWOfGbJIO9lqj
zAzp5/loe7RhP0lvCGH92gIHmzMgCTkQsdFHecd6Y6nFUS4/PNRD1DOz3EXi
GOB38sl+KOAXTLCmn2TTQKDQTX1PH/SDpL8f/qHF+XpB18YYRkLnaOUIVEQQ
BYajPEfPJJ5U4CbWJYiRUGSRxCpcpMQNwMk5s1UWo55VMhDQB+HwJCg3yBG5
uJvk8cz3you8J2/TFHUuydqQ7GksSEAyuVDunNZih/jjeMCe4yK71pQSWPNd
tzmcS00PLyNJx2nVC8JaLqEaPfgRqRoSgCqXXQr7qPH4MHNnnRY5cM3LzVRv
HwJwjB8KJdRXdmzAZ63ZdyaHi56zSkpN4fP3vJYnkLapE6qHzvZLWgZeqMXd
mCRa7QJ4/NL66h8BHdsbKd+F0Wq1nornGxdTMblAHbeqSLMmwulq8COQ4lrD
j76R5u2DxPc9FrkbWmBBIsTXdEzVCOtfghGvzvTfgsdax8A7LTdgW3GX+XFh
GYCYjvwzzhfwgH+xlilGuPFxSm5qCnVjiH1QRq9R16SBLc+XY4iXk2xCFHFH
oaMgH4DUrRWG+0gQkxCw8UBPOEQYnUyS7NYA/sp5HjPjRR73mHIsj88Orw55
4mdOov7Hv3052h5+OdrxRYUEoJertRM+HOHAWXifWNB67ASP8w9CuGmGwcqj
S/xKFhKLl3pUFnMFHjv+9pipwiMICghhJvUzujGJYubZOMljS7NXUQSPwuA0
ZIWGymfsxmP+xq7vcBD2H+60/9mfyA1zdhYMokSutNGLzRpxO1w4ZmrLH35x
QglzPEneEY32zJJcsw2LCoOYxpZ/lQoYwIc7ukHolmLC0QbcsFoXFmgSwIDf
NXDUXsmNiYB8ngFfrTyGXxaPH+N1MRCNZxl6MqjJsHXWZNNaiB7/zovBtTx7
1rYaPicPW4/Pt396ZGOKvE4XbSL6kvwAiVdecNyeQ8JlDQjls1jHB0VVhaI4
ZEvPMMHahF22sDOsJlrr0OPCgVC2KTxYQHy5VOnSeK4ScDazBQiTOJ2Z+81B
YoGlpLRupoHUrthSLqZ2p5iEKoLdn7qv6CHScPtXkIY/QxCGMrBdEw44kCco
HC5+Nn0DsPXT6sEkm39FwwZE3+r3ER7pBvTwgePe5tFqJZIgBJ3usSUsFYQF
cDiW7Tt9d1Wp9ovnYDcUCG2c3B+FcztXsS8l4fhlU3YMVNI8UNr9vZPA6laL
F0Vmc+WSzZXLT1J9I/qsV1ZY2Jx3LqCMnc5qiZizCbTHxxxvcNZJnHuOjA1e
JruA0IUyUu9Qu0rK4R00YI4u4wLxLeUnyCrfCrfZgrUttwgRj6jGw18EZlWS
wxoZfzUUy4BX4LRukFJLA3h1MR1hnVSWWysHufB1jjkrUr5kc57mYDlU3YEv
73EHttrStfKfwBVNBWniJ3cHvCydk5y/ikHjTn2tQlWGQGKjpXG9kRNUoXVV
ct2mBFT0XaCGTE5Ev/Igbd5iTOa1/jLTHC+wxqQDg5bhYgP1hVsqoxwmp/rQ
QQGhNauTAxdNWlbfG7LP1Tcv+jZowGWN7Fxm5hZYMnEtJYmBoK1O9TW1HqAc
Mrg6c2U04md1IFBOX4yUmdQdzDRsW5ZG01m4xHzIXE91fNNwFoi5XfiF1FS/
U8uucp7B0ba1KBqBGHiZT7MZeSBhL02hV5wF6SALVyxYHakzyoZsR0eMWsIs
05RRj8vKrlM0IwBkzBcvmqMskuA4jVJ8SqAg/3RqkzZnsXEqkGgdn4F6dYzO
ktvYaPZ61334IP2vr7F0rilLkHItq8V8Ytoz9bjgSNVD4OeDIcdLqDDQrKm4
c75GDc2m2vHeu5HsM7zoWYW9biN73W5mr5dYRIliKCCtcGHioCD6al8bDtB0
Krc5Y8/RkiWA1nNaP6Lb9oj6DpS2E9r5DXO460lelL8onT4QNRGb8NgSQ9ja
42k6f6ymCEOVDuEEbk7VKmMi7izgkLAIxufj99OpIbMaZ1ULKum8WkarcKaX
G8OQTJUNYRWuAvd00+YoSGP2K5kWMbkdg1Rb/IoKJocuJPPQj160sD5SA1pY
37b1unwG69vZiPpfxPq2cePQK9TA24L77Vm239v53UUzv7v4dfmdHc/L37WH
LaxvJ6UB614sbVBc2fAsLpNWyCVQxXGHhKJlMyuxPy9cuz1SR2EmtkeKVq26
je6kJkvUPeQsQIO3iLbbyATTeFHFNvz5JrOQouOjO22UecRdvioWOpA7+wXd
bE3scUf0mob45S84fxe/5PwhEe/AXf9kKRILob2yr3rJMRMcp9nvn51WGfM9
zZHwvAFg3IjBylFWEj2fGu3ybcXVgXXQCHElQUxqjUCITmK/rOz4bP/49DCE
OgCv0tmJmHCbIiYHwtS14pAQPJLeGUmYvVKwJrK1zB2XvPEyL4CVu7KmoJRA
7YGuyzLQdUmBLqtoIGmGNUCudYNXN0I3GxCa6xUVvElNUpraNGS/GEA0k1Io
224WTYUgYaGRC6YJfZkR1xp4EAZgtRWyON9qpXbA2ssh+Nb9ZDZHZWxCPYeq
alFCL7hTyyeQg02RV5fA5cXPwvS2CEFBeSXlEmGIYSOMdk6JO7GDzgb9sJsI
drdz8eDiNvP6HvUugEZ4FZfwaVyNPtlsYufNvJLD06JOgphOqRlZlOSgjXDp
VhKh69ziqqxza6Aq3Hty8YZiw9C9Ncx4bhwyfbmK1+4wG5FOipDEYgcfoKLq
IbLwurSpqDYUje8Y1XgQ+le5h8hE++Jk5mnFbcYCq19VfLvRxM/G/SS9LIKm
OIq1YO0gX6s/NfnUfK9aS4QE/sBSDy9NGgNwwaV/VJT5vlt76i8NfjpGn80y
NBKFckkMos/bKiNycHJefSw9tLL5EP5fKc5rLG4juyMQk54AHZXDZitW9VCk
gNqX5Y9JtdC76oAAkzt7YqD4Wf9W3fdVIiQjPI4il4l+mA0IxH3QvlJ8xhD3
NcV6RurMLVuztSo+MaPEYXPwuqxs5N+tnG9RosdYddRi5IlEZNEl7UxmmiKH
xhU2UDmMPXM2ZFU7lcHRAugwrEansHrmUGtbpzFMraJlhkWItcFM0xm3wbkH
nsBxGTRqC+txkTmMj/njJPAwuaHUgz0gKv21Msz61Vx7elFWQDfIxkovuhqj
FW7uc1r+qZnVymayHmGqAtH3NdtcikCK8t5VhSIHiaRNE/VDWFsRiUZnz3Nb
S1M0j3f1KqV0/foxegv6GnYp1W5IL3MJQcTAAScgWmci2nFMJOj/QDVIqivH
FX9jzWHB+gvy3phY7WXZ2KRB7nhc+Mptxi9kwzJKGx8uOarLe/e4ZiPT/OXB
DV/ahGljQRXk/f7HTU6iTYgWcewMswYO4ixnMILFCriPz1TZRMPUD2QXj9Tp
IViF1Ox5HmE0v8DDdl5xUTfU1XOHODwUeba+Rv0GR5qvE36QBtMfMJJBKSfj
EaBTeoxxBzdBjMnW1EXKv9cNGqzB+p5dCaIkjNmGANh9YYTF4yxi/Bus05o7
onZRPxNYbEPGiBT2BSzPLPDc2mhEOqNk1dfn5yf3jT3NoraxD1oH93BBOluJ
EJbm+9keTzzJ0HKA2U1ZsC/jT5PY9pPz3Hg1JphxChBXhPs2bsUrSLpEyV7Z
DkMEIIIN8iKa3axXmNDs5/OyklMswDKAk/ZBdZ+ObnWSDN+DMZs+7Q4qmaHs
mnyx9SVqPpbB5voaa1kwNE7tRrplE9ouVtKDUhvPqNFGsVhjis01epEIo67f
7e3t7UjsMGydHUARDHdINTErLS2cAlO+Epc2If1FvFCznsNCGUW1osSnwjGE
IfXhXGVOHfaqsmU7Y7ABqfkM4VruI1XwLXkrEIaT47Nz1A2juySLZmUqTR4D
WsIObFVwuG3WoKEAvWrtfOIeDETqKNedU973BiKjGKhxALrafvZMHf9Qckja
lpUAWyEzC7Se1fWCh8Aq+gKzb7Xv0XO5AUjlJfYvLVJrGkTQ6AfdmcLafT7U
9Ufrhtvv7evFY7MpJeq32evSd+JhzvcG1v1w3gZH/hZzUWFDAKCS99Kw/z9z
920fIxBG9iUFwPa4z6q4lUBRBAlH/ehcUkDQ63iyjqkAhkt+JKt/GaVO+XX9
AJymZ/1V4kVmh14lKcd3+dbqAWwo3BvYA7ksY2vpKYDx8DvG0TKbeT40FNFr
yrGU9AEXfuZaeqfXi1fHpwPbBGugnNXJav+omh4ZGAXlmJbxUa9Z1yB1ka2T
Wdn81rWcDLz3iY6oB7rTzcL6qVqbK3HZYssYfhD9yr41tIhuAg+8HS/3ZQ4y
4hlZnSyRsftHAkcIj+2YfYvGqzwJasrEBckHBYfgFipsd3krW2JJC6pookAl
mVgZaHDAcAkMtaATd6MjSlwovG0ibZz2uTymnoN+Z6TG1onrHDLlKfR9ol6R
svVATqvlwGq+TpkmbNNw272r1JnD14/Y+zkDAsmE3i2CVKkTBomIKTY2QIP9
R6Q9CbuuL9Hq4NWbYPFUT4jJJwklsFEigT86O0cu+DfDxhCP3jg48Fbkr6VN
LNiZEn1Oym50VYkCVIG5HZKNIofmq41xMQQ7LA7wNyko7rO1pvXKGUMIqPuK
K0kjrvTALyMNpsASgkFD3mBLwxbbjFzqPdj/E85H27k2QcmqcAOkQI/3GZvo
CseB2LaihiPi6SHFtB4stvpcI1xIZeiXz/3uVuyQMtJDW3PnYCw15tSegqrB
fLCwn5qWx9iJTqQmQUx82uZhjvSIPB6YRylwSXbryVFl7dLAbsU+jdDLYLvU
4dqqafHYQeBCyiFW9L4AZr8hy6Wsa5cT5Mf+w4wcm1hC7x/Ye7fXIBCxrpLz
6e5tvQjHAJXq/E4eo3JMUAFwYOZbTucOtV6N70OxCOreO09XRoJnqKMyPUbv
1BBd/tBRoNRTo0PA1lRjCx+O7fdopn5XKmzCpBQq/bDuTWMN4DKhtRGRYZ26
DV6LhlIqtRVlc7klnZ/h4zYaKWHhY7X9LOzWR/WGIP2oLgmY87sVNg31Wzhj
TwLKw/3ICaUfHVgNbXzgbiz7h9UNC45bcc3/nkfkJTVjdN3uQFdhzOPrLsgS
lUiBPWJzjKbQD2gKkRFlKeOzqKG7YaDuwPNDFxqOr5M9nr1Hqi4+xhr0rirN
MsxJ5Uwfei8GzI6+InqT1RfqLGCiFvG76s9/+vOfgr3481/+/Be4/7SO0l31
DtgG4cNbwjukzwsi2u4oyldAy/TTGXa7rL7pBD130ghblaYl03hJ+DSM1zMz
zMgkW3eNPfavgZxSZw/j+3wc1clLfWyb56pBLIBSdiFZEOjTeZcBUiccGAw7
notP25IOKk+pdEn2nsCh4jzwspZvX0hpI9zLeYw6z6Ppe3x1EE28N1B78Efq
yck55T3AiisA0utVJvAYMrcLayfsex1pv8/i1ItG7mffn/QrucCgzyXU1GCR
3VbcRF6/Q9u02oviE3927R5c61LYlVFnL6VXFJUvIbLP2zFZwtgQLyAEZ8c3
Ndz6jbSkVyhPSsQXNrsGZhddl26stsboP6t9Ff3d08Pq/v5V9HfPTff3VnnY
KE/U8L7/3dtER2A5lpCW2zdDEYtCusc+YEX396W5t8lRgBd5TRW7XUG+3ZW3
fcYoG267b5T7m249GLv819wg7EGwPGhFmwF+QG+hEpb2LmEPHWUzOdzfmasJ
lmpvrt+A6pr7ajlYHjjKPSv67Uf59Wi3mjP1RKFMcT67v9+KHrLTnweLLESo
6jNg+djYXGqa/XVllcwL9rC0vhTOCu7vTzb3dn/k2OCBZYOdzhjD/pGzOMnf
NMmyAqw6MPdderhlnJx4ZsUxiPECdUt+qQm+MkkUpBq7Dd6M4QKZLHix6T0s
5w5Hd68DREVsjQ4Dz0F6Hi/10CQZ1fSgcpqCiv864zqw3vnZ/uu+nRpfPkO+
DfEseG88RAPCMzTNNJIU5zyaxWDr87hs/x6mC0xkmqlXOgI1GCyiV31QokFr
oQnKVbHmSS/MABPmhocddQ5fcVk/L7S56blAPLAqkVTWSIdyh2tn5446r2w/
bjI5Xg1abhzUJl3lGp23QGDrPFCIJCXBQ0v5thfX5RZj9QvJ8CqsMxI3PZg/
mt2gF9+U++sc4IevGHcj9zYnCrrFlez+sg3I1sirPt8h/dsjB8qJGtAbUnDv
abvJRxIqjzHVDmLKTiwZh2uJHUZccoZb5W2lDeGHWgtvOpE3PN1wyZZoCDJA
4UdnpSBlmpHFQSolNeIhqxkRpLFEjWOBE6YxhyLd+Lh7gG93LyVcrpOCepV7
x2mRrUBTxnxl53Rs03Kpros9IoRfbH0Ng3gN7snJa02CD3c29aJ89dmo4111
4XSm6HgVcVV5YCNw5JWTECNpzhSREyqH04FOaa+xif/SmpaF8Gsfyr54A8mQ
RG4KxlzZss5I3hRaPYuHj89ZrNhz/RoQAthl5NoXjJX9rNGfBmRfJBK2xc08
LI2fk6BA+sSZQSeeGcSpOt/SO3LUVqdzbCubBE50EVj+Ki4Cjy+7N03h+RxI
ZZOfWlNvrVKrsaHOIsHbpzh9YRmtaAgblqB3WGGAPAigndPJlzbmQTDNZoTg
O1vxt33kSMCi8HT29o/f9e0NREnDM47wl/5FzA+GOSnQ37X3XuTx8HVmiob7
qoZ6mTGFbsr0DsigYGCAxOs5sK0vzCIvPNnUBt9YyR3TAL1HJzcv0LzPkbkJ
DyxPhg/wSYRxlBrAfpycvOBulfvcL374LbH0hke9stKn03jGTvQnlP5u9N+6
MswqjGX2gC6A+1dIoh9WUtt6qKrh4d5is566d8oFCZWXNrXHEvN2p/VtYWWm
T9jxplph006pjij9gjlXtLbRTd90BqTOTPKHWsvobOmcCUrnBu30A5IYOV2t
rOiecxgOcv9xZHXUO4+in1JzBdi57dGz5+Lmm/0sGnsQfTWvcTOR7ASlt61V
WA8lDuxdtcKdbkyi8CuAAi3IbdNcoPK7M9jajmHZVSIwZ7xQe1QL/Tdt9Oai
kKrxRBoUgVd/k2NANDUoK9tDQBODCnNUmuvYvho16mVS5uLFwhOKxl2LrJXr
fmYBtXWwPYCcghKWmdZzT9zrHfc21jGeZ8yf4d7BPaj1emm6auozTf7jowP3
pg5O7uoxYfQ5Fk2RTtcmw8tp9aSIq9Hf4GYcqH18EZDgKGgxWwIib+54H7sw
odzPJzTUGD0A5ObWXS5PdrMZIW05/T1qsO9AHQmNtUYPrrFRfV7Lyd47WFlY
Zf+/RMf4JVKej4A8cQ/tyoAUCjUKbXGnYXjHvJVRlAWbtZaLDbMNvFdEe5zI
qsytJBb5PKDOiIAA3mWUHy6nzzELoX0TtAtzZNh44CpNKC0jEZuTor0c0UKt
j5bj8THRceC0Wf4kg7Wxr/DwBFk8dHZ6oBbMrv2fgPLKLgW1tB/jtQj03spi
G2pK5mqZplnJmPPHNL490vwq8eobPmveUdljkom51EO6d+64ZrptGUyCNBnE
NKkwaGPaRVorEz/7e/L96b7wINM4k6OH2rtrau8ltzW2nqLxvNOxnyxbciWb
VluybfhCJ5+sK9Q7S79GtbFdRYZu12UoReTmyXo+7/wPuJpFobKIAAA=

-->

</rfc>

