<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-im-keyusage-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="extendedKeyUsage for IM URIs">X.509 Certificate Extended Key Usage (EKU) for Instant Messaging URIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-im-keyusage-02"/>
    <author fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="20"/>
    <area>SEC</area>
    <workgroup>LAMPS WG</workgroup>
    <keyword>x.509</keyword>
    <keyword>certificate</keyword>
    <keyword>extended key usage</keyword>
    <keyword>eku</keyword>
    <keyword>instant messaging</keyword>
    <keyword>im URI</keyword>
    <keyword>mimi URL</keyword>
    <abstract>
      <?line 61?>

<t>RFC 5280 specifies several extended key purpose identifiers
(KeyPurposeIds) for X.509 certificates.  This document defines
Instant Messaging (IM) identity KeyPurposeId for inclusion in
the Extended Key Usage (EKU) extension of X.509 v3 public key
certificates</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rohanmahy.github.io/mahy-lamps-im-keyusage/draft-ietf-lamps-im-keyusage.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-im-keyusage/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        LAMPS WG Working Group mailing list (<eref target="mailto:lamps@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/lamps/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/lamps/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rohanmahy/mahy-lamps-im-keyusage"/>.</t>
    </note>
  </front>
  <middle>
    <?line 70?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Instant Messaging (IM) systems using the Messaging Layer Security (MLS)
<xref target="RFC9420"/> protocol can incorporate per-client identity certificate
credentials. The subjectAltName of these certificates can be an IM URI or
XMPP URI, for example. Since IM clients could be very numerous, operators
are reticent to issue certificates for these users that might accidentally
be used to validate a TLS connection because it has the KeyPurposeId
<tt>id-kp-serverAuth</tt> or <tt>id-kp-clientAuth</tt>.</t>
      <t>An explanation of MLS credentials as they apply to Instant Messaging is
described in <xref target="I-D.barnes-mimi-identity-arch"/>. These credentials are
expected to be heavily used in the More Instant Messaging Interoperability
(MIMI) Working Group.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="the-im-uri-extended-key-usage">
      <name>The IM URI Extended Key Usage</name>
      <t>This specification defines the KeyPurposeId id-kp-imUri, which <bcp14>MAY</bcp14> be used
for signing messages to prove the identity of an Instant Messaging client.
This Extended Key Usage is optionally critical.</t>
      <artwork><![CDATA[
id-kp  OBJECT IDENTIFIER  ::= {
  iso(1) identified-organization(3) dod(6) internet(1)
  security(5) mechanisms(5) pkix(7) kp(3) }

id-kp-imUri OBJECT IDENTIFIER ::= { id-kp TBD1 }
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations of <xref target="RFC5280"/> are applicable to this
document.  This extended key purpose does not introduce new security
risks but instead reduces existing security risks by providing means
to identify if the certificate is generated to sign IM identity credentials.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following OIDs in the "SMI Security
for PKIX Extended Key Purpose" registry (1.3.6.1.5.5.7.3).  These
OIDs are defined in Section 4.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>
            <th align="left">References</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD1</td>
            <td align="left">id-kp-imUri</td>
            <td align="left">This-RFC</td>
          </tr>
        </tbody>
      </table>
      <t>IANA is also requested to register the following ASN.1 <xref target="ITU.X690.2021"/>
module OID in the "SMI Security for PKIX Module Identifier" registry (1.3.6.1.5.5.7.0). This OID is defined in <xref target="asn1-module"/>.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>
            <th align="left">References</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD2</td>
            <td align="left">id-mod-im-eku</td>
            <td align="left">This-RFC</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ITU.X690.2021">
          <front>
            <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>International Telecommunications Union</organization>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.690"/>
        </reference>
        <reference anchor="ITU.X680.2021">
          <front>
            <title>Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>International Telecommunications Union</organization>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation X.680"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="I-D.barnes-mimi-identity-arch">
          <front>
            <title>Identity for E2E-Secure Communications</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Wire</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   End-to-end (E2E) security is a critical property for modern user
   communications systems.  E2E security protects users' communications
   from tampering or inspection by intermediaries that are involved in
   delivering those communcations from one logical endpoint to another.
   In addition to the much-discussed E2E encryption systems, true E2E
   security requires an identity mechanism that prevents the
   communications provider from impersonating participants in a session,
   as a way to gain access to the session.  This document describes a
   high-level architecture for E2E identity, identifying the critical
   mechanisms that need to be specified.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-barnes-mimi-identity-arch-01"/>
        </reference>
      </references>
    </references>
    <?line 150?>

<section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <t>The following module adheres to ASN.1 specifications <xref target="ITU.X680.2021"/> and
<xref target="ITU.X690.2021"/>.</t>
      <sourcecode type="asn1"><![CDATA[
<CODE BEGINS>

IM-EKU
  { iso(1) identified-organization(3) dod(6) internet(1)
  security(5) mechanisms(5) pkix(7) id-mod(0)
  id-mod-im-eku (TBD2) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

-- OID Arc

id-kp OBJECT IDENTIFIER ::=
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) kp(3) }

-- Extended Key Usage Values

id-kp-imUri OBJECT IDENTIFIER ::= { id-kp TBD1 }

END


<CODE ENDS>
]]></sourcecode>
    </section>
    <section anchor="change-log">
      <name>Change log</name>
      <t>RFC Editor, please remove this section on publication.</t>
      <ul spacing="normal">
        <li>
          <t>made Proposed Standard</t>
        </li>
        <li>
          <t>added a <bcp14>MAY</bcp14> statement in Section 3</t>
        </li>
        <li>
          <t>corrected typo in registration of the ASN.1 module (Thanks Sean!)</t>
        </li>
        <li>
          <t>updated author affiliation</t>
        </li>
        <li>
          <t>added ASN.1 module</t>
        </li>
        <li>
          <t>specified that eku is optionally critical</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Sean Turner and Russ Housley for reviews, suggestions,
corrections, and encouragement.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8VY23LbyBF9n6/opV/IlACLki8yy+tdSqRtxKKkiFTWW6lU
7RAYkhPhwswAlBlZ/pZ8S74sp2fAmylvZZPaiu2ygMFcTp/uPt2jIAhEqctU
dajxMXx++IrOlCn1RMeyVNT/VKo8UQl9UEu6sXKqqNn/cNOiSWEoym0p85IG
yuKLzqd0cx3ZhpDjsVEL7Kfq1Vjs17pVg3oaHzAtzLJDtkyESIo4lxlgJEZO
ykCrchKkMpvbQGfBrVpWvENweCRsNc60tbrIy+Uc86P+6C3RE5KpLXCoxolz
PjYvGwfAkOiyMFqm/BJ1T/EDIBrR9ehtQ+RVNlamIxJA6Yi4yK3KbWU7VJpK
CZhwLKRRskPD/pm4K8zt1BTVvEPn3cHVkH56J4ALw0lHUECfmD1+iDcE8uuK
BcJkcla40duKf+iaw2zFoRvMmCJ+ynSm8XwuFiqvAJHoawREnoWfgI5d8I6/
YzSTOu2QI/BH5jIszJSX63JWjTtkipnMMzlbPuX/9onG1BT4bdmhWVnObefp
0/WS0G8S6uIbi5/+mgvDWZmlQsiqnBWGicNRRJMqTb37r/kYGmBj9wGwZa7/
IUv4e/sjncFbVVqyzUNlFjpW1i1Q3nKHNmQIP055JIyLTIi8MBm2Wjgqo9FN
+PHFq8Pw6PCo3XGL60x4414wI5/4BUVOIxXP8iItpkv4pTu8CNuk8rhIGICp
UmU79aLhXMXe/bysmNCptDqm/mryNU+m5mn/unVQLzmTeZFjRbo36wyz6kky
T6inLVtcaTtDQH09ubeavCaXagqRJXmpTO4w4ZiRShUIyaq8xmnpJscPt8Jl
AzEp7tUqo5XVoGK1IYgLRnCG2wKx7S39GIJLseb15L/idWxLI+OShsu8lJ/o
oij9rMscyuNYb32T57HjOa+X/F+JOAERemUkR5sQQRCQrM0T4vrtGT0/Ojkk
662A+6xaKANIO3oxr8y8sIo06xnPM1Y0oadXfjxKrNdiL91bymNDotFMW4Ku
VsBWUqImOkeS7Mt2Mxq06hPKJW3v7vbWeZxWrLd4EuXsV6qCg25rd3hIi2PY
ME7hGJgjtgHWnGQ6SVIlxBP2jCmSKnbe+xZMu7SlyiyElIcYzWbCuVwqAzWI
K8OGNAfnw5a4v/8BZL96dnT48EBzU5RFXKQUS7YmLmCn4UI3VyaIU808rYnY
1vHYKDeMIhOCV0WoQn9TcdlNywvIFtsLLHDUtoXulLFC5tZVDxEoPg6urvj5
wHGrPkEfUxXSEGgUT/MosLao0oRXIyqWhEqloOwW1QtQJUqa5dJERpVQPqAu
C0JRrL4CwEd4XBWi1+JZotbo6awkGcfOUpmmSzF2ExLeZSFTzYFPkkbnQ8DI
c+VcAiyxrDgWS5pJ67jfjhXxi06C23mAgwC5i8z7hUttPerNcqOhEN0cls9T
ma+Td8BnbUgmf8CS5HyeLhnXfjxoKxJlY6PHQK5zgqejoBeOpUGYB1w6g5Uv
A2ni2cODcx07afsgowSwwEZvP6iYKbnQ6dJTgo1dlBVgex+DUxPnkrFOcZBo
DqJB1NotxzAY4Y2CteBDWWOclnM+avcuBIcU5zt3E5Yag5vhiBsW/kkXl+75
uv+nm+i63+Pn4fvu+fn6QdQzhu8vb857m6fNyrPLwaB/0fOLMUo7Q6Ix6P6M
L4yqcXk1ii4vuucNb/m2gnDAeYY0mz1H8IEg+ZUbTs+u/vXP9jO44zsk3lG7
/QqJ519O2i+f4eVupnJ/WpGDZv/K3hbwtpKsOOjmOEnnGvGJoEc02Flxl8M1
RoHOP/yFmflrh16P43n72Zt6gA3eGVxxtjPoONsf2VvsSXxk6JFj1mzujH/F
9C7e7s877yvetwZf/5BCsSlon/zwxoUQR0mtJPsazEEEb9mdsliL/l6yks9K
nd0YfQAP6HhGQES1EAgWDqunOcew7015k4IFdKHcbmuZRPKywO2lhs/40KN6
pGRgtJj7MowgQPyU3AHBuV++fBEOHtHl6R/7ZyOKev2LUfQ26l8TdTrf0z3q
r7ZFs93aFMYk2G4Vm8ctxG3SfNHysZqrErMFF3FfHZrPWzAsRpOobWb5bX6r
PzVftuh2zosfhNii6BEgDoenkUanvTZWMHDnp3UJ4iYVCI3cSvNvfGQefZZw
X4As4Wxj9QMr49QlHmejWGXjqr4/2i4kBdyFToiNdzVVUa7u1sYLo+2tpXFV
uguIkgkKCc/i7XyLuZ5L9dyl871OfERIWMMlx7O/JO3q33bxYf9OVc7meWHl
cOLo3dTXrZrq6n/3orvHmBvEVkb9vcJ1xG9l1BQolattqHFpWtwxrMuoZ1d6
3RgOojXVLpyvPkQfd+OwzoZGvR/KbLMdHocvwnb4HH9fhsctxzJKhnB7s0t8
RjmlG9aF8Rngf4aexzpD/8ZPLIcuttEkfkZ/OIFs5UzvZ/G5E9R/Nk+PvGOi
Dyu3w3Yo8jt7PuAeEi8bjvgG/B8R5a8v9/c7N6CHB5EhVBBqsPVRGmlN48BP
jNZd6bc5PGyFPlDdrnabv/t7afN24E9Fdf7dWDxas4iz+DKK2/c+jdyNjmV8
y7HoGarNvH+yjdNn8YbMmjSZcG1yIukX7wixXbN9smKbC6DY84HXP+IDxeuz
y16fTvvvooshCkA0CNBlQ8Pufz/x8xQ1D3n2Ll1N5tHpYq//NrqIuFoNkc9X
59FZNKJR992QNVE4uEymc3jXxLWQPi6h/4s1v0nMgeeRGvRnmVZ8E/nNUi9Q
0CH13kN4hn+c+qPNAwrsjAutv+X13S+gDghdvrTcsGe+gnKprvUD//wdydnL
7Q1lMlF0hc6y4B50iNKaSJPgg0zYAumKNSou7kLuzrIRo2NMwr3G1A3tcl7w
1zo71+0257YP0zp8myPghs4PIe3ftbBHNU+ccvsrNMnJBA2uv1mvUGxvgMHV
VTbx1wwOmsdrvEuw+DYv7lKVTNkAK+47/pdxKvm+MYGQqYZLNIcJKcWwaFTB
+cY1jteVtfQeF6JUeVkyaqHVHVpFW03Rq7icOxA1Ee7FreNf2VQGrnclVPwb
aG47bf4UAAA=

-->

</rfc>
