<?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-ietf-ippm-encrypted-pdmv2-11" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="draft-ietf-ippm-encrypted-pdmv2">IPv6 Performance and Diagnostic Metrics Version 2 (PDMv2) Destination Option</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-encrypted-pdmv2-11"/>
    <author fullname="Nalini Elkins">
      <organization>Inside Products, Inc.</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>nalini.elkins@insidethestack.com</email>
      </address>
    </author>
    <author fullname="Michael Ackermann">
      <organization>BCBS Michigan</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>mackermann@bcbsm.com</email>
      </address>
    </author>
    <author fullname="Ameya Deshpande">
      <organization>NITK Surathkal/Google</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>ameyanrd@gmail.com</email>
      </address>
    </author>
    <author fullname="Tommaso Pecorella">
      <organization>University of Florence</organization>
      <address>
        <postal>
          <country>Italy</country>
        </postal>
        <email>tommaso.pecorella@unifi.it</email>
      </address>
    </author>
    <author fullname="Adnan Rashid">
      <organization>Politecnico di Bari</organization>
      <address>
        <postal>
          <country>Italy</country>
        </postal>
        <email>adnan.rashid@poliba.it</email>
      </address>
    </author>
    <date year="2025" month="October" day="10"/>
    <area>Transport</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>Extension Headers</keyword>
    <keyword>IPv6</keyword>
    <keyword>PDMv2</keyword>
    <keyword>Performance</keyword>
    <keyword>Diagnostic</keyword>
    <abstract>
      <?line 73?>

<t>RFC8250 describes an optional Destination Option (DO) header embedded
in each packet to provide sequence numbers and timing information as
a basis for measurements.  As this data is sent in clear-text, this
may create an opportunity for malicious actors to get information for
subsequent attacks.  This document defines PDMv2 which has a
lightweight handshake (registration procedure) and encryption to
secure this data.  Additional performance metrics which may be of use
are also defined.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ameyand.github.io/PDMv2/draft-elkins-ippm-encrypted-pdmv2.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-ippm-encrypted-pdmv2/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        IP Performance Measurement Working Group mailing list (<eref target="mailto:ippm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ippm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ippm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ameyand/PDMv2"/>.</t>
    </note>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The current Performance and Destinations Metrics (PDM) is an IPv6
Destination Options header which provides information based on the
metrics like Round-trip delay and Server delay.  This information
helps to measure the Quality of Service (QoS) and to assist in
diagnostics.  However, there are potential risks involved
transmitting PDM data during a diagnostics session.</t>
      <t>PDM metrics can help an attacker understand about the type of machine
and its processing capabilities.  For example, the operational
capabilities of either the client or server end hosts such as
processing speed -- that is, if the system in question is very fast
system or an older, slower device.</t>
      <t>Inferring from the PDM data, the attack can launch a timing attack.
For example, if a cryptographic protocol is used, a timing attack may
be launched against the keying material to obtain the secret.</t>
      <t>PDM metrics may also help the attacker find out about the network
speed or capabilities of the network path.  For example, are there
delays or blockages?  Are there alternate or multiple paths?  Along
with this, PDM does not provide integrity.  It is possible for a
Machine-In-The-Middle (MITM) node to modify PDM headers leading to
incorrect conclusions.  For example, during the debugging process
using PDM header, it can mislead by showing there are no unusual
server delays.</t>
      <t>PDMv2 is an IPv6 Destination Options Extension Header that enhances
PDM <xref target="RFC8250"/> by adding confidentiality, integrity, and authentication
to its measurement data. PDMv2 introduces optional encryption mechanisms
to secure the collected data.</t>
      <t>PDMv2 extends the capabilities of the original PDM by enabling
per-session encryption, thereby ensuring data confidentiality and integrity.
This encryption is built on the principle of offline decryption, where
encrypted data is collected and analyzed after transmission. Real-time or
online decryption is possible but not the focus of this specification and
is not further analyzed here.</t>
      <t>PDMv2’s packet format supports per-session encryption with key rotation,
where keys are derived from a shared secret established between parties via
the base key registration process. All PDMv2 packets are intended to be
processed without decryption by intermediate network devices. These encrypted
packets can be collected at the client or server end and decrypted offline
for diagnostic analysis. This architecture removes the need for real-time
decryption at measurement points, improving scalability and deployment
simplicity.</t>
      <t>The procedures specified in RFC8250 for header placement,
implementation, security considerations and so on continue to apply
for PDMv2.</t>
      <section anchor="pdmv2-foundational-principles">
        <name>PDMv2 Foundational Principles</name>
        <t>The design of PDMv2 adheres to a set of foundational principles which guide
its architecture and operational model:</t>
        <ol group="bar" spacing="normal" type="%d."><li>
            <t>Offline Decryption: All decryption of data occurs offline, eliminating
the computational overhead of real-time decryption on network devices.</t>
          </li>
          <li>
            <t>Speed of Handshake Processing: The goal of PDMv2 is to have as little
time spent in handshake processing as possible.</t>
          </li>
          <li>
            <t>Handshake at IP Layer: The establishment of session keys is at the IP layer
not at the transport or session layers. However, keys will be changed when
there is a change in the 5-tuple.  For ICMP and IPsec, sender-destination IP pair
defines the session for key rotation purposes.</t>
          </li>
          <li>
            <t>Separation of Encryption Layers: Encryption at the extension header level is
designed to be independent of encryption in higher-layer protocols (e.g., TLS,
QUIC). This avoids bootstrapping problems where key negotiation at one layer (IP)
is dependent on information from another layer (TCP / TLS).</t>
          </li>
          <li>
            <t>Key Reuse Avoidance: Keys are not reused between sessions. Each session
uses a freshly derived key to enhance security and forward secrecy.</t>
          </li>
          <li>
            <t>Base Key Registration: Master keys and device authentication are established
through a registration process with an Authentication Server. A complementary
draft will detail the full registration procedure and the operation of the
Decryption Server that handles offline decryption.</t>
          </li>
          <li>
            <t>Sequential Field for Key Derivation: Each packet may include a sequential
field (in cleartext), which serves as input to a key derivation function (KDF).
This supports dynamic keying mechanisms such as those used in Hybrid Public Key
Encryption (HPKE).</t>
          </li>
          <li>
            <t>Sample Key Derivation Implementation: A sample implementation using HPKE will
be included to illustrate how these principles can be applied in practice.
Alternative KDFs may be used, based on implementation needs.</t>
          </li>
          <li>
            <t>Optional Sequential Field Usage: A field which may be used as a nonce and is
sent in the clear will be provided.  Usage of this sequential field is optional and
can be omitted if not required for the cryptographic scheme in use. It is required
for HPKE but the implementor may choose another scheme.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="conventions-used-in-this-document">
      <name>Conventions used in this document</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="pdmv2-destination-options">
      <name>PDMv2 Destination Options</name>
      <section anchor="destinations-option-header">
        <name>Destinations Option Header</name>
        <t>The IPv6 Destination Options extension header <xref target="RFC8200"/> is used to
carry optional information that needs to be examined only by a
packet's destination node(s).  The Destination Options header is
identified by a Next Header value of 60 in the immediately preceding
header and is defined in RFC 8200 <xref target="RFC8200"/>.  The IPv6 PDMv2
destination option is implemented as an IPv6 Option carried in the
Destination Options header.</t>
      </section>
      <section anchor="metrics-information-in-pdmv2">
        <name>Metrics information in PDMv2</name>
        <t>The IPv6 PDMv2 destination option contains the following base fields:</t>
        <ul empty="true" spacing="normal">
          <li>
            <t>SCALEDTLR: Scale for Delta Time Last Received</t>
          </li>
          <li>
            <t>SCALEDTLS: Scale for Delta Time Last Sent</t>
          </li>
          <li>
            <t>GLOBALPTR: Global Pointer</t>
          </li>
          <li>
            <t>PSNTP: Packet Sequence Number This Packet</t>
          </li>
          <li>
            <t>PSNLR: Packet Sequence Number Last Received</t>
          </li>
          <li>
            <t>DELTATLR: Delta Time Last Received</t>
          </li>
          <li>
            <t>DELTATLS: Delta Time Last Sent</t>
          </li>
        </ul>
        <t>PDMv2 adds a new metric to the existing PDM <xref target="RFC8250"/> called the
Global Pointer.  The existing PDM fields are identified with respect
to the identifying information called a "5-tuple".</t>
        <t>The 5-tuple consists of:</t>
        <ul empty="true" spacing="normal">
          <li>
            <t>SADDR: IP address of the sender</t>
          </li>
          <li>
            <t>SPORT: Port for the sender</t>
          </li>
          <li>
            <t>DADDR: IP address of the destination</t>
          </li>
          <li>
            <t>DPORT: Port for the destination</t>
          </li>
          <li>
            <t>PROTC: Upper-layer protocol (TCP, UDP, ICMP, etc.)</t>
          </li>
        </ul>
        <t>Unlike PDM fields, Global Pointer (GLOBALPTR) field in PDMv2 is
defined for the SADDR type for the node.  Two SADDR address types
are used:</t>
        <ol spacing="normal" type="%c)"><li>
            <t>Link-Local</t>
          </li>
          <li>
            <t>Global Unicast</t>
          </li>
        </ol>
        <t>Hence, there are two Global Pointers.</t>
        <t>The Global Pointer is treated as a common entity over all the
5-tuples with the same SADDR type.  It is initialised to the value 1
and increments for every packet sent.  Global Pointer provides a
measure of the amount of IPv6 traffic sent by the PDMv2 node.</t>
        <t>When the SADDR type is Link-Local, the PDMv2 node sends Global
Pointer defined for Link-Local addresses, and when the SADDR type is
Global Unicast, it sends the one defined for Global Unicast
addresses.</t>
        <t>The reason for the Global Pointers is to provide a rough estimation                   <br/>
of the load on the node in question.  That is, if the node is sending                 <br/>
many other packets to other destinations at the same time as this                     <br/>
particular session.  Given that goal, if we combine the Link Local                    <br/>
and Global Unicast, the traffic traversing the path over the LAN or                   <br/>
VLAN (Link Local) would be combined with the traffic traversing the                   <br/>
path over the internet or wide area network.  The nature of Link-                     <br/>
Local and Global Unicast traffic is quite different, hence the two                    <br/>
separate counters.</t>
      </section>
      <section anchor="pdmv2-layout">
        <name>PDMv2 Layout</name>
        <t>PDMv2 has two different header formats corresponding to whether the
metric contents are encrypted or unencrypted.  The difference between
the two types of headers is determined from the Options Length value.</t>
        <t>Following is the representation of the unencrypted PDMv2 header:</t>
        <artwork><![CDATA[
        0                   1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  Option Type  | Option Length | Vrsn  |         Epoch         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                 PSN This packet                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                 PSN Last Received                             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                 Global Pointer                                |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |  ScaleDTLR    |  ScaleDTLS    |   Reserved                    |
       |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |   Delta Time Last Received    |     Delta Time Last Sent      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <t>Following is the representation of the encrypted PDMv2 header:</t>
        <artwork><![CDATA[
    0                   1                   2                   3
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Option Type  | Option Length | Vrsn  |         Epoch         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       PSN This Packet                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Encrypted PDM Data                       :
   :                          (16 bytes)                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        <ul empty="true" spacing="normal">
          <li>
            <t>Option Type  </t>
            <t>
0x0F  </t>
            <t>
8-bit unsigned integer.  The Option Type is adopted from RFC 8250 <xref target="RFC8250"/>.</t>
          </li>
          <li>
            <t>Option Length  </t>
            <t>
0x22: Unencrypted PDM  </t>
            <t>
0x22: Encrypted PDM  </t>
            <t>
8-bit unsigned integer.  Length of the option, in octets, excluding the Option
  Type and Option Length fields.</t>
          </li>
          <li>
            <t>Version Number  </t>
            <t>
0x2  </t>
            <t>
4-bit unsigned number.</t>
          </li>
          <li>
            <t>Epoch  </t>
            <t>
12-bit unsigned number.  </t>
            <t>
Epoch field is used to indicate the valid SessionTemporaryKey.</t>
          </li>
          <li>
            <t>Packet Sequence Number This Packet (PSNTP)  </t>
            <t>
32-bit unsigned number.  </t>
            <t>
This field is initialized at a random number and is incremented
  sequentially for each packet of the 5-tuple.  </t>
            <t>
This field + Epoch are used in the Encrypted PDMv2 as the encryption
  nonce. The nonce <bcp14>MUST NOT</bcp14> be reused in different sessions.</t>
          </li>
          <li>
            <t>Packet Sequence Number Last Received (PSNLR)  </t>
            <t>
32-bit unsigned number.  </t>
            <t>
This field is the PSNTP of the last received packet on the                <br/>
  5-tuple.</t>
          </li>
          <li>
            <t>Global Pointer  </t>
            <t>
32-bit unsigned number.  </t>
            <t>
Global Pointer is initialized to 1 for the different source
  address types and incremented sequentially for each packet with                   <br/>
  the corresponding source address type.  </t>
            <t>
This field stores the Global Pointer type corresponding to the
  SADDR type of the packet.</t>
          </li>
          <li>
            <t>Scale Delta Time Last Received (SCALEDTLR)  </t>
            <t>
8-bit unsigned number.  </t>
            <t>
This is the scaling value for the Delta Time Last Sent
  (DELTATLS) field.</t>
          </li>
          <li>
            <t>Scale Delta Time Last Sent (SCALEDTLS)  </t>
            <t>
8-bit unsigned number.  </t>
            <t>
This is the scaling value for the Delta Time Last Sent
  (DELTATLS) field.</t>
          </li>
          <li>
            <t>Reserved Bits  </t>
            <t>
16-bits.  </t>
            <t>
Reserved bits for future use.  They <bcp14>MUST</bcp14> be set to zero on
  transmission and ignored on receipt per <xref target="RFC3552"/>.</t>
          </li>
          <li>
            <t>Delta Time Last Received (DELTATLR)  </t>
            <t>
16-bit unsigned integer.  </t>
            <t>
The value is set according to the scale in SCALEDTLR.  </t>
            <t>
Delta Time Last Received =
  (send time packet n - receive time packet (n - 1))</t>
          </li>
          <li>
            <t>Delta Time Last Sent (DELTATLS)  </t>
            <t>
16-bit unsigned integer.  </t>
            <t>
The value is set according to the scale in SCALEDTLS.  </t>
            <t>
Delta Time Last Sent =
  (receive time packet n - send time packet (n - 1))</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t>Endpoint Node: Creates cryptographic keys in collaboration with a
partner.</t>
        </li>
        <li>
          <t>Client: An Endpoint Node which initiates a session with a
listening port on another Endpoint Node and sends PDM data.</t>
        </li>
        <li>
          <t>Server: An Endpoint Node which has a listening port and sends PDM
data to another Endpoint Node.</t>
        </li>
      </ul>
      <t>Note: a client may act as a server (have listening ports).</t>
      <ul spacing="normal">
        <li>
          <t>Public and Private Keys: A pair of keys that is used in asymmetric
cryptography.  If one is used for encryption, the other is used
for decryption.  Private Keys are kept hidden by the source of the
key pair generator, but the Public Key may be known to everyone.
In this document, the Public Key is represented as pkX and the
Private Key as skX (where X can be any client or server).</t>
        </li>
        <li>
          <t>Pre-shared Key (PSK): A symmetric key.  Uniformly random
bitstring, shared between any Client or any Server or a key shared
between an entity that forms client-server relationship.  This
could happen through an out-of band mechanism: e.g., a physical
meeting or use of another protocol.</t>
        </li>
        <li>
          <t>Shared Secret: A piece of data, known only to the parties involved.</t>
        </li>
        <li>
          <t>SessionTemporaryKey: A temporary key used to secure data for                <br/>
only the current session.</t>
        </li>
      </ul>
    </section>
    <section anchor="protocol-flow">
      <name>Protocol Flow</name>
      <t>The protocol will proceed in 2 steps.</t>
      <ol group="bar" spacing="normal" type="Step %d:"><li>
          <t>Creation of cryptographic secrets between Server and Client.
This includes the creation of pkX and skX.</t>
        </li>
        <li>
          <t>PDM data flow between Client and Server.</t>
        </li>
      </ol>
      <t>These steps <bcp14>MAY</bcp14> be in the same session or in separate sessions.  That
is, the cryptographic secrets <bcp14>MAY</bcp14> be created beforehand and used in
the PDM data flow at the time of the "real" data session.</t>
      <t>After-the-fact (or real-time) data analysis of PDM flow may occur by
network diagnosticians or network devices.  The definition of how
this is done is out of scope for this document.</t>
      <section anchor="client-server-negotiation">
        <name>Client - Server Negotiation</name>
        <t>The two entities exchange a set of data to ensure the respective
identities. This could be done via a TLS or other session.  The
exact nature of the identity verification is out-of-scope for this document.</t>
        <t>They use Hybrid Public-Key Encryption scheme (HPKE) Key Encapsulation Mechanism
(KEM) to negotiate a "SharedSecret".</t>
        <t>Each Client and Server derive a "SessionTemporaryKey" by using HPKE
Key Derivation Function (KDF), using the following inputs:</t>
        <ul spacing="normal">
          <li>
            <t>The "SharedSecret".</t>
          </li>
          <li>
            <t>The 5-tuple (SrcIP, SrcPort, DstIP, DstPort, Protocol) of the
communication.</t>
          </li>
          <li>
            <t>An Epoch.</t>
          </li>
        </ul>
        <t>The Epoch <bcp14>SHOULD</bcp14> be initialized to zero. A change in the Epoch
indicates that the SessionTemporaryKey has been rotated.</t>
        <t>The Epoch <bcp14>MUST</bcp14> be incremented when the Packet Sequence Number This
Packet (PSNTP) is rolled over.  It <bcp14>MAY</bcp14> be incremented earlier,
depending on the implementation and the security considerations.</t>
        <t>The sender <bcp14>MUST NOT</bcp14> create two packets with identical PSNTP and Epoch.</t>
        <t>When the Epoch overflows, then collection of PDM data for this
session will be stopped.  An error message <bcp14>MUST</bcp14> be sent as per                <br/>
          <xref target="RFC9180"/>: MessageLimitReachedError: Context AEAD sequence number                     <br/>
overflow.</t>
      </section>
      <section anchor="implementation-guidelines">
        <name>Implementation Guidelines</name>
        <t>How should a network administrator decide whether a client should use
PDM, unencrypted PDMv2, or encrypted PDMv2?  This decision is a
network policy issue.  The administrator must be aware that PDM or
unencrypted PDMv2 might expose too much information to malicious
parties.</t>
        <t>That said, if the network administrator decides that taking such a
risk within their network is acceptable, then they should make the
decision that is appropriate for their network.</t>
        <t>Alternatively, the network administrator might choose to create a
policy that prohibits the use of PDM or unencrypted PDMv2 on their
network.  The implementation <bcp14>SHOULD</bcp14> provide a way for the network
administrator to enforce such a policy.</t>
        <t>The server and client implementations <bcp14>SHOULD</bcp14> support PDM, unencrypted
PDMv2, and encrypted PDMv2.  If a client chooses a certain mechanism
(e.g., PDM), the server <bcp14>MAY</bcp14> respond with the same mechanism, unless
the network administrator has selected a policy that only allows
certain mechanisms on their network.</t>
        <section anchor="use-case-1-server-does-not-understand-pdm-or-pdmv2">
          <name>Use Case 1: Server does not understand PDM or PDMv2</name>
          <t>If a client sends a packet with PDM or PDMv2 and the server does not
have code which understands the header, the packet is processed
according to the Option Type which is defined in RFC8250 and is in
accordance with RFC8200.</t>
          <t>The Option Type identifiers is coded to skip over this option and                     <br/>
continue processing the header.</t>
        </section>
        <section anchor="use-case-2-server-does-not-allow-pdm-option-pdm-or-pdmv2">
          <name>Use Case 2: Server does not allow PDM Option (PDM or PDMv2)</name>
          <t>If a client sends a packet with a PDM option which does not match the
network policy, then the PDM option <bcp14>MUST</bcp14> be ignored and processing
continue normally.  The server <bcp14>SHOULD</bcp14> log such occurrences.</t>
          <t>Filtering at routers per <xref target="RFC9288"/> on filtering of IPv6 extension
headers may impact the receipt of PDM / PDMv2.</t>
        </section>
      </section>
    </section>
    <section anchor="security-goals">
      <name>Security Goals</name>
      <t>As discussed in the introduction, PDM data can represent a serious
data leakage in presence of a malicious actor.</t>
      <t>In particular, the sequence numbers included in the PDM header allows
correlating the traffic flows, and the timing data can highlight the
operational limits of a server to a malicious actor.  Moreover,
forging PDM headers can lead to unnecessary, unwanted, or dangerous
operational choices, e.g., to restore an apparently degraded Quality
of Service (QoS).</t>
      <t>Due to this, it is important that the confidentiality and integrity
of the PDM headers is maintained.  PDM headers can be encrypted and
authenticated using the methods discussed in Section 5.4, thus
ensuring confidentiality and integrity.  However, if PDM is used in a
scenario where the integrity and confidentiality is already ensured
by other means, they can be transmitted without encryption or
authentication.  This includes, but is not limited to, the following
cases:</t>
      <ol spacing="normal" type="%c)"><li>
          <t>PDM is used over an already encrypted medium (For example VPN
tunnels).</t>
        </li>
        <li>
          <t>PDM is used in a link-local scenario.</t>
        </li>
        <li>
          <t>PDM is used in a corporate network where there are security
measures strong enough to consider the presence of a malicious
actor a negligible risk.</t>
        </li>
      </ol>
      <section anchor="security-goals-for-confidentiality">
        <name>Security Goals for Confidentiality</name>
        <t>PDM data <bcp14>MUST</bcp14> be kept confidential between the intended parties,
which includes (but is not limited to) the two entities exchanging
PDM data, and any legitimate party with the proper rights to access
such data.</t>
      </section>
      <section anchor="security-goals-for-integrity">
        <name>Security Goals for Integrity</name>
        <t>An implementation <bcp14>SHOULD</bcp14> attempt to detect if PDM data is forged or
modified by a malicious entity.  In other terms, the implementation
should attempt to detect if a malicious entity has generated a valid
PDM header impersonating an endpoint or modified a valid PDM header.</t>
      </section>
      <section anchor="security-goals-for-authentication">
        <name>Security Goals for Authentication</name>
        <t>An unauthorized party <bcp14>MUST NOT</bcp14> be able to send PDM data and <bcp14>MUST NOT</bcp14>
be able to authorize another entity to do so.  Alternatively, if
authentication is done via any of the following, this requirement <bcp14>MAY</bcp14>
be considered to be met.</t>
        <ol spacing="normal" type="%c)"><li>
            <t>PDM is used over an already authenticated medium (For example,
TLS session).</t>
          </li>
          <li>
            <t>PDM is used in a link-local scenario.</t>
          </li>
          <li>
            <t>PDM is used in a corporate network where security measures are
strong enough to consider the presence of a malicious actor a
negligible risk.</t>
          </li>
        </ol>
      </section>
      <section anchor="cryptographic-algorithm">
        <name>Cryptographic Algorithm</name>
        <t>Symmetric key cryptography has performance benefits over asymmetric
cryptography; asymmetric cryptography is better for key management.
Encryption schemes that unite both have been specified in <xref target="RFC1421"/>,
and have been participating practically since the early days of
public-key cryptography.  The basic mechanism is to encrypt the
symmetric key with the public key by joining both yields.  Hybrid
public-key encryption schemes (HPKE) <xref target="RFC9180"/> used a different
approach that generates the symmetric key and its encapsulation with
the public key of the receiver.</t>
        <t>It is <bcp14>RECOMMENDED</bcp14> to use the HPKE framework that incorporates key
encapsulation mechanism (KEM), key derivation function (KDF) and
authenticated encryption with associated data (AEAD).  These multiple
schemes are more robust and significantly more efficient than other
schemes. While the schemes may be negotiated between communicating
parties, it is <bcp14>RECOMMENDED</bcp14> to use default encryption algorithm for
HPKE AEAD as AES-128-GCM.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>PDMv2 carries metadata, including information about network characteristics and end-to-end response time. This metadata is used to optimize communication. However, in the context of passive attacks, the information contained within PDMv2 packets can be intercepted by an attacker, and in the context of active attacks the metadata can be modified by an attacker.</t>
      <t>In the following we will briefly outline the threat model and the associated security risks, using RFC3552 terminology and classification.</t>
      <section anchor="limited-threat-model">
        <name>Limited Threat Model</name>
        <t>We assume that the attacker does not control the endpoints, but it does have a limited control of the network, i.e., it can either monitor the communications (leading to passive attacks), or modify/forge packets (active attacks).</t>
        <section anchor="passive-attacks-with-unencrypted-pdmv2">
          <name>Passive attacks with unencrypted PDMv2</name>
          <t>Passive Attack Scenario: In a passive attack, the attacker seeks to obtain information that the sender and receiver of the communication would prefer to keep private. In this case, the attacker is not altering the packets but is intercepting and analyzing them. Here's how this can happen in the context of unencrypted PDMv2:</t>
          <ol spacing="normal" type="%c."><li>
              <t>Being on the same LAN: The simplest way for an attacker to launch a passive attack is to be on the same Local Area Network (LAN) as the victim. Many LAN configurations, such as Ethernet, 802.3, and FDDI, allow any machine on the network to read all traffic destined for any other machine on the same LAN. This means that if PDM packets are sent over the LAN, the attacker can capture them.</t>
            </li>
            <li>
              <t>Control of a Host in the Communication Path: If the attacker has control over a host that lies in the communication path between two victim machines, they can intercept PDM packets as they pass through this compromised host. This allows the attacker to collect metadata without being on the same LAN as the victim.</t>
            </li>
            <li>
              <t>Compromising Routing Infrastructure: In some cases, attackers may actively compromise the routing infrastructure to route traffic through a compromised machine. This can facilitate a passive attack on victim machines. By manipulating routing, the attacker can ensure that PDMv2 packets pass through their controlled node.</t>
            </li>
            <li>
              <t>Wireless Networks: Wireless communication channels, such as those using 802.11 (Wi-Fi), are particularly vulnerable to passive attacks. Since data is broadcast over well-known radio frequencies, an attacker with the ability to receive those transmissions can intercept PDMv2 packets. Weak or ineffective cryptographic protection in wireless networks can make it easier for attackers to capture this data.</t>
            </li>
          </ol>
          <t>Goal of Passive Attack: In a passive attack, the attacker's goal is to obtain sensitive information from intercepted packets. In the case of PDMv2, this information may include network characteristics, end-to-end response times, and potentially any other metadata that is transmitted. This information can be valuable to the attacker for various purposes, such as analyzing network performance or gaining insights into communication patterns.</t>
          <t>In summary, within the limited Internet threat model described in RFC3552, attackers with the ability to intercept packets can conduct passive attacks to capture metadata carried in IPv6 unencrypted PDMv2 packets. This information can be useful for the attacker, even without actively altering the communication. Security measures, such as encryption and network segmentation, are important countermeasures to protect against such passive attacks.</t>
        </section>
        <section anchor="passive-attacks-with-encrypted-pdmv2">
          <name>Passive attacks with encrypted PDMv2</name>
          <t>Passive Attack Scenario: An attacker is trying to seek useful information from encrypted PDMv2 packets happening between two different entities. Encrypted PDMv2 has most of the metadata fields encrypted except for PSNTP which is also used as a nonce in HPKE AEAD.</t>
          <t>Goal of Passive Attack: In this attack, the attacker is trying to obtain the order in which the packets were sent from the sender to the receiver for different flows. The amount of information gathered by the attacker is similar, to some extent, to the ones available by inspecting the TTCP sequence number, which is also usually not protected. Therefore, we consider this information leak acceptable.</t>
          <t>Nevertheless, this point should be noted if complete traffic obfuscation (including packet reordering) is necessary. In these cases it is suggested to use IPSec ESP <xref target="RFC4303"/> in tunnel mode (in which case the PDMv2 can be used unencrypted).</t>
        </section>
        <section anchor="active-attacks-with-unencrypted-pdmv2">
          <name>Active attacks with unencrypted PDMv2</name>
          <t>There are also active attacks within the context of the limited Internet threat model defined in <xref target="RFC3552"/>. In this model, active attacks involve an attacker writing data to the network, and the attacker can forge packets and potentially manipulate the behavior of devices or networks. Let's break down how message modification, deletion, or insertion by attackers using the unencrypted IPv6 Performance and Destination option v2 (PDMv2) fits into this threat model:</t>
          <ol spacing="normal" type="%d."><li>
              <t>Message Modification Attack:  </t>
              <t>
In a message modification attack, the attacker intercepts a message, modifies its content, and then reinserts it into the network. This attack is significant because it allows the attacker to tamper with the integrity of the data being transmitted.  </t>
              <t>
Example: Suppose an attacker intercepts an IPv6 packet containing unencrypted PDMv2 information that includes network and end-to-end response time metadata. The attacker modifies this information, such as altering the response time data or inserting false information. When this modified packet reaches its destination, the receiving device or network may act based on this malicious information, potentially leading to degraded performance, incorrect network management decisions, wrong performance data collection, etc. A direct consequence of modifying the performance data could be, for example, to hide an ongoing QoS violation, or to create a fake QoS violation, with consequences on the violation of Service Level Agreements.</t>
            </li>
            <li>
              <t>Message Deletion Attack:  </t>
              <t>
In a message deletion attack, the attacker removes a message from the network. This attack can be used in conjunction with other attacks to disrupt communication or achieve specific objectives.  </t>
              <t>
Example: Consider a scenario where an attacker deletes certain IPv6 packets that contain unencrypted PDMv2 information, or deletes the PDM header from the packet. If the PDMv2 is used for network monitoring or quality of service (QoS) management, the deletion of these packets can cause the monitoring system to miss critical data, potentially leading to inaccurate network performance analysis or decisions.</t>
            </li>
            <li>
              <t>Message Insertion Attack:  </t>
              <t>
In a message insertion attack, the attacker forges a message and injects it into the network.  </t>
              <t>
Example: An attacker could forge IPv6 packets containing unencrypted PDMv2 data with fake source addresses and inject them into the network. If PDM is used for making routing or resource allocation decisions, these injected packets can influence the network's behavior, potentially causing it to take suboptimal routes or allocate resources incorrectly.</t>
            </li>
          </ol>
          <t>All these attacks are considered active attacks because the attacker actively manipulates network traffic, and they can potentially spoof the source address to disguise their identity. In the limited Internet threat model defined in <xref target="RFC3552"/>, it is assumed that attackers can forge packets and carry out such active attacks. These attacks highlight the importance of securing network protocols, authenticating messages, and implementing proper security measures to protect against them.</t>
        </section>
        <section anchor="active-attacks-with-encrypted-pdmv2">
          <name>Active attacks with encrypted PDMv2</name>
          <t>Encrypted PDMv2 provides inherent protection against active attacks like Message Modification by providing integrity. If either of the sequence number or encrypted PDMv2 contents are modified then decryption will fail.</t>
          <t>Message Deletion Attack can be performed for encrypted PDMv2 similarly to unencrypted PDMv2.</t>
          <t>Impersonation Attack: Encrypted PDMv2 relies on a shared secret negotiated by an external protocol (e.g., TLS). If key exchange does have authentication check, then an adversary who impersonates the host can derive a key with the destination client and potentially perform all the above active attacks even on encrypted PDMv2.</t>
        </section>
      </section>
      <section anchor="topological-considerations">
        <name>Topological considerations</name>
        <t>The same topological considerations highlighted in <xref target="RFC3552"/> applies in this context. Passive attacks and active attacks where the messages need to be modified or deleted are more likely if the attacker is on-path, while message insertion attacks are more likely when the attacker is off-path but can happen also when the attacker is on-path. Link-local attacks can be considered as a special case of on-path for PDM, i.e., for PDM a link-local attacker has no special privileges with respect to an on-path attacker.</t>
      </section>
      <section anchor="further-mitigations">
        <name>Further mitigations</name>
        <t>PDM includes cryptographic mechanisms to mitigate passive and active attacks.
As a further security mechanism to protect from active attacks, it is possible for an implementation to include logging of anomalous events, e.g.:</t>
        <ul spacing="normal">
          <li>
            <t>Missing PDM header when expected (counteracts the Message Deletion).</t>
          </li>
          <li>
            <t>Unusual variations of the PDM data (counteracts the Message Modification)</t>
          </li>
          <li>
            <t>Accept the PDM data only if the application level accepts the packet payload (counteracts the Message Insertion)</t>
          </li>
          <li>
            <t>Monitor repeated or unexpected PDM data (counteracts replay attacks).</t>
          </li>
        </ul>
        <t>Security considerations about HPKE are addressed in RFC 9180. Security
considerations about PDM are addressed in RFC 8250. Security considerations
about destination objects are addressed in RFC 8200.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <t>Encryption plays a crucial role in providing privacy as defined by <xref target="RFC6973"/>, especially when metadata sniffing is a concern. <xref target="RFC6973"/>, titled "Privacy Considerations for Internet Protocols," outlines the importance of protecting users' privacy in the context of various Internet protocols, including IPv6. When metadata like network and end-to-end response time is at risk of being observed by attackers, eavesdroppers, or observers, encryption can help mitigate the privacy risks. Here's how encryption achieves this:</t>
      <ol spacing="normal" type="%c)"><li>
          <t>Confidentiality: Encryption ensures that the actual content of the
 communication remains confidential. Even if attackers or observers
 intercept the data packets, they won't be able to decipher the
 information without the encryption key. In the case of IPv6
 Performance and Destination Option (PDM), the still-visible,
 non-encrypted metadata is still visiblenegligible, and does not
 poses confidentiality</t>
        </li>
        <li>
          <t>Content Protection: Metadata, such as network and end-to-end
 response time, may reveal sensitive information about the
 communication. By encrypting the content, encryption mechanisms
 help protect this sensitive data from being exposed. Observers may
 still see that communication is happening, but they won't be able
 to glean meaningful information from the metadata.</t>
        </li>
        <li>
          <t>Integrity: Encryption often includes mechanisms to ensure data
 integrity. It allows the recipient to verify that the received data
 has not been tampered with during transit. This helps protect
 against attackers who might try to manipulate the metadata.</t>
        </li>
      </ol>
      <t>It's important to note that while encryption enhances privacy by protecting the content of communication, metadata still poses some challenges. Metadata, such as the fact that communication is occurring and the parties involved, can be revealing. To address this, additional techniques, like traffic obfuscation, may be used to hide metadata patterns. However, complete metadata privacy can be challenging to achieve, especially when communication protocols inherently require some level of metadata exchange.</t>
      <t>Specifically, enabling PDM only for a specific set of flows can pose a risk of
highlighting their presence between two parties. As a mitigation technique, it is
suggested to obfuscate the events, for example by enabling PDM on more flows
than strictly necessary.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>No action is needed by IANA.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>The authors wish to thank NITK Surathkal for their support and
assistance in coding and review.  In particular Dr. Mohit Tahiliani
and Abhishek Kumar (now with Google).  Thanks also to Priyanka Sinha
for her comments.  Thanks to the India Internet Engineering Society
(iiesoc.in), in particular Dhruv Dhody, for his comments and for
providing the funding for servers needed for protocol development.
Thanks to Balajinaidu V, Amogh Umesh, and Chinmaya Sharma of NITK for
developing the PDMv2 implementation for testing.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3552">
          <front>
            <title>Guidelines for Writing RFC Text on Security Considerations</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="B. Korver" initials="B." surname="Korver"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>All RFCs are required to have a Security Considerations section. Historically, such sections have been relatively weak. This document provides guidelines to RFC authors on how to write a good Security Considerations section. 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="72"/>
          <seriesInfo name="RFC" value="3552"/>
          <seriesInfo name="DOI" value="10.17487/RFC3552"/>
        </reference>
        <reference anchor="RFC8250">
          <front>
            <title>IPv6 Performance and Diagnostic Metrics (PDM) Destination Option</title>
            <author fullname="N. Elkins" initials="N." surname="Elkins"/>
            <author fullname="R. Hamilton" initials="R." surname="Hamilton"/>
            <author fullname="M. Ackermann" initials="M." surname="Ackermann"/>
            <date month="September" year="2017"/>
            <abstract>
              <t>To assess performance problems, this document describes optional headers embedded in each packet that provide sequence numbers and timing information as a basis for measurements. Such measurements may be interpreted in real time or after the fact. This document specifies the Performance and Diagnostic Metrics (PDM) Destination Options header. The field limits, calculations, and usage in measurement of PDM are included in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8250"/>
          <seriesInfo name="DOI" value="10.17487/RFC8250"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="RFC4303">
          <front>
            <title>IP Encapsulating Security Payload (ESP)</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document describes an updated version of the Encapsulating Security Payload (ESP) protocol, which is designed to provide a mix of security services in IPv4 and IPv6. ESP is used to provide confidentiality, data origin authentication, connectionless integrity, an anti-replay service (a form of partial sequence integrity), and limited traffic flow confidentiality. This document obsoletes RFC 2406 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4303"/>
          <seriesInfo name="DOI" value="10.17487/RFC4303"/>
        </reference>
        <reference anchor="RFC1421">
          <front>
            <title>Privacy Enhancement for Internet Electronic Mail: Part I: Message Encryption and Authentication Procedures</title>
            <author fullname="J. Linn" initials="J." surname="Linn"/>
            <date month="February" year="1993"/>
            <abstract>
              <t>This document defines message encryption and authentication procedures, in order to provide privacy-enhanced mail (PEM) services for electronic mail transfer in the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1421"/>
          <seriesInfo name="DOI" value="10.17487/RFC1421"/>
        </reference>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC9288">
          <front>
            <title>Recommendations on the Filtering of IPv6 Packets Containing IPv6 Extension Headers at Transit Routers</title>
            <author fullname="F. Gont" initials="F." surname="Gont"/>
            <author fullname="W. Liu" initials="W." surname="Liu"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document analyzes the security implications of IPv6 Extension Headers and associated IPv6 options. Additionally, it discusses the operational and interoperability implications of discarding packets based on the IPv6 Extension Headers and IPv6 options they contain. Finally, it provides advice on the filtering of such IPv6 packets at transit routers for traffic not directed to them, for those cases where such filtering is deemed as necessary.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9288"/>
          <seriesInfo name="DOI" value="10.17487/RFC9288"/>
        </reference>
      </references>
    </references>
    <?line 780?>

<section anchor="sample-implementation-of-registration">
      <name>Sample Implementation of Registration</name>
      <section anchor="overall-summary">
        <name>Overall summary</name>
        <t>In the Registration phase, the objective is to generate a shared
secret that will be used in encryption and decryption during the Data
Transfer phase.  How this is to be done is left to the
implementation.</t>
      </section>
      <section anchor="high-level-flow">
        <name>High level flow</name>
        <t>The following steps describe the protocol flow:</t>
        <ol spacing="normal" type="%d."><li>
            <t>Client initiates a request to the Server.  The
request contains a list of available ciphersuites for KEM, KDF,
and AEAD.</t>
          </li>
          <li>
            <t>Server responds to the Client with one of the
available ciphersuites and shares its pkX.</t>
          </li>
          <li>
            <t>Client generates a secret and its encapsulation.  The
Client sends the encapsulation and a salt to the
Server.  The salt is required during KDF in the Data Transfer
phase.</t>
          </li>
          <li>
            <t>Server generates the secret with the help of the
encapsulation and responds with a status message.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="change-log">
      <name>Change Log</name>
      <t>Note to RFC Editor: if this document does not obsolete an existing
RFC, please remove this appendix before publication as an RFC.</t>
    </section>
    <section anchor="open-issues">
      <name>Open Issues</name>
      <t>Note to RFC Editor: please remove this appendix before publication as
an RFC.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V963LjxrngfzxFr1ynIu0hOdZ4fNM5ObFG0tiqkWaUkcY+
KZdrq0k0SUQgwKBBaZjEqX2N/bfPso+yT3K+a3cDBGV742wmFUsigb58/d1v
PR6Ps7ZoS3diDi5vHj4zN66Z183KVjNnbJWb88Iuqtq3xcxcu7YpZt586xpf
1JV5bg5vzq8fnh+ZcwcPVLbFT9+u8cdBZqfTxj3AsHlj5+24cO18XKzXq7Gr
Zs123bp8vM5XD88Psplt3aJutifGt3mW5fWssitY0E+8OD4+zvxmuio8rqbd
ruGVy4u7V8Z8ZGzpa5i6qHK3dvCfqj0YwQZPX8KPuoHf3t29OsiqzWrqmpMs
hwWcZLO68q7yG39i2mbjMlg7zGAbZ2Gku8ZWfl037UH2WDf3i6berBFkVeua
yrXmoloUlXNNUS3MnfX35lXdzNxBdu+28Hx+kmVmbC4+tDABAukbZ3OAIn6I
UMefBEr6JZ4A/hkPIHtw1QYWakyY/qZzXtfO+k3jVrhdeIpBcvAdrBeX9TW+
hJ+vbFEicACmXyF0J3WzwM9tM1vC58u2XfuTZ8/wMfyoeHATfewZfvBs2tSP
3j3DAZ7hi4uiXW6m8Coc2xaQ5hntBb8pAbK+TQaVJyb8yqSo+dlnfNauhJX6
wdOeLNtVeZBldtMuazgzMwaQwr/5piwZXd7YsqgKc0Fj0HezelO1iFfvqwIG
MrctLoe+gr3YqvgzoSygDZxK7sxNU+ebWetH8MFsQs85AVZFg094gV8V9Hy7
hL3Z2f1kVq8O8IB7C7ouZkvrSnM6u3d4QtUvW9TLs5e3NEYBn3YWs7I64lfT
2dSv9i3gFIGNxLlcA8xdd/rLKi/swLRvLu9em9tNY9vlvS2ffV3Xi9J1pucz
bPKvFvjBvsnv6tXK+hoQdFY3rixtb/rWltuB6QEqD8hf2q2p5+ZVCe8SISTz
tzzyZK0jf7WpinkxKdpBIOSVrcw765dF/vOWcFOXcDKzqpjVJi/MS9sU3f3j
iJOGRvxqDQ9PLc9dISG2sH5Az3evzj759NPn/NsXzz/9WH/7GH7LimreffbL
4y/kiReffPwJ/3b84vkx//bZl5/LZ18+/+ILeH88Hhs79W1jZ22WyQwmd37W
FFPngXObmviwLQeYszk8f3tklsSDYFdTl+cuhzUZZ2dLs0bsak1bm3VTPyBd
ePenDZ6CYYbpSTC0xQq5StgJDGt9Zs3U+sIb+NCsIjvyE2NOvWmX8BVwW2vg
JzDbFl43s9LZZty6D+2IHshWdmtmwHZbx/tAtgsnDBhBowIlzop6A6uYtTUs
Bha6cG1nIfAbigZed2tsi2SKa7ijBdSzDS4K4DUHpu2Z9ZrHJdCaWVoYOCuL
xbJ9dPhf+KTK/dLeO3PYuEWBQKdJADozl8MGjwgewq/wm7bOvJvBN3HDuP88
L+RI1gnTXolU5elx71OHqL/xDoUPiTJZaT7hk18VeQ40mX0ERNwyz4Jxs+xu
6QxM2+DeduR4xAIfJDnK7yM8C4AzyaFdXPGKJ7w+QQnfATccOTAy3PjSZbqf
sgCIvQNay8fwwRq2UMLecCm3rgES5w/0TJLhsqUr13SsgkA4rPn9Bs6dmQK+
X8C2Dn9f3zLs4VkLWoBHLMjyIDDxxL+pHx3MhqjlEJrw/3UNYrgt4Byawt/j
3A91+QAU0KKQXxVti4gNoGFUhSPGv+GXODAgL2kdcCD4nO55BnDE1SM8Gelg
nwABoJkW12mn9aal7aBsxr0AK1/CyWb4bdF6RioYGiac2bWdFrDpwuFGQKEw
7oNdrUtHmwHCcIyJtszSZ3FYV+B26bFZWSA+wNue4Q76kFnCNmATGzhRINpk
Ur92cJSAY+3SAjRBFBZzGsZvfetWSK9AU56OHY4NxgOqtL7N5HuYBmm2zBHk
vgTg40HjcQGoLqu5awiY86Ze0bAKZd4Sw4zAWNpNhatTPsNfTbIOGGBt1hDZ
1YvGrgFDEYBtPatLXB2QUD7qD4EklgGJ8QSwWbuwIM/5WEBdwycBEUGVAwQB
xKqnLXzPMHDAltremSPFEo3SwcddwMaBZoEs4MTjuYOuiPpjxnCGvfRPLnkI
OHG77J+8ZXpoXEb043GMaVnP7u3C+d8Bl9HvYVGomyIXRa65KdsCBqAx6bmy
rhbZI+AJMakRn0QNi6jqNnD+AvTbRQN0B8u4RHwA4gFEmcJAyIttds34O76s
xsB9xtfEmczh9eUdMJaqhiGQjuu8mG9pBmYmwB3gJ0IaWGVRgRhv3KwFyVzN
yg3S1Q7CCxEidHI33SwW+JfgbbbxSrA8PCBGS0gEtgFOZKZb45f1o4wgbKCq
gTQ3HvhK5hOO5Pl8QSBEvjggQ/2ONs8k46ol8lxPOPK9SOYfcAU2px3DJudF
zgwIADuKMB4RL0MFF7+dMTME8CFfSGSpyBNZowgARB4V+IkkWjlQQavCrzwO
FIQScIW6LAHkgIM0mm7Z4Z5yz48MYGbdFAB5mAN3B3tylZ2CYrzIgBeNhScm
8wvXpQc9nyCx1B4MaN8R1TKSCMku4K/ppihbETFw7oAzhM2wrHo+hxUgWsRZ
H4lAggURVI64a4I0bGT7Z/xj3uLxMfdnvm7eOVuOgXHgnrO66k3RoYQp0DYS
DS5tDrqFQAtVHFBRQTOdiXpUgZLF9DXfNMSgwxJwwXoK//d//i+vWhhLReDU
pAV5MwxnQ3QMzMsA96PJRhnBAD/zhO2AoKBs5sx5LZADfJgLRzNox8A5emSH
U2A+zoF6Yxs6+QewEnBnKOR5ih0lyAO5npaloCSvnGfFQwXxRxJ66lTQwN+4
YOSJCUgBS/DxZuVA0LaRC7L4gCmAwcASwqlmOhFS+jRFadvul3x48DIpMmBG
ngyZWRTvfCygT0xYOSErGCyCFqkHiLB+cF4YNUIU3m0UW7JkQ7CMlGzXNWwP
BeqKuCsK25ktmcS2sq51WW/x4czDU6jnIjmQXhe0zYBVDmlGrQtahWhq69LO
aMpRhqPQr4wUzAFwOnR2AAU2ohDi7CDCYNHwBXC6DfFtu16DgYQj08nCSj76
SA75FSp2on2A3Sz06HmtoB8WiwqpgB+2OeIiqXSAeYBv8M08HSAQtKrBiw0s
LivaHuxxmYnag4LFlWAO/eWkcX/6H+sTtu1c89uDqW0OjG+3pfvtgdDQv+ST
gx/xWUMPw69j81aYx3k4tRPC5OQUYa3EPuoZgM4rxoyMK1GrsKgrZsxRV+tN
qysDFGnwOPD1gBydYasdBMcF3bJeMDffBKvjJmhnJ0gCZlHj+ArbgsC6tA8A
HVS62xYsA5oM0IQNrGjAJIqejQyMJo7zAagub8yV3bqGJwzcgdAYZlYGRMwF
6YPpDd4q8a0MOZx81qrfjMmQ36OngLiCbk4DPRYAeKRjWO8CWQSIwYzFNc4h
nxvRxT4dtxtAGNETLs+ubwg7Lm8AxRHPUeke54nYhtWtbdFkavSxQscLQhRP
uadZbxqAjp6JA15oFRkuItclGPmT9CPZtgu6gdBkCRtFnTRj2lCOaBIPJent
idCDd8H+hF0QuIJiC1abmywmI3N3dTvKfv/+8uxI2dRDXYDsntZ1i/x5vRYd
CY545U2QB4B3ixokr663rhyfiDm8vDlCCZUsqera1SQ84HhRdsk7d2c35hku
5oiA9RomeOdA8zanuBzUhU7wQy86VwvkgHp5kDNyBoAOF+h9kD9Bp0M3Bszo
/LLcBvGF6wfIiZYV+RmePazz0TYi1GZbWs5LlFq8pii1Tsw1mCyuEelInJcs
yq7uRStORCMgY1NvFmiUDMlAFsIgi067o7C5CxKSWISw42abkcuTsT53YGOU
rEBs4O9hPwObuqnlJ2pZFtmXGtekiyLhl84PqEiC1+QeQTvnVeFKlmQIq3ME
tkDqInEJoalToIoOar0VrxC+ns3p9UN15qAv52gkrJxkr0d+U1TrTctCAI8x
D7PApqsZO6Zen786EgUw6Dz5trIrkMpqnAWdVg1Y2C0QK5l7SDbfbKdNkZub
DZzbDDeUJQR6+M3N6wtG1VuyLXo7NpcdkQniwHh+ritLDRsdOBqdYUbETLAh
2oaPNnSEDoztRzwl71I5J0oLiliR5Gt05pGhfCqWG2C8AYB49QqxPRu8Lb0F
oTLCDOutWgI7J/zeg5mIe+IT6/icCHzo/QIqVa8RMCx107FGBacbGLUYiTnw
YBo3qr1xWp6nSKwT1IJl8zX6WnDzc2EMf9oUjWhUNF3Hsvdgra+I/8NKJ2KO
6jukpdBhTMXSDtAhnyFoPMsakUS5F4+GKo05q6sHXC4qQopDbeooZK0GcRZj
Od4cXL+/vcOAEv40b97S7+8ugBe/uzjH32+/Ob26Cr9k8sTtN2/fX53H3+Kb
Z2+vry/enPPL8KnpfJQdXJ/+4YCtw4O3N3eXb9+cXh3srJJdAyJVAIHWoNnT
iWbqF6advTy7+T//+/iF+ctf/hvojs+Pj7/88Uf544vjz1/AHyh4eTawe7by
JwBtmwG2IgLAKBZQAAzEorUlqLSANWhfV2rG/PfvETI/nJh/n87Wxy/+Qz7A
DXc+VJh1PiSY7X6y8zIDceCjgWkCNDuf9yDdXe/pHzp/K9yTD//9d8RVx8df
/O4/MkQk1sgGfAWkOHc8sOKIZ88B49deR8OOMvG9BBJ+UCcXulFmtmm2kcxS
sU3CgNiD4Ae6VdCfzAeMvgkxpn6Dwj+uAB04h/6InLRucG2yIuATbM+TWYID
mjewbPWMPNhyQ+zhs4+VlRQrsfNgAYCpIOFQkZbhmPWo11vMHINbjnuXRXHQ
mmKn6crrYKYHPiDcTTw6cgAItUJJ3j3h/2bjRx3nKXThVZ4/667HDKwHrSv0
NoqvoCzZKUW2NbFKr9bMixM1X9xq3W6j5fKCDJfbs9Ori/O7q3cn5hasSHbH
nbsSDJU7VP6vQMEBnWfmUGtKnr996vlb5HVj8/XV25enVzd3MPbXZT1FA68m
jgLf3dy+ubs5MTesENxqYOgNBYZYDeXv+Flc355n+ys8v7i6O6UNPbENeeh2
9yFae6b2Zk5izD2KlxbRntXywgfnfnTOAUBKR6pV1t2w4FjnNT4m9m5ElCfd
D3RVMM3bTGaTr7f9MJlMZ82BGDEHYuPLn2yco4O+nis6fLoPHT5ldDg9PwfI
gY0De29QGRWHHRtC+MTN23d3GNts2iBfw5fn+15PUBgfGxij+8TNu7d3Zyfm
/Xq9Y7eQpTAy78/hP2iugQXdziZHWfa+olBRhO2oh3bmMGDkkSoUVTB/M+US
uiKCBQdY9CPkY3iWj7V8q9vEpzyF2ZCNKrA/O+m7DmZHEeKfEcSviup+fFXD
WSLF8HrfV6Dze0DDbxDR05ATGPq9TXk5895W0Zyn0KeoYmAyrMjV11LwC1V7
FL2IqoItYnfQedpVuv3gsy+qgjytLCnoUebIxxx3Au2Yo7QEMEdBHVH5UfuD
cXqrDFFAm2mMThDGrtADg38RIwQFeD5H3Q31ExALEvKBg6MjybLvQLnonxqs
OEJ31HuHkNbLgjJdUIoD8V09ZudZnXkcnCzrnh4FD3zwgtdkN8XRe0cdZpDj
hLPz4lBod07Xi7dGoytgR5I9iSQkvGHoXyawLWurUVYGRRKMI07VjdjxIxRn
p8DDwMArWwFSkT6szlSMeNEHeaquiFuDEIycS1aC+cP/MnIezzalDU4fRCJg
4qKMoA+LFvpIjrMp6lE4AZ6d4bMbHhiPsX9e4mciRIOflD4isSKMdjHV0Oin
b9ANNTjwt/jlYZz/CHT9TZmzY5kWmEdC2zPbHlCkSyg0YaxGOyon7mDVEyji
BoAuFEWovA/GguI7AAmrg+MB4wgM0LyYzx1mBYxAmUERTHsAljQ8sGd/l1Nv
qk8dv1d2W2+CpMVsCRwozKAKITNOjLg0KBXrSqJ9SIMampZUAVKKiPuQvyUE
bWoMnYc/BTY6EWxCHEiZboZ4OUJNY4ykQWJAgYlXQ86q1125agFHQ5wQdvgq
aGMFU37jQC/1wbwWIkyWJBDh6UB2/O1vf8sUiB8PAPZ44LPnA599koxyDE98
Yl6YT81n5nPzhfnyl3ym4/zr+O/8nw70V6N68x3yTvhb/hRY/tV82/iKnpN/
F+t6tgx//fUfsaLeP9A6WQ8VCfb0v/9fK+oosv/0FfXE+T8DRmSFoAHT+/tW
V/zOkedwEFhhRX/9NWG0z+6IMBwyOn51GCEb+bnc6Cd50d/Ph36NEf5uLvar
YN6vwr1+rZUM/gu86+Zp3vUPX8lFilfmHOOfw/8wG92c7F2oOTz+DPT+1vmj
/c/8WtshwiED7vN91vLnP0b/OGEBJ5F//OHjV/zbF+MpqP+bSoJ0lJQS/AAp
9mC8La8JRKRZsIPq04+jWyFxxQuG6WTPn2Oec4d2068udr/YuyxBXU3PkfwX
MAzqWesw28B9wJiEaqi8HBqSdoHaY5cI2ASntWudBztswgr5lxfdFXFmML1G
RMMPHT/f8xThGBFXCBCIHxMjohg5c2qmFpgwSibEHRxm3dhm+9pxcO+nvVDm
kBxWRzzjJ08th94Kq1GT+c+cTgKWGoAKjplfUQdlsJwdp5bHwEfJycppQrWc
kQaud2b9V4GIeiPUU3rR4/HWp6xfj5NiNhO2Hyh8ow53tGAk5AoDRkU9xF2f
gGRXDB6SQ2+AkLPBD/ZAe5ADDB0B2f14egq5ElfT6GoUqtWw6UUDRliPf6bO
84u2wqve9eCkyAMYfRydZRH69aaRsoaOL8p0HDKUofUESpFBuncbnJWS2l88
a2fGyfCOk6Pwbd1IvkRvq+RA2bHw0LLDIRInixwgr5pjr+SE3qtxHQb/9tEg
A9ylXEEYTKnCdbB/S+E+6CzGVw/VoSyOxSfWRrpeWNftP2FdQSN+WbReGOxn
OL+XCcMD+BlNMt+QK4ECpsgbtswWpo7SsOCw/uwaTPtifEkSIBkPF1XdcKyZ
yG7dYv4hSTisbWEJt/8M1aN/lK51V4gpsNQpSS4rYLkzwKwEpwiE5PMKuCGv
7l3BbxmW6ABjr5WQTWXGykc6nx/iF8dHR0Pb4uMPx/IP2tLtni3R7LKdoZXj
wne2GbfzkbkjN0hd1ostyegqp3RE86bO3Yk5I5ez7wXcOb2rosRKO60l5YSz
XGAp6OOrROafUarliTmtukNLhgEzxJYyejTnKoxTFr51FeUqUZ5YFWL03aEo
R5H8slo0IFksmPCyd2qq5+nP0RkKlkAJfpiYMjQxzPKmbgFKVjNKKeV/1rKH
XnJLDykFrzuP5zwTSUTBSW8ozYRyTjymYWBGGnJHArWUXAThb/12xS4yWGJy
NJSMPyfPtD5NgqGbdi1uXHkCRqAc15gBZDqLIa3j3gGFL4s8d5U660ViSJ6R
oSQIWvTCVZiEVDejkHERE240peS+wqQAzNfCmAIsGKXNZS9vYdR/mdI6xNrl
OMj6/j81+SnrrJsyD+DLQ85u+8+QVlNtd9J/5TAaN5bkZ3wfdJrXR5Tko7DG
LWJGS1WgDxOELmt+MC9y1RaT2EeaPq05bDjdWZgO/5I0LPyLYMYv4CDhFQ3q
0LHjXF6WPBaUalzJ7vdlsZY6qYzKF0EoLzEVAwEpGWkV1pmM4ZimCKeQInVi
OFfQGkAbX2C0ysC3jqKZ6GD1dLaK9xqrY8LiPd5Sijgha+EYFbhghw+XMgiE
nWnKuBZUCX3uKO84WKt/E3hU+ZcKBaLH+ZCrHpbPMyalbrEW6yNMluVo46uy
fgyZ0/wR5S1RNh3T13NQbdwahScZjcdPpw/fwrPmX/KTaEwekzFJvFNcMr2E
JYKcD0cuOIEHxMiC1CDVb5Q4JnUXyYCK+IDjk2wca9LmsLswrmBeLK3jWBQc
Le3PXJ/+gZOCYgxHmXBNyTzB4R9zMSmalGE0aSARS/Yl484kXjl1ACm3tJJk
L1wsa5MqL163pgZTcQVrhgeYI33Az8TjPMW6jDF8P54juz1ME+2P+GHN1JeE
aJ4AuQ+lawMXy0KWdUjvL0DNwZ3vFBhwhAGDfYUewBKwqBU9LheOi3ULmAU9
q0OIOWFnHCyRM1HxZN7EnFvGSoxYEANAggEjnZObQ3q8SiSqm3HiAaTsAhD9
kmvDhYGEQDONVdEaHwoADKbk4i4l3S1E4WDyzH1AeMY4U8xWAH4Ey401K7xd
YCzj/dslvRI5SSfxcozsNUm8lPQ9zr808qVd+w0zOXOtPCs7fH1xfYSb10Rl
hMsBsyPmRpgwQYmpO6gvicL0wi7jOUCxFhM3s17q56tOGupInuym6lASK2bp
jAlbdpbFH2smx+FtM7u8GRn4gVkTI3PuW/wbfvDfyq+OoojFkP+mkgOgEVG1
QdeAxJjZTSC5bkTYHXMTVXrKNu7ky7NXRp0romxQLHwXTKQ0TZG1UEI8MfI4
sVoQqZUaIutPuGSyrkuGxHxNmTA15UdjskJgVXFoZxs45GaUcVY6CS5NIevk
v2p29J4aF9kD57xE74gUmiM5agicNFMmB4ywsg8CR9dDCEkLDBBcPvIdZpaV
FiIJB4m8T0gnixow59GCgQ3CHCOccNCuaah03lNGbbTWKlI310Oei+x7aSDw
wwlQEb14VayK9h26Clx+gSOeYJYr5mWb04vT835F/6APARMPZGfM07qZ0eZr
rNEpqZZi6N3sG+DEfkmMKUS4jc3BDOHcdlZHC9LUOSYcFGx5DUvgAXyj3aAr
dXHpffY7Le+HQb3wLhvYP/ZpmKFu6TdiC/fWstqAnYWq4yOX2AJ54NHVTbYb
8l1RYwD3AWtEgORqeJmsnCTlso6NCjLRiwgDsZjPFnnM0ngCMEqllvq3cLJ7
hjXrhKJM2EWUY7jf2Qx0eDuVGnF6YqvgXGF1D/KYACG1OECZbOp1Q6xWfBNx
XBTEMSG93I6eWDcDRlKtAQbaxiET8NOEMNeyIBcFBdRZBWVYD4TXa9lm1k2S
6BG/cMOYWfNotzH9S4quu2sl6TrHNj0CWsGRwCiCtiZY2Z3S65xSp2D6mJoJ
pibNIXRTbMAFdGd4UbqXa6jafBWFISvw2KhhJOyN1oWcUvxuvQSw8C6upsT6
6P3nhYzeOy2bNOkpkZptUez5bGdZPhxLgiUfAY94D6d5htmsoE2rRNai8qQR
gpy25M2msGCz3HY8nOnTCZvvjJ6R/T2Lhn+cjfFMS8OjI5KKeLUiNdtxzqTR
HnFj9FOSKeATYgEyBBUm0bolVVkQqhM90sxRTlPBZbP9c1+sNVkoFE3QDHs4
dCjXTEr74m77h/J891DohAnC2hsmhfbRTx+O5eOROmSCUxgcmOGMMLPHhiNz
Sl8OioW4HXHbcVtxq9Rmpyy3wgkEEYQay1o4JRkAlCmEjPdVgSyMu0Bg1h1l
46kzE5vq/IAYPQ9PaQJjyL3PNKuIiqBWa1SgWStnx6iwsGehVBaM0VvVRL6u
bemBjQL+FH628Ul0p0g6uIyisoB+jOAEYS8TiRL6snQW2z1w0RA+wWa57ffG
oZYbJubiKQPpdfMJZUtFPBJNxBf6Rx9/SbWunfw30XqUJKXPRtgA1i9SJx1C
gbRwF2tnKb85OtCoLqy/AWOuARWQIEZY4bPo9nngKirq8NBiM4fKIa6ADouc
79Gi+kiKQo6KcIPgS9cAXBfNvpG4SGAEgCXGOqh7yxrABqCn0kMwfBE80oIm
67egATCfc8E0d9IoWqk7AKkAi4iq9pNtDzTLM91egehWUMkA6Yf9rU/TDBAs
rEoKGF2e2C8rULDqvId+t6Kkfjp5gZgB4AldGp5u0JB01SkY7VOvZeZnrrKA
rlJyqmmPi1Co2R8dNZASNIVc+kQAN55qXurKgbXO5Ue65dCmJ+kjkBTOgsbW
reOc9Lws7LGUTgyEicR8R11LL5sBxwzlGM+fTAl/Tp6gFBCcqV0l+9JjwrKX
zcocJu1NzLc3b7BfH2JwiU7j8Q5QYZ3V/biklE+F7+BzQKpoxyX9E8IpSC66
2kfkCaTkbdABgAnBsbuKvImouIntxOJymMlgy0CkUlLvF0Do1A0D9VO2F7rs
j7Sxs+7Jcycd4hfK/MkHnSJIcHMpHlE/CVGpsc0FBxjEgXY4eLRHIeO173LB
g449iNh3tQWWsigoJZt9mtuoYaGejK5Z5Grc0GBGLWhI5EhMYnjrl4HQs9Od
2k0RXrZFtygF5jBzFURMkRiQ3FZtQamxGfXUCcVWkW+yE2dCbnamIMyAFT9e
d9ZMrbOhWXfHJGVR3P6kLVJyRpZICxgeOFPNTRHYwy1xFDQNdMHyYsLM9sKs
W0lNgNtU3AGSvB18OGmmA5o+7EgWLVO8hHl4KkueCkMFD7j65AEUMEiNNnnX
9inmPe4SPIPkdau26k8LjIS72mmlKlVqgvKeTV0gstANYEXRcWI4nzzJcD75
SYbTlQQDTGeEzuerW/UM/mO4TvDFBE4DHAgm/n/iN8pt4P1BfnPW8VKflgs4
2na5yrLbNLbTiaQRTqfd+KaA33NSTQieMQKXvvVvyRfd4Qry9recAE+zwbCg
qrGndMcbKgY+NjeEqQEDuZEHud46XV6+l3aQP4yoAiI+xcpdsWaSkxJyyhUB
2S+Z/uhBAzWGmoXNszV7Z/uQEGUauzfOop0nBSsivUiN6wTKEsbI8Tv8DDjS
H4HqqbAR97TllDIj/uF0BW4XIuIgDj4tqUuPuTMZeSssGRZYSiIcSfIsOqvT
rnqu42nGNWe9NQvRSmydNGeSI0l5MOmYnkFKlebzBsxtQnb2o1SBCjyOmXVn
jTAl//bo6R4IA9pcv92T9b6eFTb0tzpEz57U6sIyteNbpoBF2b9C9bapp+jr
orgS2Frk7CdNl751qNmTtQe7EhmiY0zMd8uidJK7wMNKqDf46mNUNHFkY4cw
kdiiHg8AFmxrC4tON2qViKmlJ0Gd/JdAtacXt+Pj51+Mvz67nnSMrbOO21cr
VbjQFxuptZaFPesMOz1MqVWfcjE4MiQpOCVu+8i+nHzc1mMUMOyA8RzLklCM
TpDmNKKBu0Ix0/XtJ2p0pQYC+Wgx8ocNLR+0maDK77SKtBa7QJ2B3e5boitT
ohb6BEVTiH0pR6LU9ye2FGLSedV6sMGoQzGV6h5xRDY3u+GSRydubgD+HFAM
gFtqsVe7RO8gN3EKNmSC1UF4UJtODcdI8pFpY0aLOOkQYvMYNwGJcCUa4B3P
dI0zZdl3NMtm5aJlFlo2BtcFQqSpS0m1zLV5F6mXLT/GTZeCmqlvdJs4wtlO
3CR0JJTGnKsaWL52uUhxAvhfbI3YR4KjUVCkts9IFQzHfdg9tiPx/Nx0B2DG
seNjBRqR5065ReatyHrsEk3unnSUURdi3rl7nzTK3Gk80MaoiyWaYRarcOps
X4ruQAGYs0vg3rk1tk3BhI9JSB1B06y3jELdWeLAiW4+r+ZeoAXWTrUBoDy9
AnIE+fIbL/1aCmnnyokWu3SyA0U1FY8HbMWk89gxG4svXRLJIr/t1ekb7rdF
vd8ccGj1YafdZAEmoTVq91xEVmNflXRUUt5OscrwjTC1Q5jpSNOIHwpAHNj7
NaquWANJttdiI+xzFHrsXCDiAlKPzBcfP598wuzj1fn55Uh8iDiAtLMNVaoy
I/lWbM6ly+I74vpSyV2Kdai9ERQygbnaShOl2DJKuw2Sryyt9uzhCJ4niORW
IuorTl2LZGuBIfvQ7Oasg5g3tl2eoNe+MyKqj4HuSWOk1rq8wpJzYQawnGpC
g10LZimfgm4+9XcEpO3u1vMTiAEhCYhxtsb2giuq9calaG8wcuR1F09qN4Uq
I4dXf8p0CD17OMPQk+mINcOb+POyAtUIVPwNde0jJuLrlSOyRXehLMBrIh2Z
VsnKWRWTwYrOYIRK6L6NNbihKVe6dYGkpkcAIOd2hp0WOZugRzmwz94JTMxL
0t2L9Ub8nrKeAZQKORocMkyEcO94MFwi2IJhbymBH5vvwC7EQI1SqD+JH3UR
B1VI9BGNdlpf4RKRMI+PzeF3xfhVccS9gqP3F0D8sClRWRbrtyddJuaWTAZV
XqagZOdUUEyY/ejKcsw5Xw0IqBpbs5EjueDy+giTYBNob0sif0lapeWmmcZ+
F80jBEHhdPae05RAMeX0l4GOz+LJLFA1FsAJ7+HhKfQJIhis0EKMs4iFSAeB
K2i/9iz7WvssdmTjzxCJIEKoR2ORikW8WqSg1e801Et1tLBv0aSQZEKzR/Ek
pAOkLdn2KK2jvRqruO5DP3QM+EVGrCxBg8SJ23Wy07RdVUPMd1b86hAKgvzB
UhAjdFeMWBwlcQgUJUY5vIo9upkbeHa9AdDqXa6KrhrPeigoeCsKBcRYeVDV
wrUtHRW00yZL1MyUWw3hdcTbVPEGIseQTp/CUkxLdOrQgYgiTrsR8IAT+4AO
ZsZ8U4Zwd9TwHTZcUJYeGG1HR+pZJLd9h008o9QsA6zRg/JukTSYpbY4IfIh
+ZTB+cO9L8jFqF3XafQ+J3pCef35qutp1dEO22YrWjVqrAqzHWLcA3zRA8mn
kcjtWNATE/L69VqoI6xQKRCFN5y8dBKKM7oPhEnUcJeSjkLYmRrM9xv0YatD
tYif5lfENga19w5gklb3dUMOXY3optr0o1NVK7RUEPVeaD5o+NxVWSFEwUKu
UItdYlL4LywFKXLNPU8XCTpxwRHMmnUJCsy2I52zxjQk+4BXFlFLbuSKnC4p
eH6HfUp7oc/RDoA3xASlA35LaRG04oZyW0fcriR4KnvUiGHZJAMH6wbQuofZ
USAJ82Z/uHjep9QR1VEHRG4Omig29XS+8cLaDqOzQmLvjaMjgk8oky6EPlVy
eFG3xN3iN4sFKNzsjkBny+UNkLq5uL0hTxteOvMD6aoUgyKGSP08GUAkhSQ4
Sb4UZTt5yq7U6DztehD22Zx3ISJFwLe7b+0aXT+HiYcEjVinFGiAnhn155J8
9a4SA1wwBLMFyYJJH5wVqRrYNcj7gjXokgzIqVvah6ImK1jyj5OUZCCTK2rG
N20Qp3JqrYiJzZIWyA6YmfBc2JLj30hP8oByiDPonAmyK4aC05MYvvFtt23d
Q7zqjZzjJHwJoCnsgwG8G7tIW28ff/Ij6LzXmuGYbEVZFtdAkZ41tOM9nEwl
sY+vjdRV5ckNLI1mwvlhigXDi8mk6p6zmk7Buk68pXCAM4t0VLT7bKvWYjgs
ag0xBq7N1RC12NBKdSupjuYozYm5xfQy30XOdK+iNghbEK8gjrmrSOy4ZkLY
NGSHPeHfDIJLeLguJoC4zxAT9S7VOLqDcm/1gLd4Nwywg46WjF5nFwmYXY+B
DWKOKx9v0rFqlAgiomLu75wk/WsNV3J3EWVbaKyps4+UkBP3XMgMSZTVkYn3
mcS5NAYUklNBHDxSCCzVc+VuDM0e5g555hRkqF6PEgQYXh1EfsDg69odhyXM
iIvDws1BNVZ48c1a1aLG139f34L5W5c2MJEkcxOOA0yn3iOE08lyNB0wPpPe
03RFvc9PF42Tu8CyhP7PhXl1aL9D+srehsler2OIzwetZJCMU9lFtY3VHzXw
Qrti4ydR2PPCNxvKSUhtDTQgZ8sCdhYu+QCB/Uc2UKUeN5CwRiQw2ambG5MS
Ne0TizAl2TIha3F5CXE/Tdmc8SRj9dK5AmikElv9WeEqgVBMGFCXHdVSLvan
eAmX71zCFTGcjyecGbM677rmkdU4WjK8XCCFidMF+j1Q/qLrkoM1eygQyB3T
/NLA87ojzrQ6qImU10G/yyAu9+JflKiDCEhiP8U/DqsgKgxLlS5upFYKkyzr
EZ3Tf5KrB78dk2q3xj90FMD1kNNzQMxddpO4+Ja9+8TpZajySkcuMSGAAJJw
Mz5lnif6McS3My83oe+czIrKjehA3dNF5CBLv2UhilvaTCmChje2oe+PzlOW
4cLCfOS85ZaS1ktZlVIz6ppJzkVPC1SJ3jndYDRH/S1KS9HUgz7BHtt0MyDp
tBFrr/UCMZbFRrydRRPqr4Lr55fruRpb5ehWzkwj6oDDSqr0jd6IKd4Fil66
ozDqZHQGQ5/lEYfrUheO3lgx6lysQC38iVTE/xSykuS+ijVFlfqJIwO+A/Hh
77M5diyOvmWeXGa4ZBs18SXqJD0soV61g8rrdCsDsp8qJEtehuv4Qk/ebvHN
bilLtyVi0HlIZU3ukKHI6hzvYM2yPfJU5Z1wxW6peJhOrGuu5N3hMOhPi5ld
kVXueDoaRyEPBF7vgqk0O4Bixmi+N3z1j7YHDreaHBHMKD1E6yKTeGs3+QqU
P+HIVFJtc+zHiVXFj8s6yUcTUUixGYRIqBLs5LCkDbtnsbIwJWiBozbhxXQB
HKeLI+R2q6udqg+KSd/Vawxak2yb9VIV7jTY0u59KJJgj/jlKgmJOBVezebJ
jh+NQp89egmZukqafLeVpKUpAgbNIo/ZJEgQAJiiFxlDoVuNMdBFXpbS7ZWn
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
/wIqVGzZ75AAAA==

-->

</rfc>
