| < draft-ietf-curdle-gss-keyex-sha2-09.txt | draft-ietf-curdle-gss-keyex-sha2-10.txt > | |||
|---|---|---|---|---|
| Internet Engineering Task Force S. Sorce | Internet Engineering Task Force S. Sorce | |||
| Internet-Draft H. Kario | Internet-Draft H. Kario | |||
| Updates: 4462 (if approved) Red Hat, Inc. | Updates: 4462 (if approved) Red Hat, Inc. | |||
| Intended status: Standards Track Jun 11, 2019 | Intended status: Standards Track Jul 22, 2019 | |||
| Expires: December 13, 2019 | Expires: January 23, 2020 | |||
| GSS-API Key Exchange with SHA2 | GSS-API Key Exchange with SHA2 | |||
| draft-ietf-curdle-gss-keyex-sha2-09 | draft-ietf-curdle-gss-keyex-sha2-10 | |||
| Abstract | Abstract | |||
| This document specifies additions and amendments to RFC4462. It | This document specifies additions and amendments to RFC4462. It | |||
| defines a new key exchange method that uses SHA-2 for integrity and | defines a new key exchange method that uses SHA-2 for integrity and | |||
| deprecates weak DH groups. The purpose of this specification is to | deprecates weak DH groups. The purpose of this specification is to | |||
| modernize the cryptographic primitives used by GSS Key Exchanges. | modernize the cryptographic primitives used by GSS Key Exchanges. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on December 13, 2019. | This Internet-Draft will expire on January 23, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 27 ¶ | skipping to change at page 2, line 27 ¶ | |||
| 8.1. New Finite Field DH mechanisms . . . . . . . . . . . . . 10 | 8.1. New Finite Field DH mechanisms . . . . . . . . . . . . . 10 | |||
| 8.2. New Elliptic Curve DH mechanisms . . . . . . . . . . . . 10 | 8.2. New Elliptic Curve DH mechanisms . . . . . . . . . . . . 10 | |||
| 8.3. GSSAPI Delegation . . . . . . . . . . . . . . . . . . . . 10 | 8.3. GSSAPI Delegation . . . . . . . . . . . . . . . . . . . . 10 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 12 | 9.2. Informative References . . . . . . . . . . . . . . . . . 12 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
| 1. Introduction | 1. Introduction | |||
| SSH GSS-API Methods [RFC4462] allows the use of GSSAPI for | SSH GSS-API Methods [RFC4462] allows the use of GSSAPI [RFC2743] for | |||
| authentication and key exchange in SSH. It defines three exchange | authentication and key exchange in SSH. It defines three exchange | |||
| methods all based on DH groups and SHA-1. This document updates | methods all based on DH groups and SHA-1. This document updates | |||
| RFC4462 with new methods intended to support environments that desire | RFC4462 with new methods intended to support environments that desire | |||
| to use the SHA-2 cryptographic hash functions. | to use the SHA-2 cryptographic hash functions. | |||
| 2. Rationale | 2. Rationale | |||
| Due to security concerns with SHA-1 [RFC6194] and with MODP groups | Due to security concerns with SHA-1 [RFC6194] and with MODP groups | |||
| with less than 2048 bits [NIST-SP-800-131Ar1] we propose the use of | with less than 2048 bits [NIST-SP-800-131Ar1] we propose the use of | |||
| the SHA-2 [RFC6234] based hashes with DH group14, group15, group16, | hashes based on SHA-2 [RFC6234] with DH group14, group15, group16, | |||
| group17 and group18 [RFC3526]. Additionally we add support for key | group17 and group18 [RFC3526]. Additionally we add support for key | |||
| exchange based on Elliptic Curve Diffie Hellman with the NIST P-256, | exchange based on Elliptic Curve Diffie Hellman with the NIST P-256, | |||
| P-384 and P-521 as well as the X25519 and X448 curves. Following the | P-384 and P-521 [SEC2v2] as well as the X25519 and X448 [RFC7748] | |||
| practice of [RFC8268] only SHA-256 and SHA-512 hashes are used for DH | curves. Following the practice of [RFC8268] only SHA-256 and SHA-512 | |||
| groups. For NIST curves the same curve-to-hashing algorithm pairing | hashes are used for DH groups. For NIST curves the same curve-to- | |||
| used in [RFC5656] is adopted for consistency. | hashing algorithm pairing used in [RFC5656] is adopted for | |||
| consistency. | ||||
| 3. Document Conventions | 3. Document Conventions | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 >RFC2119 [RFC2119] RFC8174 [RFC8174] when, and only when, they | 14 RFC2119 [RFC2119] RFC8174 [RFC8174] when, and only when, they | |||
| appear in all capitals, as shown here. | appear in all capitals, as shown here. | |||
| 4. New Diffie-Hellman Key Exchange methods | 4. New Diffie-Hellman Key Exchange methods | |||
| This document adopts the same naming convention defined in [RFC4462] | This document adopts the same naming convention defined in [RFC4462] | |||
| to define families of methods that cover any GSS-API mechanism used | to define families of methods that cover any GSS-API mechanism used | |||
| with a specific Diffie-Hellman group and SHA-2 Hash combination. | with a specific Diffie-Hellman group and SHA-2 Hash combination. | |||
| The following new key exchange algorithms are defined: | ||||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| | Key Exchange Method Name | Implementation Recommendations | | | Key Exchange Method Name | Implementation Recommendations | | |||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| | gss-group14-sha256-* | SHOULD/RECOMMENDED | | | gss-group14-sha256-* | SHOULD/RECOMMENDED | | |||
| | gss-group15-sha512-* | MAY/OPTIONAL | | | gss-group15-sha512-* | MAY/OPTIONAL | | |||
| | gss-group16-sha512-* | SHOULD/RECOMMENDED | | | gss-group16-sha512-* | SHOULD/RECOMMENDED | | |||
| | gss-group17-sha512-* | MAY/OPTIONAL | | | gss-group17-sha512-* | MAY/OPTIONAL | | |||
| | gss-group18-sha512-* | MAY/OPTIONAL | | | gss-group18-sha512-* | MAY/OPTIONAL | | |||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| Each key exchange method is implicitly registered by this document. | Table 1: New key exchange algorithms | |||
| The IESG is considered to be the owner of all these key exchange | ||||
| methods; this does NOT imply that the IESG is considered to be the | ||||
| owner of the underlying GSS-API mechanism. | ||||
| Each method in any family of methods specifies GSS-API-authenticated | Each key exchange method prefix is registered by this document. The | |||
| Diffie-Hellman key exchanges as described in Section 2.1 of | IESG is the change controller of all these key exchange methods; this | |||
| [RFC4462]. The method name for each method is the concatenation of | does NOT imply that the IESG is considered to be in control of the | |||
| the family name prefix with the Base64 encoding of the MD5 hash | corresponding GSS-API mechanism. | |||
| [RFC1321] of the ASN.1 DER encoding [ISO-IEC-8825-1] of the | ||||
| underlying GSS-API mechanism's OID. Base64 encoding is described in | ||||
| Section 6.8 of [RFC2045]. | ||||
| Family method refences | Each method in any family of methods (Table 2) specifies GSS-API- | |||
| authenticated Diffie-Hellman key exchanges as described in | ||||
| Section 2.1 of [RFC4462]. The method name for each method (Table 1) | ||||
| is the concatenation of the family name prefix with the Base64 | ||||
| encoding of the MD5 hash [RFC1321] of the ASN.1 DER encoding | ||||
| [ISO-IEC-8825-1] of the corresponding GSS-API mechanism's OID. | ||||
| Base64 encoding is described in Section 4 of [RFC4648]. | ||||
| +---------------------+-------------+-------------+-----------------+ | +---------------------+-------------+-------------+-----------------+ | |||
| | Family Name prefix | Hash | Group | Reference | | | Family Name prefix | Hash | Group | Reference | | |||
| | | Function | | | | | | Function | | | | |||
| +---------------------+-------------+-------------+-----------------+ | +---------------------+-------------+-------------+-----------------+ | |||
| | gss-group14-sha256- | SHA-256 | 2048-bit | Section 3 of | | | gss-group14-sha256- | SHA-256 | 2048-bit | Section 3 of | | |||
| | | | MODP | [RFC3526] | | | | | MODP | [RFC3526] | | |||
| | gss-group15-sha512- | SHA-512 | 3072-bit | Section 4 of | | | gss-group15-sha512- | SHA-512 | 3072-bit | Section 4 of | | |||
| | | | MODP | [RFC3526] | | | | | MODP | [RFC3526] | | |||
| | gss-group16-sha512- | SHA-512 | 4096-bit | Section 5 of | | | gss-group16-sha512- | SHA-512 | 4096-bit | Section 5 of | | |||
| | | | MODP | [RFC3526] | | | | | MODP | [RFC3526] | | |||
| | gss-group17-sha512- | SHA-512 | 6144-bit | Section 6 of | | | gss-group17-sha512- | SHA-512 | 6144-bit | Section 6 of | | |||
| | | | MODP | [RFC3526] | | | | | MODP | [RFC3526] | | |||
| | gss-group18-sha512- | SHA-512 | 8192-bit | Section 7 of | | | gss-group18-sha512- | SHA-512 | 8192-bit | Section 7 of | | |||
| | | | MODP | [RFC3526] | | | | | MODP | [RFC3526] | | |||
| +---------------------+-------------+-------------+-----------------+ | +---------------------+-------------+-------------+-----------------+ | |||
| Table 2: Family method references | ||||
| 5. New Elliptic Curve Diffie-Hellman Key Exchange methods | 5. New Elliptic Curve Diffie-Hellman Key Exchange methods | |||
| In [RFC5656] new SSH key exchange algorithms based on Elliptic Curve | In [RFC5656] new SSH key exchange algorithms based on Elliptic Curve | |||
| Cryptography are introduced. We reuse much of section 4 of [RFC5656] | Cryptography are introduced. We reuse much of section 4 of [RFC5656] | |||
| to define GSS-API-authenticated ECDH Key Exchanges. | to define GSS-API-authenticated ECDH Key Exchanges. | |||
| Additionally we utilize also the curves defined in | Additionally, we also utilize the curves defined in | |||
| [I-D.ietf-curdle-ssh-curves] to complement the 3 classic NIST defined | [I-D.ietf-curdle-ssh-curves] to complement the three classic NIST- | |||
| curves required by [RFC5656]. | defined curves required by [RFC5656]. | |||
| 5.1. Generic GSS-API Key Exchange with ECDH | 5.1. Generic GSS-API Key Exchange with ECDH | |||
| This section reuses much of the scheme defined in Section 2.1 of | This section reuses much of the scheme defined in Section 2.1 of | |||
| [RFC4462] and combines it with the scheme defined in Section 4 of | [RFC4462] and combines it with the scheme defined in Section 4 of | |||
| [RFC5656]; in particular, all checks and verification steps | [RFC5656]; in particular, all checks and verification steps | |||
| prescribed in Section 4 of [RFC5656] apply here as well. | prescribed in Section 4 of [RFC5656] apply here as well. | |||
| Key-agreement schemes ECDHE-Curve25519 and ECDHE-Curve448 perform the | Key-agreement schemes ECDHE-Curve25519 and ECDHE-Curve448 perform the | |||
| Diffie-Helman protocol using the functions X25519 and X448, | Diffie-Helman protocol using the functions X25519 and X448, | |||
| respectively. Implementations SHOULD compute these functions using | respectively. Implementations MUST compute these functions using the | |||
| the algorithms described in [RFC7748]. When they do so, | algorithms described in [RFC7748]. When they do so, implementations | |||
| implementations MUST check whether the computed Diffie-Hellman shared | MUST check whether the computed Diffie-Hellman shared secret is the | |||
| secret is the all-zero value and abort if so, as described in | all-zero value and abort if so, as described in Section 6 of | |||
| Section 6 of [RFC7748]. Alternative implementations of these | [RFC7748]. Alternative implementations of these functions SHOULD | |||
| functions SHOULD abort when either input forces the shared secret to | abort when either input forces the shared secret to one of a small | |||
| one of a small set of values, as discussed in Section 7 of [RFC7748]. | set of values, as discussed in Section 7 of [RFC7748]. | |||
| This section defers to [RFC7546] as the source of information on GSS- | This section defers to [RFC7546] as the source of information on GSS- | |||
| API context establishment operations, Section 3 being the most | API context establishment operations, Section 3 being the most | |||
| relevant. All Security Considerations described in [RFC7546] apply | relevant. All Security Considerations described in [RFC7546] apply | |||
| here too. | here too. | |||
| The parties generate each an ephemeral key pair, according to | The parties each generate an ephemeral key pair, according to | |||
| Section 3.2.1 of [SEC1v2]. Keys are verified upon receipt by the | Section 3.2.1 of [SEC1v2]. Keys are verified upon receipt by the | |||
| parties according to Section 3.2.3.1 of [SEC1v2]. | parties according to Section 3.2.3.1 of [SEC1v2]. | |||
| For NIST Curves the keys use the uncompressed point representation | For NIST Curves the keys use the uncompressed point representation | |||
| and must be converted using the algorithm in Section 2.3.4 of | and MUST be converted using the algorithm in Section 2.3.4 of | |||
| [SEC1v2]. If the conversion fails or the point is trasmitted using | [SEC1v2]. If the conversion fails or the point is transmitted using | |||
| the compressed representation, the key exchange MUST fail. | the compressed representation, the key exchange MUST fail. | |||
| A GSS Context is established according to Section 4 of [RFC5656]; The | A GSS Context is established according to Section 4 of [RFC5656]; The | |||
| client initiates the establishment using GSS_Init_sec_context() and | client initiates the establishment using GSS_Init_sec_context() and | |||
| the server responds to it using GSS_Accept_sec_context(). For the | the server responds to it using GSS_Accept_sec_context(). For the | |||
| negotiation, the client MUST set mutual_req_flag and integ_req_flag | negotiation, the client MUST set mutual_req_flag and integ_req_flag | |||
| to "true". In addition, deleg_req_flag MAY be set to "true" to | to "true". In addition, deleg_req_flag MAY be set to "true" to | |||
| request access delegation, if requested by the user. Since the key | request access delegation, if requested by the user. Since the key | |||
| exchange process authenticates only the host, the setting of | exchange process authenticates only the host, the setting of | |||
| anon_req_flag is immaterial to this process. If the client does not | anon_req_flag is immaterial to this process. If the client does not | |||
| skipping to change at page 5, line 18 ¶ | skipping to change at page 5, line 18 ¶ | |||
| then anon_req_flag SHOULD be set to "true". Otherwise, this flag MAY | then anon_req_flag SHOULD be set to "true". Otherwise, this flag MAY | |||
| be set to true if the client wishes to hide its identity. This key | be set to true if the client wishes to hide its identity. This key | |||
| exchange process will exchange only a single message token once the | exchange process will exchange only a single message token once the | |||
| context has been established, therefore the replay_det_req_flag and | context has been established, therefore the replay_det_req_flag and | |||
| sequence_req_flag SHOULD be set to "false". | sequence_req_flag SHOULD be set to "false". | |||
| The client MUST include its public key with the first message it | The client MUST include its public key with the first message it | |||
| sends to the server during this process; if the server receives more | sends to the server during this process; if the server receives more | |||
| than one key or none at all, the key exchange MUST fail. | than one key or none at all, the key exchange MUST fail. | |||
| During GSS Context estalishment multiple tokens may be exchanged by | During GSS Context establishment multiple tokens may be exchanged by | |||
| the client and the server. When the GSS Context is established | the client and the server. When the GSS Context is established | |||
| (major_status is GSS_S_COMPLETE) the parties check that mutual_state | (major_status is GSS_S_COMPLETE) the parties check that mutual_state | |||
| and integ_avail are both "true". If not the key exchange MUST fail. | and integ_avail are both "true". If not the key exchange MUST fail. | |||
| Once a party receives the peer's public key it proceeds to compute a | Once a party receives the peer's public key it proceeds to compute a | |||
| shared secret K. For NIST Curves the computation is done according | shared secret K. For NIST Curves the computation is done according | |||
| to Section 3.3.1 of [SEC1v2] and the resulting value z is converted | to Section 3.3.1 of [SEC1v2] and the resulting value z is converted | |||
| to the octet string K using the conversion defined in Section 2.3.5 | to the octet string K using the conversion defined in Section 2.3.5 | |||
| of [SEC1v2]. For curve25519 and curve448 the algorithms in Section 6 | of [SEC1v2]. For curve25519 and curve448 the algorithms in Section 6 | |||
| of [RFC7748] are used instead. | of [RFC7748] are used instead. | |||
| skipping to change at page 6, line 40 ¶ | skipping to change at page 6, line 40 ¶ | |||
| Calls GSS_VerifyMIC( MIC, H ) | Calls GSS_VerifyMIC( MIC, H ) | |||
| This is implemented with the following messages: | This is implemented with the following messages: | |||
| The client sends: | The client sends: | |||
| byte SSH_MSG_KEXGSS_INIT | byte SSH_MSG_KEXGSS_INIT | |||
| string output_token (from GSS_Init_sec_context()) | string output_token (from GSS_Init_sec_context()) | |||
| string Q_C, client's ephemeral public key octet string | string Q_C, client's ephemeral public key octet string | |||
| The server may responds with: | The server may respond with: | |||
| byte SSH_MSG_KEXGSS_HOSTKEY | byte SSH_MSG_KEXGSS_HOSTKEY | |||
| string server public host key and certificates (K_S) | string server public host key and certificates (K_S) | |||
| The server sends: | The server sends: | |||
| byte SSH_MSG_KEXGSS_CONTINUE | byte SSH_MSG_KEXGSS_CONTINUE | |||
| string output_token (from GSS_Accept_sec_context()) | string output_token (from GSS_Accept_sec_context()) | |||
| Each time the client receives the message described above, it makes | Each time the client receives the message described above, it makes | |||
| skipping to change at page 8, line 12 ¶ | skipping to change at page 8, line 12 ¶ | |||
| GSS_S_COMPLETE, a protocol error has occurred and the key exchange | GSS_S_COMPLETE, a protocol error has occurred and the key exchange | |||
| MUST fail. | MUST fail. | |||
| If the client receives a SSH_MSG_KEXGSS_COMPLETE message and a call | If the client receives a SSH_MSG_KEXGSS_COMPLETE message and a call | |||
| to GSS_Init_sec_context() does not result in a major_status code of | to GSS_Init_sec_context() does not result in a major_status code of | |||
| GSS_S_COMPLETE, a protocol error has occurred and the key exchange | GSS_S_COMPLETE, a protocol error has occurred and the key exchange | |||
| MUST fail. | MUST fail. | |||
| 5.2. ECDH Key Exchange Methods | 5.2. ECDH Key Exchange Methods | |||
| The following new key exchange methods are defined: | ||||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| | Key Exchange Method Name | Implementation Recommendations | | | Key Exchange Method Name | Implementation Recommendations | | |||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| | gss-nistp256-sha256-* | SHOULD/RECOMMENDED | | | gss-nistp256-sha256-* | SHOULD/RECOMMENDED | | |||
| | gss-nistp384-sha384-* | MAY/OPTIONAL | | | gss-nistp384-sha384-* | MAY/OPTIONAL | | |||
| | gss-nistp521-sha512-* | MAY/OPTIONAL | | | gss-nistp521-sha512-* | MAY/OPTIONAL | | |||
| | gss-curve25519-sha256-* | SHOULD/RECOMMENDED | | | gss-curve25519-sha256-* | SHOULD/RECOMMENDED | | |||
| | gss-curve448-sha512-* | MAY/OPTIONAL | | | gss-curve448-sha512-* | MAY/OPTIONAL | | |||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| Each key exchange method is implicitly registered by this document. | Table 3: New key exchange methods | |||
| The IESG is considered to be the owner of all these key exchange | ||||
| methods; this does NOT imply that the IESG is considered to be the | ||||
| owner of the underlying GSS-API mechanism. | ||||
| Each method in any family of methods specifies GSS-API-authenticated | Each key exchange method prefix is registered by this document. The | |||
| Elliptic Curve Diffie-Hellman key exchanges as described in | IESG is the change controller of all these key exchange methods; this | |||
| Section 5.1. The method name for each method is the concatenation of | does NOT imply that the IESG is considered to be in control of the | |||
| the family method name with the Base64 encoding of the MD5 hash | corresponding GSS-API mechanism. | |||
| [RFC1321] of the ASN.1 DER encoding [ISO-IEC-8825-1] of the | ||||
| underlying GSS-API mechanism's OID. Base64 encoding is described in | ||||
| Section 6.8 of [RFC2045]. | ||||
| Family method refences | Each method in any family of methods (Table 4) specifies GSS-API- | |||
| authenticated Elliptic Curve Diffie-Hellman key exchanges as | ||||
| described in Section 5.1. The method name for each method (Table 3) | ||||
| is the concatenation of the family method name with the Base64 | ||||
| encoding of the MD5 hash [RFC1321] of the ASN.1 DER encoding | ||||
| [ISO-IEC-8825-1] of the corresponding GSS-API mechanism's OID. | ||||
| Base64 encoding is described in Section 4 of [RFC4648]. | ||||
| +------------------------+----------+---------------+---------------+ | +------------------------+----------+---------------+---------------+ | |||
| | Family Name prefix | Hash | Parameters / | Definition | | | Family Name prefix | Hash | Parameters / | Definition | | |||
| | | Function | Function Name | | | | | Function | Function Name | | | |||
| +------------------------+----------+---------------+---------------+ | +------------------------+----------+---------------+---------------+ | |||
| | gss-nistp256-sha256- | SHA-256 | secp256r1 | Section 2.4.2 | | | gss-nistp256-sha256- | SHA-256 | secp256r1 | Section 2.4.2 | | |||
| | | | | of [SEC2v2] | | | | | | of [SEC2v2] | | |||
| | gss-nistp384-sha384- | SHA-384 | secp384r1 | Section 2.5.1 | | | gss-nistp384-sha384- | SHA-384 | secp384r1 | Section 2.5.1 | | |||
| | | | | of [SEC2v2] | | | | | | of [SEC2v2] | | |||
| | gss-nistp521-sha512- | SHA-512 | secp521r1 | Section 2.6.1 | | | gss-nistp521-sha512- | SHA-512 | secp521r1 | Section 2.6.1 | | |||
| | | | | of [SEC2v2] | | | | | | of [SEC2v2] | | |||
| | gss-curve25519-sha256- | SHA-256 | X22519 | Section 5 of | | | gss-curve25519-sha256- | SHA-256 | X22519 | Section 5 of | | |||
| | | | | [RFC7748] | | | | | | [RFC7748] | | |||
| | gss-curve448-sha512- | SHA-512 | X448 | Section 5 of | | | gss-curve448-sha512- | SHA-512 | X448 | Section 5 of | | |||
| | | | | [RFC7748] | | | | | | [RFC7748] | | |||
| +------------------------+----------+---------------+---------------+ | +------------------------+----------+---------------+---------------+ | |||
| Table 4: Family method refences | ||||
| 6. Deprecated Algorithms | 6. Deprecated Algorithms | |||
| Because they have small key lengths and are no longer strong in the | Because they have small key lengths and are no longer strong in the | |||
| face of brute-force attacks, the algorithms in the following table | face of brute-force attacks, the algorithms in the following table | |||
| are considered deprecated and SHOULD NOT be used. | are considered deprecated and SHOULD NOT be used. | |||
| Deprecated Algorithms | Deprecated Algorithms | |||
| +--------------------------+--------------------------------+ | +--------------------------+--------------------------------+ | |||
| | Key Exchange Method Name | Implementation Recommendations | | | Key Exchange Method Name | Implementation Recommendations | | |||
| skipping to change at page 10, line 47 ¶ | skipping to change at page 10, line 47 ¶ | |||
| Although a new cryptographic primitive is used with these methods the | Although a new cryptographic primitive is used with these methods the | |||
| actual key exchange closely follows the key exchange defined in | actual key exchange closely follows the key exchange defined in | |||
| [RFC5656]; therefore all the original Security Considerations as well | [RFC5656]; therefore all the original Security Considerations as well | |||
| as those expressed in [RFC5656] apply. | as those expressed in [RFC5656] apply. | |||
| 8.3. GSSAPI Delegation | 8.3. GSSAPI Delegation | |||
| Some GSSAPI mechanisms can act on a request to delegate credentials | Some GSSAPI mechanisms can act on a request to delegate credentials | |||
| to the target host when the deleg_req_flag is set. In this case, | to the target host when the deleg_req_flag is set. In this case, | |||
| extra care must be taken to ensure that the acceptor being | extra care must be taken to ensure that the acceptor being | |||
| authenticated matches the target the user intended. Some mechanisms | authenticated matches the target the user intended. Some mechanism | |||
| implementations (like commonly used krb5 libraries) may use insecure | implementations (such as commonly used krb5 libraries) may use | |||
| DNS resolution to canonicalize the target name; in these cases | insecure DNS resolution to canonicalize the target name; in these | |||
| spoofing a DNS response that points to an attacker-controlled machine | cases spoofing a DNS response that points to an attacker-controlled | |||
| may results in the user silently delegating credentials to the | machine may result in the user silently delegating credentials to the | |||
| attacker, who can then impersonate the user at will. | attacker, who can then impersonate the user at will. | |||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [I-D.ietf-curdle-ssh-curves] | [I-D.ietf-curdle-ssh-curves] | |||
| Adamantiadis, A., Josefsson, S., and M. Baushke, "Secure | Adamantiadis, A., Josefsson, S., and M. Baushke, "Secure | |||
| Shell (SSH) Key Exchange Method using Curve25519 and | Shell (SSH) Key Exchange Method using Curve25519 and | |||
| Curve448", draft-ietf-curdle-ssh-curves-08 (work in | Curve448", draft-ietf-curdle-ssh-curves-08 (work in | |||
| progress), June 2018. | progress), June 2018. | |||
| [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, | [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, | |||
| DOI 10.17487/RFC1321, April 1992, | DOI 10.17487/RFC1321, April 1992, | |||
| <https://www.rfc-editor.org/info/rfc1321>. | <https://www.rfc-editor.org/info/rfc1321>. | |||
| [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail | ||||
| Extensions (MIME) Part One: Format of Internet Message | ||||
| Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996, | ||||
| <https://www.rfc-editor.org/info/rfc2045>. | ||||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC2743] Linn, J., "Generic Security Service Application Program | ||||
| Interface Version 2, Update 1", RFC 2743, | ||||
| DOI 10.17487/RFC2743, January 2000, | ||||
| <https://www.rfc-editor.org/info/rfc2743>. | ||||
| [RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) | [RFC3526] Kivinen, T. and M. Kojo, "More Modular Exponential (MODP) | |||
| Diffie-Hellman groups for Internet Key Exchange (IKE)", | Diffie-Hellman groups for Internet Key Exchange (IKE)", | |||
| RFC 3526, DOI 10.17487/RFC3526, May 2003, | RFC 3526, DOI 10.17487/RFC3526, May 2003, | |||
| <https://www.rfc-editor.org/info/rfc3526>. | <https://www.rfc-editor.org/info/rfc3526>. | |||
| [RFC4462] Hutzelman, J., Salowey, J., Galbraith, J., and V. Welch, | [RFC4462] Hutzelman, J., Salowey, J., Galbraith, J., and V. Welch, | |||
| "Generic Security Service Application Program Interface | "Generic Security Service Application Program Interface | |||
| (GSS-API) Authentication and Key Exchange for the Secure | (GSS-API) Authentication and Key Exchange for the Secure | |||
| Shell (SSH) Protocol", RFC 4462, DOI 10.17487/RFC4462, May | Shell (SSH) Protocol", RFC 4462, DOI 10.17487/RFC4462, May | |||
| 2006, <https://www.rfc-editor.org/info/rfc4462>. | 2006, <https://www.rfc-editor.org/info/rfc4462>. | |||
| [RFC4648] Josefsson, S., "The Base16, Base32, and Base64 Data | ||||
| Encodings", RFC 4648, DOI 10.17487/RFC4648, October 2006, | ||||
| <https://www.rfc-editor.org/info/rfc4648>. | ||||
| [RFC5656] Stebila, D. and J. Green, "Elliptic Curve Algorithm | [RFC5656] Stebila, D. and J. Green, "Elliptic Curve Algorithm | |||
| Integration in the Secure Shell Transport Layer", | Integration in the Secure Shell Transport Layer", | |||
| RFC 5656, DOI 10.17487/RFC5656, December 2009, | RFC 5656, DOI 10.17487/RFC5656, December 2009, | |||
| <https://www.rfc-editor.org/info/rfc5656>. | <https://www.rfc-editor.org/info/rfc5656>. | |||
| [RFC7546] Kaduk, B., "Structure of the Generic Security Service | [RFC7546] Kaduk, B., "Structure of the Generic Security Service | |||
| (GSS) Negotiation Loop", RFC 7546, DOI 10.17487/RFC7546, | (GSS) Negotiation Loop", RFC 7546, DOI 10.17487/RFC7546, | |||
| May 2015, <https://www.rfc-editor.org/info/rfc7546>. | May 2015, <https://www.rfc-editor.org/info/rfc7546>. | |||
| [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | [RFC7748] Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves | |||
| End of changes. 27 change blocks. | ||||
| 64 lines changed or deleted | 69 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||