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/ |