<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.14 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2205 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2205.xml">
<!ENTITY RFC3097 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3097.xml">
<!ENTITY RFC5511 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5511.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC2104 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
<!ENTITY RFC2408 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2408.xml">
<!ENTITY RFC2747 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2747.xml">
<!ENTITY RFC2752 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2752.xml">
<!ENTITY RFC3209 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3209.xml">
<!ENTITY RFC4086 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4086.xml">
<!ENTITY RFC5905 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml">
<!ENTITY RFC6151 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6151.xml">
<!ENTITY RFC8937 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8937.xml">
<!ENTITY RFC9293 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9293.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-teas-rsvp-auth-v2-02" category="std" consensus="true" submissionType="IETF" obsoletes="2747 3097">
  <front>
    <title abbrev="RSVP Crypto V2">RSVP Cryptographic Authentication, Version 2</title>

    <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>Hewlett Packard Enterprise</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>

    <date year="2026" month="September" day="27"/>

    
    <workgroup>TEAS Working Group</workgroup>
    

    <abstract>


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


<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 <xref target="RFC3209"/> 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>

<t>Message formats in this document use Routing Backus-Naur
   Form (RBNF) as defined in <xref target="RFC5511"/>.</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.</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>

<figure><artwork><![CDATA[
  Authentication Information INTEGRITY Object: Class = 4, C-Type = 1
]]></artwork></figure>

<figure><artwork><![CDATA[
       +-------------+-------------+-------------+-------------+
       |    Flags    |     AAL     |                           |
       +-------------+-------------+                           +
       |                    Key Identifier                     |
       +-------------+-------------+-------------+-------------+
       |                    Sequence Number                    |
       |                                                       |
       +-------------+-------------+-------------+-------------+
       |                                                       |
       +                                                       +
       |                                                       |
       +                  Authentication Data                  |
       |                                                       |
       +                                                       +
       |                                                       |
       +-------------+-------------+-------------+-------------+
]]></artwork></figure>

<t><list style="symbols">
  <t>Flags: An 8-bit field with the following format:</t>
</list></t>

<figure><artwork><![CDATA[
                                      Flags

                          0   1   2   3   4   5   6   7
                        +---+---+---+---+---+---+---+---+
                        | H |                           |
                        | F |             0             |
                        +---+---+---+---+---+---+---+---+
]]></artwork></figure>
<t>Currently, only one flag (HF) is defined.  The remaining flags
 are reserved for future use and MUST be set to 0.</t>

<t><list style="symbols">
  <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>
  <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>
  <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>
  <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>
  <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>
</list></t>

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

<t><list style="numbers">
  <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>
  <t>The INTEGRITY object is inserted in the appropriate place, and
its location in the message is remembered for later use.</t>
  <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>
  <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>
  <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>
  <t>The Authentication Data field is set to zero.</t>
  <t>The Key Identifier is placed into the INTEGRITY object.</t>
  <t>Authentication Data for the message is computed over the
message, using the Authentication Algorithm and Mode in
conjunction with the Authentication Key.</t>
  <t>The computed Authentication Data is written into the Authentication
Data field of the INTEGRITY object.</t>
</list></t>

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

<t><list style="numbers">
  <t>The RSVP checksum field is saved and the field is subsequently
set to zero.</t>
  <t>The Authentication Data field of the INTEGRITY object is
saved and the field is subsequently set to zero.</t>
  <t>The Key Identifier field and the sending system address determine
the precise Security Association to use for the received message.</t>
</list></t>

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

<t><list style="numbers">
  <t>A new Authentication Data value is calculated using the
indicated Cryptographic Algorithm, Cryptographic Mode, and
and Authentication Key.</t>
  <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>
  <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>
</list></t>

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

<t><list style="numbers">
  <t>An "Integrity Response" message is formed using the Challenge
object received in the challenge message.</t>
  <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>
</list></t>

</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 <xref target="NIST-ENTROPY"/>), and a timestamp
to provide uniqueness (also 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>

<figure><artwork><![CDATA[
  <Integrity Challenge message> ::= <Common Header> <CHALLENGE>
]]></artwork></figure>

<t>The CHALLENGE object has the following format:</t>

<t>CHALLENGE Object: Class = 64, C-Type = 1</t>

<figure><artwork><![CDATA[
    +-------------+-------------+-------------+-------------+
    |        0 (Reserved)       |                           |
    +-------------+-------------+                           +
    |                    Key Identifier                     |
    +-------------+-------------+-------------+-------------+
    |                    Challenge Cookie                   |
    |                                                       |
    +-------------+-------------+-------------+-------------+
]]></artwork></figure>

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

<figure><artwork><![CDATA[
    <Integrity Response message> ::= <Common Header> <INTEGRITY>
                         <CHALLENGE>
]]></artwork></figure>

<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>Different operators have different approaches and methods for network
device (e.g., switch, router) configuration management.  Whichever
configuration management method an operator uses for network device
configuration also can be used to configure RSVP Authentication.  It
is beyond the scope of this document to mandate that an operator use
a particular method for network device configuration management.</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>

<t><list style="symbols">
  <t>RSVP Key Identifier (48 bits)</t>
</list></t>

<t>This unsigned 48-bit item is the Key Identifier used on the wire in
the RSVP INTEGRITY object.</t>

<t><list style="symbols">
  <t>RSVP Message Processing Mode</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Sending Interface</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Receiving Interface</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Sending IP Address</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Receiving IP Address</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Cryptographic Transform</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Authentication Key</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Security Association Start Time</t>
</list></t>

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

<t><list style="symbols">
  <t>RSVP Security Association End Time</t>
</list></t>

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

<t><list style="symbols">
  <t>Initial RSVP Authentication Sequence Number</t>
</list></t>

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

<t><list style="symbols">
  <t>Latest Sent RSVP Authentication Sequence Number</t>
</list></t>

<t>This exists only on the RSVP Authentication sending node.  It contains
the most recently transmitted Sequence Number within the RSVP
Integrity Object.</t>

<t><list style="symbols">
  <t>List of Received RSVP Authentication Sequence Numbers</t>
</list></t>

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

<t><list style="symbols">
  <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>
  <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>
  <t>An implementation MUST associate a specific lifetime with each RSVP
Security Association and the corresponding RSVP Key Identifier.</t>
  <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>
  <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>
  <t>Manual deletion of active keys (e.g., from an operator console) also
MUST be supported.</t>
  <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>
</list></t>

</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 a 
disruption to current reservations could cause a broader network fault.</t>

<t>It is strongly recommended that network operators prevent this
situation from occuring. Rekeying prior to sequence number rollover is
an example of a way for network operators to avoid this situation.</t>

<t>Therefore, in that event, to keep the network operational 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 IETF Stream 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>

<figure><artwork><![CDATA[
                        Implementation
Name      Reference(s)      Status      Notes
--------- ------------  --------------  ------------------------
HMAC-MD5  RFC 2747          SHOULD      Legacy, to be deprecated
]]></artwork></figure>

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

<t>The authors would like to acknowledge helpful suggestions from Adrian
Farrel and Toerless Eckert.</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>

<t><list style="symbols">
  <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>
  <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>
  <t>Discussions of Security Associations have been made RSVP-specific
and moved to <xref target="SecurityAssn"/>.</t>
  <t>Peer-specific Security Associations are explicitly supported.</t>
  <t>Implementation of the Integrity Handshake is now required.</t>
  <t>The discussion of Key Management has been updated.</t>
  <t>The discussion of Kerberos has been greatly reduced.</t>
</list></t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC2119;
&RFC2205;
&RFC3097;
&RFC5511;
&RFC8174;


    </references>

    <references title='Informative References'>

&RFC2104;
&RFC2408;
&RFC2747;
&RFC2752;
&RFC3209;
&RFC4086;
&RFC5905;
&RFC6151;
&RFC8937;
&RFC9293;
<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" >
  <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>
  <format type="web" target="https://standards.ieee.org/IEEE/802.1AE/7154/"/>
<annotation>IEEE Standard 802.1AE</annotation></reference>
<reference anchor="IEEE-1588-2019" >
  <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>
  <format type="web" target="https://ieeexplore.ieee.org/document/9120376"/>
<annotation>IEEE Standard 1588</annotation></reference>
<reference anchor="NIST-ENTROPY" >
  <front>
    <title>Recommendation for the Entropy Sources Used for Random Bit Generation</title>
    <author initials="M." surname="Turan" fullname="M. Turan">
      <organization></organization>
    </author>
    <date year="2018" month="January"/>
  </front>
  <format type="web" target="https://csrc.nist.gov/pubs/sp/800/90/b/final"/>
<annotation>Special Publication 800-90B</annotation></reference>
<reference anchor="NIST-GMAC" >
  <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></organization>
    </author>
    <date year="2007" month="November"/>
  </front>
  <format type="web" target="http://csrc.nist.gov/Projects/message-authentication-codes"/>
<annotation>Special Publication 800-38D</annotation></reference>
<reference anchor="NIST-HMAC" >
  <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>
  <format type="web" target="http://csrc.nist.gov/Projects/message-authentication-codes"/>
<annotation>(US) Federal Information Processing Standard 198-1 (FIPS-198-1)</annotation></reference>
<reference anchor="NIST-KMAC" >
  <front>
    <title>SHA-3 Derived Functions - cSHAKE, KMAC, TupleHash, and ParallelHash</title>
    <author initials="J." surname="Kelsey" fullname="John Kelsey">
      <organization></organization>
    </author>
    <author initials="S.-J." surname="Chang" fullname="Shu-Jen Chang">
      <organization></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>
  <format type="web" target="http://csrc.nist.gov/Projects/message-authentication-codes"/>
<annotation>Special Publication 800-185</annotation></reference>
<reference anchor="NIST-RMF" >
  <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>
  <format type="web" target="http://csrc.nist.gov/Projects/risk-management"/>
<annotation>Special Publication 800-37, Revision 2</annotation></reference>
<reference anchor="NSA-MSCCP" >
  <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>
  <format type="web" target="https://www.nsa.gov/Resources/Commercial-Solutions-for-Classified-Program/Capability-Packages/"/>
<annotation>Version 1.1</annotation></reference>
<reference anchor="WAGNER" >
  <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>
  <format type="web" target="https://csrc.nist.gov/csrc/media/Projects/crypto-publication-review-project/documents/decision-proposal-comments/fips198-1-decision-proposal-comments-2022.pdf"/>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
7/0fWwFxX8XZAAA=

-->

</rfc>

