<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY rfc3174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3174.xml">
<!ENTITY rfc3526 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3526.xml">
<!ENTITY rfc3766 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3766.xml">
<!ENTITY rfc4250 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4250.xml">
<!ENTITY rfc4253 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4253.xml">
<!ENTITY rfc6194 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6194.xml">
<!ENTITY rfc6234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6234.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="no"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std"
     docName="draft-ietf-curdle-ssh-modp-dh-sha2-05"
     updates="4250, 4253"
     ipr="pre5378Trust200902">
 <front>
   <title abbrev="More MODP DH KEX Groups for SSH">More Modular
   Exponential (MODP) Diffie-Hellman (DH) Key Exchange (KEX) Groups
   for Secure Shell (SSH)</title>
    <author initials="M. D." surname="Baushke" fullname="Mark D.
    Baushke">
      <organization>Juniper Networks, Inc.</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089-1228</code>
          <country>US</country>
        </postal>
        <phone>+1 408 745 2952</phone>
        <email>mdb@juniper.net</email>
        <uri>http://www.juniper.net/</uri>
      </address>
    </author>
   <date year="2017" />

   <workgroup>Internet Engineering Task Force</workgroup>
   <abstract>
     <t>
       This document defines added Modular Exponential (MODP) Groups
       for the Secure Shell (SSH) protocol using SHA-2 hashes. This
       document updates RFC 4250. This document updates RFC 4253.
     </t>
   </abstract>
 </front>

 <middle>
   <section title="Overview and Rationale">

     <t>
       Secure Shell (SSH) is a common protocol for secure
       communication on the Internet. Due to recent security concerns
       with SHA-1 <xref target="RFC6194"/> and with MODP groups with
       less than 2048 bits <xref target="NIST-SP-800-131Ar1"/>
       implementer and users request support for larger Diffie Hellman
       (DH) MODP group sizes with data integrity verification using
       the SHA-2 family of secure hash algorithms as well as MODP
       groups providing more security.
     </t>

     <t>
       The United States Information Assurance Directorate at the
       National Security Agency has published a FAQ <xref
       target="MFQ-U-OO-815099-15"/> suggesting both: a) DH groups
       using less than 3072-bits, and b) the use of SHA-2 based hashes
       less than SHA2-384, are no longer sufficient for transport of
       Top Secret information. For this reason, the new MODP groups
       are being introduced starting with the MODP 3072-bit group 15
       are all using SHA2-512 as the hash algorithm.
     </t>
     
     <t>
       The DH 2048-bit MODP group 14 is already present in most SSH
       implementations and most implementations already have a
       SHA2-256 implementation, so diffie-hellman-group14-sha256 is
       provided as an easy to implement and faster to use key exchange
       for small embedded applications.
     </t>

     <t>
       It is intended that these new MODP groups with SHA-2 based
       hashes update the <xref target="RFC4253"/> section 6.4 and
       <xref target="RFC4250"/> section 4.10 standards.
     </t>

     <t>
       [TO BE REMOVED: Please send comments on this draft to curdle@ietf.org.]
     </t>
   </section>

   <section title="Requirements Language">
     <t>
       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 <xref
       target="RFC2119">RFC 2119</xref>.
     </t>
   </section>

   <section title="Key Exchange Algorithms">
     <t>
       This memo adopts the style and conventions of
       <xref target="RFC4253"/> in specifying how the use of new
       data key exchange is indicated in SSH.
     </t>
     <figure anchor="figure.algs">
       <preamble>
         The following new key exchange algorithms are defined:
       </preamble>
       <artwork>
Key Exchange Method Name
diffie-hellman-group14-sha256
diffie-hellman-group15-sha512
diffie-hellman-group16-sha512
diffie-hellman-group17-sha512
diffie-hellman-group18-sha512
       </artwork>
     </figure>
     <t>
       The SHA-2 family of secure hash algorithms are defined in
       <xref target="RFC6234"/>.
     </t>
     <t>
       The method of key exchange used for the name
       "diffie-hellman-group14-sha256" is the same as that for
       "diffie-hellman-group14-sha1" except that the SHA2-256 hash
       algorithm is used. It is recommended that
       diffie-hellman-group14-sha256 SHOULD be supported to smooth the
       transition to newer group sizes.
     </t>
     <t>
       The group15 through group18 names are the same as those
       specified in <xref target="RFC3526"/> 3072-bit MODP Group 15,
       4096-bit MODP Group 16, 6144-bit MODP Group 17, and 8192-bit MODP
       Group 18.
     </t>
     <t>
       The SHA2-512 algorithm is to be used when "sha512" is
       specified as a part of the key exchange method name.
     </t>
   </section>

   <section title="IANA Considerations">
     <t>
       This document augments the Key Exchange Method Names in <xref
       target="RFC4253"/> and <xref target="RFC4250"/>.
     </t>
     <t>
       IANA is requested to add to the Key Exchange Method Names
       algorithm registry <xref target="IANA-KEX"/> with the following
       entries:
     </t>
     <texttable style="headers">
       <ttcol>Key Exchange Method Name</ttcol><ttcol>Reference</ttcol>
       <c>diffie-hellman-group14-sha256</c><c>This Draft</c>
       <c>diffie-hellman-group15-sha512</c><c>This Draft</c>
       <c>diffie-hellman-group16-sha512</c><c>This Draft</c>
       <c>diffie-hellman-group17-sha512</c><c>This Draft</c>
       <c>diffie-hellman-group18-sha512</c><c>This Draft</c>
     </texttable>
      <t>
        [TO BE REMOVED: This registration should take place at the
        following location:
      &lt;http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-16>]
      </t>
   </section>

   <section title="Security Considerations">
     <t>
       The security considerations of <xref target="RFC4253"/> apply
       to this document.
     </t>
     <t>
       The security considerations of <xref target="RFC3526"/>
       suggest that these MODP groups have security strengths given in
       this table. They are based on <xref target="RFC3766"/>
       Determining Strengths For Public Keys Used For Exchanging
       Symmetric Keys.
     </t>
     <figure anchor="figure.strength">
       <preamble>
       Group modulus security strength estimates (RFC3526)
       </preamble>
       <artwork>
+--------+----------+---------------------+---------------------+
| Group  | Modulus  | Strength Estimate 1 | Strength Estimate 2 |
|        |          +----------+----------+----------+----------+
|        |          |          | exponent |          | exponent |
|        |          | in bits  | size     | in bits  | size     |
+--------+----------+----------+----------+----------+----------+
|  14    | 2048-bit |      110 |     220- |      160 |     320- |
|  15    | 3072-bit |      130 |     260- |      210 |     420- |
|  16    | 4096-bit |      150 |     300- |      240 |     480- |
|  17    | 6144-bit |      170 |     340- |      270 |     540- |
|  18    | 8192-bit |      190 |     380- |      310 |     620- |
+--------+----------+---------------------+---------------------+
       </artwork>
     </figure>
     <t>
       Using a fixed set of Diffie-Hellman parameters makes them a
       high value target for precomputation.
       Generating additional sets of primes to be used, or moving to
       larger values is a mitigation against this issue. Care should be
       taken to avoid backdoored primes (<xref target="SNFS"/>) by using
       "nothing up my sleve" parameters.
     </t>
   </section>

 </middle>

 <back>

   <references title="Normative References">

     &rfc2119;
     &rfc3526;
     &rfc4250;
     &rfc4253;

   </references>

   <references title="Informative References">

     <reference
         anchor="IANA-KEX"
         target="http://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-16">
       <front>
         <title>Secure Shell (SSH) Protocol Parameters:
         Key Exchange Method Names</title>
         <author>
           <organization>Internet Assigned Numbers Authority (IANA)
           </organization>
         </author>
         <date month="March" year="2017"/>
       </front>
     </reference>

     <reference
         anchor="MFQ-U-OO-815099-15"
         target="https://www.iad.gov/iad/library/ia-guidance/ia-solutions-for-classified/algorithm-guidance/cnsa-suite-and-quantum-computing-faq.cfm">
       <front>
         <title>CNSA Suite and Quantum Computing FAQ</title>
         <author fullname="NSA/CSS">
           <organization abbrev="NSA/CSS">"National Security Agency/Central Security Service"</organization>
         </author>
         <date month="January" year="2016"/>
       </front>
     </reference>

     <reference
         anchor="NIST-SP-800-131Ar1"
         target="http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar1.pdf">
       <front>
         <title>Transitions: Recommendation for the Transitioning of
         the Use of Cryptographic Algorithms and Key Lengths</title>
         <author surname="Barker" fullname="Elaine Barker"/>
         <author surname="Roginsky" fullname="Allen Roginsky"/>
         <date month="November" year="2015"/>
       </front>
       <seriesInfo
           name="NIST Special Publication" value="800-131A Revision 1"/>
     </reference>

     &rfc3766;
     &rfc6194;
     &rfc6234;

     <reference
         anchor="SNFS"
         target="http://eprint.iacr.org/2016/961.pdf">
       <front>
         <title>A kilobit hidden SNFS discrete logarithm computation</title>
         <author surname="Fried" fullname="Joshua Fried">
           <organization>University of Pennsylvania</organization>
         </author>
         <author surname="Gaudry" fullname="Pierrick Gaudry">
           <organization>INRIA, CNRS, Université de Lorraine</organization>
         </author>
         <author surname="Heninger" fullname="Nadia Heninger">
           <organization>University of Pennsylvania</organization>
         </author>
         <author surname="Thomé" fullname="Emmanuel Thomé">
           <organization>INRIA, CNRS, Université de Lorraine</organization>
         </author>
         <date year="2016"/>
       </front>
     </reference>

   </references>

   <!-- Change Log

v00 2016-09-11  MDB   Initial version forked from
                       draft-ietf-curdle-ssh-kex-sha2

v01 2016-09-12  MDB   Remove ambiguity of IANA table update.
                      per Tero Kivinen and denis bider.

v02 2017-03-06  MDB   IANA moved to use texttable.
                      Simo Sorce will be providing gss-* updates
                      in a separate document.

v03 2017-03-26  MDB   Remove extraneous text after figure.strength in
                      section 5. Remove old gss-group14 orphaned text.

v04 2017-04-09  MDB   Informative reference for IANA-KEX.
                      Clean up nits.

v05 2017-05-10  MDB   per Hubert Kario fix 3071-bit to 3072-bit typo.

   -->
 </back>
</rfc>
