<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-teas-rsvp-auth-v2-00" category="std" consensus="true" submissionType="IETF" obsoletes="2747 3097" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RSVP Crypto V2">RSVP Cryptographic Authentication, Version 2</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-teas-rsvp-auth-v2-00"/>
    <author initials="R." surname="Atkinson" fullname="Ran Atkinson">
      <organization>Consultant</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>rja.lists@gmail.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <date year="2025" month="October" day="19"/>
    <workgroup>TEAS Working Group</workgroup>
    <abstract>
      <?line 158?>

<t>This document provides an algorithm-independent description of the
   format and use of RSVP's INTEGRITY object.  The RSVP INTEGRITY
   object is widely used to provide hop-by-hop integrity and
   authentication of RSVP messages, particularly in MPLS
   deployments using RSVP-TE.  This document obsoletes both
   RFC2747 and RFC3097.</t>
    </abstract>
  </front>
  <middle>
    <?line 167?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Resource ReSerVation Protocol RSVP <xref target="RFC2205"/> is a protocol for
   setting up distributed state in routers and hosts.  It has two
   common uses in the deployed Internet.  First, it is used to reserve
   resources to deploy Integrated Services.  When used in this way,
   RSVP allows particular users to obtain preferential access to
   network resources, under the control of an admission control
   mechanism.  Permission to make a reservation will depend upon
   the availability of the requested resources along the path of the
   data and satisfaction of policy rules.  Second, it is used to
   create and manage MPLS Label Switched Paths (LSPs), possibly with
   resources being reserved on a per-LSP basis.</t>
      <t>To ensure the integrity of the admission control mechanism RSVP
   requires the ability to protect its messages against corruption and
   forgery.  Where RSVP-TE is used to manage MPLS Label Switched Paths
   (LSPs), it is also important to mitigate the risk of unauthorized
   creation, modification, or deletion of a Label Switched Path.</t>
      <t>This document defines a mechanism to protect RSVP messages in a
   hop-by-hop manner.  When this mechanism is employed, the sending
   RSVP system transmits a cryptographic value in the Authentication
   Data field of the RSVP INTEGRITY object which is contained within
   each RSVP message.  The cryptographic value is computed using
   information within an RSVP Security Association, which is precisely
   defined in Section 5.1.  Hence, this mechanism can significantly
   reduce the security risks from forgery or modification of RSVP
   (including RSVP-TE) messages.</t>
      <t>The INTEGRITY object of each RSVP message is also tagged with a
   one-time-use sequence number, which is described in more detail in
   <xref target="SequenceNumbers"/>.  This helps the message receiver identify
   replayed RSVP messages and hence thwart replay attacks.</t>
      <t>This mechanism does not provide confidentiality, since messages
   stay in the clear; however, the mechanism is also believed to be
   importable to and exportable from all countries, which would be
   impossible were a confidentiality mechanism included.</t>
      <t>This document is a revision of <xref target="RFC2747"/>.  The most important
   difference is that this document specifies an authentication
   mechanism in a manner which is independent of the cryptographic
   algorithm (e.g., MD5, SHA-256, SHA-3) used and the cryptographic
   mode (e.g., HMAC, GMAC, KMAC) used.  This supports future evolution
   with a variety of other cryptographic algorithms and cryptographic
   modes without needing to change the RSVP Authentication mechanism.
   An algorithm-independent specification is important because
   historically all published cryptographic algorithms eventually
   become computationally weak or will have cryptographic flaws
   discovered.<xref target="DS-1981"/><xref target="RFC6151"/> Separately, different cryptographic
   algorithms will have different cryptologic and mathematical
   properties, which can mean that the cryptographic mode suitable for
   one algorithm is either unsuitable or less appropriate for some
   other cryptographic algorithm.  As an example, while the HMAC
   construction <xref target="RFC2104"/> <xref target="NIST-HMAC"/> is sensible for
   Merkle-Damgard hash functions (e.g., SHA-1, SHA-2), the Keccak
   Message Authentication Code (KMAC) construction <xref target="NIST-KMAC"/> is
   preferable for the newer NIST SHA-3 hash function. <xref target="WAGNER"/> NIST
   also has defined the GCM Message Authentication Code (GMAC), which
   is another cryptographic authentication algorithm that might be
   used in the future. <xref target="NIST-GMAC"/></t>
      <t>This document only specifies the RSVP authentication mechanism and
   protocol and does not specify a particular cryptographic algorithm
   or cryptographic mode that MUST be implemented.  Instead, this
   specification creates a new IANA Registry for the "RSVP
   Cryptographic Transform" within the existing RSVP registry group.
   This enables the set of mandatory, optional, and deprecated
   cryptographic mechanisms to be updated over time without needing to
   update or modify this document.</t>
      <t>The RSVP checksum MAY be disabled (i.e., set to zero) when the
   INTEGRITY object is included in the RSVP message, as cryptographic
   authentication inherently provides a much stronger integrity check.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>Within this document, there are certain terms and concepts the
   reader should be familiar with.</t>
        <t>First, this document uses the terms "sender" and "receiver"
   differently from <xref target="RFC2205"/>.  They are used here to refer to
   systems that face each other across an RSVP hop, the "sender" being
   the system generating RSVP messages.</t>
        <t>An "Authentication Key" is an unpredictable cryptographic key that
   is used in the calculation of the Authentication Data field of the
   RSVP Integrity Object.  It is defined precisely in Section 5.1</t>
        <t>The term "Cryptographic Transform" is the combination of a
   cryptographic algorithm (e.g., MD5, SHA-1, SHA-256), the length of
   the secret Authentication Key (e.g., 256 bits), and a cryptographic
   mode (e.g., HMAC, GMAC, KMAC).  Each different Cryptographic
   Transform ought to be defined in its own RFC and provide a clear
   specification of how the Authentication Data field is calculated
   when that Cryptographic Transform is used in an RSVP Security
   Association.</t>
        <t>The term "RSVP Security Association" and its contents are precisely
   defined in Section 5.1.  It contains the Cryptographic Transform
   in use, the cryptographic key, and several other parameters.</t>
      </section>
      <section anchor="REQ-lang">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.
<?line -8?>
        </t>
      </section>
    </section>
    <section anchor="IntegrityObject">
      <name>INTEGRITY Object Format</name>
      <t>An RSVP message consists of a sequence of "objects," which are type-
   length-value encoded fields having specific purposes.  The
   information required for hop-by-hop integrity checking is carried in
   an INTEGRITY object.  The same INTEGRITY object type is used for both
   IPv4 and IPv6.</t>
      <t>The INTEGRITY object has the following format:</t>
      <artwork><![CDATA[
  Authentication Information INTEGRITY Object: Class = 4, C-Type = 1
]]></artwork>
      <artwork><![CDATA[
       +-------------+-------------+-------------+-------------+
       |    Flags    |     AAL     |                           |
       +-------------+-------------+                           +
       |                    Key Identifier                     |
       +-------------+-------------+-------------+-------------+
       |                    Sequence Number                    |
       |                                                       |
       +-------------+-------------+-------------+-------------+
       |                                                       |
       +                                                       +
       |                                                       |
       +                  Authentication Data                  |
       |                                                       |
       +                                                       +
       |                                                       |
       +-------------+-------------+-------------+-------------+
]]></artwork>
      <ul spacing="normal">
        <li>
          <t>Flags: An 8-bit field with the following format:</t>
        </li>
      </ul>
      <artwork><![CDATA[
                                      Flags

                          0   1   2   3   4   5   6   7
                        +---+---+---+---+---+---+---+---+
                        | H |                           |
                        | F |             0             |
                        +---+---+---+---+---+---+---+---+
]]></artwork>
      <t>Currently, only one flag (HF) is defined.  The remaining flags
 are reserved for future use and MUST be set to 0.</t>
      <ul spacing="normal">
        <li>
          <t>Bit 0: Handshake Flag (HF) concerns the integrity handshake
  mechanism (<xref target="Handshake"/>).  Message senders willing to respond
  to integrity handshake messages SHOULD set this flag to 1
  whereas those that will reject integrity handshake messages
  SHOULD set this to 0.</t>
        </li>
        <li>
          <t>Additional Authentication Length (AAL): This 8-bit field contains an
unsigned integer.  If this value is 0, the Authentication Data field
contains 16 bytes.  If this value is greater than 0, it specifies
how many additional 4-byte increments (i.e., beyond the default 16
bytes) exist in the Authentication Data field.  For example, a value
of 1 indicates that the Authentication Data field is 20 bytes long (16
bytes of default plus one 4-byte addition).  This counts in 4-byte
increments so that 32-bit alignment is maintained within the RSVP
message.  If some future cryptographic transform has a result that is
not 32-bit aligned, then the RFC specifying the cryptographic
transform MUST document the length of the actual output and MUST also
document that any trailing bytes after the length of the actual
cryptographic result are padding.</t>
        </li>
        <li>
          <t>Key Identifier: An unsigned 48-bit number that MUST be unique for a
given sender.  Locally unique Key Identifiers can be generated using
some combination of the address (IP or MAC or Logical Interface Handle
(LIH)) of the sending interface and the key number.  The combination
of the Key Identifier and the sending system's IP address uniquely
identifies the security association (<xref target="SecurityAssn"/>).</t>
        </li>
        <li>
          <t>Sequence Number: An unsigned 64-bit sequence number.  Sequence
Number values may be any monotonically increasing (modulo 2^64)
sequence that provides the INTEGRITY object of each RSVP message with
a unique tag for the associated key's lifetime.  Sequence number
generation is specified below in <xref target="SequenceNumbers"/>.</t>
        </li>
        <li>
          <t>Authentication Data: This is an unsigned variable length field
containing the cryptographic authentication data.  The field length
MUST be a multiple of 4 octets (i.e., 32 bits) long.  If one knows the
RSVP Cryptographic Transform used for a given RSVP packet, then one
will know the correct length of this field.  Given the combination of
the Key Identifier and the Sender, one knows the RSVP Security
Association, which includes the RSVP Cryptographic Transform.</t>
        </li>
      </ul>
      <section anchor="backward-compatibility">
        <name>Backward Compatibility</name>
        <t>In <xref target="RFC2747"/>, the INTEGRITY object contained a fixed 16-octet field
for "Keyed Message Digest" for HMAC-MD5. This field is now renamed to
"Authentication Data". Further, the second octet in the object was
reserved and its contents were specified as 0. This field has now been
redefined as the AAL field.</t>
        <t>These changes should be fully backward compatible. A legacy
implementation will continue to generate a 16-octet "Keyed Message
Digest" and new implementations that expect HMAC-MD5 should
continue to expect 16 octets. Legacy implementations will continue to
generate a reserved field containing 0. Similarly, an implementation
conforming to this document that is generating HMAC-MD5 should
continue to generate an Authentication Data field of 16 octets and an
AAL field containing 0. These should be received by a legacy
implementation without any differences noted.</t>
      </section>
    </section>
    <section anchor="SequenceNumbers">
      <name>Generating Sequence Numbers</name>
      <t>In this section, we describe methods that could be chosen to generate
sequence numbers for the INTEGRITY object of an RSVP message.</t>
      <t>The sequence number field is chosen to be a 64-bit unsigned quantity.
This should be large enough to avoid exhaustion over the key lifetime.
For example, if a key lifetime is conservatively defined as one year,
there would be enough sequence number values to send RSVP messages at
an average rate of about 585 gigaMessages per second.  A 32-bit
sequence number would limit this average rate to about 136 messages
per second.</t>
      <t>As previously stated, two important properties MUST be satisfied by
the generation procedure.  The first property is that the sequence
numbers are unique, or one-time, for the lifetime of the integrity key
that is in current use.  A receiver can use this property to
distinguish unambiguously between a new and a replayed message.  The
second property is that the sequence numbers are generated in
monotonically increasing order, modulo 2^64.  This greatly reduces the
amount of saved state.</t>
      <t>It is desirable that RSVP Sequence Numbers not be trivially
predictable.  Therefore, the sequence numbers might not begin with
"0", "1", or any other fixed number.  At the start of an RSVP session,
a receiver MUST handshake with the sender to get an initial sequence
number.  Since the starting sequence number might be arbitrarily
large, the modulo operation described above accommodates sequence
number rollover within the key's lifetime.  This initial sequence
number selection solution draws from the approach in the updated
specification for TCP <xref target="RFC9293"/>.</t>
      <t>This memo later discusses ways to relax the strictness of the in-order
delivery of messages as well as techniques to generate monotonically
increasing sequence numbers that are robust across sender failures and
restarts.</t>
      <t>The ability to generate unique monotonically increasing sequence
numbers across a failure and restart implies some form of stable
storage local to the device.  Three sequence number generation
procedures are described below.</t>
      <section anchor="simple-sequence-numbers">
        <name>Simple Sequence Numbers</name>
        <t>The most straightforward approach is to generate a unique sequence
number using a message counter.  Each time a message is transmitted
for a given key, the sequence number counter is incremented.  The
current value of this counter is continually or periodically saved to
stable storage.  After a restart, the counter is recovered using this
stable storage.  If the counter was saved periodically to stable
storage, the count should be recovered by increasing the saved value
to be larger than any possible value of the counter at the time of
the failure.  This can be computed by knowing the interval at which the
counter was saved to stable storage and incrementing the stored value
by that amount.</t>
        <t>The periodicity of saving the sequence numbers need not be tied to
time. This could also be implemented in terms of the usage of sequence
numbers themselves. For example, an implementation could record the
sequence number once every 1000 messages.  On recovery, the implementation
could recover the stored sequence number, advance it by 1000, and be
reasonably assured that the new number is unique.</t>
      </section>
      <section anchor="RealTime">
        <name>Sequence Numbers Based on a Real-Time Clock</name>
        <t>Most devices will probably not have the capability to save sequence
number counters to stable storage for each RSVP session.</t>
        <t>A more universal solution is to base sequence numbers on the stable
storage of a real-time clock.  Many computing devices have a real-time
clock module that includes stable storage for the clock.  These modules
generally include either some form of nonvolatile memory to retain
clock information in the event of a power failure or have a small
on-board battery to keep the clock running even when the device is not
in use.</t>
        <t>Also, many systems have deployed the Network Time Protocol (NTP)
<xref target="RFC5905"/>, the Precision Time Protocol (PTP) <xref target="IEEE-1588-2019"/> or a
related ITU-T profile of the Precision Time Protocol <xref target="G.8265.1"/>.</t>
        <t>In this approach, we could use a Network Time Protocol (NTP)
timestamp value or a Precision Time Protocol (PTP) timestamp value as
the sequence number. The rollover period of an NTP timestamp is about
136 years, much longer than any reasonable lifetime for a key.  In
addition, the granularity of the NTP timestamp is fine enough to allow
the generation of an RSVP message every 200 picoseconds for a given
key.  PTP timestamps have even finer granularity.  Many real-time
clock modules do not have the resolution of an NTP timestamp or PTP
timestamp.  In these cases, the least significant bits of the
timestamp can be generated using a message counter, which is reset
every clock tick.  For example, when the real-time clock provides a
resolution of 1 second, the 32 least significant bits of the sequence
number can be generated using a message counter.  The remaining 32
bits are filled with the 32 least significant bits of the timestamp.
Assuming that the recovery time after failure takes longer than one
tick of the real-time clock, the message counter for the low-order
bits can be safely reset to zero after a restart.</t>
      </section>
      <section anchor="sequence-numbers-based-on-a-network-recovered-clock">
        <name>Sequence Numbers Based on a Network-Recovered Clock</name>
        <t>If the device does not contain any stable storage of sequence number
counters or of a real-time clock, it could recover the real-time clock
from the network using either NTP, PTP, or the ITU-T profile of PTP.
Once the clock has been recovered following a restart, the sequence
number generation procedure would be identical to the procedure
described above.  To reduce the risk of forgery attacks and the risk of
time-based RSVP attacks generally, deployments using NTP, PTP, or a
different distributed clock protocol always SHOULD enable
cryptographic authentication for time distribution.</t>
      </section>
    </section>
    <section anchor="MessageProcessing">
      <name>Message Processing</name>
      <t>Implementations MUST support the specification of RSVP Authentication on a
per-interface basis.  Implementations SHOULD also support
the specification of RSVP Authentication on a per-peer basis.</t>
      <section anchor="PerInterface">
        <name>Per-Interface Implementations</name>
        <t>Implementations MUST allow the specification of the interfaces to be
secured, for either sending messages, receiving them, or both.  The
sender must ensure that all RSVP messages sent on secured interfaces
include an INTEGRITY object, generated using the appropriate Key.
Receivers verify whether RSVP messages, except for the type "Integrity
Challenge" (<xref target="Handshake"/>), arriving from a secured peer contain the
INTEGRITY object.  If the INTEGRITY object is absent, the receiver
discards the message.</t>
        <t>Security associations are simplex - the keys that an originating
system uses to sign its messages MAY be different from the keys that
its responder systems use to sign their messages back to the
originator.  Hence, each association corresponds to a unique
sending system and one or more responding systems.</t>
        <t>Each sender SHOULD have distinct security associations (and keys) per
secured interface (or LIH).  While administrators MAY configure all
the routers and hosts on a subnet (or MAY, for that matter, all
devices in their network) using a single security association,
implementations MUST assume that each sender might send using a
distinct security association for each secured interface.  At the
sender, security association selection is based on the egress
interface through which the message is sent.  This selection MAY also
include additional criteria, such as (a) the destination address (when
sending the message unicast, over a broadcast LAN with a large number
of hosts) or (b) user identities at the sender or receivers
<xref target="RFC2752"/>.  Finally, all intended message recipients need to
participate in this security association.  Route flaps in a non-RSVP
cloud might cause messages for the same receiver to be sent on
different interfaces at different times.  In such cases, the receivers
should participate in all possible security associations that might be
selected for the interfaces through which the message might be sent.</t>
        <t>Receivers select keys based on the Key Identifier and the sending
system's IP address.  The Key Identifier is included in the INTEGRITY
object.  The sending system's address can be obtained either from the
RSVP_HOP object, or if that's not present (as is the case with PathErr
and ResvConf messages) from the IP source address.  The combination of
the sending system's IP address and Key Identifier uniquely identifies
the Security Association, including all of the data elements of a
Security Association.</t>
        <t>The integrity mechanism slightly modifies the processing rules for
RSVP messages, both when including the INTEGRITY object in a message
sent over a secured sending interface and when accepting a message
received on a secured receiving interface.  These modifications are
detailed below.</t>
        <section anchor="MessageGeneration">
          <name>Message Generation (Per-Interface)</name>
          <t>For an RSVP message sent over a secured sending interface, the
message is created as described in <xref target="RFC2205"/>, with these exceptions:</t>
          <ol spacing="normal" type="1"><li>
              <t>The RSVP checksum field is set to zero.  If required, an RSVP
checksum can be calculated when the processing of the
INTEGRITY object is complete.</t>
            </li>
            <li>
              <t>The INTEGRITY object is inserted in the appropriate place, and
its location in the message is remembered for later use.</t>
            </li>
            <li>
              <t>The sending interface and other appropriate criteria (as
described above) are used to determine the correct
Security Association to use.  The Security Association will
specify the Cryptographic Algorithm, Cryptographic Mode, and
Authentication Key to use.</t>
            </li>
            <li>
              <t>The unused flags in the INTEGRITY
object MUST be set to 0.  The Additional Authentication Length (AAL)
and the Handshake Flag (HF) should be
set according to the rules specified in <xref target="IntegrityObject"/>.</t>
            </li>
            <li>
              <t>The sending sequence number MUST be updated to ensure a
unique, monotonically increasing number.  It is then placed in
the Sequence Number field of the INTEGRITY object.</t>
            </li>
            <li>
              <t>The Authentication Data field is set to zero.</t>
            </li>
            <li>
              <t>The Key Identifier is placed into the INTEGRITY object.</t>
            </li>
            <li>
              <t>Authentication Data for the message is computed over the
message, using the Authentication Algorithm and Mode in
conjunction with the Authentication Key.</t>
            </li>
            <li>
              <t>The computed Authentication Data is written into the Authentication
Data field of the INTEGRITY object.</t>
            </li>
          </ol>
        </section>
        <section anchor="MessageReception">
          <name>Message Reception (Per-Interface)</name>
          <t>When the message is received on a secured receiving interface and is
not of the type "Integrity Challenge", it is processed in the
following manner:</t>
          <ol spacing="normal" type="1"><li>
              <t>The RSVP checksum field is saved and the field is subsequently
set to zero.</t>
            </li>
            <li>
              <t>The Authentication Data field of the INTEGRITY object is
saved and the field is subsequently set to zero.</t>
            </li>
            <li>
              <t>The Key Identifier field and the sending system address determine
the precise Security Association to use for the received message.</t>
            </li>
          </ol>
          <t>If the RSVP Security Association has expired AND a different RSVP
Security Association is valid, then the packet MUST be discarded
without cryptographic processing AND a security error SHOULD be logged
in an implementation-specific manner (e.g., via SYSLOG or SNMP).  Any
such logging MUST be rate-limited to mitigate the potential for Denial
of Service attacks.</t>
          <t>If the RSVP Security Association has expired AND there is no RSVP
Security Association valid at the time the RSVP packet was received,
then the expired RSVP Security Association should be used to validate
the received RSVP packet just as if the RSVP Security Association were
not expired.</t>
          <t>The RSVP Security Association is defined in Section 5.1.  It includes
the Cryptographic Transform, Authentication Key, and other parameters
needed to validate the received RSVP packet.</t>
          <ol spacing="normal" type="1"><li>
              <t>A new Authentication Data value is calculated using the
indicated Cryptographic Algorithm, Cryptographic Mode, and
and Authentication Key.</t>
            </li>
            <li>
              <t>If the calculated Authentication Data is not identical to the
received Authentication Data, then the message MUST be discarded
without further processing.  A security error message SHOULD be logged
(e.g., using SYSLOG or SNMP) if the received RSVP message is discarded
for that reason, but any such error messages MUST be rate-limited to
reduce risks from Denial of Service attacks.</t>
            </li>
            <li>
              <t>If the message is of type "Integrity Response", verify that
the CHALLENGE object identically matches the originated
challenge.  If it matches, save the sequence number in the
INTEGRITY object as the largest sequence number received to
date.</t>
            </li>
          </ol>
          <t>Otherwise, for all other RSVP Messages, the sequence number is
validated to prevent replay attacks, and messages with invalid
sequence numbers are ignored by the receiver.  Validation
is discussed in more detail in the following paragraphs.</t>
          <t>When a message is accepted, the sequence number of that
message SHOULD update a stored value corresponding to the
largest sequence number received to date.  In a naive
implementation, each subsequent message would need to have a
larger (modulo 2^64) sequence number to be accepted to reduce
risks from replay attacks. However, this simple processing rule
SHOULD be modified to tolerate limited out-of-order message
delivery.  For example, if several RSVP messages were sent in
a burst (e.g., in a periodic refresh generated by a router,
or as a result of a tear-down operation), then some of those
RSVP messages might get reordered during transit and then
the RSVP sequence numbers would not be received in a strictly
increasing order.</t>
          <t>An implementation SHOULD allow administrative configuration
that sets the receiver's tolerance to out-of-order message
delivery.  A simple approach would allow administrators to
specify a received RSVP message window corresponding to the
worst-case reordering behavior.  For example, one might specify
that packets reordered within a 32 message window would be
accepted.  If no reordering is allowed by policy, then the
out-of-order received RSVP message window is set to one.</t>
          <t>The receiver MUST store a list of all RSVP sequence numbers seen
within the reordering window.  A received RSVP sequence number is
valid if it lies within the reordering window AND it is not a sequence
number in the received sequence number list.  Acceptance of a sequence
number by an implementation requires adding that number to the
received sequence number list. If the oldest sequence number within
the window is received, then the window advances. A single message can
cause the window to advance multiple times.  Implementations MUST
discard RSVP messages received with RSVP sequence numbers either (a)
lying outside of the reordering window or (b) marked as already
received in the RSVP received sequence number list.</t>
          <t>When an "Integrity Challenge" message is received on a secured
sending interface it is processed in the following manner:</t>
          <ol spacing="normal" type="1"><li>
              <t>An "Integrity Response" message is formed using the Challenge
object received in the challenge message.</t>
            </li>
            <li>
              <t>The message is sent back to the receiver, based on the source
IP address of the challenge message, using the "Message
Generation" steps outlined above.  The selection of the
Authentication Key and the hash algorithm to be used is
determined by the key identifier supplied in the challenge
message.</t>
            </li>
          </ol>
        </section>
      </section>
      <section anchor="per-peer-implementations">
        <name>Per-Peer Implementations</name>
        <t>Per-peer implementations follow the procedures in <xref target="PerInterface"/> but
use the security associations defined for the specific peer.</t>
        <section anchor="message-generation-per-peer">
          <name>Message Generation (Per-Peer)</name>
          <t>Per-peer implementations follow the procedures in
<xref target="MessageGeneration"/> for Message Generation, except using the
security associations for the specific peer.</t>
        </section>
        <section anchor="message-reception-per-peer">
          <name>Message Reception (Per-Peer)</name>
          <t>Per-peer implementations follow the procedures in
<xref target="MessageReception"/> for Message Reception, except using the
security associations for the specific peer.</t>
        </section>
      </section>
      <section anchor="Handshake">
        <name>Integrity Handshake at Restart or Initialization of the Receiver</name>
        <t>To obtain the starting sequence number for a live Authentication Key,
the receiver SHOULD initiate an integrity handshake with the sender.
This Integrity Handshake consists of a receiver's Challenge and the
sender's Response.  The Integrity Handshake MAY either be initiated
during restart or postponed until a message signed with that key
arrives.</t>
        <t>To ensure interoperability, and mindful that the Integrity Handshake
might be essential to synchronize understanding of the starting
sequence number, implementations of this specification MUST implement
this Integrity Handshake capability.</t>
        <t>Implementations of the older <xref target="RFC2747"/> RSVP Cryptographic
Authentication specification might not have implemented the Integrity
Handshake.  The Handshake Flag (HF) enables backwards compatibility
with those legacy implementations by allowing implementations to
indicate they do not implement the Integrity Handshake mechanism.  An
implementation that does not implement the Integrity Handshake MUST
set the HF flag to 0.  Message senders that implement the integrity
handshake MUST set the HF flag to 1.  Receivers SHOULD NOT attempt to
handshake with senders whose INTEGRITY object has HF = 0.</t>
        <t>Once the receiver initiates an Integrity Handshake for a particular
RSVP Security Association, it identifies the sender using the sending
system's address configured in the corresponding RSVP Security
Association.  The receiver then sends an RSVP Integrity Challenge
message to the sender.  This message contains the Key Identifier to
identify the sender's key and MUST have a unique, unpredictable
challenge cookie to prevent guessing.  See Section 2.5.3 of
<xref target="RFC2408"/>.  One implementation option is to have the cookie be a
cryptographic hash of an unpredictable local secret, an unpredictable
random number (see <xref target="RFC8937"/>, and a timestamp to provide uniqueness
(see <xref target="RealTime"/>).</t>
        <t>An RSVP Integrity Challenge message will carry a message type of 25.
The message format is as follows:</t>
        <artwork><![CDATA[
  <Integrity Challenge message> ::= <Common Header> <CHALLENGE>
]]></artwork>
        <t>The CHALLENGE object has the following format:</t>
        <t>CHALLENGE Object: Class = 64, C-Type = 1</t>
        <artwork><![CDATA[
    +-------------+-------------+-------------+-------------+
    |        0 (Reserved)       |                           |
    +-------------+-------------+                           +
    |                    Key Identifier                     |
    +-------------+-------------+-------------+-------------+
    |                    Challenge Cookie                   |
    |                                                       |
    +-------------+-------------+-------------+-------------+
]]></artwork>
        <t>The sender accepts the "Integrity Challenge" without doing an
integrity check.  It returns an RSVP "Integrity Response" message
that contains the original CHALLENGE object.  It also includes an
INTEGRITY object, signed with the key specified by the Key Identifier
included in the "Integrity Challenge".</t>
        <t>An RSVP Integrity Response message will carry a message type of 26.
The message format is as follows:</t>
        <artwork><![CDATA[
    <Integrity Response message> ::= <Common Header> <INTEGRITY>
                         <CHALLENGE>
]]></artwork>
        <t>The "Integrity Response" message is accepted by the receiver
(challenger) only if the returned CHALLENGE object matches the one
sent in the "Integrity Challenge" message.  This prevents the replay of
old "Integrity Response" messages.  If the match is successful, the
receiver saves the Sequence Number from the INTEGRITY object as the
latest sequence number received with the key identifier included in
the CHALLENGE.</t>
        <t>If a response is not received within a given period, the challenge is
repeated.  When the integrity handshake succeeds, the receiver begins
accepting normal RSVP signaling messages from that sender and ignores
any other "Integrity Response" messages.</t>
        <t>Implementations SHOULD enable the Integrity Handshake by default when
RSVP Cryptographic Authentication is in use.  In some special-case
environments it might not be required.  One use of RSVP Authentication
might be between peering domain routers that are processing a steady
stream of RSVP messages due to aggregation effects.  When a router
restarts after a crash, valid RSVP messages from peering senders
probably will arrive shortly.  If replay messages are injected into
the stream of valid RSVP messages, there might be only a small window
of opportunity for a replay attack before a valid message is
processed.  This valid message will set the largest sequence number
seen to a value greater than any number before the crash, preventing
any further replays.  This attack can be mitigated if the router has
stable storage for the RSVP sequence number state.</t>
        <t>If an implementation does not enable the Integrity Handshake, this
creates a broad exposure to replay attacks, especially if there is a
long period of silence from a given sender following a restart of a
receiver.</t>
        <t>Hence, it SHOULD be an administrative decision by the network operator
whether or not the receiver performs an Integrity Handshake with
senders that are willing to respond to its "Integrity Challenge"
messages, and whether it accepts any messages from senders that refuse
to do so.  These operational decisions ought to be based on risk
assessments <xref target="NIST-RMF"/> for the particular network environment.</t>
        <t>Each RSVP session MUST be protected either by the Integrity Handshake
or by sequence numbers recorded in stable storage.</t>
      </section>
    </section>
    <section anchor="key-management">
      <name>Key Management</name>
      <t>As of the publication date for this document, support for the IETF
Network Configuration (NetConf) protocol standard <xref target="RFC6241"/> has been
widely available in commercial routers and switches for at least 15
years. Further, NetConf is widely deployed for networked device
configuration in medium-sized and large-sized IP network deployments
around the globe.  When properly configured and deployed, NetConf can
provide secure automated, distributed network device configuration
management.  Further, NetConf has for many years been commonly used to
provision RSVP Security Associations (and also Security Associations
for IS-IS, OSPF, LDP, and BGP) into networking devices throughout a
network.  Network devices usually need secure automated configuration
management for other reasons, so using that same mechanism to
distribute RSVP Security Associations is practical, avoids creating
additional implementation burden on vendors, and avoids creating a
further operational burden on network operations staff.</t>
      <t>As of the publication date for this document, it appears very unlikely
that the IETF will define a standard key management protocol for use
with RSVP.  However, if the IETF does so, then it would be strongly
desirable to use that key management protocol to distribute RSVP
Security Associations (including keys) among the communicating RSVP
implementations.  Such a protocol could improve scalability and
significantly reduce the human administrative burden.  The Key
Identifier can be used as a hook between RSVP and such a future
protocol.</t>
      <t>Key management protocols have a long history of subtle flaws that
often are discovered long after the protocol was first described in
public <xref target="DS-1981"/>. To avoid changing all RSVP implementations if
such a flaw is discovered, integrated key management protocol
techniques were deliberately omitted from this specification.</t>
      <section anchor="SecurityAssn">
        <name>RSVP Security Association</name>
        <t>An RSVP Security Association consists of the following parameters:</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Key Identifier (48 bits)</t>
          </li>
        </ul>
        <t>This unsigned 48-bit item is the Key Identifier used on the wire in
the RSVP INTEGRITY object.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Message Processing Mode</t>
          </li>
        </ul>
        <t>This value indicates whether this RSVP Security
Association is using per-interface message processing rules or is
using per-neighbor message processing rules.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Sending Interface</t>
          </li>
        </ul>
        <t>This is the implementation-specific name for the sending interface
associated with this RSVP Security Association.  This only exists (a)
when the per-interface message processing rules are in use for this
RSVP Security Association and (b) only on the sending RSVP node.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Receiving Interface</t>
          </li>
        </ul>
        <t>This is the implementation-specific name for the receiving interface
associated with this RSVP Security Association.  This only exists (a)
when the per-interface message processing rules are in use for this
RSVP Security Association and (b) on the receiving RSVP node.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Sending IP Address</t>
          </li>
        </ul>
        <t>This is the IP address (IPv4 or IPv6) used by the sending node.  This
is only pertinent when the per-neighbor message processing rules are
used for this RSVP Security Association.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Receiving IP Address</t>
          </li>
        </ul>
        <t>This is the IP address (IPv4 or IPv6) used by the receiving node.
This is only pertinent when the per-neighbor message processing rules
are used for this RSVP Security Association.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Cryptographic Transform</t>
          </li>
        </ul>
        <t>This item specifies the combination of the cryptographic algorithm
(e.g., MD5, SHA-1, SHA-256) to be used, the cryptographic
authentication mode (e.g., GMAC, HMAC, KMAC) to be used, and the
length in bits of the Authentication Key.  RSVP Cryptographic
Transforms are defined in an IANA Registry (defined below) and
corresponding transform-specific RFCs.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Authentication Key</t>
          </li>
        </ul>
        <t>This item specifies the cryptographic authentication key to be used.
Its size varies depending on which Cryptographic Transform is in
use.  For any specific RSVP Cryptographic Transform, the key size will
be fixed.  RSVP Authentication Keys need to be cryptographically
random.<xref target="RFC4086"/><xref target="NIST-ENTROPY"/></t>
        <ul spacing="normal">
          <li>
            <t>RSVP Security Association Start Time</t>
          </li>
        </ul>
        <t>This item, referred to as KeyStartValid in <xref target="RFC2747"/>, specifies the
calendar date (e.g., 01 June 1970) and 24-hour clock time (e.g.,
18:05) when this RSVP Security Association begins being valid for
operational use.  This value MUST NOT be later than the RSVP
Security Association End value.</t>
        <ul spacing="normal">
          <li>
            <t>RSVP Security Association End Time</t>
          </li>
        </ul>
        <t>This item, referred to as KeyEndValid in <xref target="RFC2747"/>, specifies the
calendar date (e.g., 01 June 1970) and 24-hour clock time (e.g.,
18:05) when this RSVP Security Association stops being valid for
operational use.  This value MUST NOT be earlier than RSVP Security
Association Start value.</t>
        <t>RSVP Cryptographic Authentication has always implicitly required that
all communicating RSVP-capable devices have at least loosely
synchronized clocks.  In some cases, hardware clocks inside a network
device might be sufficient.  However, many network deployments use the
Network Time Protocol (NTP), Precision Time Protocol (PTP), or another
method to keep such clocks sufficiently synchronized.  When possible,
RSVP deployments SHOULD also deploy a distributed time synchronization
protocol and SHOULD enable cryptographic authentication for that time
synchronization protocol.</t>
        <t>Certain key generation mechanisms, such as Kerberos or some public
key schemes, might directly produce ephemeral keys for use with
RSVP.  In that case, the lifetime of the key MAY be defined as part
of that key generation process.</t>
        <t>In normal operation, an RSVP Security Association is never used
outside its lifetime, but see <xref target="KeyMgmtReqts"/> for a degenerative
special case.</t>
        <section anchor="additional-state">
          <name>Additional State</name>
          <t>Implementations will require additional state associated
with, but not part of the Security Association. This information is
not part of a Security Association's configuration.</t>
          <ul spacing="normal">
            <li>
              <t>Initial RSVP Authentication Sequence Number</t>
            </li>
          </ul>
          <t>For an RSVP Security Association which has not yet been used, this
MUST be initialized to an unpredictable (i.e., cryptographically
random) value.<xref target="RFC4086"/><xref target="NIST-ENTROPY"/> Both sender and receiver
either MUST be configured with this initial sequence number (e.g., via
NetConf or the device's operator console) or MUST learn it via the
Integrity Handshake, so that the RSVP Authentication sequence number
windowing scheme can work properly.</t>
          <t>After the RSVP Security Association has been used by the sender, the
sender uses the Latest Sent RSVP Authentication Sequence Number instead.
After the RSVP Security Association has been used by the receiver, the
receiver uses the List of Received RSVP Authentication Sequence
Numbers instead.</t>
          <ul spacing="normal">
            <li>
              <t>Latest Sent RSVP Authentication Sequence Number</t>
            </li>
          </ul>
          <t>This exists only on the RSVP Authentication sending node.  It contains
the most recently transmitted Sequence Number within the RSVP
Integrity Object.</t>
          <ul spacing="normal">
            <li>
              <t>List of Received RSVP Authentication Sequence Numbers</t>
            </li>
          </ul>
          <t>This list exists only on the RSVP Authentication receiving node.  It
contains an ordered list of the most recently seen sequence numbers.
The list MUST support at least 5 sequence numbers and MAY support
more than 5.  This is used as part of the replay
mitigation mechanism.  It is a list rather than a single number
because IP packets might be reordered in transit from a sender to a
receiver.</t>
        </section>
      </section>
      <section anchor="key-management-procedures">
        <name>Key Management Procedures</name>
        <t>To maintain security, it is advisable to change the RSVP Security
Association regularly.  Operational considerations mean it
needs to be possible to switch the RSVP Security Association smoothly
(i.e., without loss of RSVP state or denial of its reservation
service), and also without requiring people to change all the keys
simultaneously.</t>
        <t>Supporting smooth key rollover in an RSVP implementation is essential.
Therefore, RSVP implementations MUST support the storage and use of at
least 2 active RSVP Security Associations concurrently (a) for each
RSVP-enabled interface when using the per-interface message processing
rules and (b) for each RSVP peer when using per-peer message
processing rules.  To best support resilient network operations, the
number of concurrent RSVP Security Associations SHOULD NOT merely be
two (2), but instead SHOULD be a much larger number.</t>
        <t>Since Security Associations are shared between an RSVP sender and one
or more RSVP receivers, there is a region of uncertainty around the
time of key switch-over during which some systems may still be using
the old key and others might have switched to the new RSVP Security
Association.  The size of this uncertainty region relates directly to
the clock synchrony of the systems.  Administrators ought to configure
the overlap between the expiration time of the older RSVP Security
Association and the validity of its replacement RSVP Security
Association to be at least twice the size of this uncertainty
interval.  In many deployments, five (5) minutes of RSVP Security
Association overlap will suffice.  This will allow the sender to make
the RSVP Security Association switch-over at the midpoint of this
interval and be confident that all receivers are now accepting the new
Security Association.  For the duration of the overlap in RSVP
Security Association lifetimes, a receiver must be prepared to
authenticate messages using either Security Association.  The
combination of the sender's IP address and the Key Identifier will
inform the receiver of which Security Association to use for validation.</t>
        <t>During rollover of the RSVP Security Association, it will be necessary
for each receiver to handshake with the sender using the new RSVP
Security Association.  As stated above, an RSVP receiver has the
choice of initiating a handshake during the switchover or postponing
the handshake until the receipt of a message using that key.</t>
      </section>
      <section anchor="KeyMgmtReqts">
        <name>Key Management Requirements</name>
        <t>Requirements for an implementation are as follows:</t>
        <ul spacing="normal">
          <li>
            <t>It is strongly desirable that a hypothetical security breach in one
Internet protocol does not automatically compromise other Internet
protocols.  The Authentication Key of this specification SHOULD NOT
(a) be stored in an insecure manner or (b) transmitted either in
clear-text or using protocols, algorithms, or methods that have
known flaws.</t>
          </li>
          <li>
            <t>An implementation MUST support the storage and use of more than one
Security Association at the same time for the same interface (when
per-interface processing rules apply) or for the same RSVP peer
(when per-peer processing rules apply).  It is impossible to support
smooth key rollover if an implementation does not support at least 2
concurrent RSVP Security Associations of each type.</t>
          </li>
          <li>
            <t>An implementation MUST associate a specific lifetime with each RSVP
Security Association and the corresponding RSVP Key Identifier.</t>
          </li>
          <li>
            <t>An implementation MUST support manual key distribution (e.g., the
privileged user manually typing in all the RSVP Security Association
parameters on the console).  A manually entered RSVP Security
Association lifetime MAY be used forever, although this is neither
recommended nor best practice.</t>
          </li>
          <li>
            <t>Keys that are out of date MAY be automatically deleted by the
implementation ONLY IF a replacement RSVP Security Association is
already configured and active.</t>
          </li>
          <li>
            <t>Manual deletion of active keys (e.g., from an operator console) also
MUST be supported.</t>
          </li>
          <li>
            <t>RSVP Security Association storage MUST persist across a system
restart, warm or cold, to ease operational usage -- EXCEPT that the
RSVP Sequence Number information need not be persistent across a
system restart.</t>
          </li>
        </ul>
      </section>
      <section anchor="pathological-case">
        <name>Pathological Case</name>
        <t>It is possible, although strongly undesirable, that all applicable
RSVP Security Associations have expired.  If this happens, it is
unacceptable to revert to an unauthenticated condition, and it is not
wise to disrupt current reservations.</t>
        <t>Therefore, in that event, the system SHOULD send a "last RSVP Security
Association expiration" notification to the network manager (e.g., via
SYSLOG or SNMP) and also SHOULD treat the RSVP Security Association as
having an infinite lifetime until either (a) the RSVP Security
Association's lifetime is extended, (b) the RSVP Security Association
is deleted by network management, or (c) a new RSVP Security
Association is configured.</t>
      </section>
      <section anchor="kerberos">
        <name>Kerberos</name>
        <t>Use of Kerberos with RSVP Authentication is outside the scope of this
document.  Such use might be specified in the future in some other RFC.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This entire memo describes and specifies an algorithm-independent
authentication mechanism for RSVP that is believed to be secure
against passive attacks and against most active attacks provided the
selected cryptographic transform is secure, the RSVP Security
Association is known only to appropriate devices, and the devices'
RSVP implementations have been appropriately configured.</t>
      <t>The quality of the security provided by this mechanism depends on the
strength of the implemented authentication algorithms, the strength of
the key being used, and the correct implementation of the security
mechanism in all communicating RSVP implementations.  This mechanism
also depends on the RSVP Authentication Keys being kept confidential
by all parties.  If any of these assumptions are incorrect or
operational procedures are insufficiently secure, then no real
security will be provided to the users of this mechanism.</t>
      <t>While the handshake "Integrity Response" message is integrity-
checked, the handshake "Integrity Challenge" message is not.  This was
done intentionally to avoid the case when both peering routers do not
have a starting sequence number for each other's key.  Without this,
both routers will each keep sending handshake "Integrity Challenge"
messages that will be dropped by the other end.  Moreover, requiring
only the response to be integrity-checked eliminates a dependency on
a security association in the opposite direction.</t>
      <t>However, this allows a potential intruder to generate fake handshaking
challenges with a certain challenge cookie.  It could then save the
response and attempt to play it against a receiver in recovery.  If it
were lucky enough to have guessed the challenge cookie used by the
receiver at recovery time, then it could use the saved response.  This
response would be accepted, since it is properly signed, and would
have a smaller sequence number for the sender because it was an old
message.  This opens the receiver up to replays. Still, this seems
difficult to exploit.  It requires not only guessing the challenge
cookie (which is based on a locally known secret, possibly including a
timestamp) in advance, but also being able to masquerade as the
receiver to generate a handshake "Integrity Challenge" with the proper
IP address without being caught.</t>
      <t>Confidentiality and protection against traffic analysis are not
provided by this mechanism.  Mechanisms such as bulk link encryption
(e.g., IEEE 802.1 MAC Security <xref target="IEEE-802.1AE-2018"/> for an Ethernet
link) can be used to provide hop-by-hop confidentiality and some
mitigation against traffic analysis. <xref target="NSA-MSCCP"/></t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to create a new registry named "RSVP Cryptographic
Transforms" within the existing "Resource Reservation Protocol (RSVP)
Parameters" registry group.</t>
      <t>It is helpful for implementers of this specification to know the
current set of defined cryptographic transforms, the corresponding
RFC(s) for each cryptographic transform, and the Implementation Status
for each cryptographic transform.</t>
      <t>Each registry entry will need to contain, the Name of the specific
Cryptographic Transform (e.g., HMAC-MD5), the RFC(s) which specify
that Method (e.g., RFC-2747), and the current Implementation Status of
that Method.  The Name of the Method is limited to printable uppercase
US-ASCII letters, printable US-ASCII numbers, and the character "-".
The "Implementation Status" field of any method MUST be one of the
following values (MUST NOT, SHOULD NOT, MAY, SHOULD, or MUST) which
are to be interpreted as per <xref target="RFC2119"/>.</t>
      <t>The RSVP Cryptographic Transforms registry can be updated by the IETF
Review procedure (which procedure also allows updating via an IETF
Standards Action).  This means a new RFC will be required either to
define a new RSVP cryptographic transform, to update the
Implementation Status of one or more existing RSVP cryptographic
transforms, or to do both.</t>
      <t>There is one initial value in the new registry:</t>
      <artwork><![CDATA[
 Name               Reference(s)    Implementation Status
 ---------          ------------    ---------------------
 HMAC-MD5           RFC 2747             SHOULD
]]></artwork>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document's predecessor, <xref target="RFC2747"/>, was authored by Fred Baker,
Bob Lindell, and Mohit Talwar.  That was derived directly from similar
work done for OSPF version 2 and RIP Version 2, jointly by Ran
Atkinson and Fred Baker.  Significant editing of the text in
<xref target="RFC2747"/> was done by Bob Braden, resulting in increased clarity.
Significant comments on <xref target="RFC2747"/> were submitted by Steve Bellovin.
Matt Crawford and Dan Harkins also helped revise draft versions of
<xref target="RFC2747"/>.</t>
      <t>In April 2001, <xref target="RFC3097"/> updated the RSVP message type value used
for the RSVP Integrity Object to resolve an issue caused by a
conflicting assignment.</t>
    </section>
    <section numbered="false" anchor="appendix-a-changes-since-rfc-2747">
      <name>Appendix A: Changes since RFC 2747</name>
      <t>This document has made the following substantive changes since
<xref target="RFC2747"/>:</t>
      <ul spacing="normal">
        <li>
          <t>This specification is algorithm-independent and cryptographic-mode
independent.  So adding support for a new cryptographic algorithm or
cryptographic mode will not require changes to this protocol
specification.  Those algorithm-dependent and mode-dependent
specifications will be in separate RFCs, which can be standardized,
recommended, and/or deprecated over time without changes to this
RFC or protocol specification.</t>
        </li>
        <li>
          <t>The Authentication Data field of the INTEGRITY object now supports
an increased length so that other algorithms can be supported. The
reserved field has been repurposed to indicate any increased length
of the Authentication Data field. This allows the authentication
mechanism to support other algorithms and modes robustly.</t>
        </li>
        <li>
          <t>Discussions of Security Associations have been made RSVP-specific
and moved to <xref target="SecurityAssn"/>.</t>
        </li>
        <li>
          <t>Peer-specific Security Associations are explicitly supported.</t>
        </li>
        <li>
          <t>Implementation of the Integrity Handshake is now required.</t>
        </li>
        <li>
          <t>The discussion of Key Management has been updated.</t>
        </li>
        <li>
          <t>The discussion of Kerberos has been greatly reduced.</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/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="RFC2205" target="https://www.rfc-editor.org/info/rfc2205" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2205.xml">
          <front>
            <title>Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <author fullname="L. Zhang" initials="L." surname="Zhang"/>
            <author fullname="S. Berson" initials="S." surname="Berson"/>
            <author fullname="S. Herzog" initials="S." surname="Herzog"/>
            <author fullname="S. Jamin" initials="S." surname="Jamin"/>
            <date month="September" year="1997"/>
            <abstract>
              <t>This memo describes version 1 of RSVP, a resource reservation setup protocol designed for an integrated services Internet. RSVP provides receiver-initiated setup of resource reservations for multicast or unicast data flows, with good scaling and robustness properties. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2205"/>
          <seriesInfo name="DOI" value="10.17487/RFC2205"/>
        </reference>
        <reference anchor="RFC3097" target="https://www.rfc-editor.org/info/rfc3097" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3097.xml">
          <front>
            <title>RSVP Cryptographic Authentication -- Updated Message Type Value</title>
            <author fullname="R. Braden" initials="R." surname="Braden"/>
            <author fullname="L. Zhang" initials="L." surname="Zhang"/>
            <date month="April" year="2001"/>
            <abstract>
              <t>This memo resolves a duplication in the assignment of RSVP Message Types, by changing the Message Types assigned by RFC 2747 to Challenge and Integrity Response messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3097"/>
          <seriesInfo name="DOI" value="10.17487/RFC3097"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2104" target="https://www.rfc-editor.org/info/rfc2104" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
        <reference anchor="RFC2408" target="https://www.rfc-editor.org/info/rfc2408" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2408.xml">
          <front>
            <title>Internet Security Association and Key Management Protocol (ISAKMP)</title>
            <author fullname="D. Maughan" initials="D." surname="Maughan"/>
            <author fullname="M. Schertler" initials="M." surname="Schertler"/>
            <author fullname="M. Schneider" initials="M." surname="Schneider"/>
            <author fullname="J. Turner" initials="J." surname="Turner"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This memo describes a protocol utilizing security concepts necessary for establishing Security Associations (SA) and cryptographic keys in an Internet environment. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2408"/>
          <seriesInfo name="DOI" value="10.17487/RFC2408"/>
        </reference>
        <reference anchor="RFC2747" target="https://www.rfc-editor.org/info/rfc2747" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2747.xml">
          <front>
            <title>RSVP Cryptographic Authentication</title>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="B. Lindell" initials="B." surname="Lindell"/>
            <author fullname="M. Talwar" initials="M." surname="Talwar"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document describes the format and use of RSVP's INTEGRITY object to provide hop-by-hop integrity and authentication of RSVP messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2747"/>
          <seriesInfo name="DOI" value="10.17487/RFC2747"/>
        </reference>
        <reference anchor="RFC2752" target="https://www.rfc-editor.org/info/rfc2752" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2752.xml">
          <front>
            <title>Identity Representation for RSVP</title>
            <author fullname="S. Yadav" initials="S." surname="Yadav"/>
            <author fullname="R. Yavatkar" initials="R." surname="Yavatkar"/>
            <author fullname="R. Pabbati" initials="R." surname="Pabbati"/>
            <author fullname="P. Ford" initials="P." surname="Ford"/>
            <author fullname="T. Moore" initials="T." surname="Moore"/>
            <author fullname="S. Herzog" initials="S." surname="Herzog"/>
            <date month="January" year="2000"/>
            <abstract>
              <t>This document describes the representation of identity information in POLICY_DATA object for supporting policy based admission control in RSVP. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2752"/>
          <seriesInfo name="DOI" value="10.17487/RFC2752"/>
        </reference>
        <reference anchor="RFC4086" target="https://www.rfc-editor.org/info/rfc4086" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4086.xml">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author fullname="D. Mills" initials="D." surname="Mills"/>
            <author fullname="J. Martin" initials="J." role="editor" surname="Martin"/>
            <author fullname="J. Burbank" initials="J." surname="Burbank"/>
            <author fullname="W. Kasch" initials="W." surname="Kasch"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet. This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family. NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs. It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required. It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
        <reference anchor="RFC6151" target="https://www.rfc-editor.org/info/rfc6151" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6151.xml">
          <front>
            <title>Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="L. Chen" initials="L." surname="Chen"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This document updates the security considerations for the MD5 message digest algorithm. It also updates the security considerations for HMAC-MD5. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6151"/>
          <seriesInfo name="DOI" value="10.17487/RFC6151"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8937" target="https://www.rfc-editor.org/info/rfc8937" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8937.xml">
          <front>
            <title>Randomness Improvements for Security Protocols</title>
            <author fullname="C. Cremers" initials="C." surname="Cremers"/>
            <author fullname="L. Garratt" initials="L." surname="Garratt"/>
            <author fullname="S. Smyshlyaev" initials="S." surname="Smyshlyaev"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>Randomness is a crucial ingredient for Transport Layer Security (TLS) and related security protocols. Weak or predictable "cryptographically secure" pseudorandom number generators (CSPRNGs) can be abused or exploited for malicious purposes. An initial entropy source that seeds a CSPRNG might be weak or broken as well, which can also lead to critical and systemic security problems. This document describes a way for security protocol implementations to augment their CSPRNGs using long-term private keys. This improves randomness from broken or otherwise subverted CSPRNGs.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8937"/>
          <seriesInfo name="DOI" value="10.17487/RFC8937"/>
        </reference>
        <reference anchor="RFC9293" target="https://www.rfc-editor.org/info/rfc9293" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9293.xml">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="DS-1981">
          <front>
            <title>Timestamps in Key Distribution Protocols</title>
            <author initials="D." surname="Denning" fullname="Dorothy Denning">
              <organization>ACM</organization>
            </author>
            <author initials="G." surname="Sacco" fullname="Giovanni Sacco">
              <organization>ACM</organization>
            </author>
            <date year="1981" month="August"/>
          </front>
          <annotation>Communications of the ACM, Vol. 24, No. 8</annotation>
        </reference>
        <reference anchor="G.8265.1">
          <front>
            <title>Precision Time Protocol Telecom Profile for Frequency Synchronization</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2014" month="July"/>
          </front>
          <seriesInfo name="ITU-T" value="Recommendation G.8265.1"/>
        </reference>
        <reference anchor="IEEE-802.1AE-2018" target="https://standards.ieee.org/IEEE/802.1AE/7154/">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks - Media Access Control (MAC) Security</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers (IEEE)</organization>
            </author>
            <date year="2018" month="December"/>
          </front>
          <annotation>IEEE Standard 802.1AE</annotation>
        </reference>
        <reference anchor="IEEE-1588-2019" target="https://ieeexplore.ieee.org/document/9120376">
          <front>
            <title>IEEE Standard for Precision Clock Synchronization Protocol for Networked Measurement and Control Systems (PTP v2.1)</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers (IEEE)</organization>
            </author>
            <date year="2020" month="June"/>
          </front>
          <annotation>IEEE Standard 1588</annotation>
        </reference>
        <reference anchor="NIST-ENTROPY" target="https://csrc.nist.gov/pubs/sp/800/90/b/final">
          <front>
            <title>Recommendation for the Entropy Sources Used for Random Bit Generation</title>
            <author initials="M." surname="Turan" fullname="M. Turan">
              <organization/>
            </author>
            <date year="2018" month="January"/>
          </front>
          <annotation>Special Publication 800-90B</annotation>
        </reference>
        <reference anchor="NIST-GMAC" target="http://csrc.nist.gov/Projects/message-authentication-codes">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois Counter Mode (GCM) and GMAC</title>
            <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
              <organization/>
            </author>
            <date year="2007" month="November"/>
          </front>
          <annotation>Special Publication 800-38D</annotation>
        </reference>
        <reference anchor="NIST-HMAC" target="http://csrc.nist.gov/Projects/message-authentication-codes">
          <front>
            <title>Keyed-Hash Message Authentication Code (HMAC)</title>
            <author>
              <organization>(US) National Institute of Standards and Technology, Gaithersburg, MD, USA</organization>
            </author>
            <date year="2008" month="July"/>
          </front>
          <annotation>(US) Federal Information Processing Standard 198-1 (FIPS-198-1)</annotation>
        </reference>
        <reference anchor="NIST-KMAC" target="http://csrc.nist.gov/Projects/message-authentication-codes">
          <front>
            <title>SHA-3 Derived Functions - cSHAKE, KMAC, TupleHash, and ParallelHash</title>
            <author initials="J." surname="Kelsey" fullname="John Kelsey">
              <organization/>
            </author>
            <author initials="S.-J." surname="Chang" fullname="Shu-Jen Chang">
              <organization/>
            </author>
            <author initials="R." surname="Perlner" fullname="Ray Perlner">
              <organization>(US) National Institute of Standards &amp; Technology, Gaithersburg, MD, USA</organization>
            </author>
            <date year="2016" month="December"/>
          </front>
          <annotation>Special Publication 800-185</annotation>
        </reference>
        <reference anchor="NIST-RMF" target="http://csrc.nist.gov/Projects/risk-management">
          <front>
            <title>Risk Management Framework for Information Systems and Organizations</title>
            <author initials="" surname="Joint Task Force">
              <organization>(US) National Institute for Standards and Technology, Gaithersburg, MD, USA</organization>
            </author>
            <date year="2018" month="December"/>
          </front>
          <annotation>Special Publication 800-37, Revision 2</annotation>
        </reference>
        <reference anchor="NSA-MSCCP" target="https://www.nsa.gov/Resources/Commercial-Solutions-for-Classified-Program/Capability-Packages/">
          <front>
            <title>Multi-Site Connectivity Capability Package</title>
            <author>
              <organization>(US) National Security Agency, Ft. Meade, MD, USA</organization>
            </author>
            <date year="2018" month="June"/>
          </front>
          <annotation>Version 1.1</annotation>
        </reference>
        <reference anchor="WAGNER" target="https://csrc.nist.gov/csrc/media/Projects/crypto-publication-review-project/documents/decision-proposal-comments/fips198-1-decision-proposal-comments-2022.pdf">
          <front>
            <title>Comments on Decision Proposal to convert FIPS-198-1 to a NIST Special Publication</title>
            <author initials="R." surname="Wagner" fullname="Ryan Wagner">
              <organization>Google Inc.</organization>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
tecRYN/LmjUI0whrcPRo3qbzuYJcEKgqs3GbL7IxpHoj7tIsKVdQ0yPwiFIw
EZgsqhqihI6vSOTgvny51Fc/8pvN168mX2+yYilkb2shSGdkj9ZJDn0jv1Zw
LYsUkqmL5yzdeEntzR0JDn0uSduWFNMmoqNwHLOKXiwrr+sA1a5lrhR8Z0SH
hRFtEpa2bXpvyD0tsrT+r0Rad9ktgCBrjyiJIUk0nWe3wnMmzN2VhUxIjYUG
SivPfvaf8KGTBNQYRQ4JJtC9q1ZENGEI5tYZqZs15FJv7fFCGDuy2RAvYY2i
NsuJMELUDVJm9GBoR6QzBK7HWJ9fs/SdMrq0N6TutZ1RG6jQROOiPK6xgHhp
4GLMjwIKxTqmsogOXbOaZxppspvtz/dhIj0bJfBiHD17Lr882RNWD/gOjrFg
j5G8/p69G+/4vz+wYxzvGmo2qyW2TxS5aiHdsls1jDCMkAgxGzorkXUVjNse
L/ILFlQdXEzDY5G6RlpMxuQMswUejiwwyp7bK+grGOV4k66uJ6IvAchejE2y
aUqbZSFB+mPFrmbSAoCDbJM0EEYbd0OoXbYrvIERJvB0Zspw1bSFRpGln8HB
WGG6SW/7nPq6SO8aQa1mWhExEey/fNEI19evjJSIjJEOfJmRXkgityDyNERs
tyBIE03af76o5tgMK0kEVcgD2jteh+VExmJEfeDdiywtDd/7W2Bsala5UrHo
5sQ0I1SFbGXHB6kI/kmCSgH1NV1izjpP1XvSEBx5iG3IRAh6zESW/ZyS1M54
sYVgC1BatHtSkWoxPJS8Dw+eEiS/fPHOVrEtSNQLS9HVn2X15yIbv04Xc3hH
b+B9vfauQaUckNqhkt6e8MAfsuk0/SwjbPHVCp31luf9k7wkOQro+gZVnqDM
7hDyZWudHZedpe3TMOJ/oDHwkOADsWLYPCayMc67k7PtSwRD2FMMYLYLYA+e
SPftcOaMLYt8ftMq5w5mT6bsZN+2/Y63PcClq5JoKDBVzwvSDbzAtGBvKgLF
vbSTge6hwgcLawOCMQb2v2VU542d/UhHMMnATQr2mTHPhBswS2ei/rDQ7HAf
sU0geOgck9Pjj8dk/s5hut77E94x3aabanEFrROa245pbXg4+5leNu2HpJmO
NUeyxL6HZlYChxpVtFi0LOCgJI5HrKRaCrMSvzYxTlI+YLaKAt/ZvUG5EYlO
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
7y6FUr4tzh4LAenbqX3LwdmFY5syvUgbAlidzjLrYxB7/zw6pw8yM+8elLOK
20NavE5mpgMgPQrJTZG80LogKwdlUanITHoEQEtfp8V9k5tHuXWbBTQ30bIU
KZ8hNVkVn0l7LVGcyqoKtFJVtnHHe/Li4Gj/kKzZk6Cy6e3v/M3xG1wA/8Ly
h8rkDTgWnGgYdK9TiRR1JLqpluPJ/Zj+15GQtmNojHFQetO291F6e3k8Prs8
OTlH5usjSUnuK5X8IfcnRTWP9tOWMm3VrGtLYkZhwizZ2ZoJvRNnInC6AM5w
h+Sg3Op2EcynKG0PQ+65c+/Y2AmTzkmWLPfNsrzJiiWa7AGiQW2qN/W9Q9pf
KWENZwYcavThidCcsw1KqOpbHeeQIxV9t4ninBveDWpYNwGM08JWjXvofSuA
9jCgAWpVTiwBWtMpZJUf0xDGMgC4TTnbisFIjR+fvX62p0q2bE1DhXGP6TPJ
oNTX6LkxEnT3Il1TATu4WVFU/TDqM44XrONziom/+oTU71IM+BXJ/Jr7avx4
OT6+PDk9TcgobDlGGp7y32neR7S6mxReKTQQGe/saxeboZXuhAt4pE6el2WO
Hb5cVhrLhgIzTjlrkl1L/h1FPu6RXN8qH4ws40shzEUYQR2pl3Wm19AtfW/F
w8OXfP3WlanTGw60CXhiHEUv4rLSeJSgX5DxQ7Qc7h1XsRE+YGav6gqPwDvM
Uy5mwBCXWrXaJMfMcfeCKZBCKRcz/O2JV9h8arJ6C1AcbCWw3mTfSEOIXi3t
PhS3Cbk6t/56frM+sospu2JhRVov316tThyprPGJiL4Uz4esDMzWeomRuPtz
kfGVRdMMtJT0m10b/Se+wVZ4M2671f/b/zhPtfGcBHFQZGchgnbSuIk4//EU
bLDIZnMpwBdXgjktfse9kmYc2KtIce1k4bPaQ4acXW3xFv//nuR6PXLfV5Pk
A/wLUG7kgrIb0pSukKUujQxT0ZvQgRv6nI/yS/MJone0c5QccMAenBHF76il
5vTuIx72gpSDn+yTUfJXRJeRuUH2VVq645YU5kY9+mF5cMWEquEkg5svdFTl
sBE3/A19THmlWAYNjK19DzWnHOnFCuqh14sLOEM+rblTajyNeMXlMufO2Hzb
w2qicSya4bIlMyH5PkNMJSfD4YwUdKLx9I6AIG7q10R571OU+zdCnZB+rBXf
wjk5I4nfGqSa0JCRJ5Qk6WPikEVydHBwqKf65OAlVuOv6jPe0mlBJpjPidKd
vjD9nEJtTFIVt9IYmCz0TC7/lRsquFlEkU8lKttAF9f+HoSRSy4y+jk5fgWt
kO0c0eANn92XV6tS2Hk2+9pDWY4AL1L1xQWOjHtGiE3JDRHxsDFsiIB/r7dC
d7QFNtcG3GZ8GB1uMkapGWIU4SGgW2X9+uMuIMLrNhS/wXmR9L7kMjYR9pU3
B/xu2CMhJo6UYie96mqQHdqwhq10N4Lhw0f91xvPvTmDELGmls+E2KZIDBUy
1sMACdujbkCIecFjztLDtXFpuPPQonN8D1t3Q044WVVH3VB6VeO//5VX50ED
1BPhoFBMxFoBaCnWekOp97r53fq4DqdzJBoGQLCMp/a5yWTyrWqys0SN8b2D
oVH0J6VRhgsOw5Y0s1+lMh7t+gdpiLj3hse7tW3YwZOyUE1WTctpjb9PXstV
RBZ73RJ14c0xwXHqoNcyEx1aXcVfvnRK97/yLOjGHqoaNyfMwQzWqqY4jvb7
vhi1cx5opMSusbvQZc2QZuY3Ks7+TsJGSCwXtrjxLQ0R+Oe5fZfvR0Hv/R8d
B5JVC9oAAA==

-->

</rfc>
