Skip to main content

Stateless Hash-Based Signatures in Merkle Tree Ladder Mode (SLH-DSA-MTL) for DNSSEC
draft-fregly-dnsop-slh-dsa-mtl-dnssec-00

Document Type Active Internet-Draft (individual)
Authors Andrew Fregly , Joe Harvey , Burt Kaliski , Duane Wessels
Last updated 2023-12-19
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-fregly-dnsop-slh-dsa-mtl-dnssec-00
DNSOP Working Group                                          A.M. Fregly
Internet-Draft                                                 J. Harvey
Intended status: Standards Track                              B. Kaliski
Expires: 21 June 2024                                         D. Wessels
                                                           Verisign Labs
                                                        19 December 2023

Stateless Hash-Based Signatures in Merkle Tree Ladder Mode (SLH-DSA-MTL)
                               for DNSSEC
                draft-fregly-dnsop-slh-dsa-mtl-dnssec-00

Abstract

   This document describes how to apply the Stateless Hash-Based Digital
   Signature Algorithm in Merkle Tree Ladder mode to the DNS Security
   Extensions.  This combination is referred to as the SLH-DSA-MTL
   Signature scheme.  This document describes how to specify SLH-DSA-MTL
   keys and signatures in DNSSEC.  It uses both the SHA2 and SHAKE
   family of hash functions.  This document also provides guidance for
   use of EDNS(0) in signature retrieval.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 21 June 2024.

Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights

Fregly, et al.            Expires 21 June 2024                  [Page 1]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions Used in This Document . . . . . . . . . . . . . .   4
   3.  DNSKEY Resource Records . . . . . . . . . . . . . . . . . . .   4
   4.  RRSIG Resource Records  . . . . . . . . . . . . . . . . . . .   4
   5.  Algorithm Numbers for DS, DNSKEY, and RRSIG Resource
           Records . . . . . . . . . . . . . . . . . . . . . . . . .   5
   6.  The mtl-mode-full EDNS(0) Option  . . . . . . . . . . . . . .   6
     6.1.  Option Format . . . . . . . . . . . . . . . . . . . . . .   6
     6.2.  Use By Responders . . . . . . . . . . . . . . . . . . . .   6
   7.  Implementation Considerations . . . . . . . . . . . . . . . .   7
   8.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . .   7
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   10. Implementation Status . . . . . . . . . . . . . . . . . . . .   8
   11. Security Considerations . . . . . . . . . . . . . . . . . . .   8
   12. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   9
   13. Normative References  . . . . . . . . . . . . . . . . . . . .   9
   14. Informative References  . . . . . . . . . . . . . . . . . . .  10
   Appendix A.  Change Log . . . . . . . . . . . . . . . . . . . . .  10
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   The Domain Name System Security Extensions (DNSSEC), which are
   broadly defined in [RFC4033], [RFC4034] and [RFC4035], use
   cryptographic keys and digital signatures to provide data origin
   authentication and data integrity in the DNS.  This document
   describes the application of Merkle Tree Ladder (MTL) Mode to the
   Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) as the
   SLH-DSA-MTL signature scheme for DNSSEC.  SLH-DSA is described in the
   FIPS 205 draft standard [FIPS205] and MTL mode is described in [MTL].
   As described herein, a DNSKEY resource record (RR) for an SLH-DSA-MTL
   key contains a SLH-DSA key.  The SLH-DSA key is used for verifying
   signatures on Merkle tree ladders (MTLs).  An RRSIG resource record
   for an SLH-DSA-MTL Signature contains a Merkle proof (authentication
   path) that is verifiable using a MTL, and optionally also contains
   the signed MTL.

   The anticipation of quantum computers that can break the current
   signature algorithms led to NIST selecting post-quantum cryptographic
   (PQC) algorithms for standardization and developing specifications
   for the algorithms as NIST standards.  These new algorithms are

Fregly, et al.            Expires 21 June 2024                  [Page 2]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   expected to replace classical digital signature algorithms (e.g., RSA
   and ECDSA) in IETF standards and to be widely implemented and
   deployed after that.  NIST's proposed PQC algorithms have
   significantly larger signature sizes than RSA and ECDSA.  The larger
   sizes may have a significant operational impact on DNSSEC.  For
   example, the size of signed NSEC and NSEC3 responses may exceed UDP
   MTUs with this degrading the use of UDP as the prevalent DNSSEC
   transport.  Larger signature sizes could also substantially increase
   memory requirements for in-memory zone databases used by
   authoritative name servers and for in-memory caches used by
   resolvers.

   As described in [MTL], MTL mode is designed to reduce the size impact
   of PQC signature algorithms.  For DNSSEC, the size impact reduction
   is achieved when signatures provided in RRSIG RRs are primarily
   comprised of "condensed signatures" (Merkle proofs / authentication
   paths) and are only occasionally comprised of "full signatures" that
   contain both a condensed signature and a signed MTL, where the signed
   ladder includes a signature using the underlying PQC signature
   algorithm.  MTL mode reduces the memory requirements for PQC
   signatures as the signature data in the zone database or cache is
   primarily comprised of Merkle proofs and only occasionally of signed
   MTLs [CTRSAMTL].

   SLH-DSA is a stateless hash-based PQC signature scheme selected by
   NIST for standardization [NISTSELECTIONS] in July 2022.  This
   document specifies SLH-DSA for the initial application of MTL mode to
   DNSSEC based on three considerations: (1) SLH-DSA is also based on
   Merkle trees, and thus already has internal functions for computing
   leaf nodes and internal nodes; and (2) SLH-DSA has relatively large
   signature sizes and computational costs, and therefore can benefit
   significantly from the reductions offered by MTL mode; and (3) hash-
   based techniques are well understood and offer a conservative choice
   for long-term security relative to newer NIST selected signature
   schemes based on lattice-based cryptography.  SLH-DSA is based on
   SPHINCS+ [SPHINCSPLUS], one of the submissions to NIST's PQC
   evaluation project, and the algorithms are substantially the same.
   [MTL] describes the combination of MTL mode with SPHINCS+. The
   authors intend to update both [MTL] and this I-D as needed to be
   consistent with FIPS 205 once it is published as a NIST FIPS
   standard.

Fregly, et al.            Expires 21 June 2024                  [Page 3]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   This initial version of the draft focuses on the code-points
   applicable to DNSKEY and RRSIG formulation and a proposed DNSSEC
   protocol change to support retrieval of MTL mode condensed signatures
   and MTL mode full signatures as described in 3., 9.4., and 9.5. of
   [MTL].  Later versions may describe DNSSEC protocol and/or
   operational changes related to zone signing, zone composition, zone
   updates, zone transfer, name server processing, resolver signature
   processing, and resolver caching.

2.  Conventions Used in This Document

   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 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

   Double pipe characters, "||" are used in this document to indicate
   concatenation of the elements preceding and following the double pipe
   characters.

   All numeric DNSKEY elements and RRSIG elements specified in this
   document are unsigned integers in network byte order (big endian
   order).

3.  DNSKEY Resource Records

   An SLHDSAMTLSHA2128S key consists of a 32-octet value, which is
   encoded into the Public Key field of a DNSKEY resource record as a
   simple bit string.  SLHDSAMTLSHA2128S keys are generated as SLH-DSA
   keys using the SLH-DSA-SHA2-128s parameter set, as defined in 9.1 and
   10 of [FIPS205].

   An SLHDSAMTLSHAKE128S key consists of a 32-octet value, which is
   encoded into the Public Key field of a DNSKEY resource record as a
   simple bit string.  SLHDSAMTLSHAKE128S keys are generated as SLH-DSA
   keys using the SLH-DSA-SHAKE-128s parameter set, as defined in 9.1
   and 10 of [FIPS205].

4.  RRSIG Resource Records

   MTL mode signatures are either full or condensed as described in
   [MTL].  SLHDSAMTLSHA2128S and SLHDSAMTLSHAKE128S signatures utilize a
   one-octet prefixed MTL-Type field to indicate whether the signature
   is condensed (0) or full (1).

Fregly, et al.            Expires 21 June 2024                  [Page 4]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   An SLHDSAMTLSHA2128S signature consists of a variable-length value,
   which is encoded into the Signature field of an RRSIG resource record
   as a simple bit string as the concatenation of the MTL-Type and a
   SLH-DSA-MTL-SHA2-128s signature as described in [MTL]:

                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   MTL-Type    |                                               |
   +-+-+-+-+-+-+-+-+                                               |
   |                  SLH-DSA-MTL-SHA2-128s signature              |
   /                                                               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   An SLHDSAMTLSHAKE128S signature consists of a variable-length value,
   which is encoded into the Signature field of an RRSIG resource record
   as a simple bit string as the concatenation of the MTL-Type and a
   SLH-DSA-MTL-SHAKE-128s signature as described in [MTL]:

                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   MTL-Type    |                                               |
   +-+-+-+-+-+-+-+-+                                               |
   |                  SLH-DSA-MTL-SHAKE-128s signature             |
   /                                                               /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The signature and verification algorithms for both SLH-DSA-MTL-
   SHA2-128s and SLH-DSA-MTL-SHAKE-128s are described in 9.1. and 9.2.
   of [MTL].  The signature and verification algorithms for the
   underlying signature algorithms used for signed ladders elements of
   SLH-DSA-MTL-SHA2-128s and SLH-DSA-MTL-SHAKE-128s full signatures,
   SLH-DSA-SHA2-128s and SLH-DSA-SHAKE-128s respectively, are described
   in 9.2 and 9.3 of [FIPS205].

5.  Algorithm Numbers for DS, DNSKEY, and RRSIG Resource Records

   The algorithm number associated with the use of SLHDSAMTLSHA2128S in
   DS, DNSKEY, and RRSIG resource records is TBD.  The algorithm number
   associated with the use of SLHDSAMTLSHAKE128S in DS, DNSKEY, and
   RRSIG resource records is TBD.  This registration is fully defined in
   the IANA Considerations section.

Fregly, et al.            Expires 21 June 2024                  [Page 5]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

6.  The mtl-mode-full EDNS(0) Option

   MTL mode signatures are either full or condensed.  An MTL mode-aware
   client MAY request that signatures be returned in the full format by
   providing the mtl-mode-full EDNS(0) option in the OPT meta-RR of its
   query [RFC6891].

6.1.  Option Format

   The mtl-mode-full option is encoded as follows:

   0                       8                      16
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                  OPTION-CODE                  |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                 OPTION-LENGTH                 |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

                                  Figure 1

   where:

   OPTION-CODE  The EDNS0 option code assigned to mtl-mode-full, TBD.

   OPTION-LENGTH  Always zero.

6.2.  Use By Responders

   When a query includes the mtl-mode-full option, the response
   requirement depends on the number of RRSIG records in the response
   that were produced in MTL mode:

   *  If exactly one RRSIG record in the response was produced in MTL
      mode, then that RRSIG record MUST be returned in the full
      signature format.

   *  If more than one RRSIG record in the response was produced in MTL
      mode, then enough of these RRSIG records MUST be returned in the
      full signature format to ensure that every other RRSIG in the
      response that was produced in MTL mode can be verified.

   When the mtl-mode-full option is not included, every signature in the
   response that was produced in MTL mode MUST be returned in the
   condensed signature format.

   As described in 9.2. of [MTL], when a verifier receives a condensed
   signature, the verifier determines whether any of the MTLs it has
   previously verified includes a rung that is compatible with the

Fregly, et al.            Expires 21 June 2024                  [Page 6]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   authentication path in the condensed signature.  If not, then the
   verifier requests a new signed ladder.  Accordingly, a resolver
   SHOULD first query a name server without the mtl-mode-full option,
   and then, if needed, re-issue the query with the mtl-mode-full
   option.  Since responses to queries with the mtl-mode-full option are
   expected to be large, it is RECOMMENDED that queries with the mtl-
   mode-full option be issued over transports (e.g., TCP, TLS, QUIC)
   that support large responses without truncation and/or fragmentation.

7.  Implementation Considerations

   TBD

8.  Examples

   TBD

9.  IANA Considerations

   This document updates the IANA registry for DNSSEC "Domain Name
   System Security (DNSSEC) Algorithm Numbers" located at
   https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-
   numbers.xhtml.  The following entries are requested to be added to
   the registry subject to the Number update:

   SLH-DSA-MTL-SHA2-128s
   +--------------+--------------------------------+
   | Number       | TBD                            |
   | Description  | SLH-DSA-MTL-SHA2-128s          |
   | Mnemonic     | SLHDSAMTLSHA2128S              |
   | Zone Signing | Y                              |
   | Trans. Sec.  | *                              |
   | Reference    | This specification             |
   +--------------+--------------------------------+

   SLH-DSA-MTL-SHAKE-128s
   +--------------+--------------------------------+
   | Number       | TBD                            |
   | Description  | SLH-DSA-MTL-SHAKE-128s         |
   | Mnemonic     | SLHDSAMTLSHAKE128S             |
   | Zone Signing | Y                              |
   | Trans. Sec.  | *                              |
   | Reference    | This specification             |
   +--------------+--------------------------------+

Fregly, et al.            Expires 21 June 2024                  [Page 7]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   * There has been no determination of standardization of the use of
   these algorithms with Transaction Security.

10.  Implementation Status

   NOTE: Please remove this section and the reference to RFC 7942 prior
   to publication as an RFC.

   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft, and is based on a proposal described in RFC 7942.
   The description of implementations in this section is intended to
   assist the IETF in its decision processes in progressing drafts to
   RFCs.  Please note that the listing of any individual implementation
   here does not imply endorsement by the IETF.  Furthermore, no effort
   has been spent to verify the information presented here that was
   supplied by IETF contributors.  This is not intended as, and must not
   be construed to be, a catalog of available implementations or their
   features.  Readers are advised to note that other implementations may
   exist.

   According to RFC 7942, "this will allow reviewers and working groups
   to assign due consideration to documents that have the benefit of
   running code, which may serve as evidence of valuable experimentation
   and feedback that have made the implemented protocols more mature.
   It is up to the individual working groups to use this information as
   they see fit".

   Implementation details are TBD.

11.  Security Considerations

   The security considerations of [FIPS205] and [MTL] are inherited in
   the usage of SLH-DSA-MTL in DNSSEC.

   SLH-DSA-MTL-SHA2-128s and SLH-DSA-MTL-SHAKE-128s are intended to
   operate at around the 128-bit security level against classical
   attacks and the 64-bit level against quantum attacks, consistent with
   NIST's security level I.

   A private key used for a DNSSEC zone MUST NOT be used for any other
   purpose than for that zone.  Otherwise, cross-protocol or cross-
   application attacks are possible.

Fregly, et al.            Expires 21 June 2024                  [Page 8]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

12.  Acknowledgements

   The authors would like to acknowledge the following individuals for
   their contributions to the development of this document: Scott
   Hollenbeck, Swapneel Sheth.  This I-D has drawn from helpful examples
   of document structure and specification text from various DNSSEC
   algorithm RFCs.  The authors express their gratitude to the authors
   of those RFCs for their contributions.

13.  Normative References

   [FIPS205]  National Institute of Standards and Technology (NIST),
              "Stateless Hash-Based Digital Signature Standards", August
              2023, <https://nvlpubs.nist.gov/nistpubs/FIPS/
              NIST.FIPS.205.ipd.pdf>.  The target document is a draft
              NIST Standard intended for finalization in 2024.  Some
              caution should be used since it may be less stable than
              this document.  This reference is appropriate as the NIST
              standard is expected to be used in IETF standards.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, DOI 10.17487/RFC4033, March 2005,
              <https://www.rfc-editor.org/info/rfc4033>.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, DOI 10.17487/RFC4034, March 2005,
              <https://www.rfc-editor.org/info/rfc4034>.

   [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Protocol Modifications for the DNS Security
              Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
              <https://www.rfc-editor.org/info/rfc4035>.

   [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
              for DNS (EDNS(0))", STD 75, RFC 6891,
              DOI 10.17487/RFC6891, April 2013,
              <https://www.rfc-editor.org/info/rfc6891>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

Fregly, et al.            Expires 21 June 2024                  [Page 9]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

14.  Informative References

   [CTRSAMTL] Kaliski, B., Fregly, A.M., Harvey, J., and S. Sheth,
              "Merkle Tree Ladder Mode: Reducing the Size Impact of NIST
              PQC Signature Algorithms in Practice", 2023.

   [MTL]      Harvey, J., Kaliski, B., Fregly, A.M., and S. Sheth,
              "Merkle Tree Ladder Mode (MTL) Signatures", Work in
              Progress, Internet-Draft, draft-harvey-cfrg-mtl-mode, June
              2023, <https://datatracker.ietf.org/doc/draft-harvey-cfrg-
              mtl-mode/>.

   [NISTSELECTIONS]
              National Institute of Standards and Technology (NIST),
              "Status Report on the Third Round of the NIST Post-Quantum
              Cryptography Standardization Process", NISTIR NIST.IR,
              June 2022, <https://nvlpubs.nist.gov/nistpubs/ir/2022/
              NIST.IR.8413-upd1.pdf>.

   [SPHINCSPLUS]
              Bernstein, D., Huelsing, A., Koelbl, S., Niederhagen, R.,
              Rijneveld, J., and P. Schwabe, "The SPHINCS+ Signature
              Framework", Cryptology ePrint Archive, Report 2019/1086,
              2019, <https://eprint.iacr.org/2019/1086.pdf>.

Appendix A.  Change Log

   Initial draft

Authors' Addresses

   A. Fregly
   Verisign Labs
   12061 Bluemont Way
   Reston, VA 20190
   United States of America
   Email: afregly@verisign.com
   URI:   http://www.verisignlabs.com/

   J. Harvey
   Verisign Labs
   12061 Bluemont Way
   Reston, VA 20190
   United States of America
   Email: jsharvey@verisign.com
   URI:   https://www.verisignlabs.com/

Fregly, et al.            Expires 21 June 2024                 [Page 10]
Internet-Draft             SLH-DSA-MTL-DNSSEC              December 2023

   B. Kaliski
   Verisign Labs
   12061 Bluemont Way
   Reston, VA 20190
   United States of America
   Email: bkaliski@verisign.com
   URI:   https://www.verisignlabs.com/

   D. Wessels
   Verisign Labs
   12061 Bluemont Way
   Reston, VA 20190
   United States of America
   Email: dwessels@verisign.com
   URI:   https://www.verisignlabs.com/

Fregly, et al.            Expires 21 June 2024                 [Page 11]