<?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-03" 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-03"/>
    <author fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="November" day="04"/>
    <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.</t>
      <t>Organizations may be unwilling to issue certificates for Instant Message
client using a general KeyPurposeId such as <tt>id-kp-serverAuth</tt> or
<tt>id-kp-clientAuth</tt>, because of the risk that such certificates could be
abused in a cross-protocol attack.</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 included in certificates used 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 151?>

<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:
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

-->

</rfc>
