4635
PROPOSED STANDARD

HMAC SHA (Hashed Message Authentication Code, Secure Hash Algorithm) TSIG Algorithm Identifiers (Obsoleted)

Authors: D. Eastlake 3rd
Date: August 2006
Area: int
Working Group: dnsext
Stream: IETF
Obsoleted by: RFC 8945
Updates: RFC 2845

Abstract

Use of the Domain Name System TSIG resource record requires specification of a cryptographic message authentication code. Currently, identifiers have been specified only for HMAC MD5 (Hashed Message Authentication Code, Message Digest 5) and GSS (Generic Security Service) TSIG algorithms. This document standardizes identifiers and implementation requirements for additional HMAC SHA (Secure Hash Algorithm) TSIG algorithms and standardizes how to specify and handle the truncation of HMAC values in TSIG. [STANDARDS-TRACK]

RFC 4635: HMAC SHA (Hashed Message Authentication Code, Secure Hash Algorithm) TSIG Algorithm Identifiers [RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Errata] [Info page]

Obsoleted by: 8945 PROPOSED STANDARD
Errata Exist
Network Working Group                                    D. Eastlake 3rd
Request for Comments: 4635                         Motorola Laboratories
Category: Standards Track                                    August 2006


                  <span class="h1">HMAC SHA TSIG Algorithm Identifiers</span>

                          Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   Use of the Domain Name System TSIG resource record requires
   specification of a cryptographic message authentication code.
   Currently, identifiers have been specified only for HMAC MD5 (Hashed
   Message Authentication Code, Message Digest 5) and GSS (Generic
   Security Service) TSIG algorithms.  This document standardizes
   identifiers and implementation requirements for additional HMAC SHA
   (Secure Hash Algorithm) TSIG algorithms and standardizes how to
   specify and handle the truncation of HMAC values in TSIG.

Table of Contents

   <a href="#section-1">1</a>. Introduction ....................................................<a href="#page-2">2</a>
   <a href="#section-2">2</a>. Algorithms and Identifiers ......................................<a href="#page-2">2</a>
   <a href="#section-3">3</a>. Specifying Truncation ...........................................<a href="#page-3">3</a>
      <a href="#section-3.1">3.1</a>. Truncation Specification ...................................<a href="#page-4">4</a>
   <a href="#section-4">4</a>. TSIG Truncation Policy and Error Provisions .....................<a href="#page-4">4</a>
   <a href="#section-5">5</a>. IANA Considerations .............................................<a href="#page-5">5</a>
   <a href="#section-6">6</a>. Security Considerations .........................................<a href="#page-5">5</a>
   <a href="#section-7">7</a>. Normative References ............................................<a href="#page-6">6</a>
   <a href="#section-8">8</a>. Informative References. .........................................<a href="#page-7">7</a>










<span class="grey">Eastlake 3rd                Standards Track                     [Page 1]</span>

<span id="page-2" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>.  Introduction</span>

   [<a id="ref-RFC2845">RFC2845</a>] specifies a TSIG Resource Record (RR) that can be used to
   authenticate DNS (Domain Name System [<a href="#ref-STD13" title=""Domain names - concepts and facilities"">STD13</a>]) queries and responses.
   This RR contains a domain name syntax data item that names the
   authentication algorithm used.  [<a href="./rfc2845" title=""Secret Key Transaction Authentication for DNS (TSIG)"">RFC2845</a>] defines the
   HMAC-MD5.SIG-ALG.REG.INT name for authentication codes using the HMAC
   (Hashed Message Authentication Code) [<a href="./rfc2104" title=""HMAC: Keyed-Hashing for Message Authentication"">RFC2104</a>] algorithm with the MD5
   (Message Digest 5) [<a href="./rfc1321" title=""The MD5 Message-Digest Algorithm "">RFC1321</a>] hash algorithm.  IANA has also
   registered "gss-tsig" as an identifier for TSIG authentication where
   the cryptographic operations are delegated to the Generic Security
   Service (GSS) [<a href="./rfc3645" title=""Generic Security Service Algorithm for Secret Key Transaction Authentication for DNS (GSS- TSIG)"">RFC3645</a>].

   Note that use of TSIG presumes prior agreement, between the resolver
   and server involved, as to the algorithm and key to be used.

   In <a href="#section-2">Section 2</a>, this document specifies additional names for TSIG
   authentication algorithms based on US NIST SHA (United States,
   National Institute of Science and Technology, Secure Hash Algorithm)
   algorithms and HMAC and specifies the implementation requirements for
   those algorithms.

   In <a href="#section-3">Section 3</a>, this document specifies the effect of inequality
   between the normal output size of the specified hash function and the
   length of MAC (Message Authentication Code) data given in the TSIG
   RR.  In particular, it specifies that a shorter-length field value
   specifies truncation and that a longer-length field is an error.

   In <a href="#section-4">Section 4</a>, policy restrictions and implications related to
   truncation are described and specified, as is a new error code to
   indicate truncation shorter than that permitted by policy.

   The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", "MAY", in
   this document are to be interpreted as described in [<a href="./rfc2119" title=""Key words for use in RFCs to Indicate Requirement Levels"">RFC2119</a>].

<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>.  Algorithms and Identifiers</span>

   TSIG Resource Records (RRs) [<a href="./rfc2845" title=""Secret Key Transaction Authentication for DNS (TSIG)"">RFC2845</a>] are used to authenticate DNS
   queries and responses.  They are intended to be efficient symmetric
   authentication codes based on a shared secret.  (Asymmetric
   signatures can be provided using the SIG RR [<a href="./rfc2931" title=""DNS Request and Transaction Signatures ( SIG(0)s )"">RFC2931</a>].  In
   particular, SIG(0) can be used for transaction signatures.)  Used
   with a strong hash function, HMAC [<a href="./rfc2104" title=""HMAC: Keyed-Hashing for Message Authentication"">RFC2104</a>] provides a way to
   calculate such symmetric authentication codes.  The only specified
   HMAC-based TSIG algorithm identifier has been HMAC-MD5.SIG-
   ALG.REG.INT, based on MD5 [<a href="./rfc1321" title=""The MD5 Message-Digest Algorithm "">RFC1321</a>].





<span class="grey">Eastlake 3rd                Standards Track                     [Page 2]</span>

<span id="page-3" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


   The use of SHA-1 [FIPS180-2, <a href="./rfc3174">RFC3174</a>], which is a 160-bit hash, as
   compared with the 128 bits for MD5, and additional hash algorithms in
   the SHA family [FIPS180-2, <a href="./rfc3874">RFC3874</a>, <a href="./rfc4634">RFC4634</a>] with 224, 256, 384, and
   512 bits may be preferred in some cases.  This is because
   increasingly successful cryptanalytic attacks are being made on the
   shorter hashes.

   Use of TSIG between a DNS resolver and server is by mutual agreement.
   That agreement can include the support of additional algorithms and
   criteria as to which algorithms and truncations are acceptable,
   subject to the restriction and guidelines in Sections <a href="#section-3">3</a> and <a href="#section-4">4</a> below.
   Key agreement can be by the TKEY mechanism [<a href="./rfc2930" title=""Secret Key Establishment for DNS (TKEY RR)"">RFC2930</a>] or some other
   mutually agreeable method.

   The current HMAC-MD5.SIG-ALG.REG.INT and gss-tsig identifiers are
   included in the table below for convenience.  Implementations that
   support TSIG MUST also implement HMAC SHA1 and HMAC SHA256 and MAY
   implement gss-tsig and the other algorithms listed below.

      Mandatory      HMAC-MD5.SIG-ALG.REG.INT
      Optional       gss-tsig
      Mandatory      hmac-sha1
      Optional       hmac-sha224
      Mandatory      hmac-sha256
      Optional       hamc-sha384
      Optional       hmac-sha512

   SHA-1 truncated to 96 bits (12 octets) SHOULD be implemented.

<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>.  Specifying Truncation</span>

   When space is at a premium and the strength of the full length of an
   HMAC is not needed, it is reasonable to truncate the HMAC output and
   use the truncated value for authentication.  HMAC SHA-1 truncated to
   96 bits is an option available in several IETF protocols, including
   IPsec and TLS.

   The TSIG RR [<a href="./rfc2845" title=""Secret Key Transaction Authentication for DNS (TSIG)"">RFC2845</a>] includes a "MAC size" field, which gives the
   size of the MAC field in octets.  However, [<a href="./rfc2845" title=""Secret Key Transaction Authentication for DNS (TSIG)"">RFC2845</a>] does not specify
   what to do if this MAC size differs from the length of the output of
   HMAC for a particular hash function.  Truncation is indicated by a
   MAC size less than the HMAC size, as specified below.









<span class="grey">Eastlake 3rd                Standards Track                     [Page 3]</span>

<span id="page-4" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


<span class="h3"><a class="selflink" id="section-3.1" href="#section-3.1">3.1</a>.  Truncation Specification</span>

   The specification for TSIG handling is changed as follows:

   1. If "MAC size" field is greater than HMAC output length:

         This case MUST NOT be generated and, if received, MUST cause
      the packet to be dropped and RCODE 1 (FORMERR) to be returned.

   2. If "MAC size" field equals HMAC output length:

         Operation is as described in [<a href="./rfc2845" title=""Secret Key Transaction Authentication for DNS (TSIG)"">RFC2845</a>], and the entire output
      HMAC output is present.

   3. "MAC size" field is less than HMAC output length but greater than
      that specified in case 4, below:

         This is sent when the signer has truncated the HMAC output to
      an allowable length, as described in <a href="./rfc2104">RFC 2104</a>, taking initial
      octets and discarding trailing octets.  TSIG truncation can only
      be to an integral number of octets.  On receipt of a packet with
      truncation thus indicated, the locally calculated MAC is similarly
      truncated and only the truncated values are compared for
      authentication.  The request MAC used when calculating the TSIG
      MAC for a reply is the truncated request MAC.

   4. "MAC size" field is less than the larger of 10 (octets) and half
      the length of the hash function in use:

         With the exception of certain TSIG error messages described in
      <a href="./rfc2845#section-3.2">RFC 2845, Section 3.2</a>, where it is permitted that the MAC size be
      zero, this case MUST NOT be generated and, if received, MUST cause
      the packet to be dropped and RCODE 1 (FORMERR) to be returned.
      The size limit for this case can also, for the hash functions
      mentioned in this document, be stated as less than half the hash
      function length for hash functions other than MD5 and less than 10
      octets for MD5.

<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>.  TSIG Truncation Policy and Error Provisions</span>

   Use of TSIG is by mutual agreement between a resolver and server.
   Implicit in such "agreement" are criterion as to acceptable keys and
   algorithms and, with the extensions in this document, truncations.
   Note that it is common for implementations to bind the TSIG secret
   key or keys that may be in place at a resolver and server to
   particular algorithms.  Thus, such implementations only permit the





<span class="grey">Eastlake 3rd                Standards Track                     [Page 4]</span>

<span id="page-5" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


   use of an algorithm if there is an associated key in place.  Receipt
   of an unknown, unimplemented, or disabled algorithm typically results
   in a BADKEY error.

      Local policies MAY require the rejection of TSIGs, even though
   they use an algorithm for which implementation is mandatory.

      When a local policy permits acceptance of a TSIG with a particular
   algorithm and a particular non-zero amount of truncation, it SHOULD
   also permit the use of that algorithm with lesser truncation (a
   longer MAC) up to the full HMAC output.

      Regardless of a lower acceptable truncated MAC length specified by
   local policy, a reply SHOULD be sent with a MAC at least as long as
   that in the corresponding request, unless the request specified a MAC
   length longer than the HMAC output.

      Implementations permitting multiple acceptable algorithms and/or
   truncations SHOULD permit this list to be ordered by presumed
   strength and SHOULD allow different truncations for the same
   algorithm to be treated as separate entities in this list.  When so
   implemented, policies SHOULD accept a presumed stronger algorithm and
   truncation than the minimum strength required by the policy.

      If a TSIG is received with truncation that is permitted under
   <a href="#section-3">Section 3</a> above but the MAC is too short for the local policy in
   force, an RCODE of 22 (BADTRUNC) MUST be returned.

<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>.  IANA Considerations</span>

   This document (1) registers the new TSIG algorithm identifiers listed
   in <a href="#section-2">Section 2</a> with IANA and (2) allocates the BADTRUNC RCODE 22 in
   <a href="./rfc2845#section-4">Section 4 [RFC2845]</a>.

<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>.  Security Considerations</span>

   For all of the message authentication code algorithms listed herein,
   those producing longer values are believed to be stronger; however,
   while there have been some arguments that mild truncation can
   strengthen a MAC by reducing the information available to an
   attacker, excessive truncation clearly weakens authentication by
   reducing the number of bits an attacker has to try to break the
   authentication by brute force [<a href="./rfc2104" title=""HMAC: Keyed-Hashing for Message Authentication"">RFC2104</a>].

   Significant progress has been made recently in cryptanalysis of hash
   function of the types used herein, all of which ultimately derive
   from the design of MD4.  While the results so far should not effect




<span class="grey">Eastlake 3rd                Standards Track                     [Page 5]</span>

<span id="page-6" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


   HMAC, the stronger SHA-1 and SHA-256 algorithms are being made
   mandatory due to caution.

   See the Security Considerations section of [<a href="./rfc2845" title=""Secret Key Transaction Authentication for DNS (TSIG)"">RFC2845</a>].  See also the
   Security Considerations section of [<a href="./rfc2104" title=""HMAC: Keyed-Hashing for Message Authentication"">RFC2104</a>] from which the limits on
   truncation in this RFC were taken.

<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>.  Normative References</span>

   [<a id="ref-FIPS180-2">FIPS180-2</a>] "Secure Hash Standard", (SHA-1/224/256/384/512) US
               Federal Information Processing Standard, with Change
               Notice 1, February 2004.

   [<a id="ref-RFC1321">RFC1321</a>]   Rivest, R., "The MD5 Message-Digest Algorithm ", <a href="./rfc1321">RFC</a>
               <a href="./rfc1321">1321</a>, April 1992.

   [<a id="ref-RFC2104">RFC2104</a>]   Krawczyk, H., Bellare, M., and R. Canetti, "HMAC:
               Keyed-Hashing for Message Authentication", <a href="./rfc2104">RFC 2104</a>,
               February 1997.

   [<a id="ref-RFC2119">RFC2119</a>]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.

   [<a id="ref-RFC2845">RFC2845</a>]   Vixie, P., Gudmundsson, O., Eastlake 3rd, D., and B.
               Wellington, "Secret Key Transaction Authentication for
               DNS (TSIG)", <a href="./rfc2845">RFC 2845</a>, May 2000.

   [<a id="ref-RFC3174">RFC3174</a>]   Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm
               1 (SHA1)", <a href="./rfc3174">RFC 3174</a>, September 2001.

   [<a id="ref-RFC3874">RFC3874</a>]   Housley, R., "A 224-bit One-way Hash Function: SHA-224",
               <a href="./rfc3874">RFC 3874</a>, September 2004.

   [<a id="ref-RFC4634">RFC4634</a>]   Eastlake, D. and T. Hansen, "US Secure Hash Algorithms
               (SHA)", <a href="./rfc4634">RFC 4634</a>, July 2006.

   [<a id="ref-STD13">STD13</a>]     Mockapetris, P., "Domain names - concepts and
               facilities", STD 13, <a href="./rfc1034">RFC 1034</a>, November 1987.

               Mockapetris, P., "Domain names - implementation and
               specification", STD 13, <a href="./rfc1035">RFC 1035</a>, November 1987.










<span class="grey">Eastlake 3rd                Standards Track                     [Page 6]</span>

<span id="page-7" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>.  Informative References.</span>

   [<a id="ref-RFC2930">RFC2930</a>]   Eastlake 3rd, D., "Secret Key Establishment for DNS (TKEY
               RR)", <a href="./rfc2930">RFC 2930</a>, September 2000.

   [<a id="ref-RFC2931">RFC2931</a>]   Eastlake 3rd, D., "DNS Request and Transaction Signatures
               ( SIG(0)s )", <a href="./rfc2931">RFC 2931</a>, September 2000.

   [<a id="ref-RFC3645">RFC3645</a>]   Kwan, S., Garg, P., Gilroy, J., Esibov, L., Westhead, J.,
               and R. Hall, "Generic Security Service Algorithm for
               Secret Key Transaction Authentication for DNS (GSS-
               TSIG)", <a href="./rfc3645">RFC 3645</a>, October 2003.

Author's Address

   Donald E. Eastlake 3rd
   Motorola Laboratories
   155 Beaver Street
   Milford, MA 01757 USA

   Phone: +1-508-786-7554 (w)
   EMail: [email protected]





























<span class="grey">Eastlake 3rd                Standards Track                     [Page 7]</span>

<span id="page-8" ></span>
<span class="grey"><a href="./rfc4635">RFC 4635</a>          HMAC SHA TSIG Algorithm Identifiers        August 2006</span>


Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a>, 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 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 <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and <a href="https://www.rfc-editor.org/bcp/bcp79">BCP 79</a>.

   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
   <a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.

   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
   [email protected].

Acknowledgement

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).







Eastlake 3rd                Standards Track                     [Page 8]

Additional Resources