| rfc8731xml2.original.xml | rfc8731.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="ISO-8859-1"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2119.xml"> | ||||
| <!ENTITY rfc4250 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4250.xml"> | ||||
| <!ENTITY rfc4251 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4251.xml"> | ||||
| <!ENTITY rfc4253 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4253.xml"> | ||||
| <!ENTITY rfc5656 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .5656.xml"> | ||||
| <!ENTITY rfc6234 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .6234.xml"> | ||||
| <!ENTITY rfc7748 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .7748.xml"> | ||||
| <!ENTITY rfc8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8174.xml"> | ||||
| ]> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc toc="yes"?> | ||||
| <?rfc symrefs="yes"?> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <?rfc strict="yes" ?> | ||||
| <?rfc tocdepth="4"?> | ||||
| <?rfc sortrefs="yes" ?> | ||||
| <?rfc subcompact="no" ?> | ||||
| <rfc category="std" ipr="trust200902" | <rfc number="8731" consensus="true" xmlns:xi="http://www.w3.org/2001/XInclude" c | |||
| docName="draft-ietf-curdle-ssh-curves-12"> | ategory="std" | |||
| ipr="trust200902" docName="draft-ietf-curdle-ssh-curves-12" obsoletes="" | ||||
| updates="" submissionType="IETF" xml:lang="en" tocInclude="true" | ||||
| symRefs="true" tocDepth="4" sortRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 2.35.0 --> | ||||
| <front> | <front> | |||
| <title abbrev="Curve25519/448 for SSH"> | <title abbrev="Curve25519/448 for SSH"> | |||
| Secure Shell (SSH) Key Exchange Method using Curve25519 and | Secure Shell (SSH) Key Exchange Method Using Curve25519 and | |||
| Curve448 | Curve448 | |||
| </title> | </title> | |||
| <seriesInfo name="RFC" value="8731" /> | ||||
| <author initials="A." surname="Adamantiadis" fullname="Aris Adamantiadis"> | <author initials="A." surname="Adamantiadis" fullname="Aris Adamantiadis"> | |||
| <organization>libssh</organization> | <organization>libssh</organization> | |||
| <address> | <address> | |||
| <email>aris@badcode.be</email> | <email>aris@badcode.be</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="S." surname="Josefsson" fullname="Simon Josefsson"> | <author initials="S." surname="Josefsson" fullname="Simon Josefsson"> | |||
| <organization>SJD AB</organization> | <organization>SJD AB</organization> | |||
| <address> | <address> | |||
| <email>simon@josefsson.org</email> | <email>simon@josefsson.org</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="M." surname="Baushke" fullname="Mark D. Baushke"> | ||||
| <author initials="M. D." surname="Baushke" fullname="Mark D. Baushke"> | ||||
| <organization>Juniper Networks, Inc.</organization> | <organization>Juniper Networks, Inc.</organization> | |||
| <address> | <address> | |||
| <email>mdb@juniper.net</email> | <email>mdb@juniper.net</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="February" year="2020"/> | ||||
| <date year="2019"/> | ||||
| <workgroup>Internet Engineering Task Force</workgroup> | <workgroup>Internet Engineering Task Force</workgroup> | |||
| <abstract> | <keyword>Elliptic</keyword> | |||
| <keyword>Curve</keyword> | ||||
| <keyword>Diffie</keyword> | ||||
| <keyword>Hellman</keyword> | ||||
| <keyword>ECDH</keyword> | ||||
| <abstract> | ||||
| <t> | <t> | |||
| This document describes the specification for using Curve25519 | This document describes the specification for using Curve25519 | |||
| and Curve448 key exchange methods in the Secure Shell (SSH) | and Curve448 key exchange methods in the Secure Shell (SSH) | |||
| protocol. | protocol. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Introduction"> | <name>Introduction</name> | |||
| <t> | <t> | |||
| Secure Shell (SSH) <xref target="RFC4251"/> is a secure remote | Secure Shell (SSH) <xref target="RFC4251" format="default"/> is a secure remote | |||
| login protocol. The key exchange protocol described in <xref | login protocol. The key exchange protocol described in <xref | |||
| target="RFC4253"/> supports an extensible set of methods. | target="RFC4253" format="default"/> supports an extensible set of | |||
| <xref target="RFC5656"/> defines how elliptic curves are | methods. | |||
| <xref target="RFC5656" format="default"/> defines how elliptic curves ar | ||||
| e | ||||
| integrated into this extensible SSH framework, and this | integrated into this extensible SSH framework, and this | |||
| document reuses the Elliptic Curve Diffie-Hellman (ECDH) key | document reuses the Elliptic Curve Diffie-Hellman (ECDH) key | |||
| exchange protocol messages defined in section 7.1 "ECDH | exchange protocol messages defined in Section | |||
| Message Numbers" <xref target="RFC5656"/>. Other parts of | <xref target="RFC5656" sectionFormat="bare" section="7.1">ECDH Message | |||
| <xref target="RFC5656"/>, such as Elliptic Curve | Numbers</xref> of <xref target="RFC5656"/>. Other parts of | |||
| Menezes-Qu-Vanstone (ECMQV) key agreement, and Elliptic Curve | <xref target="RFC5656" format="default"/>, such as Elliptic Curve | |||
| Digital Signature Algorithm (ECDSA) are not considered in this | Menezes-Qu-Vanstone (ECMQV) key agreement and Elliptic Curve | |||
| Digital Signature Algorithm (ECDSA), are not considered in this | ||||
| document. | document. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This document describes how to implement key exchange based on | This document describes how to implement key exchange based on | |||
| Curve25519 and Curve448 <xref target="RFC7748"/> in SSH. For | Curve25519 and Curve448 <xref target="RFC7748" format="default"/> in SSH | |||
| Curve25519 with SHA-256 <xref target="RFC6234"/> and <xref | . For | |||
| target="SHS"/>, the algorithm described is equivalent to the | Curve25519 with SHA-256 <xref target="RFC6234" format="default"/><xref | |||
| target="SHS" format="default"/>, the algorithm described is equivalent | ||||
| to the | ||||
| privately defined algorithm "curve25519-sha256@libssh.org", | privately defined algorithm "curve25519-sha256@libssh.org", | |||
| which at the time of publication was implemented and widely | which at the time of publication was implemented and widely | |||
| deployed in libssh <xref target="libssh"/> and OpenSSH <xref | deployed in libssh <xref target="libssh" format="default"/> and | |||
| target="OpenSSH"/>. The Curve448 key exchange method is | OpenSSH <xref target="OpenSSH" format="default"/>. The Curve448 key | |||
| similar but uses SHA-512 <xref target="RFC6234"/> and <xref | exchange method is | |||
| target="SHS"/>. | similar but uses SHA-512 <xref target="RFC6234" | |||
| format="default"/><xref target="SHS" format="default"/>. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Requirements Language"> | <name>Requirements Language</name> | |||
| <t> | ||||
| <t> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
| RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| interpreted as described in BCP 14 <xref | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| target="RFC2119"/> <xref target="RFC8174"/> when, and only | be interpreted as | |||
| when, they appear in all capitals, as shown here. | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| </t> | when, and only when, they appear in all capitals, as shown here. | |||
| </t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Key Exchange Methods"> | <name>Key Exchange Methods</name> | |||
| <t> | <t> | |||
| The key exchange procedure is similar to the ECDH method | The key exchange procedure is similar to the ECDH method | |||
| described in chapter 4 of <xref target="RFC5656" />, though | described in <xref target="RFC5656" sectionFormat="of" section="4"/>, th ough | |||
| with a different wire encoding used for public values and the | with a different wire encoding used for public values and the | |||
| final shared secret. Public ephemeral keys are encoded for | final shared secret. Public ephemeral keys are encoded for | |||
| transmission as standard SSH strings. | transmission as standard SSH strings. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The protocol flow, the SSH_MSG_KEX_ECDH_INIT and | The protocol flow, the SSH_MSG_KEX_ECDH_INIT and | |||
| SSH_MSG_KEX_ECDH_REPLY messages, and the structure of the | SSH_MSG_KEX_ECDH_REPLY messages, and the structure of the | |||
| exchange hash are identical to chapter 4 of <xref | exchange hash are identical to <xref target="RFC5656" | |||
| target="RFC5656" />. | sectionFormat="of" section="4"/>. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The method names registered by this document are | The method names registered by this document are | |||
| "curve25519-sha256" and "curve448-sha512". | "curve25519-sha256" and "curve448-sha512". | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The methods are based on Curve25519 and Curve448 scalar | The methods are based on Curve25519 and Curve448 scalar | |||
| multiplication, as described in <xref target="RFC7748"/>. | multiplication, as described in <xref target="RFC7748" format="default"/ >. | |||
| Private and public keys are generated as described therein. | Private and public keys are generated as described therein. | |||
| Public keys are defined as strings of 32 bytes for Curve25519 | Public keys are defined as strings of 32 bytes for Curve25519 | |||
| and 56 bytes for Curve448. | and 56 bytes for Curve448. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Key-agreement schemes "curve25519-sha256" and | The key-agreement schemes "curve25519-sha256" and | |||
| "curve448-sha512" perform the Diffie-Hellman protocol using | "curve448-sha512" perform the Diffie-Hellman protocol using | |||
| the functions X25519 and X448, respectively. Implementations | the functions X25519 and X448, respectively. Implementations | |||
| SHOULD compute these functions using the algorithms described | <bcp14>SHOULD</bcp14> compute these functions using the algorithms descr | |||
| in [RFC7748]. When they do so, implementations MUST check | ibed | |||
| in <xref target="RFC7748" format="default"/>. When they do so, | ||||
| implementations <bcp14>MUST</bcp14> check | ||||
| whether the computed Diffie-Hellman shared secret is the | whether the computed Diffie-Hellman shared secret is the | |||
| all-zero value and abort if so, as described in Section 6 of | all-zero value and abort if so, as described in <xref target="RFC7748" | |||
| [RFC7748]. Alternative implementations of these functions | sectionFormat="of" section="6"/>. | |||
| SHOULD abort when either input forces the shared secret to one | Alternative implementations of these functions | |||
| of a small set of values, as described in Section 7 of | <bcp14>SHOULD</bcp14> abort when either the client or the server input | |||
| [RFC7748]. Clients and servers MUST also abort if | forces the shared secret to one of a small set of values, as | |||
| described in Sections <xref target="RFC7748" section="6" | ||||
| sectionFormat="bare"/> and <xref target="RFC7748" section="7" | ||||
| sectionFormat="bare"/> of <xref target="RFC7748"/>. Clients and servers < | ||||
| bcp14>MUST</bcp14> also abort if | ||||
| the length of the received public keys are not the expected | the length of the received public keys are not the expected | |||
| lengths. An abort for these purposes is defined as a | lengths. An abort for these purposes is defined as a | |||
| disconnect (SSH_MSG_DISCONNECT) of the session and SHOULD use | disconnect (SSH_MSG_DISCONNECT) of the session and <bcp14>SHOULD</bcp14> use | |||
| the SSH_DISCONNECT_KEY_EXCHANGE_FAILED reason for the message | the SSH_DISCONNECT_KEY_EXCHANGE_FAILED reason for the message | |||
| <xref target="IANA-REASON"/>. | <xref target="IANA-REASON" format="default"/>. | |||
| No further validation is required beyond what is described in | No further validation is required beyond what is described in | |||
| <xref target="RFC7748"/>. The derived shared secret is 32 | <xref target="RFC7748" format="default"/>. The derived shared secret is 32 | |||
| bytes when "curve25519-sha256" is used and 56 bytes when | bytes when "curve25519-sha256" is used and 56 bytes when | |||
| "curve448-sha512" is used. The encodings of all values are | "curve448-sha512" is used. The encodings of all values are | |||
| defined in <xref target="RFC7748"/>. The hash used is SHA-256 | defined in <xref target="RFC7748" format="default"/>. The hash used is S HA-256 | |||
| for "curve25519-sha256" and SHA-512 for "curve448-sha512". | for "curve25519-sha256" and SHA-512 for "curve448-sha512". | |||
| </t> | </t> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Shared Secret Encoding"> | <name>Shared Secret Encoding</name> | |||
| <t> | <t> | |||
| The following step differs from <xref target="RFC5656"/>, | The following step differs from <xref target="RFC5656" format="default | |||
| which uses a different conversion. This is not intended to | "/>, | |||
| which uses a different conversion. This is not intended to | ||||
| modify that text generally, but only to be applicable to the | modify that text generally, but only to be applicable to the | |||
| scope of the mechanism described in this document. | scope of the mechanism described in this document. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The shared secret, K, is defined in <xref target="RFC4253"/> | The shared secret, K, is defined in <xref target="RFC4253" format="def | |||
| and <xref target="RFC5656"/> as an integer encoded | ault"/> | |||
| as a multiple precision integer (mpint). Curve25519/448 | and <xref target="RFC5656" format="default"/> as an integer encoded | |||
| outputs a binary string X, which is the 32 or 56 byte point | as a multiple precision integer (mpint). Curve25519/448 | |||
| outputs a binary string X, which is the 32- or 56-byte point | ||||
| obtained by scalar multiplication of the other side's public | obtained by scalar multiplication of the other side's public | |||
| key and the local private key scalar. The 32 or 56 bytes of | key and the local private key scalar. The 32 or 56 bytes of | |||
| X are converted into K by interpreting the octets as an | X are converted into K by interpreting the octets as an | |||
| unsigned fixed-length integer encoded in network byte order. | unsigned fixed-length integer encoded in network byte order. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The integer K is then encoded as an mpint using the process | The mpint K is then encoded using the process | |||
| described in section 5 of <xref target="RFC4251"/> and the | described in <xref target="RFC4251" sectionFormat="of" section="5"/>, | |||
| resulting bytes are fed as described in <xref | and the | |||
| target="RFC4253"/> to the key exchange method's hash | resulting bytes are fed as described in <xref target="RFC4253" format= | |||
| "default"/> to the key exchange method's hash | ||||
| function to generate encryption keys. | function to generate encryption keys. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When performing the X25519 or X448 operations, the integer | When performing the X25519 or X448 operations, the integer | |||
| values there will be encoded into byte strings by doing a | values there will be encoded into byte strings by doing a | |||
| fixed-length unsigned little-endian conversion, per <xref | fixed-length unsigned little-endian conversion, per <xref | |||
| target="RFC7748"/>. It is only later when these byte strings | target="RFC7748" format="default"/>. It is only later when these | |||
| byte strings | ||||
| are then passed to the ECDH function in SSH that the bytes | are then passed to the ECDH function in SSH that the bytes | |||
| are re-interpreted as a fixed-length unsigned big-endian | are reinterpreted as a fixed-length unsigned big-endian | |||
| integer value K, and then later that K value is encoded as a | integer value K, and then later that K value is encoded as a | |||
| variable-length signed "mpint" before being fed to the hash | variable-length signed "mpint" before being fed to the hash | |||
| algorithm used for key generation. The mpint K is then fed | algorithm used for key generation. The mpint K is then fed | |||
| along with other data to the key exchange method's hash | along with other data to the key exchange method's hash | |||
| function to generate encryption keys. | function to generate encryption keys. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section title="Acknowledgements"> | <section numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | ||||
| <t> | ||||
| The "curve25519-sha256" key exchange method is identical to | ||||
| the "curve25519-sha256@libssh.org" key exchange method created | ||||
| by Aris Adamantiadis and implemented in libssh and OpenSSH. | ||||
| </t> | ||||
| <t> | ||||
| Thanks to the following people for review and comments: Denis | ||||
| Bider, Damien Miller, Niels Mller, Matt Johnston, Eric | ||||
| Rescorla, Ron Frederick, Stefan Bhler. | ||||
| </t> | ||||
| </section> | ||||
| <section title="Security Considerations"> | ||||
| <t> | <t> | |||
| The security considerations of <xref target="RFC4251"/>, <xref | The security considerations of <xref target="RFC4251" format="default"/> | |||
| target="RFC5656"/>, and <xref target="RFC7748"/> are | , <xref target="RFC5656" format="default"/>, and <xref target="RFC7748" format=" | |||
| default"/> are | ||||
| inherited. | inherited. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Curve25519 with SHA-256 provides strong (~128 bits) security | Curve25519 with SHA-256 provides strong (~128 bits) security, | |||
| and is efficient on a wide range of architectures, and has | is efficient on a wide range of architectures, and has | |||
| properties that allows better implementation properties | characteristics that allow for better implementation properties | |||
| compared to traditional elliptic curves. Curve448 with SHA-512 | compared to traditional elliptic curves. Curve448 with SHA-512 | |||
| provides stronger (~224 bits) security with similar | provides stronger (~224 bits) security with similar | |||
| implementation properties, but has not received the same | implementation properties; however, it has not received the same | |||
| cryptographic review as Curve25519, and is slower (larger key | cryptographic review as Curve25519. It is also slower (larger key | |||
| material and larger secure hash algorithm), but it is provided | material and larger secure hash algorithm), but it is provided | |||
| as a hedge to combat unforeseen analytical advances against | as a hedge to combat unforeseen analytical advances against | |||
| Curve25519 and SHA-256 due to the larger number of security | Curve25519 and SHA-256 due to the larger number of security | |||
| bits. | bits. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The way the derived binary secret string is encoded into a | The way the derived mpint binary secret string is encoded | |||
| mpint before it is hashed (i.e., adding or removing zero-bytes | before it is hashed (i.e., adding or removing zero bytes | |||
| for encoding) raises the potential for a side-channel attack | for encoding) raises the potential for a side-channel attack, | |||
| which could determine the length of what is hashed. This | which could determine the length of what is hashed. This | |||
| would leak the most significant bit of the derived secret, | would leak the most significant bit of the derived secret | |||
| and/or allow detection of when the most significant bytes are | and/or allow detection of when the most significant bytes are | |||
| zero. For backwards compatibility reasons it was decided not | zero. For backwards-compatibility reasons, it was decided not | |||
| to address this potential problem. | to address this potential problem. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This document provides "curve25519-sha256" as the preferred | This document provides "curve25519-sha256" as the preferred | |||
| choice, but suggests that the "curve448-sha512" is implemented | choice but suggests that the "curve448-sha512" be implemented | |||
| to provide more than 128 bits of security strength should that | to provide more than 128 bits of security strength should that | |||
| become a requirement. | become a requirement. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="iana-considerations" numbered="true" toc="default"> | ||||
| <section anchor="iana-considerations" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t> | <t> | |||
| IANA is requested to add "curve25519-sha256" and | IANA has added "curve25519-sha256" and | |||
| "curve448-sha512" to the "Key Exchange Method Names" registry | "curve448-sha512" to the "Key Exchange Method Names" registry | |||
| for SSH <xref target="IANA-KEX"/> that was created in <xref | for SSH <xref target="IANA-KEX" format="default"/> that was created in | |||
| target="RFC4250">RFC 4250 section 4.10</xref>. | <xref target="RFC4250" sectionFormat="of" section="4.10"/>. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | ||||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4250.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4251.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.4253.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.5656.xml"/> | ||||
| <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | ||||
| ence.RFC.8174.xml"/> | ||||
| <references title="Normative References"> | <reference anchor="SHS" target="https://nvlpubs.nist.gov/nistpubs/FIPS/N | |||
| IST.FIPS.180-4.pdf"> | ||||
| &rfc2119; | <front> | |||
| &rfc4250; | <title>Secure Hash Standard (SHS)</title> | |||
| &rfc4251; | <author> | |||
| &rfc4253; | <organization> | |||
| &rfc5656; | ||||
| &rfc8174; | ||||
| <reference | ||||
| anchor="SHS" | ||||
| target="http://dx.doi.org/10.6028/NIST.FIPS.180-4"> | ||||
| <front> | ||||
| <title>Secure Hash Standard (SHS)</title> | ||||
| <author> | ||||
| <organization>Information Technology Laboratory | ||||
| National Institute of Standards and Technology</organization> | National Institute of Standards and Technology</organization> | |||
| </author> | </author> | |||
| <date month="August" year="2015"/> | <date month="August" year="2015"/> | |||
| </front> | </front> | |||
| </reference> | <seriesInfo name="FIPS PUB" value="180-4"/> | |||
| <seriesInfo name="DOI" value="10.6028/NIST.FIPS.180-4"/> | ||||
| </references> | </reference> | |||
| </references> | ||||
| <references title="Informative References"> | <references> | |||
| <reference | <name>Informative References</name> | |||
| anchor="IANA-KEX" | <reference anchor="IANA-KEX" target="https://www.iana.org/assignments/ss | |||
| target="http://www.iana.org/assignments/ssh-parameters/ssh-parameters.x | h-parameters/"> | |||
| html#ssh-parameters-16"> | <front> | |||
| <front> | <title>Secure Shell (SSH) Protocol Parameters: | |||
| <title>Secure Shell (SSH) Protocol Parameters: | ||||
| Key Exchange Method Names</title> | Key Exchange Method Names</title> | |||
| <author> | <author> | |||
| <organization>Internet Assigned Numbers Authority (IANA) | <organization>IANA | |||
| </organization> | </organization> | |||
| </author> | </author> | |||
| <date month="August" year="2019"/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| <reference | <reference anchor="IANA-REASON" target="https://www.iana.org/assignments | |||
| anchor="IANA-REASON" | /ssh-parameters/"> | |||
| target="http://www.iana.org/assignments/ssh-parameters/ssh-parameters.x | <front> | |||
| html#ssh-parameters-3"> | <title>Secure Shell (SSH) Protocol Parameters: | |||
| <front> | ||||
| <title>Secure Shell (SSH) Protocol Parameters: | ||||
| Disconnection Messages Reason Codes and Descriptions</title> | Disconnection Messages Reason Codes and Descriptions</title> | |||
| <author> | <author> | |||
| <organization>Internet Assigned Numbers Authority (IANA) | <organization>IANA | |||
| </organization> | </organization> | |||
| </author> | </author> | |||
| <date month="August" year="2019"/> | <date/> | |||
| </front> | </front> | |||
| </reference> | </reference> | |||
| &rfc6234; | ||||
| &rfc7748; | ||||
| <reference | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| anchor="libssh" | ence.RFC.6234.xml"/> | |||
| target="https://www.libssh.org/"> | <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/refer | |||
| <front> | ence.RFC.7748.xml"/> | |||
| <title>The SSH Library</title> | ||||
| <author> | ||||
| <organization>libssh</organization> | ||||
| </author> | ||||
| <date month="September" year="2019"/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference | <reference anchor="libssh" target="https://www.libssh.org/"> | |||
| anchor="OpenSSH" | <front> | |||
| target="https://www.openssh.com/"> | <title>The SSH Library</title> | |||
| <front> | <author> | |||
| <title>The OpenSSH Project</title> | <organization>libssh</organization> | |||
| <author> | </author> | |||
| <organization>OpenSSH group of OpenBSD</organization> | <date month="" year=""/> | |||
| </author> | </front> | |||
| <date month="September" year="2019"/> | </reference> | |||
| </front> | ||||
| </reference> | ||||
| <reference anchor="OpenSSH" target="https://www.openssh.com/"> | ||||
| <front> | ||||
| <title>The OpenSSH Project</title> | ||||
| <author> | ||||
| <organization>OpenSSH group of OpenBSD</organization> | ||||
| </author> | ||||
| <date month="" year=""/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | </references> | |||
| <!-- Change Log | <section numbered="false" toc="default"> | |||
| <name>Acknowledgements</name> | ||||
| v01 2017-03-17 MDB Updated draft-josefsson-ssh-curves-04 as | <t> | |||
| draft-ietf-curdle-ssh-curves-01. Fixed | The "curve25519-sha256" key exchange method is identical to | |||
| initials="" for Curve25519. Expanded LNCS. | the "curve25519-sha256@libssh.org" key exchange method created | |||
| Trimmed trailing whitespace. | by <contact fullname="Aris Adamantiadis"/> and implemented in libssh and | |||
| OpenSSH. | ||||
| v02 2017-04-11 MDB Moved to Standards Track, updated Abstract, and | </t> | |||
| updated Introduction per Daniel Migault. | <t> | |||
| Add initils for Mike Hamburg citation. | Thanks to the following people for review and comments: <contact fullnam | |||
| Add an IANA-KEX reference. | e="Denis | |||
| Bider"/>, <contact fullname="Damien Miller"/>, <contact fullname="Niels | ||||
| v03 2017-04-12 MDB Fix NIT RFC4634 -> RFC6234 | Moeller"/>, <contact fullname="Matt Johnston"/>, <contact fullname="Eric | |||
| Rescorla"/>, <contact fullname="Ron Frederick"/>, and <contact fullname= | ||||
| v04 2017-04-12 MDB Use Curve25519 and Curve448 from RFC7748 rather | "Stefan Buehler"/>. | |||
| than reference informative papers on the curves | </t> | |||
| per Sean Turner <sean@sn3rd.com> comments. | </section> | |||
| </back> | ||||
| v05 2017-05-11 MDB Fix grammar per Eric Rescorla <ekr@rtfm.com>. | ||||
| Add clarifications to shared secret encoding per | ||||
| Ron Frederick. Add Ron to Acknowledgements. | ||||
| Add pseudo-code from Stefan Bhler and | ||||
| acknowlegement. | ||||
| v06 2017-05-16 MDB Additional updates suggested by Ron Frederick. | ||||
| v07 2018-01-02 MDB Add requirements language section. | ||||
| v08 2018-06-27 MDB Minor cleanup for expired draft. | ||||
| v09 2019-08-01 MDB Clean up for expired draft. Address ekr comments. | ||||
| v10 2019-08-12 MDB Fix comment from Ron Frederick and Benjamin Kaduk. | ||||
| 2019-08-25 MDB Fix nit from Tobias Gondrom. | ||||
| 2019-08-26 MDB Fix GenArt comments from Christer Holmberg. | ||||
| 2019-09-03 MDB Fix ric Vyncke comments. | ||||
| Remove "Copying conditions" section. | ||||
| v11 2019-09-03 MDB Adopt revised sentence from Ron Fredericks in section 3. | ||||
| 2019-09-04 MDB Fix per Roman Danyliw comments. | ||||
| --> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 79 change blocks. | ||||
| 282 lines changed or deleted | 213 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||