<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mahy-mimi-identity-04" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="MIMI Identity">More Instant Messaging Interoperability (MIMI) Identity Concepts</title>
    <seriesInfo name="Internet-Draft" value="draft-mahy-mimi-identity-04"/>
    <author fullname="Rohan Mahy">
      <organization>Rohan Mahy Consulting Services</organization>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="20"/>
    <area>Applications and Real-Time</area>
    <workgroup>More Instant Messaging Interoperability</workgroup>
    <keyword>identity</keyword>
    <abstract>
      <?line 87?>

<t>This document explores the problem space in instant messaging (IM) identity interoperability when using end-to-end encryption, for example with the MLS (Message Layer Security) Protocol.
It also describes naming schemes for different types of IM identifiers.</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/mimi-identity/draft-mahy-mimi-identity.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mahy-mimi-identity/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        More Instant Messaging Interoperability Working Group mailing list (<eref target="mailto:mimi@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mimi/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mimi/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rohanmahy/mimi-identity"/>.</t>
    </note>
  </front>
  <middle>
    <?line 93?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The IETF began standardization work on interoperable Instant Messaging in the late 1990s, but since that period, the typical feature set of these systems has expanded widely and was largely driven by the industry without much standardization or interoperability.
The More Instant Messaging Interop (MIMI) Working Group (see <xref target="I-D.ietf-mimi-arch"/>) was chartered to develop protocols for IM interoperability using end-to-end encryption with the MLS protocol <xref target="RFC9420"/> and architecture (<xref target="RFC9750"/>).</t>
      <t>The largest and most widely deployed Instant Messaging (IM) systems support
end-to-end message encryption using a variant of the Double
Ratchet protocol <xref target="DoubleRatchet"/> popularized by Signal and the companion X3DH <xref target="X3DH"/>
key agreement protocol. Many vendors have also implemented MLS for IM.
These protocols provide confidentiality
of sessions (with Double Ratchet) and groups (with MLS) once the participants in
a conversation have been identified. However, the current state of most systems
require the end user to manually verify key fingerprints or blindly trust their
instant messaging service not to add and remove participants from their
conversations. This problem is exacerbated when these systems federate or try to
interoperate. Even systems that have some type of Key Transparency <xref target="I-D.ietf-keytrans-architecture"/> are essentially Trust On First Use (TOFU).</t>
      <t>While some single vendor solutions exist, clearly an interoperable mechanism
for IM identity is needed. This document builds on the roles described in
<xref target="I-D.barnes-mimi-identity-arch"/>.
First this document attempts to articulate a clear description and semantics
of different identifiers used in IM systems. Next the document provides an
example of how to represent those identifiers in a common way. Then the document
discusses different trust approaches.
Finally the document surveys various
cryptographic methods of making and verifying assertions about these
identifiers.</t>
      <t>Arguably, as with email, the success of XMPP <xref target="RFC6120"/> was partially due to
the ease of communicating among XMPP users in different domains with
different XMPP servers, and a single
standardized address format for all XMPP users.</t>
      <t>The goal of this document is to explore the problem space, so that the IETF community
can write a consensus requirements document and framework.</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="types-of-identifiers">
      <name>Types of Identifiers</name>
      <t>IM systems have a number of types of identifiers. Few (or perhaps no) systems use
every type of identifier described here. Not every configuration of the same
application necessarily use the same list of identifiers.</t>
      <dl>
        <dt>Domain identifier:</dt>
        <dd>
          <t>A bare domain name is often used for discovery of a specific IM service such as
<tt>example.com</tt> or <tt>im.example.com</tt>. Many proprietary IM systems operate in a single
domain and have no concept of domains or federation.</t>
        </dd>
        <dt>Handle identifier:</dt>
        <dd>
          <t>A handle is an identifier which represents a user or service. A handle is usually
intended for external sharing (for example it could appear on or in a paper or
electronic business card).
IM systems could have handles which are unscoped (don't contain a domain)
or scoped (contain a domain).
Unscoped handles are often prefixed with a commercial at-sign ("@").
Handles in some services are mutable. For example, <tt>@alice_smith</tt> could
become <tt>@alice_jones</tt> or <tt>@alex_smith</tt> after change of marital status or
gender transition.</t>
        </dd>
      </dl>
      <table>
        <thead>
          <tr>
            <th align="left">Protocol</th>
            <th align="left">Identifier Address</th>
            <th align="left">Example</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Jabber/XMPP</td>
            <td align="left">Bare JID</td>
            <td align="left">
              <tt>juliet@example.com</tt></td>
          </tr>
          <tr>
            <td align="left">SIP</td>
            <td align="left">Address of Record (AOR)</td>
            <td align="left">
              <tt>sip:juliet@example.com</tt></td>
          </tr>
          <tr>
            <td align="left">IRC</td>
            <td align="left">nick</td>
            <td align="left">
              <tt>@juliet</tt></td>
          </tr>
          <tr>
            <td align="left">Generic example</td>
            <td align="left">"unscoped handle"</td>
            <td align="left">
              <tt>@juliet</tt></td>
          </tr>
          <tr>
            <td align="left">Generic example</td>
            <td align="left">"scoped handle"</td>
            <td align="left">
              <tt>@juliet@example.com</tt></td>
          </tr>
          <tr>
            <td align="left">Email style</td>
            <td align="left">Mailbox address</td>
            <td align="left">
              <tt>juliet@example.com</tt></td>
          </tr>
        </tbody>
      </table>
      <t>Table: some Handle identifier styles</t>
      <dl>
        <dt>User or account identifier:</dt>
        <dd>
          <t>Many systems have an internal representation of a user, service, or account separate
from the handle. This is especially useful when the handle is allowed to change.
Unlike the handle, this identifier typically cannot change.  For example the user
identifier could be a UUID or a similar construction. In IRC, a user identifier is
prefixed with a "!" character (example: <tt>!jcapulet1583@example.com</tt> for the "nick"
<tt>@juliet</tt>).</t>
        </dd>
        <dt>Client or Device identifier:</dt>
        <dd>
          <t>Most commercial instant messaging systems allow a single user to have multiple
devices at the same time, for example a desktop computer and a phone. Usually, each
client instance of the user is represented with a separate identifier with separate
keys. Typically these identifiers are internal and not visible to the end-user (XMPP
fully qualified JIDs are a rare exception). The client or device identifier is often
based on a UUID, a persistent long-term unique identifier like an IMEI or MAC address,
a sequence number assigned by the IM service domain, or a combination. In some cases
the identifier may contain the internal user identifier.  These identifiers look quite
different across protocols and vendors.</t>
        </dd>
      </dl>
      <table>
        <thead>
          <tr>
            <th align="left">Protocol</th>
            <th align="left">Identifier Address</th>
            <th align="left">Example</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Jabber/XMPP</td>
            <td align="left">Fully-qualified JID</td>
            <td align="left">
              <tt>juliet/balcony@example.com</tt></td>
          </tr>
          <tr>
            <td align="left">SIP</td>
            <td align="left">Contact Address</td>
            <td align="left">
              <tt>sip:juliet@[2001:db8::225:96ff:fe12:3456]</tt></td>
          </tr>
          <tr>
            <td align="left">Wire</td>
            <td align="left">Qualified client ID</td>
            <td align="left">
              <tt>0fd3e0dc-a2ff-4965-8873-509f0af0a75c/072b@example.com</tt></td>
          </tr>
        </tbody>
      </table>
      <t>Table: some Client/Device identifier styles.</t>
      <dl>
        <dt>Group Chat or Channel identifier (external):</dt>
        <dd>
          <t>All or nearly all instant messaging systems have the concept of named groups
or channels which support more than 2 members and whose membership can change over time.
Many IM systems support an external identifier for these groups and allows them to
be addressed. In IRC and many other systems, they are identified with a "#"
(hash-mark) prefix. The proliferation of hashtags on social media makes this
convention less common on newer systems.</t>
        </dd>
        <dt>Group, Conversation, or Session identifiers (internal):</dt>
        <dd>
          <t>Most IM protocols use an internal representation for a group or 1:1 chat.
In MLS this is called the <tt>group_id</tt>. The Wire protocol uses the term
<tt>qualified conversation ID</tt> to refer to a group internally across domains.
Among implementations of the Double Ratchet family of protocols a unidirectional
sequence of messages from one client to another is referred to as a session, and
often has an associated session identifier.</t>
        </dd>
        <dt>Team or Workspace identifier:</dt>
        <dd>
          <t>A less common type of identifier among IM systems is used to describe a set of
users or accounts. This is described variously as a team, workspace, or tenant.</t>
        </dd>
      </dl>
      <t>One user often has multiple clients (for example a mobile and a desktop client).
A handle usually refers to a single user or rarely it may redirect to multiple users.
In some systems, the user identifier is a handle. In other systems the user
identifier is an internal representation, for example a UUID. Handles may be
changed/renamed, but hopefully internal user identifiers do not. Likewise,
group conversation identifiers could be internal or external
representations, whereas group names or channel names are often external
friendly representations.</t>
      <t>It is easy to imagine a loose hierarchy between these identifiers
(domain to user to device), but hard to agree on a specific fixed structure.
In some systems, the group chat or session itself has
a position in the hierarchy underneath the domain, the user, or the device.</t>
      <t>As described in the next section,
the author proposes using URIs as a container for interoperable IM identifiers.
All the examples use the <tt>mimi:</tt> URI scheme described in <xref target="I-D.ietf-mimi-protocol"/>. While other URI schemes could be used inside IM systems, the distinction between each type of identifier is implicit rather than explicit. Other schemes are fine within a closed system, as long as the comparison and validation rules are clear.</t>
    </section>
    <section anchor="representation-of-identifiers-using-uris">
      <name>Representation of identifiers using URIs</name>
      <t>Most if not all of the identifiers described in the previous section could be
represented as URIs. While individual instant messaging protocol-specific URI
schemes may not have been specified with this use of URIs in mind, the <tt>mimi:</tt>
URI scheme is flexible enough to represent all of or any needed subset of the
previously discussed identifiers.</t>
      <t>For example, the XMPP protocol can represent a domain, a handle (bare JID),
or a device (fully qualified JID).
Unfortunately its xmpp: URI scheme was only designed to represent handles and domains,
but the <tt>mimi:</tt> URI scheme can represent all XMPP identifiers:</t>
      <ul spacing="normal">
        <li>
          <t>mimi://example.com  (domain only)</t>
        </li>
        <li>
          <t>mimi://example.com/u/juliet  (bare JID - handle)</t>
        </li>
        <li>
          <t>mimi://example.com/d/juliet/balcony  (fully qualified JID - client/device)</t>
        </li>
      </ul>
      <t>Likewise the IRC protocol can represent domain, handle (nick), user (account),
and channel. The examples below represent a domain, a nick, a user, a local channel, and the projectX channel.</t>
      <ul spacing="normal">
        <li>
          <t>mimi://irc.example.com</t>
        </li>
        <li>
          <t>mimi://irc.example.com/u/juliet</t>
        </li>
        <li>
          <t>mimi://irc.example.com/u/jcapulet1583@example.com</t>
        </li>
        <li>
          <t>mimi://irc.example.com/r/local_announcements_channel</t>
        </li>
        <li>
          <t>mimi://irc.example.com/r/projectX</t>
        </li>
      </ul>
      <t>The first path segment in a MIMI URI discriminates the type of identifier and makes the type of resource unambiguous</t>
      <table>
        <name>types of MIMI URI identifiers</name>
        <thead>
          <tr>
            <th align="left">id type</th>
            <th align="left">example URI</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Provider</td>
            <td align="left">mimi://a.example</td>
          </tr>
          <tr>
            <td align="left">User</td>
            <td align="left">mimi://a.example/u/alice</td>
          </tr>
          <tr>
            <td align="left">Pseudonym</td>
            <td align="left">mimi://a.example/p/crazykoala75</td>
          </tr>
          <tr>
            <td align="left">Client</td>
            <td align="left">mimi://a.example/d/ClientA1 or mimi://a.example/d/alice/ClientA1</td>
          </tr>
          <tr>
            <td align="left">Room</td>
            <td align="left">mimi://a.example/r/clubhouse</td>
          </tr>
          <tr>
            <td align="left">MLS group</td>
            <td align="left">mimi://a.example/g/TII9t5viBrXiXc</td>
          </tr>
          <tr>
            <td align="left">Team</td>
            <td align="left">mimi://a.example/t/engineering</td>
          </tr>
        </tbody>
      </table>
      <t>A Pseudonym is a user identifier that is designed to conceal the identity of its
user, but may or may not wish to reveal its pseudonymous nature. In that way a pseudonym could be represented with a first path segment as a User or as Pseudonym, according to local policy.</t>
      <ul empty="true">
        <li>
          <t>Note that if there is no domain, a URI scheme could use
<tt>local.invalid</tt> in place of a resolvable domain name.</t>
        </li>
      </ul>
      <artwork><![CDATA[
mimi://local.invalid/u/alice.smith
]]></artwork>
    </section>
    <section anchor="different-root-of-trust-approaches">
      <name>Different Root of Trust Approaches</name>
      <t>Different IM applications and different users of these applications may have
different trust needs. The following subsections describe three specific trust
models for example purposes. Note that the descriptions in this section use certificates
in their examples, but nothing in this section should preclude using a different
technology which provides similar assertions.</t>
      <section anchor="centralized-credential-hierarchy">
        <name>Centralized credential hierarchy</name>
        <t>In this environment, end-user devices trust a centralized authority operating on
behalf of their domain (for example, a Certificate Authority), that is trusted by
all the other clients in that domain (and can be trusted by federated domains). The
centralized authority could easily be associated with a traditional Identity
Provider (IdP). This is a popular trust model for companies running services for
their own employees and contractors. This is also popular with governments providing
services to their employees and contractors or to residents or citizens for whom
they provide services.</t>
        <t>For example XYZ Corporation could make an assertion that "I represent XYZ
Corporation and this user demonstrated she is Alice Smith of the Engineering
department of XYZ Corporation."</t>
        <t>In this model, a Certificate Authority (CA) run by or on behalf of the domain generates
certificates for one or more of the identifier types described previously. The
specifics of the assertions are very important for interoperability. Even within
this centralized credential hierarchy model, there are at least three ways to make
assertions about different types of IM identifiers with certificates:</t>
        <dl>
          <dt>Example 1 (Separate Certs):</dt>
          <dd>
            <t>The CA generates one certificate for a user Alice which is used to sign Alice's profile.
The CA also generates a separate certificate for Alice's desktop client and a third
for her phone client. The private key in each client certificate is used to sign MLS KeyPackages or
Double Ratchet-style prekeys.</t>
          </dd>
          <dt>Example 2 (Single Combined Cert):</dt>
          <dd>
            <t>The CA generates a single certificate per client which covers both Alice's handle and
her client identifier in the same certificate. The private key in each of these certificates is used to
sign MLS KeyPackages or Double Ratchet-style prekeys. Note that there is no separate
key pair used to refer to the user distinct from a device. All the legitimate device
key pairs would be able to sign on behalf of the user.</t>
          </dd>
          <dt>Example 3 (Cascading Certs):</dt>
          <dd>
            <t>The CA generates a single user certificate for Alice's handle and indicates that the
user certificate can issue its own certificates.
The user certificate then generates one certificate for Alice's desktop client and
another certificate for Alice's phone client.
The private key in each client certificate is used to sign MLS KeyPackages or
Double Ratchet-style prekeys.</t>
          </dd>
        </dl>
        <t>What is important in all these examples is that other clients involved in a session or
group chat can validate the relevant credentials of the other participants in the
session or group chat. Clients would need to be able to configure the relevant
trust roots and walk any hierarchy unambiguously.</t>
        <t>When using certificates, this could include associating an Issuer URI in
the issuerAltName with one of the URIs in the subjectAltName of another cert.
Other mechanisms have analogous concepts.</t>
        <t>Regardless of the specific implementation, this model features a strong hierarchy.</t>
        <t>The advantage of this approach is to take advantage of a strong hierarchy which is
already in use at an organization, especially if the organization is using an
Identity Provider (IdP) for most of its services.  Even if the IM system is
compromised, the presence of client without the correct end-to-end identity would
be detected immediately.</t>
        <t>The disadvantage of this approach is that if the CA colludes with a malicious IM
system or both are compromised, an attacker or malicious IM system
can easily insert a rogue client which would be as
trusted as a legitimate client.</t>
      </section>
      <section anchor="web-of-trust">
        <name>Web of Trust</name>
        <t>In some communities, it may be appropriate to make assertions about IM
identity by relying on a web of trust. The following specific example of this general
method is used by the OMEMO community presented by <xref target="Schaub"/> and proposed in <xref target="Matrix1756"/>.
This document does not
take any position on the specifics of the proposal, but uses it to illustrate
a concrete implementation of a web of trust involving IM identifiers.</t>
        <t>The example uses a web of trust with cross signing as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Each user (Alice and Bob) has a master key.</t>
          </li>
          <li>
            <t>Alice's master key signs exactly two keys:
            </t>
            <ul spacing="normal">
              <li>
                <t>Alice's device-signing key (which then signs her own device keys), and</t>
              </li>
              <li>
                <t>Alice's user-signing key (which can sign the master key of other users).</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>The advantage of this approach is that if Alice's and Bob's keys, implementations,
and devices are not compromised,
there is no way the infrastructure can forge a key for Alice or Bob and insert
an eavesdropper or active attacker.
The disadvantages of this approach are that this requires Alice's
device-signing key to be available any time
Alice wants to add a new device, and Alice's user-signing key to be available
anytime she wants to add a new user to her web of trust. This could either make
those operations inconvenient and/or unnecessarily expose either or both of those
keys.</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="408" viewBox="0 0 408 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,128 L 8,176" fill="none" stroke="black"/>
              <path d="M 8,208 L 8,240" fill="none" stroke="black"/>
              <path d="M 48,208 L 48,240" fill="none" stroke="black"/>
              <path d="M 72,48 L 72,80" fill="none" stroke="black"/>
              <path d="M 72,208 L 72,240" fill="none" stroke="black"/>
              <path d="M 88,128 L 88,176" fill="none" stroke="black"/>
              <path d="M 112,128 L 112,176" fill="none" stroke="black"/>
              <path d="M 112,208 L 112,240" fill="none" stroke="black"/>
              <path d="M 144,48 L 144,80" fill="none" stroke="black"/>
              <path d="M 192,128 L 192,176" fill="none" stroke="black"/>
              <path d="M 216,128 L 216,176" fill="none" stroke="black"/>
              <path d="M 272,48 L 272,80" fill="none" stroke="black"/>
              <path d="M 296,128 L 296,176" fill="none" stroke="black"/>
              <path d="M 296,208 L 296,240" fill="none" stroke="black"/>
              <path d="M 320,128 L 320,176" fill="none" stroke="black"/>
              <path d="M 336,208 L 336,240" fill="none" stroke="black"/>
              <path d="M 344,48 L 344,80" fill="none" stroke="black"/>
              <path d="M 360,208 L 360,240" fill="none" stroke="black"/>
              <path d="M 400,128 L 400,176" fill="none" stroke="black"/>
              <path d="M 400,208 L 400,240" fill="none" stroke="black"/>
              <path d="M 72,48 L 144,48" fill="none" stroke="black"/>
              <path d="M 272,48 L 344,48" fill="none" stroke="black"/>
              <path d="M 152,64 L 176,64" fill="none" stroke="black"/>
              <path d="M 216,64 L 264,64" fill="none" stroke="black"/>
              <path d="M 72,80 L 144,80" fill="none" stroke="black"/>
              <path d="M 272,80 L 344,80" fill="none" stroke="black"/>
              <path d="M 8,128 L 88,128" fill="none" stroke="black"/>
              <path d="M 112,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 216,128 L 296,128" fill="none" stroke="black"/>
              <path d="M 320,128 L 400,128" fill="none" stroke="black"/>
              <path d="M 8,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 112,176 L 192,176" fill="none" stroke="black"/>
              <path d="M 216,176 L 296,176" fill="none" stroke="black"/>
              <path d="M 320,176 L 400,176" fill="none" stroke="black"/>
              <path d="M 8,208 L 48,208" fill="none" stroke="black"/>
              <path d="M 72,208 L 112,208" fill="none" stroke="black"/>
              <path d="M 296,208 L 336,208" fill="none" stroke="black"/>
              <path d="M 360,208 L 400,208" fill="none" stroke="black"/>
              <path d="M 8,240 L 48,240" fill="none" stroke="black"/>
              <path d="M 72,240 L 112,240" fill="none" stroke="black"/>
              <path d="M 296,240 L 336,240" fill="none" stroke="black"/>
              <path d="M 360,240 L 400,240" fill="none" stroke="black"/>
              <path d="M 116,88 L 132,120" fill="none" stroke="black"/>
              <path d="M 184,64 L 204,104" fill="none" stroke="black"/>
              <path d="M 228,104 L 236,120" fill="none" stroke="black"/>
              <path d="M 324,88 L 340,120" fill="none" stroke="black"/>
              <path d="M 68,120 L 84,88" fill="none" stroke="black"/>
              <path d="M 172,120 L 184,96" fill="none" stroke="black"/>
              <path d="M 196,88 L 208,64" fill="none" stroke="black"/>
              <path d="M 268,120 L 284,88" fill="none" stroke="black"/>
              <path d="M 204,104 L 228,104" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="272,64 260,58.4 260,69.6" fill="black" transform="rotate(0,264,64)"/>
              <polygon class="arrowhead" points="160,64 148,58.4 148,69.6" fill="black" transform="rotate(180,152,64)"/>
              <g class="text">
                <text x="104" y="36">Alice</text>
                <text x="208" y="36">:</text>
                <text x="304" y="36">Bob</text>
                <text x="208" y="52">:</text>
                <text x="108" y="68">master</text>
                <text x="308" y="68">master</text>
                <text x="208" y="84">:</text>
                <text x="208" y="116">:</text>
                <text x="44" y="148">device</text>
                <text x="148" y="148">user</text>
                <text x="208" y="148">:</text>
                <text x="252" y="148">user</text>
                <text x="356" y="148">device</text>
                <text x="48" y="164">signing</text>
                <text x="152" y="164">signing</text>
                <text x="208" y="164">:</text>
                <text x="256" y="164">signing</text>
                <text x="360" y="164">signing</text>
                <text x="208" y="180">:</text>
                <text x="32" y="196">/</text>
                <text x="80" y="196">\</text>
                <text x="208" y="196">:</text>
                <text x="328" y="196">/</text>
                <text x="376" y="196">\</text>
                <text x="208" y="212">:</text>
                <text x="28" y="228">A1</text>
                <text x="92" y="228">A2</text>
                <text x="208" y="228">:</text>
                <text x="316" y="228">B1</text>
                <text x="380" y="228">B2</text>
                <text x="208" y="244">:</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
          Alice          :          Bob
        +--------+       :       +--------+
        | master |<---\  /------>| master |
        +--------+     \/:       +--------+
         /    \       / \___      /     \
        /      \     /   :  \    /       \
+---------+  +---------+  +---------+  +---------+
| device  |  |  user   | :|  user   |  | device  |
| signing |  | signing | :| signing |  | signing |
+---------+  +---------+ :+---------+  +---------+
   /     \               :              /     \
+----+  +----+           :          +----+  +----+
| A1 |  | A2 |           :          | B1 |  | B2 |
+----+  +----+           :          +----+  +----+
]]></artwork>
        </artset>
        <t>Figure: Alice and Bob cross sign each other's master keys</t>
        <t>A detailed architecture for Web of Trust key infrastructure which is not specific to
Instant Messaging systems is the Mathematical Mesh <xref target="I-D.hallambaker-mesh-architecture"/>.</t>
      </section>
      <section anchor="well-known-service-cross-signing">
        <name>Well-known service cross signing</name>
        <t>In this trust model, a user with several services places a cross signature for all
their services at a well known location on each of those services (for example a
personal web site .well-known page, an IM profile, the profile page on an open source code
repository, a social media About page, a picture sharing service profile page,
a professional interpersonal-networking site contact page, and a dating application profile).
This concept was perhaps first implemented for non-technical users by Keybase.
The user of this scheme likely expects that at any given moment
there is a risk that one of these services is compromised or controlled by a
malicious entity, but expects the likelihood of all or most of their services being
compromised simultaneously is very low.</t>
        <t>The advantage of this approach is that it does not rely on anyone but the user
herself. This disadvantage is that if an attacker is able to delete or forge cross
signatures on a substantial number of the services, the forged assertions would looks as
legitimate as the authentic assertions (or more convincing).</t>
      </section>
      <section anchor="combining-approaches">
        <name>Combining approaches</name>
        <t>These different trust approaches could be combined, however the verification rules
become more complicated. Among other problems, implementers need to decide what happens
if two different trust methods come to incompatible conclusions. For example, what
should the application do if web of trust certificates indicate that a client or
user should be trusted, but a centralized hierarchy indicates a client should not be,
or vice versa.</t>
      </section>
    </section>
    <section anchor="cryptographic-mechanisms-to-make-assertions-about-im-identifiers">
      <name>Cryptographic mechanisms to make assertions about IM identifiers</name>
      <section anchor="x509-certificates">
        <name>X.509 Certificates</name>
        <t>X.509 certificates are a mature technology for making assertions about identifiers.
The supported assertions and identifier formats used in certificates are
somewhat archaic, inflexible, and pedantic, but well understood. The semantics
are always that an Issuer asserts that a Subject has control of a specific
public key key pair.  A handful of additional attributes can be added as X.509
certificate extensions, although adding new extensions is laborious and
time consuming. In practice new extensions are only added to facilitate the
internals of managing the lifetime, validity, and applicability of certificates.
X.509 extensions are not appropriate for arbitrary assertions or claims about the
Subject.</t>
        <t>The Subject field
contains a Distinguished Name, whose Common Name (CN) field can contain free form text.
The subjectAltName can contain multiple other identifiers for the Subject
with types such as a URI, email address, DNS domain names, or
Distinguished Name. The rules about which combinations of extensions are valid
are defined in the Internet certificate profile described in <xref target="RFC5280"/>. As noted
in a previous section of this document, URIs are a natural container for holding
instant messaging identifiers. Implementations need to be careful to insure that the
correct semantics are applied to a URI, as they may be referring to different
objects (ex: a handle versus a client identifier). There is a corresponding
issuerAltName field as well.</t>
        <t>Certificates are already supported in MLS as a standard credential type which can
be included in MLS LeafNodes and KeyPackages.</t>
        <ul empty="true">
          <li>
            <t>In the X3DH key agreement protocol (used with Double Ratchet), the first message
in a session between a pair of clients can contain an optional
certificate, but this is not standardized.</t>
          </li>
        </ul>
        <t>Arguably the biggest drawback to using X.509 certificates is that administratively
it can be difficult to obtain certificates for entities that can also generate
certificates---specifically to issue a certificate with the standard extension
<tt>basicContraints=CA:TRUE</tt>.</t>
        <artwork><![CDATA[
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            04:dc:7a:4b:89:22:98:32:35:1f:91:84:f7:e9:4e:5d:24:c4
        Signature Algorithm: ED25519
        Issuer: O = example.com, CN = acme.example.com
        Validity
            Not Before: Jul  6 06:41:50 2022 GMT
            Not After : Oct  4 06:41:49 2022 GMT
        Subject: O = example.com, CN = Alice M. Smith
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    a0:6b:14:1e:a8:04:2a:09:6b:62:89:48:7c:da:5c:
                    68:73:b9:2a:8e:65:50:f9:15:70:bd:91:d7:86:52:
                    1e:4f
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier:
                4C:EA:12:32:79:03:F6:4F:47:29:37:5F:96:BB:E1:91:5E:FC
            X509v3 Authority Key Identifier:
                14:2E:B3:17:B7:58:56:CB:AE:50:09:40:E6:1F:AF:9D:8B:14
            Authority Information Access:
                OCSP - URI:http://oscp.acme.example.com
                CA Issuers - URI:http://acme.example.com/
            X509v3 Subject Alternative Name: critical
                URI:mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7,
                URI:mimi://example.com/u/alice.smith
            X509v3 Certificate Policies:
                [etc....]

    Signature Algorithm: ED25519
    Signature Value:
        da:21:49:cc:7a:ac:ed:7b:27:59:30:81:d9:94:c0:d7:86:e7:
        db:b2:c9:ed:72:47:19:01:aa:2a:7f:24:d6:ce:2f:4f:9d:fe:
        ab:8b:e2:0e:43:1b:62:b1:1d:12:3f:78:a2:bf:cc:7b:52:ef:
        df:c1:94:5a:3f:ca:a1:f6:88:02
]]></artwork>
        <t>Figure: mocked up IM client certificate with both client id and handle</t>
        <t>If implementing cascading certificates, the Issuer might be a expressed as a URI in the
issuerAltName extension.</t>
        <artwork><![CDATA[
TBC
]]></artwork>
        <t>Figure: mocked up IM client certificate issued by the domain for the handle URI as
Subject. Then another certificate issued by the handle URI for the device URI as its
Subject.</t>
      </section>
      <section anchor="json-web-tokens-jwt-and-cbor-web-tokens-cwt">
        <name>JSON Web Tokens (JWT) and CBOR Web Tokens (CWT)</name>
        <t>JSON Web Signing (JWS) <xref target="RFC7515"/> and JSON Web Tokens (JWT) <xref target="RFC7519"/> are toolkits for
making a variety of cryptographic claims. (CBOR Web Tokens <xref target="RFC8392"/> are semantically
equivalent to JSON Web Tokens.)
Both token types are an appealing option for carrying IM identifiers and assertions, as the
container type is flexible and the format is easy to implement. Unfortunately the
semantics for validating identifiers are not as rigorously specified as for
certificates at the time of this writing, and require
additional specification work.</t>
        <t>The JWT Demonstrating Proof of Possession (DPoP) specification <xref target="RFC9449"/>
adds the ability
to make claims which involve proof of possession of a (typically private) key, and
to share those claims with third parties. The owner of a the key generates a <tt>proof</tt>
which is used to fetch an <tt>access token</tt> which can then be verified by a third party.
JWT DPoP was actually created as an improvement over Bearer tokens used for
authentication, so its use as a certificate-like assertion may require substantial
clarification and possibly additional profile work.</t>
        <t>While there is support for token introspection, in general access tokens need
online verification between resources and the token issuer.</t>
        <artwork><![CDATA[
{
    "typ": "dpop+jwt",
    "alg": "EdDSA",
    "jwk": {
         "typ": "OKP",
         "crv": "Ed25519",
         "x": "9kaYCj...3lnwW"
    }
}
.
{
    "jti": "7535d380-673e-4219-8410-b8df679c306e",
    "iat": 1653455836315,
    "htm": "POST",
    "htu": "https://example.com/client/token",
    "nonce": "WE88EvOBzbqGerznM-2P_AadVf7374y0cH19sDSZA2A",
    "sub": "mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7",
    "exp": 1661231836315
}
]]></artwork>
        <t>Figure: JOSE header and claims sections of a JWT DPoP proof referring to an IM URI</t>
        <t>Finally, there are selective disclosure variants of JWTs <xref target="I-D.ietf-oauth-selective-disclosure-jwt"/> and CWTs <xref target="I-D.ietf-spice-sd-cwt"/> available. Selective Disclosure JWTs (SD-JWT) have an optional key binding mechanism. Selective Disclosure CWTs (SD-CWT) have a mandatory Key Binding Token (KBT). Both can be used directly as MLS credentials <xref target="I-D.mahy-mls-sd-cwt-credential"/>.</t>
      </section>
      <section anchor="verifiable-credentials">
        <name>Verifiable Credentials</name>
        <t>Verifiable Credentials (VC) is a framework for exchanging machine-readable
credentials <xref target="W3C.REC-vc-data-model-20191119"/>. The framework is well
specified and has a very flexbile assertion structure, which
in addition to or in place of basic names and identifiers, can
optionally include arbitrary attributes (ex: security clearance, age, nationality)
up to and including selective disclosure depending on the profile being used.
For example, a verifiable credential could be used to assert that an IM client
belongs to a Customer Support agent of Sirius Cybernetic Corp, who speaks
English and Vogon, and is qualified to give support for their Ident-I-Eeze product,
without revealing the name of the agent.</t>
        <t>The VC specification describes both Verifiable Credentials and Verifiable Presentations.
A Verifiable Credential contains assertions made by an issuer. Holders assemble
credentials into a Verifiable Presentation. Verifiers can validate the Verifiable
Credentials in the Verifiable Presentation. Specific credential types are defined by
referencing ontologies. The example at the end of this section uses the
VCard ontology <xref target="W3C.WD-vcard-rdf-20130924"/>.</t>
        <t>Most of the examples for Verifiable Credentials and many of the implementations by commercial identity
providers use Decentralized Identifiers (DIDs), but there is no requirement to use DID or the associated esoteric cryptography
in a specific VC profile.  (Indeed the VC profile for COVID-19 for vaccination
does not use DIDs). The most significant problem with VCs are that
there is no off-the-shelf mechanism for proof of possession of a private key, and no
consensus to use VCs for user authentication (as opposed to using VCs to assert identity attributes).</t>
        <t>While the examples in this document are represented as JSON, including whitespace,
the actual JSON encoding used for VC has no whitespace.</t>
        <t>The first example shows a fragment of the claims in a JWT-based VC proof,
referencing the VCard ontology.</t>
        <artwork><![CDATA[
{
  "sub": "mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7",
  "jti": "http://im.example.com/@alice_smith/devices/04c7",
  "iss": "https://im.example.com/keys/issuer.jwk",
  "nbf": 1653455836315,
  "iat": 1653455836315,
  "exp": 1661231836315,
  "nonce": "WE88EvOBzbqGerznM-2P_AadVf7374y0cH19sDSZA2A",
  "vc": {
    "@context": [
      "https://www.w3.org/2018/credentials/v1",
      "http://www.w3.org/2006/vcard/ns"
    ],
    "type": ["VerifiableCredential", "ImDeviceCredential"],
    "credentialSubject": {
      "fn": "Alice M. Smith",
      "hasOrganizationName": "Example Corp",
      "hasOrganizationalUnit": "Engineering",
      "hasInstantMessage": "mimi://example.com/u/alice_smith",
      "hasInstantMessage": "mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7"
    }
  }
}
]]></artwork>
        <t>Figure: fragment of example VC claims using VCard ontology</t>
        <t>In the next example, there is a Verifiable Presentation (VP) JOSE header
and claims which contains two embedded VCs for the same holder. The JOSE
header contains an actual Ed25519 public key. The corresponding key id
could be expressed using the <tt>kid</tt> type with a
<tt>urn:ietf:params:oauth:jwk-thumbprint:sha-256:</tt> prefix, the actual fingerprint
value would be <tt>mJafqNxZWNAIkaDGPlNyhccFSAqnRjhyA3FJNm0f8I8</tt>.</t>
        <t>The first VC contains a full name and a handle-style identifier. It is created
by one issuer (for example an identity provider), and uses standard claims from
OpenID Connect Core. The second VC contains a
client or device identifier and is created by a different issuer (the IM service).</t>
        <t>Note that in the text version of this document, the <tt>jws</tt> values and
<tt>verification Method</tt> URLs are truncated.</t>
        <artwork><![CDATA[
{
 "typ": "dpop+jwt",
 "alg": "EdDSA",
 "jwk": {
  "typ": "OKP",
  "crv": "Ed25519",
  "x": "6UnHNcJ_iFCkToj9ZabfFgFTI1LPoWo0ZAdv96EyaEw"
 }
}
.
{
 "@context": [
   "https://www.w3.org/2018/credentials/v1"
 ],
 "type": [
   "VerifiablePresentation"
 ],
 "verifiableCredential": [
    {
     "@context": [
       "https://www.w3.org/2018/credentials/v1",
       "https://openid.net/2014/openid-connect-core/v1",
     ],
     "id": "https://idp.example.com/credentials/1872",
     "type": [
       "VerifiableCredential",
       "ImUserIdentityCredential"
     ],
     "issuer": {
       "id": "dns:idp.example.com"
     },
     "issuanceDate": "2022-06-19T15:30:16Z",
     "credentialSubject": {
       "sub": "mimi://example.com/u/a_smith",
       "name": "Smith, Alice (Allie)",
       "preferred_username": "@a_smith@example.com",
     },
     "proof": {
       "type": "Ed25519Signature2018",
       "created": "2022-06-19T15:30:15Z",
       "jws": "LedhVWaZvgklWAsPlGU4aEOuxPgXD16-aL5X7RNAyoXRvHPzYAqH8a3..Yot9dpKNuhWim2EwZUk-rmM876Xex_Con_HGseAqR6o",
       "proofPurpose": "assertionMethod",
       "verificationMethod":
         "https://idp.example.com/keys/Ed25519/sha256:wF6oONwUJSa3oi8vyBEG8S2CiZANGTN_8ZNXf4RYdyQ"
     }
    },
    {
     "@context": [
       "https://www.w3.org/2018/credentials/v1",
       "https://ietf.org/2022/oauth/MlsClientCredential/v1"
     ],
     "id": "https://im.example.com/credentials/9829381",
     "type": [
       "VerifiableCredential",
       "MlsClientIdCredential"
     ],
     "issuer": {
       "id": "dns:im.example.com"
     },
     "issuanceDate": "2022-09-08T19:23:24Z",
     "credentialSubject": {
       "sub": "mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7"
     },
     "proof": {
       "type": "Ed25519Signature2018",
       "created": "2021-03-19T15:30:15Z",
       "jws": "N8xYGopY8_2wJYuhFX5QMuvMBjzHPJqp06w73UL53BBdhxP9QxtqxTAk..jZrTdfr4kMkCOYhLoFG2L7roGZFmDzVSecfzNwf36lk",
       "proofPurpose": "assertionMethod",
       "verificationMethod": "https://im.example.com/keys/Ed25519/sha256:uZx-Zx68PzlMsd2PgslEWBCF-BDyjMUdVDbZhnCZIls"
     }
    }
 ],
 "id": "ebc6f1c2",
 "holder": "mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7",
 "proof": {
   "type": "Ed25519Signature2018",
   "created": "2022-09-22T11:10:04Z",
   "challenge": "Es6R6R4yI66_yw0d4ulfFQ",
     "domain": "mimi://example.com/d/SvPfLlwBQi-6oddVRrkqpw/04c7",
     "jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..UIVpxg5CEOSrQtvpse2svUhgzM3iCZOvcJ-XjwNNd0o",
     "proofPurpose": "authentication",
     "verificationMethod": "urn:ietf:params:oauth:jwk-thumbprint:sha-256:mJafqNxZWNAIkaDGPlNyhccFSAqnRjhyA3FJNm0f8I8"
 }
}
]]></artwork>
        <t>Figure: Example VP with 2 embedded VCs</t>
      </section>
      <section anchor="other-possible-mechanisms">
        <name>Other possible mechanisms</name>
        <t>Below are other mechanisms which were not investigated due to a lack of time.</t>
        <ul spacing="normal">
          <li>
            <t>Anonymous credential schemes which can present attributes without the
long-term identity (ex: travel agent for specific team) such as those generated by the Privacy Pass Architecture <xref target="RFC9576"/>, or Anonymous Credit Tokens <xref target="I-D.draft-schlesinger-cfrg-act"/>.
.- Zero-knowledge proofs - new work is starting in the IETF to define JSON Web Proofs (JWP) <xref target="I-D.ietf-jose-json-web-proof"/>, a new format that uses zero knowledge proofs (with both JSON and CBOR formats).</t>
          </li>
          <li>
            <t>Deniable credentials</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requires no action by IANA.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBC.
(The threat model for interoperable IM systems depends on many subtle details).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="I-D.ietf-mimi-arch">
          <front>
            <title>An Architecture for More Instant Messaging Interoperability (MIMI)</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <date day="21" month="November" year="2024"/>
            <abstract>
              <t>   The More Instant Messaging Interoperability (MIMI) working group is
   defining a suite of protocols that allow messaging providers to
   interoperate with one another.  This document lays out an overall
   architecture enumerating the MIMI protocols and how they work
   together to enable an overall messaging experience.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-arch-01"/>
        </reference>
        <reference anchor="RFC9420" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9420.xml">
          <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="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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="I-D.ietf-mimi-protocol">
          <front>
            <title>More Instant Messaging Interoperability (MIMI) using HTTPS and MLS</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Matthew Hodgson" initials="M." surname="Hodgson">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <author fullname="Travis Ralston" initials="T." surname="Ralston">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This document specifies the More Instant Messaging Interoperability
   (MIMI) transport protocol, which allows users of different messaging
   providers to interoperate in group chats (rooms), including to send
   and receive messages, share room policy, and add participants to and
   remove participants from rooms.  MIMI describes messages between
   providers, leaving most aspects of the provider-internal client-
   server communication up to the provider.  MIMI integrates the
   Messaging Layer Security (MLS) protocol to provide end-to-end
   security assurances, including authentication of protocol
   participants, confidentiality of messages exchanged within a room,
   and agreement on the state of the room.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-protocol-04"/>
        </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>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </reference>
        <reference anchor="RFC9449">
          <front>
            <title>OAuth 2.0 Demonstrating Proof of Possession (DPoP)</title>
            <author fullname="D. Fett" initials="D." surname="Fett"/>
            <author fullname="B. Campbell" initials="B." surname="Campbell"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="T. Lodderstedt" initials="T." surname="Lodderstedt"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="D. Waite" initials="D." surname="Waite"/>
            <date month="September" year="2023"/>
            <abstract>
              <t>This document describes a mechanism for sender-constraining OAuth 2.0 tokens via a proof-of-possession mechanism on the application level. This mechanism allows for the detection of replay attacks with access and refresh tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9449"/>
          <seriesInfo name="DOI" value="10.17487/RFC9449"/>
        </reference>
        <reference anchor="I-D.ietf-oauth-selective-disclosure-jwt">
          <front>
            <title>Selective Disclosure for JWTs (SD-JWT)</title>
            <author fullname="Daniel Fett" initials="D." surname="Fett">
              <organization>Authlete</organization>
            </author>
            <author fullname="Kristina Yasuda" initials="K." surname="Yasuda">
              <organization>Keio University</organization>
            </author>
            <author fullname="Brian Campbell" initials="B." surname="Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date day="29" month="May" year="2025"/>
            <abstract>
              <t>   This specification defines a mechanism for the selective disclosure
   of individual elements of a JSON data structure used as the payload
   of a JSON Web Signature (JWS).  The primary use case is the selective
   disclosure of JSON Web Token (JWT) claims.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-22"/>
        </reference>
        <reference anchor="I-D.ietf-spice-sd-cwt">
          <front>
            <title>SPICE SD-CWT</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   This specification describes a data minimization technique for use
   with CBOR Web Tokens (CWTs).  The approach is based on the Selective
   Disclosure JSON Web Token (SD-JWT), with changes to align with CBOR
   Object Signing and Encryption (COSE) and CWTs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spice-sd-cwt-04"/>
        </reference>
        <reference anchor="I-D.mahy-mls-sd-cwt-credential">
          <front>
            <title>Messaging Layer Security Credentials using Selective Disclosure JSON and CBOR Web Tokens</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol contains Credentials used
   to authenticate an MLS client with a signature key pair.  Selective
   Disclosure CBOR Web Tokens (SD-CWT) and Selective Disclosure JSON Web
   Tokens (SD-JWT) define token formats where the holder can selectively
   reveal claims about itself with strong integrity protection and
   cryptographic binding to the holder's key.  This document defines MLS
   credentials for both these token types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-mahy-mls-sd-cwt-credential-01"/>
        </reference>
        <reference anchor="W3C.REC-vc-data-model-20191119" target="https://www.w3.org/TR/2019/REC-vc-data-model-20191119/">
          <front>
            <title>Verifiable Credentials Data Model 1.0</title>
            <author fullname="Brent Zundel" role="editor"/>
            <author fullname="Daniel Burnett" role="editor"/>
            <author fullname="Dave Longley" role="editor"/>
            <author fullname="Grant Noble" role="editor"/>
            <author fullname="Manu Sporny" role="editor"/>
            <date day="19" month="November" year="2019"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-vc-data-model-20191119"/>
          <seriesInfo name="W3C" value="REC-vc-data-model-20191119"/>
        </reference>
        <reference anchor="W3C.WD-vcard-rdf-20130924" target="http://www.w3.org/TR/2013/WD-vcard-rdf-20130924/">
          <front>
            <title>vCard Ontology</title>
            <author fullname="James McKinney" role="editor"/>
            <author fullname="Renato Iannella" role="editor"/>
            <date day="24" month="September" year="2013"/>
          </front>
          <seriesInfo name="W3C WD" value="WD-vcard-rdf-20130924"/>
          <seriesInfo name="W3C" value="WD-vcard-rdf-20130924"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="OTR" target="https://otr.cypherpunks.ca/otr-wpes.pdf">
          <front>
            <title>Off-the-Record Communication, or, Why Not To Use PGP</title>
            <author initials="N." surname="Borisov" fullname="Nikita Borisov">
              <organization>UC Berkeley</organization>
            </author>
            <author initials="I." surname="Goldberg" fullname="Ian Goldberg">
              <organization/>
            </author>
            <author initials="E." surname="Brewer" fullname="Eric Brewer">
              <organization>UC Berkeley</organization>
            </author>
            <date year="2004" month="October" day="28"/>
          </front>
        </reference>
        <reference anchor="DoubleRatchet" target="https://signal.org/docs/specifications/doubleratchet/">
          <front>
            <title>The Double Ratchet Algorithm</title>
            <author initials="T." surname="Perrin" fullname="Trevor Perrin">
              <organization>Signal</organization>
            </author>
            <author initials="M." surname="Marlinspike" fullname="Moxie Marlinspike">
              <organization>Signal</organization>
            </author>
            <date year="2016" month="November" day="20"/>
          </front>
        </reference>
        <reference anchor="X3DH" target="https://signal.org/docs/specifications/x3dh/">
          <front>
            <title>The X3DH Key Agreement Protocol</title>
            <author initials="M." surname="Marlinspike" fullname="Moxie Marlinspike">
              <organization>Signal</organization>
            </author>
            <author initials="T." surname="Perrin" fullname="Trevor Perrin">
              <organization>Signal</organization>
            </author>
            <date year="2016" month="November" day="04"/>
          </front>
        </reference>
        <reference anchor="Schaub" target="https://www.youtube.com/watch?v=oc5844dyrsc">
          <front>
            <title>Cryptographic Identity: Conquering the Fingerprint Chaos (video)</title>
            <author initials="P." surname="Schaub" fullname="Paul Schaub">
              <organization/>
            </author>
            <date year="2021" month="April" day="06"/>
          </front>
        </reference>
        <reference anchor="Matrix1756" target="https://github.com/matrix-org/matrix-doc/blob/master/proposals/1756-cross-signing.md">
          <front>
            <title>Cross-signing devices with device signing keys</title>
            <author initials="H." surname="Chathi" fullname="Hubert Chathi">
              <organization>Element</organization>
            </author>
            <date year="2018" month="December" day="13"/>
          </front>
        </reference>
        <reference anchor="RFC9750">
          <front>
            <title>The Messaging Layer Security (MLS) Architecture</title>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="S. Inguva" initials="S." surname="Inguva"/>
            <author fullname="A. Duric" initials="A." surname="Duric"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>The Messaging Layer Security (MLS) protocol (RFC 9420) provides a group key agreement protocol for messaging applications. MLS is designed to protect against eavesdropping, tampering, and message forgery, and to provide forward secrecy (FS) and post-compromise security (PCS).</t>
              <t>This document describes the architecture for using MLS in a general secure group messaging infrastructure and defines the security goals for MLS. It provides guidance on building a group messaging system and discusses security and privacy trade-offs offered by multiple security mechanisms that are part of the MLS protocol (e.g., frequency of public encryption key rotation). The document also provides guidance for parts of the infrastructure that are not standardized by MLS and are instead left to the application.</t>
              <t>While the recommendations of this document are not mandatory to follow in order to interoperate at the protocol level, they affect the overall security guarantees that are achieved by a messaging application. This is especially true in the case of active adversaries that are able to compromise clients, the Delivery Service (DS), or the Authentication Service (AS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9750"/>
          <seriesInfo name="DOI" value="10.17487/RFC9750"/>
        </reference>
        <reference anchor="I-D.ietf-keytrans-architecture">
          <front>
            <title>Key Transparency Architecture</title>
            <author fullname="Brendan McMillion" initials="B." surname="McMillion">
         </author>
            <date day="19" month="October" year="2025"/>
            <abstract>
              <t>   This document defines the terminology and interaction patterns
   involved in the deployment of Key Transparency in a general secure
   group messaging infrastructure, and specifies the security properties
   that the protocol provides.  It also gives more general, non-
   prescriptive guidance on how to securely apply Key Transparency to a
   number of common applications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-keytrans-architecture-05"/>
        </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>Rohan Mahy Consulting Service</organization>
            </author>
            <date day="4" month="February" year="2025"/>
            <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-02"/>
        </reference>
        <reference anchor="RFC6120" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6120.xml">
          <front>
            <title>Extensible Messaging and Presence Protocol (XMPP): Core</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>The Extensible Messaging and Presence Protocol (XMPP) is an application profile of the Extensible Markup Language (XML) that enables the near-real-time exchange of structured yet extensible data between any two or more network entities. This document defines XMPP's core protocol methods: setup and teardown of XML streams, channel encryption, authentication, error handling, and communication primitives for messaging, network availability ("presence"), and request-response interactions. This document obsoletes RFC 3920. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6120"/>
          <seriesInfo name="DOI" value="10.17487/RFC6120"/>
        </reference>
        <reference anchor="I-D.hallambaker-mesh-architecture">
          <front>
            <title>Mathematical Mesh 3.0 Part I: Architecture Guide</title>
            <author fullname="Phillip Hallam-Baker" initials="P." surname="Hallam-Baker">
              <organization>ThresholdSecrets.com</organization>
            </author>
            <date day="14" month="October" year="2024"/>
            <abstract>
              <t>   The Mathematical Mesh is a Threshold Key Infrastructure that makes
   computers easier to use by making them more secure.  Application of
   threshold cryptography to key generation and use enables users to
   make use of public key cryptography across multiple devices with
   minimal impact on the user experience.

   This document provides an overview of the Mesh data structures,
   protocols and examples of its use.

   [Note to Readers] Discussion of this draft takes place on the
   MATHMESH mailing list (mathmesh@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/search/?email_list=mathmesh.

   This document is also available online at
   http://mathmesh.com/Documents/draft-hallambaker-mesh-
   architecture.html.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hallambaker-mesh-architecture-23"/>
        </reference>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC8392">
          <front>
            <title>CBOR Web Token (CWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>CBOR Web Token (CWT) is a compact means of representing claims to be transferred between two parties. The claims in a CWT are encoded in the Concise Binary Object Representation (CBOR), and CBOR Object Signing and Encryption (COSE) is used for added application-layer security protection. A claim is a piece of information asserted about a subject and is represented as a name/value pair consisting of a claim name and a claim value. CWT is derived from JSON Web Token (JWT) but uses CBOR rather than JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8392"/>
          <seriesInfo name="DOI" value="10.17487/RFC8392"/>
        </reference>
        <reference anchor="RFC9576">
          <front>
            <title>The Privacy Pass Architecture</title>
            <author fullname="A. Davidson" initials="A." surname="Davidson"/>
            <author fullname="J. Iyengar" initials="J." surname="Iyengar"/>
            <author fullname="C. A. Wood" initials="C. A." surname="Wood"/>
            <date month="June" year="2024"/>
            <abstract>
              <t>This document specifies the Privacy Pass architecture and requirements for its constituent protocols used for authorization based on privacy-preserving authentication mechanisms. It describes the conceptual model of Privacy Pass and its protocols, its security and privacy goals, practical deployment models, and recommendations for each deployment model, to help ensure that the desired security and privacy goals are fulfilled.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9576"/>
          <seriesInfo name="DOI" value="10.17487/RFC9576"/>
        </reference>
        <reference anchor="I-D.draft-schlesinger-cfrg-act">
          <front>
            <title>Anonymous Credit Tokens</title>
            <author fullname="Samuel Schlesinger" initials="S." surname="Schlesinger">
              <organization>Google</organization>
            </author>
            <author fullname="Jonathan Katz" initials="J." surname="Katz">
              <organization>Google</organization>
            </author>
            <date day="18" month="August" year="2025"/>
            <abstract>
              <t>   This document specifies Anonymous Credit Tokens (ACT), a privacy-
   preserving authentication protocol that enables numerical credit
   systems without tracking individual clients.  Based on keyed-
   verification anonymous credentials and privately verifiable BBS-style
   signatures, the protocol allows issuers to grant tokens containing
   credits that clients can later spend anonymously with that issuer.

   The protocol's key features include: (1) unlinkable transactions -
   the issuer cannot correlate credit issuance with spending, or link
   multiple spends by the same client, (2) partial spending - clients
   can spend a portion of their credits and receive anonymous change,
   and (3) double-spend prevention through cryptographic nullifiers that
   preserve privacy while ensuring each token is used only once.

   Anonymous Credit Tokens are designed for modern web services
   requiring rate limiting, usage-based billing, or resource allocation
   while respecting user privacy.  Example applications include rate
   limiting and API credits.

   This document is a product of the Crypto Forum Research Group (CFRG)
   in the IRTF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schlesinger-cfrg-act-00"/>
        </reference>
        <reference anchor="I-D.ietf-jose-json-web-proof">
          <front>
            <title>JSON Web Proof</title>
            <author fullname="David Waite" initials="D." surname="Waite">
              <organization>Ping Identity</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Jeremie Miller" initials="J." surname="Miller">
              <organization>Ping Identity</organization>
            </author>
            <date day="7" month="July" year="2025"/>
            <abstract>
              <t>   The JOSE set of standards established JSON-based container formats
   for Keys, Signatures, and Encryption.  They also established IANA
   registries to enable the algorithms and representations used for them
   to be extended.  Since those were created, newer cryptographic
   algorithms that support selective disclosure and unlinkability have
   matured and started seeing early market adoption.  The COSE set of
   standards likewise does this for CBOR-based containers, focusing on
   the needs of environments which are better served using CBOR, such as
   constrained devices and networks.

   This document defines a new container format similar in purpose and
   design to JSON Web Signature (JWS) and COSE Signed Messages called a
   _JSON Web Proof (JWP)_.  Unlike JWS, which integrity-protects only a
   single payload, JWP can integrity-protect multiple payloads in one
   message.  It also specifies a new presentation form that supports
   selective disclosure of individual payloads, enables additional proof
   computation, and adds a protected header to prevent replay.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-jose-json-web-proof-10"/>
        </reference>
      </references>
    </references>
    <?line 781?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author wishes to thank Richard Barnes, Tom Leavy, Joel Alwen, Marta Mularczyk,
Pieter Kasselman, and Rifaat Shekh-Yusef for discussions about this topic.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Bew/2zs7LT/qH/l+u73vHx8MBv5Atdr+7t7+wb/vV8Z/hz5CO/5PduUa1Xn9
O4NoV+1EoRe0BwNv7/hg3zs6Otz19neOBzsB/He4H27vHLb7y/K9JruYsW2v
cDUtwgAd2MmOUSDEXPh/mqrEbblpdOAt0rfB8IR2qXahJc8xQ+J67D+2yj3a
I8ZHi2pryBMadVe7u+WY3Q9AmG0YGEmP0XhObif9ZBRPUCJZLXGGzBb4aFOQ
6HXUazMsNLYavbNFLRpgZO08JkaLrJziWGN056AQYwxALyBLK/bq41wZNMvN
dGytM3O0jmQruv60ITZHQTHyQKV92NIaOPM6IFlABVUZidiuDIbkYCwykj0A
vjhALxfF2EA2htZxIhMyLtgFR9bkvFqUOeoGe1q0N5jY1S071WucZdPwoS0r
AAGeFU9B6/QZdYbcTgxNnKHlt/CUSrB5UnL9l1prQcGiOMhwT60/xdE9A4Oo
xIYspoWOKSIfF/cVudc8+L3Te3ZTDljumiWYZSLKMnfURmZTdMgZZ0MTOgeo
FkCxiQaDYIyWObx0mCsKlQjWSnpMkAgrMtBq4VCNdsaD2DY0jmtLGWlIOsN6
dfwqKEg204mQF0iwpYaxOgA4CCDEA5TjxcqxoWtPBWOEOMbQdNh1yV52kWSN
C4Odkw7txNp1XFZxUlohkrNg/2WlqBaVQlr5QrTPFoGPmythiQ0Ke2qfIlKf
SoGHwPqvUq20VLs2epOGXVG3wYEWsj66/lk5sjoTtQXdzpr42r5nYLNfvaam
wZiogEALMOtRKsOB0LFSBMesQbtQjUh3KX6N4gpTGD0detSYxFp9WTsx1hPV
snqImk5TGrscV9xXgnlhtA2aAHJajhGPwJRivesp7QIJApW3pnwNCtE8LlRD
MOnU6MvtYHV7O6bjLxH1pQOA5ugRg9PkUXFxhDea/+sHlWPCDjTI4SAjOrfa
iIArPfJXw6AYkwISRumDgAGtCLjTCFaJERYESzlXNqzl7EFsak8UdDeqOmuZ
WxpwQc5EiUFO1i+tq4wNErZgpuh2XYsTGohavFqSLQuVEHsHHXOSsf/CRPir
hU/RwwGiVseijYZpMIcpB1/QmjGEUY8+0csUYzwFs6cGaZ+cDyI57UQVOnr8
5qZXMIFqdVQLxqW8hKXUB9QHSMtntCys2/IeY13+PQ6r0ynqS1uJ6BuW+v17
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
duPux6tZ+Mp7/3l+eRntWJa9ijc1X41tth5pfpfd8DvMAK3lufadsWDfXrPV
0q6ZVRT34JokOozqfMu2ECdUupYuKCzXLdG1I5TOAojTmSrKeMgV8OgzplhB
AlN4UbGmT2tgVYDUVLx03Kum6HMVpralcqtwglOoQ1Rf5bFmCEUbyjyYqUT7
5NFgqS6SqmC8ZZP7OQhvQuo2u+UaHXThQl4DD5Ad9war/jz3/uHB9+9UOr3a
BwqAuHSyRDDWFOXBoPRgX4kqyMDzwkE+9MDmQxdu05MfVZ7R5cxERUOdVICJ
bXg1xER6wIrKS+fz7fTNVLqhRWXEbZLJNXfefPXueqv2beTPsEvvc5Gl3lz1
PZoDl8+34nVKCJlDZLR9hSXJlSVtVjlRNKFN3NFXhraw1sMpaNhLAZaCipL3
OpcdSp+MzccY6eKb63a0dQTSjKoSZFTuDjvSdatbE0BaGeWk2xSbaD9iVbjA
rXm4Unbe3Bjm8BHdDySPOAjHkm5Q4K1lcpQKz/MkJp7j3J3QgIMqHIqffb5H
qKK/bQxgiwpryN6NbFV8LPJqqh4G6YO8iUP6CsAJfcG5ATgyxjT+2aIhX2Ww
1k4yx++zXsAxB/ICqyqGXxcPDXENpwfE9iOKogQWypb1TTwIYJu3I/Uw8j7g
h9rs5zin+svm5j4OlfGZxGFT/F8o4wtVrokAAA==

-->

</rfc>
