<?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.2.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY I-D.ietf-cbor-7049bis SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cbor-7049bis.xml">
<!ENTITY I-D.ietf-cbor-cddl SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cbor-cddl.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC7228 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7228.xml">
<!ENTITY RFC7925 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
<!ENTITY RFC6347 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY I-D.selander-ace-cose-ecdhe SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.selander-ace-cose-ecdhe.xml">
]>

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

<rfc ipr="trust200902" docName="draft-raza-ace-cbor-certificates-00" category="std">

  <front>
    <title>CBOR Profile of X.509 Certificates</title>

    <author initials="S." surname="Raza" fullname="Shahid Raza">
      <organization>RISE AB</organization>
      <address>
        <email>shahid.raza@ri.se</email>
      </address>
    </author>
    <author initials="J." surname="Höglund" fullname="Joel Höglund">
      <organization>RISE AB</organization>
      <address>
        <email>joel.hoglund@ri.se</email>
      </address>
    </author>
    <author initials="G." surname="Selander" fullname="Göran Selander">
      <organization>Ericsson AB</organization>
      <address>
        <email>goran.selander@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Mattsson" fullname="John Mattsson">
      <organization>Ericsson AB</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>

    <date year="2018" month="October" day="22"/>

    
    <workgroup>ACE Working Group</workgroup>
    

    <abstract>


<t>This document specifies a CBOR encoding and profiling of X.509 public key certificate suitable for Internet of Things (IoT) deployments. The full X.509 public key certificate format and commonly used ASN.1 encoding is overly verbose for constrained IoT environments. Profiling together with CBOR encoding reduces the certificate size significantly with associated known performance benefits.</t>

<t>The CBOR certificates are compatible with the existing X.509 standard, enabling the use of profiled and compressed X.509 certificates without modifications in the existing X.509 standard.</t>



    </abstract>


  </front>

  <middle>


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

<t>One of the challenges with deploying a Public Key Infrastructure (PKI) for the Internet of Things (IoT) is the size and encoding of X.509 public key certificates, since those are not optimized for constrained environments <xref target="RFC7228"/>. More compact certificate representations are desirable. Due to the current PKI usage of X.509 certificates, keeping X.509 compatibility is necessary at least for a transition period. However, the use of a more compact encoding with the Concise Binary Object Representation (CBOR) <xref target="I-D.ietf-cbor-7049bis"/> reduces the certificate size significantly which has known performance benefits in terms of decreased communication overhead, power consumption, latency, storage, etc.</t>

<t>CBOR is a data format designed for small code size and small message size. CBOR builds on the JSON data model but extends it by e.g. encoding binary data directly without base64 conversion. In addition to the binary CBOR encoding, CBOR also has a diagnostic notation that is readable and editable by humans. The Concise Data Definition Language (CDDL) <xref target="I-D.ietf-cbor-cddl"/> provides a way to express structures for protocol messages and APIs that use CBOR. <xref target="I-D.ietf-cbor-cddl"/> also extends the diagnostic notation.</t>

<t>CBOR data items are encoded to or decoded from byte strings using a type-length-value encoding scheme, where the three highest order bits of the initial byte contain information about the major type. CBOR supports several different types of data items, in addition to integers (int, uint), simple values (e.g. null), byte strings (bstr), and text strings (tstr), CBOR also supports arrays of data items and maps of pairs of data items. For a complete specification and examples, see <xref target="I-D.ietf-cbor-7049bis"/> and <xref target="I-D.ietf-cbor-cddl"/>.</t>

<t>This document specifies the CBOR certificate profile, which is a CBOR based encoding and compression of the X.509 certificate format. The profile is based on previous work on profiling of X.509 certificates for Internet of Things deployments <xref target="X.509-IoT"/> which retains backwards compatibility with X.509, and can be applied for lightweight certificate based authentication with e.g. DTLS <xref target="RFC6347"/> or EDHOC <xref target="I-D.selander-ace-cose-ecdhe"/>. The same profile can be used for “native” CBOR encoded certificates, which further optimizes the performance in constrained environments but are not backwards compatible with X.509, see <xref target="native-CBOR"/>.</t>

<t>Other work has looked at reducing size of X.509 certificates. The purpose of this document is to stimulate a discussion on CBOR based certificates. Further optimizations of this profile are known and will be included in future versions.</t>

<t><list style="symbols">
  <t>Terminology   {#terminology}</t>
</list></t>

<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>This specification makes use of the terminology in <xref target="RFC7228"/>.</t>

</section>
<section anchor="x509-certificate-profile" title="X.509 Certificate Profile">

<t>This profile is inspired by <xref target="RFC7925"/> and mandates further restrictions to enable reduction of certificate size. In this section we list the required fields in an X.509 certificate needed by devices in IoT deployments. The corresponding ASN.1 schema is given in <xref target="appB"/>.</t>

<t>In order to comply with this certificate profile, the following restrictions MUST be applied:</t>

<t><list style="symbols">
  <t>Version number. The X.509 standard has not moved beyond version 3 since 2008. With the introduction of certificate extensions new certificate fields can be added without breaking the format, making version changes less likely. Therefore this profile fixes the version number to 3.</t>
  <t>Serial number. The serial number together with the identity of the CA is the unique identifier of a certificate. The X.509 standard does not specify the signedness of the serial number, but this profile requires an unsigned integer.</t>
  <t>Signature algorithm. For the CBOR profile, the signature algorithm is fixed to ECDSA with SHA256.</t>
  <t>Issuer. Used to identify the issuing CA through a sequence of name-value pairs. This profile is restricting this to one pair, common name and associated string value.  The common name MUST uniquely identify the CA. Other fields MUST NOT be used.</t>
  <t>Validity. The following representation MUST be used: UTCTime-format, YYMMDDhhmmss. This is the most compact format allowed by the X.509 standard.</t>
  <t>Subject. The subject section has the same format as the issuer, identifying the receiver of the public key through a sequence of name-value pairs. This sequence is in the profile restricted to a single pair, subject name and associated (unique) value. For an IoT-device, the MAC-derived EUI-64 serves this purpose well.</t>
  <t>Subject public key info. For the IoT devices, elliptic curve cryptography based algorithms have clear advantages. For the IoT profile the public key algorithm is fixed to prime256v1.</t>
  <t>Issuer Unique ID and Subject Unique ID. These fields are optional in X.509 and MUST NOT be used with the CBOR profile.</t>
  <t>Extensions. Extensions consist of three parts; an OID, a boolean telling if it is critical or not, and the value. To maintain forward compatibility, the CBOR profile does not restrict the use of extensions. By the X.509-standard, any device must be able to process eight extensions types. Since only four of them are critical for IoT, this profile is making the other four optional. Still mandatory to be understood are:
  <list style="symbols">
      <t>Key Usage</t>
      <t>Subject Alternative Name</t>
      <t>Basic Constraints</t>
      <t>Extended Key Usage</t>
    </list></t>
  <t>Certificate signature algorithm. This field duplicates the info present in the signature algorithm field. Fixed to ECDSA with SHA256.</t>
  <t>Certificate Signature. The field corresponds to the signature done by the CA private key. For the CBOR profile, this is restricted to ECDSA type signatures with a signature length of 64 bits.</t>
</list></t>

</section>
<section anchor="encoding" title="CBOR Encoding">

<t>This section specifies the CBOR certificates, which are the result of the CBOR encoding and lossless compression of the X.509 certificate profile of the previous section. The CDDL representation is given in <xref target="appA"/>.</t>

<t>The encoding and compression has several components including: ASN.1 and base64 encoding is replaced with CBOR encoding, static fields are elided, and compression of elliptic curve points. The field encodings and associated savings are listed below. Combining these different components reduces the certificate size significantly, see <xref target="fig-table"/>.</t>

<t><list style="symbols">
  <t>Version number. The version number field is omitted in the encoding. This saves 5 bytes.</t>
  <t>Serial number. The serial number is encoded as an unsigned integer. Encoding overhead is reduced by one byte.</t>
  <t>Signature algorithm. The signature algorithm is known from the profile and is omitted in the ecoding. This saves 12 bytes.</t>
  <t>Issuer. Since the profile only allows the common name type, the common name type specifier is omitted. In total, the issuer field encoding overhead goes from 13 bytes to one byte.</t>
  <t>Validity. The time is encoded as UnixTime in integer format. The validity is represented as a ‘not before’-‘not after’ pair of integer. This reduces the size from 32 to 11 bytes.</t>
  <t>Subject. An IoT subject is identified by a EUI-64, in turn based on a 48bit unique MAC id. This is encoded using only 7 bytes using CBOR. This is a reduction down from 36 bytes for the corresponding ASN.1 encoding.</t>
  <t>Subject public key info. The algorithm identifier is known from the profile restrictions and is omitted. One of the public key ECC curve point elements can be calculated from the other, hence only one of the curve points is needed (point compression, see <xref target="PointCompression"/>). These actions together reduce size from 91 to 35 bytes.</t>
  <t>Extensions. Minor savings are achieved by the compact CBOR encoding. In addition, the relevant X.509 extension OIDs always start with 0x551D, hence these two bytes can be omitted.</t>
  <t>Certificate signature algorithm. The signature algorithm is known from the profile and is omitted in the ecoding.</t>
  <t>Signature. Since the signature algorithm and resulting signature length are known, padding and extra length fields which are present in the ASN.1 encoding are omitted. The overhead for encoding the 64-bit signature value is reduced from 11 to 2 bytes.</t>
</list></t>

</section>
<section anchor="dep-set" title="Deployment settings">

<t>CBOR certificates can be deployed with legacy X.509 certificates and CA infrastructure. In order to verify the signature, the CBOR certificate is used to recreate the original X.509 data structure to be able to verify the signature.</t>

<t>For the currently used DTLS v1.2 protocol, where the handshake is sent unencrypted, the actual encoding and compression can be done at different locations depending on the deployment setting. For example, the mapping between CBOR certificate and standard X.509 certificate can take place in a 6LoWPAN border gateway which allows the server side to stay unmodified. This case gives the advantage of the low overhead of a CBOR certificate over a constrained wireless links. The conversion to X.509 within an IoT device will incur a computational overhead, however, this is negligible compared to the reduced communication overhead.</t>

<t>For the setting with constrained server and server-only authentication, the server only needs to be provisioned with the CBOR certificate and does not perform the conversion to X.509. This option is viable when client authentication can be asserted by other means.</t>

<t>For DTLS v1.3 the encoding needs to be done fully end-to-end, through adding the endcoding/decoding functionality to the server.</t>

</section>
<section anchor="expected-certificate-sizes" title="Expected Certificate Sizes">

<t>The profiling size saving mainly comes from enforcing removal of issuer and subject info fields besides the common name. The encoding savings are presented above in <xref target="encoding"/>, resulting in the numbers shown in <xref target="fig-table"/>.</t>

<figure title="Comparing Sizes of Certificates (bytes)" anchor="fig-table"><artwork align="center"><![CDATA[
+-------------------------------------------------------------+
|                |   X.509    | X.509 Profiled | CBOR Encoded |
+-------------------------------------------------------------+
| Cert. Size     |    450     |      392       |     238      |
+-------------------------------------------------------------+
]]></artwork></figure>

</section>
<section anchor="native-CBOR" title="Native CBOR Certificates">

<t>Further performance improvements can be achieved with the use of native CBOR certificates. In this case the signature is calculated over the CBOR encoded structure rather than the ASN.1 encoded structure. This removes entirely the need for ASN.1 and reduces the processing in the authenticating devices.</t>

<t>This solution applies when the devices are only required to authenticate with a set of native CBOR certificate compatible servers, which may become a preferred approach for future deployments. The mapping between X.509 and CBOR certificates enables a migration path between the backwards compatible format and the fully optimized format.</t>

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

<t>The CBOR profiling of X.509 certificates does not change the security assumptions needed when deploying standard X.509 certificates but decreases the number of fields transmitted, which reduces the risk for implementation errors.</t>

<t>Conversion between the certificate formats can be made in constant time to reduce risk of information leakage through side channels.</t>

</section>
<section anchor="privacy-considerations" title="Privacy Considerations">

<t>The mechanism in this draft does not reveal any additional information compared to X.509.</t>

<t>Because of difference in size, it will be possible to detect that this profile is used.</t>

<t>The gateway solution described in <xref target="dep-set"/> requires unencrypted certificates.</t>

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

<t>None.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&I-D.ietf-cbor-7049bis;
&I-D.ietf-cbor-cddl;
&RFC8174;


    </references>

    <references title='Informative References'>

&RFC7228;
&RFC7925;
&RFC6347;
&I-D.selander-ace-cose-ecdhe;
<reference anchor="X.509-IoT" target="https://doi.org/10.1007/978-3-319-93797-7_14">
  <front>
    <title>Lightweight X.509 Digital Certificates for the Internet of Things.</title>
    <author initials="F." surname="Forsby">
      <organization></organization>
    </author>
    <author initials="M." surname="Furuhed">
      <organization></organization>
    </author>
    <author initials="P." surname="Papadimitratos">
      <organization></organization>
    </author>
    <author initials="S." surname="Raza">
      <organization></organization>
    </author>
    <date year="2018" month="July"/>
  </front>
  <seriesInfo name="Springer, Cham." value="Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 242."/>
</reference>
<reference anchor="PointCompression" target="https://doi.org/10.1007/3-540-39799-X_31">
  <front>
    <title>Use of Elliptic Curves in Cryptography.</title>
    <author initials="V.S." surname="Miller">
      <organization></organization>
    </author>
    <date year="1986"/>
  </front>
  <seriesInfo name="Springer, Cham." value="Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 218."/>
</reference>


    </references>


<section anchor="appA" title="CBOR Certificate, CDDL">

<figure><artwork type="CDDL"><![CDATA[
certificate = [
  serial_number : uint,
  issuer : text,
  validity : [notBefore: int, notAfter: int],
  subject : text / bytes
  public_key : bytes
  ? extensions : [+ extension],
  signature : bytes
] 

extension = [
  oid : int,
  ? critical : bool,
  value : bytes
] 
]]></artwork></figure>

</section>
<section anchor="appB" title="X.509 Certificate Profile, ASN.1">

<figure><artwork type="ASN.1"><![CDATA[
IOTCertificate DEFINITIONS EXPLICIT TAGS ::= BEGIN

Certificate  ::= SEQUENCE {
  tbsCertificate              TBSCertificate,
  signatureAlgorithm   SignatureIdentifier,
  signature            BIT STRING
}

TBSCertificate  ::= SEQUENCE {
  version       [0] INTEGER {v3(2)},
  serialNumber       INTEGER (1..MAX),
  signature       SignatureIdentifier,
  issuer       Name,
  validity       Validity,
  subject       Name,
  subjectPublicKeyInfo       SubjectPublicKeyInfo,
  extensions       [3] Extensions OPTIONAL
}

SignatureIdentifier ::= SEQUENCE {
  algorithm       OBJECT IDENTIFIER (ecdsa-with-SHA256)
Name  ::= SEQUENCE SIZE (1) OF DistinguishedName
DistinguishedName  ::= SET SIZE (1) OF CommonName
CommonName  ::= SEQUENCE {
  type       OBJECT IDENTIFIER (id-at-commonName),
  value       UTF8String
      -- For a CA, value is CA name, else EUI-64 in format
      -- "01-23-54-FF-FE-AB-CD-EF"
}

Validity  ::= SEQUENCE {
  notBefore       UTCTime,
  notAfter       UTCTime
}

SubjectPublicKeyInfo::= SEQUENCE {
  algorithm         AlgorithmIdentifier,
  subjectPublicKey          BIT STRING
}

AlgorithmIdentifier ::= SEQUENCE {
  algorithm        OBJECT IDENTIFIER (id-ecPublicKey),
  parameters       OBJECT IDENTIFIER (prime256v1)
}
  Extensions  ::= SEQUENCE SIZE (1..MAX) OF Extension
  
Extension  ::= SEQUENCE {
  extnId          OBJECT IDENTIFIER,
  critical        BOOLEAN DEFAULT FALSE,
  extnValue       OCTET STRING
 }

ansi-X9-62          OBJECT IDENTIFIER   ::=
         {iso(1) member-body(2) us(840) 10045}

id-ecPublicKey      OBJECT IDENTIFIER   ::=
         {ansi-X9-62 keyType(2) 1}

prime256v1          OBJECT IDENTIFIER   ::=
         {ansi-X9-62 curves(3) prime(1) 7}

ecdsa-with-SHA256   OBJECT IDENTIFIER   ::=
         {ansi-X9-62 signatures(4) ecdsa-with-SHA2(3) 2}

id-at-commonName    OBJECT IDENTIFIER   ::=
         {joint-iso-itu-t(2) ds(5) attributeType(4) 3}

END

]]></artwork></figure>

</section>


  </back>

<!-- ##markdown-source:
H4sIACdCzlsAA81bW3PbRrJ+56+Ykh8ibQhaN1sST6XOUiTlMNFtTTqXk0ql
QGBEIgIBLi6SGa3Oz9o/sH/sfN09AwxIynZq9+HwwSaBufS9v+4ZeZ7XKqIi
1l3VP795r26z9C6KtUrv1E+dN/tnqq+zIrqLAr/QeeuV8qfTTD/IYK/xLkyD
xF9gnTDz7wov8//wPT/QXjBNMy9wRnr7+61WtMy6qsjKvDjc3z/bP2w9zrqq
1x+qH9PsPkpm6l2WlssWJnRVXoStVpCGeNxVZXHnnbaWUVe9UoGfqDLXys8y
f6V2ozvlx7Fa6XxPpZma+/lczXWmW0oVadClF/iap1mR6bu8+r1auD8xMtTL
Yt5Vh62WXxbzNOviMX08879SUYLx4456Dyarh8L9eO7Po7D5Js1A+PvReKh6
59VDvfCjGMzx+A6J669Z1AE35rN90+866tt//XMWl0m4tvF3qY43331q698x
ozNPeUK19/Zt33XUWMd+Eupsbdt3//pnBjVsvOWNh1kU5HmabNl8lmIatpRp
f9VmZCdIFy9yfuUXBQ3a4HyebL77HAG/Y1ZnYWY198cnSTO8ix50t4WJ7y/6
hwcHZ2QII2/QiTSMkO36ZP/4bBrlmy+CMIy7MvP04OQYq7Si5K5elN+cHB6e
2q9nh2/M17dHxyd2QSsf8aQ0154OwjkRhQHsoN4onYiBFn4203CXeVEs8+7r
12EadSCE1wf7nYP9/ZPXZyen3pF3dHDmnR2dnJ14J78dHMtE8f/LaDYvHjX9
a3x/EM2iwo8bMUCBCVXMtRolhc4SXVComMzhm3mHV8shSp0Ts9ZvdsbLDO91
1lb9ub/o7HTVzqUOijLT6jqlNbGELJmDlrLQvEk/XSzxPVPjINJJoPO2GqdB
BHpGVpJBriAeNdGxht4WZUI0RmmSq2EyixKtad+2ekhjdXh82Nlhgj7p1Bcd
dZFm+XS1/fUVXpdZOdfh9ve3HXXrL/0wWkRF5hdp/vnQEUKqsOEyXqnD/YNT
UuxtGiUFsZ/pPAc7X6bfI+/N8b53dHZydub99NvRgavbDzmH9GEcR0uITfXL
7AFyjxLVz1bLIp1l/nK++v+twIPTL1HgDx0I9yqKYxOLRLwHZ6dvWy3P85DA
cmgmKFotGG2ukLXKhU4KlS91ABsHL75kQlDMKYcJXHJapF9VYlyW0xiSvNcr
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
gcgBwKxZQtj2CHsMrwdrTYXW/wGkJ91zfUAAAA==

-->

</rfc>

