RFC 5327 EXPERIMENTAL SECURITY · DEEP SPACE · AUTHENTICATION

LTP Security: Licklider Transmission Protocol - Security Extensions

Authentication and integrity for Licklider Transmission Protocol used in deep-space communication.

On rfc-editor.org ↗
PUBLISHED
September 2008
AUTHORS
S. Farrell, M. Ramadas, S. Burleigh
STREAM
IRTF
LTP-AUTH HEADER EXTENSION TAG
0x00
COOKIE EXTENSION TAG
0x01
HMAC-SHA1-80 OUTPUT SIZE
10 octets
CIPHERSUITE SPACE
0-255 (256 possible values)
DOI
10.17487/RFC5327

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         S. Farrell
Request for Comments: 5327                        Trinity College Dublin
Category: Experimental                                        M. Ramadas
                                                            ISTRAC, ISRO
                                                             S. Burleigh
                                          NASA/Jet Propulsion Laboratory
                                                          September 2008


         Licklider Transmission Protocol - Security Extensions

Status of This Memo

   This memo defines an Experimental Protocol for the Internet
   community.  It does not specify an Internet standard of any kind.
   Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

IESG Note

   This RFC is not a candidate for any level of Internet Standard.  It
   represents the consensus of the Delay Tolerant Networking (DTN)
   Research Group of the Internet Research Task Force (IRTF).  It may be
   considered for standardization by the IETF in the future, but the
   IETF disclaims any knowledge of the fitness of this RFC for any
   purpose and in particular notes that the decision to publish is not
   based on IETF review for such things as security, congestion control,
   or inappropriate interaction with deployed protocols.  See RFC 3932
   for more information.

Abstract

   The Licklider Transmission Protocol (LTP) is intended to serve as a
   reliable convergence layer over single-hop deep-space radio frequency
   (RF) links.  LTP does Automatic Repeat reQuest (ARQ) of data
   transmissions by soliciting selective-acknowledgment reception
   reports.  It is stateful and has no negotiation or handshakes.  This
   document describes security extensions to LTP, and is part of a
   series of related documents describing LTP.

   This document is a product of the Delay Tolerant Networking Research
   Group and has been reviewed by that group.  No objections to its
   publication as an RFC were raised.

Table of Contents

   1. Introduction ....................................................2
   2. Security Extensions .............................................2
      2.1. LTP Authentication .........................................3
      2.2. A Cookie Mechanism .........................................6
   3. Security Considerations .........................................7
   4. IANA Considerations .............................................7
   5. Acknowledgments .................................................8
   6. References ......................................................8
      6.1. Normative References .......................................8
      6.2. Informative References .....................................9

1.  Introduction

   This document describes extensions to the base LTP protocol
   [LTPSPEC].  The background to LTP is described in the "motivation"
   document [LTPMOTIVE].  All the extensions defined in this document
   provide additional security features for LTP.

   LTP is designed to provide retransmission-based reliability over
   links characterized by extremely long message round-trip times (RTTs)
   and/or frequent interruptions in connectivity.  Since communication
   across interplanetary space is the most prominent example of this
   sort of environment, LTP is principally aimed at supporting "long-
   haul" reliable transmission in interplanetary space, but has
   applications in other environments as well.

   This document describes security extensions to LTP, and is part of a
   series of related documents describing LTP.  Other documents in this
   series cover the motivation for LTP and the main protocol
   specification.  We recommend reading all the documents in the series
   before writing code based on this document.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [B97].

2.  Security Extensions

   The syntactical layout of the extensions are defined in Section 3.1.4
   of the base protocol specification [LTPSPEC].

   Implementers should note that the LTP extension mechanism allows for
   multiple occurrences of any extension tag, in both (or either) the
   header or trailer.  For example, the LTP authentication mechanism
   defined below requires both header and trailer extensions, which both
   use the same tag.

   This document defines new security extensions for LTP but does not
   address key management since key management in Delay-Tolerant
   Networking (DTN) remains an open research question.

   If LTP were deployed layered on top of UDP, it might be possible to
   use IPsec or other existing security mechanisms.  However, in general
   DTN, IPsec's key exchange (IKE) cannot work (e.g., where link delays
   are measured in minutes).

2.1.  LTP Authentication

   The LTP authentication mechanism provides cryptographic
   authentication of the segment.

   Implementations MAY support this extension field.  If they do not
   support this header, then they MUST ignore it.

   The LTP authentication extension field has the extension tag value
   0x00.

   LTP authentication requires three new fields, the first two of which
   are carried as the value of the Extensions field of the LTP segment
   header, and the third of which is carried in the segment trailer.

   The fields that are carried in the header extensions field are
   catenated together to form the extension value (with the leftmost
   octet representing the ciphersuite and the remaining octets the
   KeyID).  The KeyID field is optional, and is determined to be absent
   if the extension value consists of a single octet.

      Ciphersuite: an 8-bit integer value with values defined below.

      KeyID: An optional key identifier, the interpretation of which is
      out of scope for this specification (that is, implementers MUST
      treat these KeyID fields as raw octets, even if they contained an
      ASN.1 DER encoding of an X.509 IssuerSerial construct [PKIXPROF],
      for example).

   The LTP-auth header extension MUST be present in the first segment
   from any LTP session that uses LTP authentication, but MAY be omitted
   from subsequent segments in that session.  To guard against
   additional problems arising from lost segments, implementations
   SHOULD, where bandwidth allows, include these fields in a number of
   segments in the LTP session.  If the first segment (or any part
   thereof) is retransmitted, then the LTP-auth header extension MUST be
   included in the retransmission.

   The field carried as a trailer extension is the AuthVal field.  It
   contains the authentication value, which is either a message
   authentication code (MAC) or a digital signature.  This is itself a
   structured field whose length and formatting depend on the
   ciphersuite.

   If for some reason the sender includes two instances of LTP-auth
   headers, then there is a potential problem for the receiver in that
   presumably at least one of the AuthVal fields will not verify.  There
   are very few situations where it would make sense to include more
   than one LTP-auth extension in a single segment, since LTP is a peer-
   to-peer protocol.  If however, keys are being upgraded, then the
   sender might protect the segment with both the new and old keys.  In
   such cases, the receiver MUST search and can consider the LTP
   authentication valid so long as one AuthVal is correct.

   For all ciphersuites, the input to the calculation is the entire
   encoded segment including the AuthVal extension tag and length, but
   not of course, including the AuthVal value.

   We define three ciphersuites in this specification.  Our approach is
   to follow the precedent set by TLS [TLS], and to "hardcode" all
   algorithm options in a single ciphersuite number.  This means that
   there are 256 potential ciphersuites supported by this version of
   LTP-auth.  Since this is a limited space, IANA has established a
   registry for LTP Ciphersuites as described in the IANA Considerations
   section below.  Current ciphersuite assignments are:

      Ciphersuite                        Value
      -----------                        -----
      HMAC-SHA1-80                          0
      RSA-SHA256                            1
      Unassigned                          2-127
      Reserved                           128-191
      Private/Experimental Use           192-254
      NULL                                 255

   1. HMAC-SHA1-80 Ciphersuite

      The HMAC-SHA1-80 ciphersuite involves generating a MAC over the
      LTP segment and appending the resulting AuthVal field to the end
      of the segment.  There is only one MACing algorithm defined for
      this, which is HMAC-SHA1-80 [HMAC].  The AuthVal field in this
      case contains just the output of the HMAC-SHA1-80 algorithm, which
      is a fixed-width field (10 octets).

   2. RSA-SHA256 Ciphersuite

      The RSA-SHA256 ciphersuite involves generating a digital signature
      of the LTP segment and appending the resulting AuthVal field to
      the end of the segment.  There is only one signature algorithm
      currently defined for this, which is RSA with SHA256 as defined in
      [RSA], Section 8.2.  The AuthVal field in this case is simply the
      signature value, where the signature value occupies the minimum
      number of octets, e.g., 128 octets for a 1024-bit signature).

   3. NULL Ciphersuite

      The NULL ciphersuite is basically the same as the HMAC-SHA1-80
      ciphersuite, but with a hardcoded key.  This ciphersuite
      effectively provides only a strong checksum without
      authentication, and thus is subject to active attacks and is the
      equivalent of providing a Cyclic Redundancy Check (CRC).

      The hardcoded key to be used with this ciphersuite is the
      following:

         HMAC_KEY     :  c37b7e64 92584340
                      :  bed12207 80894115
                      :  5068f738
         (The above is the test vector from RFC 3537 [WRAP].)

      In each case, the bytes that are input to the cryptographic
      algorithm consist of the entire LTP segment except the AuthVal.
      In particular, the header extensions field that may contain the
      ciphersuite number and the KeyID field is part of the input.

      The output bytes of the cryptographic operation are the payload of
      the AuthVal field.

   The following shows an example LTP-auth header, starting from and
   including the Extensions field.

       ext  tag  sdnv  c-s  k-id
      +----+----+----+----+----+
      |0x11|0x00|0x02|0x00|0x24|
      +----+----+----+----+----+
   The Extensions field has the value 0x11 with the most significant and
   least significant nibble value 1, indicating the presence of one
   header and one trailer extension, respectively.  The next octet is
   the extension tag (0x00 for LTP-auth), followed by the Self-
   Delimiting Numeric Value (SDNV) encoded length of the ensuing data: a
   one-octet ciphersuite (0x00 meaning HMAC-SHA1-80) and the KeyID (in
   this case with a short value of 0x24).  The trailer extension (not
   shown above) should contain the AuthVal.

2.2.  A Cookie Mechanism

   The use of cookies is a well-known way to make Denial of Service
   (DoS) attacks harder to mount.  We define the cookie extension for
   use in environments where an LTP implementation is liable to such
   attacks.

   The cookie is placed in a header extension field, and has no related
   trailer extension field.  It has the extension tag value 0x01.

   The cookie value can essentially be viewed as a sufficiently long
   random number, where the length can be determined by the
   implementation (longer cookies are harder to guess and therefore
   better, though using more bandwidth).  Note that cookie values can be
   derived using lots of different schemes so long as they produce
   random-looking and hard-to-predict values.

   The first cookie inserted into a segment for this session is called
   the initial cookie.

   Note that cookies do not outlast an LTP session.

   The basic mode of operation is that an LTP engine can include a
   cookie in a segment at any time.  After that time, all segments
   corresponding to that LTP session MUST contain a good cookie value --
   that is, all segments both to and from the engine MUST contain a good
   cookie.  Clearly, there will be some delay before the cookie is seen
   in incoming segments -- implementations MUST determine an acceptable
   delay for these cases, and MUST only accept segments without a cookie
   until that time.

   The cookie value can be extended at any time by catenating more
   random bits.  This allows both LTP engines to contribute to the
   randomness of the cookie, where that is useful.  It also allows a
   node that considers the cookie value too short (say due to changing
   circumstances) to add additional security.  In this case, the
   extended cookie value becomes the "to-be-checked-against" cookie
   value for all future segments (modulo the communications delay as
   above).

   It can happen that both sides emit segments containing an initial
   cookie before their peer has a chance to see any cookie.  In that
   case, two cookie extension fields MUST be included in all segments
   subsequently (once the traffic has caught up).  That is, the sender
   and recipient cookies are handled independently.  In such cases, both
   cookie values MUST be "good" at all relevant times (i.e., modulo the
   delay).  In this case, the peer's initial cookie MUST arrive before
   the calculated delay for receipt of segments containing this engine's
   cookie -- there is only a finite window during which a second cookie
   can be inserted into the session.

   A "good" cookie is therefore one that starts with the currently
   stored cookie value, or else a new cookie where none has been seen in
   that session so far.  Once a cookie value is seen and treated as
   "good" (e.g., an extended value), the previous value is no longer
   "good".

   Modulo the communications delay, segments with an incorrect or
   missing cookie value MUST be silently discarded.

   If a segment is to be retransmitted (e.g., as a result of a timer
   expiring), then it needs to contain the correct cookie value at the
   time of (re)transmission.  Note that this may differ from what was
   the correct cookie value at the time of the original transmission.

3.  Security Considerations

   The extensions specified above are generally intended to help thwart
   DoS attacks.  For environments where lower layers provide neither
   integrity nor freshness, it makes sense to use both extensions
   together.  For example, in the case where a node extends an existing
   cookie, the lack of origin authentication would allow a man in the
   middle to lock out the session.

   While there are currently some concerns about using the SHA-1
   algorithm, these appear to only make it easier to find collisions.
   In that case, the use of HMAC with SHA-1 can still be considered
   safe.  However, we have changed to use SHA-256 for the signature
   ciphersuite.

4.  IANA Considerations

   IANA has created and now maintains registry for known LTP
   ciphersuites (as defined in Section 2.1).  The registry has been
   populated using the initial values given in Sections 2.1 and 2.2
   above.  IANA may assign LTP Extension Tag values from the range
   2..127 (decimal, inclusive) using the Specification Required rule
   [GUIDE].  The specification concerned can be an RFC (whether
   Standards Track, Experimental, or Informational), or a specification
   from any other standards development organization recognized by IANA
   or with a liaison with the IESG, specifically including CCSDS
   (http://www.ccsds.org/).

5.  Acknowledgments

   Many thanks to Tim Ray, Vint Cerf, Bob Durst, Kevin Fall, Adrian
   Hooke, Keith Scott, Leigh Torgerson, Eric Travis, and Howie Weiss for
   their thoughts on this protocol and its role in Delay-Tolerant
   Networking architecture.

   Part of the research described in this document was carried out at
   the Jet Propulsion Laboratory, California Institute of Technology,
   under a contract with the National Aeronautics and Space
   Administration.  This work was performed under DOD Contract DAA-B07-
   00-CC201, DARPA AO H912; JPL Task Plan No. 80-5045, DARPA AO H870;
   and NASA Contract NAS7-1407.

   Thanks are also due to Shawn Ostermann, Hans Kruse, and Dovel Myers
   at Ohio University for their suggestions and advice in making various
   design decisions.  This work was done when Manikantan Ramadas was a
   graduate student at the EECS Dept., Ohio University, in the
   Internetworking Research Group Laboratory.

   Part of this work was carried out at Trinity College Dublin as part
   of the Dev-SeNDT contract funded by Enterprise Ireland's technology
   development programme.

6.  References

6.1.  Normative References

   [B97]       Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [GUIDE]     Narten, T. and H. Alvestrand, "Guidelines for Writing an
               IANA Considerations Section in RFCs", BCP 26, RFC 5226,
               May 2008.

   [HMAC]      Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-
               Hashing for Message Authentication", RFC 2104, February
               1997.

   [LTPSPEC]   Ramadas, M., Burleigh, S., and S. Farrell, "Licklider
               Transmission Protocol - Specification", RFC 5326,
               September 2008.

   [RSA]       Jonsson, J. and B. Kaliski, "Public-Key Cryptography
               Standards (PKCS) #1: RSA Cryptography Specifications
               Version 2.1", RFC 3447, February 2003.

6.2.  Informative References

   [LTPMOTIVE] Burleigh, S., Ramadas, M., and S. Farrell, "Licklider
               Transmission Protocol - Motivation", RFC 5325, September
               2008.

   [PKIXPROF]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
               Housley, R., and W. Polk, "Internet X.509 Public Key
               Infrastructure Certificate and Certificate Revocation
               List (CRL) Profile", RFC 5280, May 2008.

   [TLS]        Dierks, T. and E. Rescorla, "The Transport Layer
               Security (TLS) Protocol Version 1.2", RFC 5246, August
               2008.

   [WRAP]      Schaad, J. and R. Housley, "Wrapping a Hashed Message
               Authentication Code (HMAC) key with a Triple-Data
               Encryption Standard (DES) Key or an Advanced Encryption
               Standard (AES) Key", RFC 3537, May 2003.

Authors' Addresses

   Stephen Farrell
   Computer Science Department
   Trinity College Dublin
   Ireland
   Telephone: +353-1-896-1761
   EMail: stephen.farrell@cs.tcd.ie

   Manikantan Ramadas
   ISRO Telemetry Tracking and Command Network (ISTRAC)
   Indian Space Research Organization (ISRO)
   Plot # 12 & 13, 3rd Main, 2nd Phase
   Peenya Industrial Area
   Bangalore 560097
   India
   Telephone: +91 80 2364 2602
   EMail: mramadas@gmail.com


   Scott C. Burleigh
   Jet Propulsion Laboratory
   4800 Oak Grove Drive
   M/S: 301-485B
   Pasadena, CA 91109-8099
   Telephone: +1 (818) 393-3353
   Fax: +1 (818) 354-1075
   EMail: Scott.Burleigh@jpl.nasa.gov

Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78 and at http://www.rfc-editor.org/copyright.html,
   and except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

AI ELI5

On this page
PROBLEMThe Licklider Transmission Protocol (LTP) is used for reliable communication over deep-space radio links where round-trip times are measured in minutes. LTP has no built-in authentication, making it vulnerable to eavesdropping and message forgery.
MECHANISMLTP Security Extensions add two optional features: a cryptographic authentication extension that computes a MAC or digital signature over each segment (using HMAC-SHA1-80, RSA-SHA256, or a NULL checksum), and a cookie mechanism that makes denial-of-service attacks harder by requiring sessions to include a secret cookie value.
STATUS TODAYLTP can now provide origin authentication and detect tampering. However, key management in delay-tolerant networks remains an open research problem, and the extensions are experimental.

§1LTP and Deep-Space Communication

The Licklider Transmission Protocol (LTP) is designed for reliable communication over extremely long-latency, intermittently-connected links such as deep-space radio links. Round-trip times can be measured in minutes or hours, making traditional protocols like TCP impractical. LTP operates as a convergence layer, accepting data from upper layers and ensuring delivery through selective acknowledgment-based retransmission.

However, LTP as originally defined has no security features. This document adds two optional extensions: LTP Authentication, which provides cryptographic authentication of segments, and a Cookie Mechanism, which provides denial-of-service resistance. These extensions are experimental and do not address key management, which remains an open research problem in delay-tolerant networking (DTN). The extensions recognize that IPsec cannot work in these environments (IKE requires rapid key exchanges incompatible with high latencies).

Space probes billions of miles away need to send data back to Earth, but the signal takes minutes to arrive. A simple protocol called LTP makes sure the data gets there. But anyone listening can read or forge messages. This adds security seals and magic cookies to prove who is sending and that messages are fresh.

§2.1LTP Authentication Extension

The LTP authentication extension provides cryptographic authentication of LTP segments. It uses extension tags carried in the LTP segment header and trailer. The ciphersuite and optional key identifier are carried in the header extensions; the authentication value (MAC or signature) is carried in the trailer extensions.

The RFC defines three ciphersuites. HMAC-SHA1-80 uses HMAC with SHA-1, producing a 10-octet fixed-width authentication value. RSA-SHA256 uses RSA with SHA-256, producing a signature of variable length (e.g., 128 octets for a 1024-bit key). NULL is the same as HMAC-SHA1-80 but uses a hardcoded key, effectively providing only a checksum without authentication.

For all ciphersuites, the input to the cryptographic operation is the entire encoded LTP segment including the authentication extension tag and length, but excluding the authentication value itself. The ciphersuite number is one octet (values 0-255), with 0-127 assigned or reserved, 128-191 reserved for future use, 192-254 for private/experimental use, and 255 for the NULL ciphersuite.

Each message gets a secret signature that only the sender and receiver know. The signature can be made with a shared secret (HMAC), or with a private key the receiver trusts (RSA). The receiver checks the signature to make sure the message came from the real sender and has not been changed.

LTP-Auth Ciphersuites
  • 0HMAC-SHA1-80 — HMAC with SHA-1 hash; 10-octet authentication value. Uses pre-shared key.
  • 1RSA-SHA256 — RSA signature with SHA-256 hash. Asymmetric authentication; signature length depends on key size.
  • 255NULL — Hardcoded HMAC key; provides only checksum, no real authentication.

§2.2Cookie Mechanism for Denial-of-Service Resistance

The cookie mechanism is a well-known defense against denial-of-service attacks. A cookie is a random string of sufficient length, carried in a header extension field with tag 0x01. An LTP engine can insert a cookie into a segment at any time. After the first cookie is seen in a session, all subsequent segments in both directions MUST contain a valid cookie. A valid cookie is one that either matches the current stored cookie value or is a fresh new cookie from the peer.

The cookie value can be extended at any time by concatenating more random bits. This allows both sides to contribute to the randomness and lets either side increase the cookie length if needed. The cookie is tied to a specific LTP session and does not outlast it. If both sides emit initial cookies before seeing the peer's cookie, two cookies MUST be included in all subsequent segments (one sent, one to-be-checked). Segments with incorrect or missing cookies (after the initial grace period) MUST be silently discarded.

Before talking, one side says "from now on, all messages must include this secret password." Once the other side gets it and starts including it, an attacker cannot send fake messages without knowing the password. If the password gets old, either side can pick a new one and add it to the old one, making it longer and harder to guess.

§3Security Implications

The RFC notes that for environments where the lower layers provide neither integrity nor freshness (typical of deep-space RF links), both extensions (authentication and cookie) should be used together. However, the extensions do not address key management. In delay-tolerant networks, keys must be pre-shared or established through out-of-band means, since IKE-style protocols with multiple round trips are impractical.

Regarding cryptographic algorithms: while there were concerns about SHA-1 collisions, HMAC with SHA-1 is still considered safe for authentication. The RFC has therefore migrated the signature ciphersuite to RSA-SHA256. The NULL ciphersuite is intentionally weak and suitable only for environments where stronger cryptography is unavailable or the threat model does not require authentication; it provides no protection against active attacks.

The signature protects against forgery, and the cookie protects against replays and floods. Together they make deep-space messages much safer. But keys still have to be loaded onto the spacecraft before launch, because there is no time to negotiate during the mission.

§2.1Ciphersuite Details

HMAC-SHA1-80: Uses HMAC with the SHA-1 hash algorithm. The AuthVal field contains the output of the HMAC-SHA1-80 algorithm, which is a fixed 10 octets (80 bits, hence the name). The key is pre-shared between communicating LTP engines. This ciphersuite is suitable for mutual authentication when both sides possess the same secret key.

RSA-SHA256: Uses RSA signatures with SHA-256. The AuthVal field contains the RSA signature value, which occupies the minimum number of octets required (e.g., 128 octets for a 1024-bit RSA key). This ciphersuite provides asymmetric authentication; the receiver needs only the public key, while the sender needs the private key. NULL: Uses a hardcoded HMAC key (defined in the RFC) and produces the same output as HMAC-SHA1-80. It provides no confidentiality or authentication; its only purpose is to detect accidental corruption, similar to a CRC.

HMAC is like a secret code both sides share; only they can make or check the signature. RSA is like a lock and key: the receiver keeps a public part of the lock, the sender has the private key. NULL is like a simple checksum, good only for catching accidents, not attacks.

§6References