Skip to main content

IETF conflict review for draft-gajcowski-cnsa-ssh-profile
conflict-review-gajcowski-cnsa-ssh-profile-00

Document history

Date Rev. By Action
2022-01-14
00 Cindy Morgan
The following approval message was sent
From: The IESG
To: Adrian Farrel ,
    draft-gajcowski-cnsa-ssh-profile@ietf.org,
    rfc-ise@rfc-editor.org
Cc: IETF-Announce ,
    …
The following approval message was sent
From: The IESG
To: Adrian Farrel ,
    draft-gajcowski-cnsa-ssh-profile@ietf.org,
    rfc-ise@rfc-editor.org
Cc: IETF-Announce ,
    The IESG ,
    iana@iana.org
Subject: Results of IETF-conflict review for draft-gajcowski-cnsa-ssh-profile-07

The IESG has completed a review of draft-gajcowski-cnsa-ssh-profile-07
consistent with RFC5742.

The IESG has no problem with the publication of 'Commercial National Security
Algorithm (CNSA) Suite Cryptography for Secure Shell (SSH)'
as an Informational RFC.

The IESG has concluded that this work is related to IETF work done in WG
CURDLE, but this relationship does not prevent publishing.

The IESG would also like the Independent Submissions Editor to review the
comments in the datatracker related to this document and determine whether or
not they merit incorporation into the document. Comments may exist in both
the ballot and the history log.

The IESG review is documented at:
https://datatracker.ietf.org/doc/conflict-review-gajcowski-cnsa-ssh-profile/

A URL of the reviewed Internet Draft is:
https://datatracker.ietf.org/doc/draft-gajcowski-cnsa-ssh-profile/

The process for such documents is described at
https://www.rfc-editor.org/indsubs.html

Thank you,

The IESG Secretary



2022-01-14
00 Cindy Morgan IESG has approved the conflict review response
2022-01-14
00 Cindy Morgan Closed "Approve" ballot
2022-01-14
00 Cindy Morgan Conflict Review State changed to Approved No Problem - announcement sent from Approved No Problem - announcement to be sent
2022-01-14
00 Cindy Morgan Conflict Review State changed to Approved No Problem - announcement to be sent from IESG Evaluation
2022-01-14
00 Benjamin Kaduk
[Ballot comment]
The updates in the -07 of the draft have eliminated the concerns I had
about whether this is the correct conflict-review response.

My …
[Ballot comment]
The updates in the -07 of the draft have eliminated the concerns I had
about whether this is the correct conflict-review response.

My previous comments (on the draft) are retained below, which were, IIRC,
made against the -05 of the draft and are likely stale.

The following comments are on the draft itself, not the conflict-review
response.

Section 4

  Several RFCs have documented how each of the CNSA components are to
  be integrated into Secure Shell (SSH):

This threw me for a bit, as I was expecting a "CNSA component" to be a
tangible module or something; would it be easier to just refer to "how each
of the CNSA algorithms are used in Secure Shell (SSH)"?

  While the approved CNSA hash function for all purposes is SHA-384, as
  defined in [FIPS180], commercial products are more likely to
  incorporate the SHA-512 (sha2-512) based kex algorithms and public
  key algorithms defined in [RFC8268] and [RFC8332].  Therefore, the
  SHA-384 based kex and public key algorithms should be used; SHA-512
  based algorithms may be used.  Any hash algorithm other than SHA-384
  or SHA-512 MUST NOT be used.

I would consider mentioning where the SHA-384-based methods are defined, to
provide a more clear comparison ("more likely to than ", vs "more
likely to
").

  Use of AES GCM shall meet the requirements set forth in SP 800-38D
  with the additional requirements that all 16 octets of the
  authentication tag MUST be used as the SSH data integrity value and

I see that this is an additional requirement compared to SP 800-38D, but it
is not a new requirement compared to
RFC 5647, which clearly states that
"[a]ll implementations of AES-GCM secure shell MUST use the full 16-octet
Authentication Tag".  So perhaps the "MUST" could be lowercase and a
reference to RFC 5647 being what imposes this requirement could be added.

Section 5

  This section specifies the use of CNSA components in the Secure Shell
  algorithm negotiation, key agreement, server authentication, and user
  authentication.

[same comment about "component"]

Section 10

  The security considerations of [RFC4251], [RFC4252], [RFC4253],
  [RFC5647], and [RFC5656] apply.

Why list 5647 and 5656 but not 8268 or 8332?

NITS

Section 5

  One of the following sets MUST be used for the encryption_algorithms
  and mac_algorithms name-lists.  Either set MAY be used for each
  direction (i.e. client_to_server, server_to_client) but the result
  must be the same (i.e. use of AEAD_AES_256_GCM).  This option MUST be
  used.

I suggest rephrasing around "this option MUST be used"; the current
statement is pretty unclear about what exactly is required.  Both
encryption_algorithm and mac_algorithm name-lists appear to be required
parts of the SSH_MSG_KEXINIT packet, so I don't think the statement would
make sense as a requirement to send something in either/both fields.

Section 7.2

  authenticate using passwords.  Other methods of authentication MUST
  not be used, including "none".

This would probably read better with the BCP 14 "MUST NOT" keyword.

  When authenticating with public key, the following public key
  algorithms MUST be used:

Probably "one of the following" is better; IIUC it's hard to use both
simultaneously.
2022-01-14
00 Benjamin Kaduk [Ballot Position Update] Position for Benjamin Kaduk has been changed to No Objection from Discuss
2022-01-14
00 Roman Danyliw
[Ballot comment]
(Updated ballot)

==[ IESG
I have chosen this conflict review because this document is primarily profiling which collection of algorithms are permitted to …
[Ballot comment]
(Updated ballot)

==[ IESG
I have chosen this conflict review because this document is primarily profiling which collection of algorithms are permitted to be used by SSH.  It is a more restrictive set that those already allowed by the referenced RFCs.

==[ ISE/Authors

Thanks for incorporating the suggestions made in my previous ballot in -06.
2022-01-14
00 Roman Danyliw Ballot comment text updated for Roman Danyliw
2022-01-06
00 John Scudder [Ballot Position Update] New position, No Objection, has been recorded for John Scudder
2022-01-05
00 Erik Kline [Ballot Position Update] New position, No Objection, has been recorded for Erik Kline
2022-01-05
00 Benjamin Kaduk
[Ballot discuss]
I think we should have some discussion of whether this "related, but does
not prevent publishing" conflict-review response is the correct one.

In …
[Ballot discuss]
I think we should have some discussion of whether this "related, but does
not prevent publishing" conflict-review response is the correct one.

In particular, I want to look at the use of implicit MAC algorithm when
using an AEAD encryption algorithm (AES-GCM).  While Section 5 does well and
clearly presents two options of using the RFC 5647 procedures or using the
aes256-gcm@openssh.com procedures, with the latter giving the "implicit MAC"
treatment, the portrayal in Section 4 is not quite so easy to unpack.  In
particular, it says that "Use of AES-GCM in SSH should be done as described
in RFC 5647, with the exception that AES-GCM need not be listed as the MAC
algorithm as its use is implicit (such as done in aes256-gcm@openssh.com)."
This seems to say that AES-GCM need not be listed as the MAC algorithm
generically, with its use always being implicit, in contrast to what I
believe to be the case, that it is only implicitly engaged when using
specifically the aes256-gcm@openssh.com encryption algorithm.  If this text
instead said "need not be listed as the MAC algorithm *when* its use is
implicit", that would not seem problematic to me.  (Recall that RFC 5647 has
MUST-level requirement that if AES-GCM is used as one of encryption or MAC
algorithm, it must be used for the other as well.)
2022-01-05
00 Benjamin Kaduk
[Ballot comment]
The following comments are on the draft itself, not the conflict-review
response.

Section 4

  Several RFCs have documented how each of the …
[Ballot comment]
The following comments are on the draft itself, not the conflict-review
response.

Section 4

  Several RFCs have documented how each of the CNSA components are to
  be integrated into Secure Shell (SSH):

This threw me for a bit, as I was expecting a "CNSA component" to be a
tangible module or something; would it be easier to just refer to "how each
of the CNSA algorithms are used in Secure Shell (SSH)"?

  While the approved CNSA hash function for all purposes is SHA-384, as
  defined in [FIPS180], commercial products are more likely to
  incorporate the SHA-512 (sha2-512) based kex algorithms and public
  key algorithms defined in [RFC8268] and [RFC8332].  Therefore, the
  SHA-384 based kex and public key algorithms should be used; SHA-512
  based algorithms may be used.  Any hash algorithm other than SHA-384
  or SHA-512 MUST NOT be used.

I would consider mentioning where the SHA-384-based methods are defined, to
provide a more clear comparison ("more likely to than ", vs "more
likely to
").

  Use of AES GCM shall meet the requirements set forth in SP 800-38D
  with the additional requirements that all 16 octets of the
  authentication tag MUST be used as the SSH data integrity value and

I see that this is an additional requirement compared to SP 800-38D, but it
is not a new requirement compared to
RFC 5647, which clearly states that
"[a]ll implementations of AES-GCM secure shell MUST use the full 16-octet
Authentication Tag".  So perhaps the "MUST" could be lowercase and a
reference to RFC 5647 being what imposes this requirement could be added.

Section 5

  This section specifies the use of CNSA components in the Secure Shell
  algorithm negotiation, key agreement, server authentication, and user
  authentication.

[same comment about "component"]

Section 10

  The security considerations of [RFC4251], [RFC4252], [RFC4253],
  [RFC5647], and [RFC5656] apply.

Why list 5647 and 5656 but not 8268 or 8332?

NITS

Section 5

  One of the following sets MUST be used for the encryption_algorithms
  and mac_algorithms name-lists.  Either set MAY be used for each
  direction (i.e. client_to_server, server_to_client) but the result
  must be the same (i.e. use of AEAD_AES_256_GCM).  This option MUST be
  used.

I suggest rephrasing around "this option MUST be used"; the current
statement is pretty unclear about what exactly is required.  Both
encryption_algorithm and mac_algorithm name-lists appear to be required
parts of the SSH_MSG_KEXINIT packet, so I don't think the statement would
make sense as a requirement to send something in either/both fields.

Section 7.2

  authenticate using passwords.  Other methods of authentication MUST
  not be used, including "none".

This would probably read better with the BCP 14 "MUST NOT" keyword.

  When authenticating with public key, the following public key
  algorithms MUST be used:

Probably "one of the following" is better; IIUC it's hard to use both
simultaneously.
2022-01-05
00 Benjamin Kaduk [Ballot Position Update] New position, Discuss, has been recorded for Benjamin Kaduk
2022-01-05
00 Alvaro Retana [Ballot Position Update] New position, No Objection, has been recorded for Alvaro Retana
2022-01-05
00 Robert Wilton [Ballot Position Update] New position, No Objection, has been recorded for Robert Wilton
2022-01-05
00 Éric Vyncke [Ballot Position Update] New position, No Objection, has been recorded for Éric Vyncke
2022-01-04
00 Roman Danyliw
[Ballot comment]
(Updated ballot text to fix incorrect reference -- s/RFC1918/RFC2119/)

This note constitutes a ballot position on the IESG conflict review response
For draft-gajcowski-cnsa-ssh-profile-05.  …
[Ballot comment]
(Updated ballot text to fix incorrect reference -- s/RFC1918/RFC2119/)

This note constitutes a ballot position on the IESG conflict review response
For draft-gajcowski-cnsa-ssh-profile-05.  RFC 5742 requires the IESG to
review documents submitted to the RFC Editor by the IRTF and ISE, and to
produce one of a fixed set of conflict-review responses.  The response I
have selected is visible in the datatracker page for this conflict review.
In this case, the response is number 2, "The IESG has concluded that this
work is related to IETF work done in WG , but this relationship does not
prevent publishing.".  However, that response is not final until approved by
the IESG as a whole, and other IESG members will likely produce ballot
comments on this conflict-review as well.  Since the primary purpose of this
IESG balloting activity is to agree on the conflict-review response, I will
include remarks in the "IESG" section below that are directed at the other
IESG members and attempt to clarify why I chose this option for the
response, as well as laying out any other potentially relevant factors that
might influence the IESG's decision (even if they do not directly support
the conclusion that I reached).  That said, the remarks in the "IESG"
section may be of interest to the authors, if they indicate changes that
could be made to the document that might result in a different
conflict-review response from the IESG.  Please note that in preparing the
IESG conflict-review response, I am tasked only with determining whether
IETF process is being followed, and am not tasked with assessing the quality
or content of the document in other ways.  However, because I had to read
the draft in question in order to decide what conflict-review response to
propose, I also include (under the "COMMENT" heading) some remarks about the
document itself; these comments are directed at the authors and ISE, but
have no formal standing. 

==[ IESG
I have chosen this conflict review because this document is primarily profiling which collection of algorithms are permitted to be used by SSH.  It is a more restrictive set that those already allowed by the referenced RFCs.

==[ COMMENTS
** This profile restricts algorithm choices in the following ways:

(a) Section 4.  “Any hash algorithm other than SHA-384 or SHA-512 MUST NOT be used.”

(b) Section 5.  “The result MUST be one of the following kex_algorithms or the connection MUST be terminated. … ecdh-sha2-nistp384 [RFC5656] diffie-hellman-group15-sha512 [RFC8268] diffie-hellman-group16-sha512 [RFC8268]”
However, Section 3.2.2. of draft-ietf-curdle-ssh-kex-sha2-20 (in the RFCed queue) says that “diffie-hellman-group14-sha256” is a “MUST” to implement.  The use of SHA256 would violate (a) and this is not one of the required kex_algorithms per the list in (b).

The text would benefit from stating that the MTI for SSH isn’t being changed (CNSA compliment SSH implementations still need to support “diffie-hellman-group14-sha256”), but that algorithm must not be used.

I would recommend adding text to Section 5 to the effect of:

OLD
The result MUST be one of the
  following kex_algorithms or the connection MUST be terminated.

NEW
While draft-ietf-curdle-ssh-kex-sha2-20 establishes general guidance on the capabilities of SSH implementations and requires support for “diffie-hellman-group14-sha256”, it MUST NOT be used.  The result MUST be one of the following kex_algorithms or the connection MUST be terminated.

** Abstract and Section 1.
  It applies to the capabilities, configuration, and
  operation of all components of US National Security Systems that
  employ IPsec. 

The IPsec reference seems like a typo – s/IPsec/SSH/.

** Section 3.
(a) “Recently, cryptographic transition plans have become overshadowed by the prospect of the development of a cryptographically-relevant quantum computer.”

(b) “NSA has established the Commercial National Security Algorithm (CNSA) Suite to provide vendors and IT users near- term flexibility in meeting their information assurance interoperability requirements.”

(c) “The purpose behind this flexibility is to avoid vendors and customers making two major transitions in a relatively short timeframe, as we anticipate a need to shift to quantum-resistant cryptography in the near future.”

The intent here isn’t clear. (a) makes a statement about PQC.  (b) speaks vaguely about near-term requirements.  (c) talks about avoiding to transitions.

Is (b) suggesting this profile is providing guidance irrespective of PQC?

Is (c) suggesting that this profile meets the need of both quantum resistance and needed evolution irrespective of PQC?

** RFC2119 key word usage:
-- Section 4.  “Therefore, the SHA-384 based kex and public key algorithms should be used; SHA-512 based algorithms may be used.”  Should RFC2119 key words be used here “SHOULD” for SHA-384 and “MAY” for SHA-512?

-- Section 4. “CNSA implementations must ensure the counter ...”.  Should s/must/MUST/?
2022-01-04
00 Roman Danyliw Ballot comment text updated for Roman Danyliw
2022-01-04
00 Roman Danyliw
[Ballot comment]
This note constitutes a ballot position on the IESG conflict review response
For draft-gajcowski-cnsa-ssh-profile-05.  RFC 5742 requires the IESG to
review documents submitted …
[Ballot comment]
This note constitutes a ballot position on the IESG conflict review response
For draft-gajcowski-cnsa-ssh-profile-05.  RFC 5742 requires the IESG to
review documents submitted to the RFC Editor by the IRTF and ISE, and to
produce one of a fixed set of conflict-review responses.  The response I
have selected is visible in the datatracker page for this conflict review.
In this case, the response is number 2, "The IESG has concluded that this
work is related to IETF work done in WG , but this relationship does not
prevent publishing.".  However, that response is not final until approved by
the IESG as a whole, and other IESG members will likely produce ballot
comments on this conflict-review as well.  Since the primary purpose of this
IESG balloting activity is to agree on the conflict-review response, I will
include remarks in the "IESG" section below that are directed at the other
IESG members and attempt to clarify why I chose this option for the
response, as well as laying out any other potentially relevant factors that
might influence the IESG's decision (even if they do not directly support
the conclusion that I reached).  That said, the remarks in the "IESG"
section may be of interest to the authors, if they indicate changes that
could be made to the document that might result in a different
conflict-review response from the IESG.  Please note that in preparing the
IESG conflict-review response, I am tasked only with determining whether
IETF process is being followed, and am not tasked with assessing the quality
or content of the document in other ways.  However, because I had to read
the draft in question in order to decide what conflict-review response to
propose, I also include (under the "COMMENT" heading) some remarks about the
document itself; these comments are directed at the authors and ISE, but
have no formal standing. 

==[ IESG
I have chosen this conflict review because this document is primarily profiling which collection of algorithms are permitted to be used by SSH.  It is a more restrictive set that those already allowed by the referenced RFCs.

==[ COMMENTS
** This profile restricts algorithm choices in the following ways:

(a) Section 4.  “Any hash algorithm other than SHA-384 or SHA-512 MUST NOT be used.”

(b) Section 5.  “The result MUST be one of the following kex_algorithms or the connection MUST be terminated. … ecdh-sha2-nistp384 [RFC5656] diffie-hellman-group15-sha512 [RFC8268] diffie-hellman-group16-sha512 [RFC8268]”
However, Section 3.2.2. of draft-ietf-curdle-ssh-kex-sha2-20 (in the RFCed queue) says that “diffie-hellman-group14-sha256” is a “MUST” to implement.  The use of SHA256 would violate (a) and this is not one of the required kex_algorithms per the list in (b).

The text would benefit from stating that the MTI for SSH isn’t being changed (CNSA compliment SSH implementations still need to support “diffie-hellman-group14-sha256”), but that algorithm must not be used.

I would recommend adding text to Section 5 to the effect of:

OLD
The result MUST be one of the
  following kex_algorithms or the connection MUST be terminated.

NEW
While draft-ietf-curdle-ssh-kex-sha2-20 establishes general guidance on the capabilities of SSH implementations and requires support for “diffie-hellman-group14-sha256”, it MUST NOT be used.  The result MUST be one of the following kex_algorithms or the connection MUST be terminated.

** Abstract and Section 1.
  It applies to the capabilities, configuration, and
  operation of all components of US National Security Systems that
  employ IPsec. 

The IPsec reference seems like a typo – s/IPsec/SSH/.

** Section 3.
(a) “Recently, cryptographic transition plans have become overshadowed by the prospect of the development of a cryptographically-relevant quantum computer.”

(b) “NSA has established the Commercial National Security Algorithm (CNSA) Suite to provide vendors and IT users near- term flexibility in meeting their information assurance interoperability requirements.”

(c) “The purpose behind this flexibility is to avoid vendors and customers making two major transitions in a relatively short timeframe, as we anticipate a need to shift to quantum-resistant cryptography in the near future.”

The intent here isn’t clear. (a) makes a statement about PQC.  (b) speaks vaguely about near-term requirements.  (c) talks about avoiding to transitions.

Is (b) suggesting this profile is providing guidance irrespective of PQC?

Is (c) suggesting that this profile meets the need of both quantum resistance and needed evolution irrespective of PQC?

** RFC1918 key word usage:
-- Section 4.  “Therefore, the SHA-384 based kex and public key algorithms should be used; SHA-512 based algorithms may be used.”  Should RFC1918 key words be used here “SHOULD” for SHA-384 and “MAY” for SHA-512?

-- Section 4. “CNSA implementations must ensure the counter ...”.  Should s/must/MUST/?
2022-01-04
00 Roman Danyliw Ballot comment text updated for Roman Danyliw
2022-01-04
00 Roman Danyliw [Ballot Position Update] New position, Yes, has been recorded for Roman Danyliw
2022-01-04
00 Roman Danyliw Created "Approve" ballot
2022-01-04
00 Roman Danyliw Conflict Review State changed to IESG Evaluation from AD Review
2022-01-04
00 Roman Danyliw New version available: conflict-review-gajcowski-cnsa-ssh-profile-00.txt
2021-12-15
00 Cindy Morgan Telechat date has been changed to 2022-01-06 from 2021-12-16
2021-12-08
00 Lars Eggert Conflict Review State changed to AD Review from Needs Shepherd
2021-12-07
00 Roman Danyliw Shepherding AD changed to Roman Danyliw
2021-12-06
00 Cindy Morgan Placed on agenda for telechat - 2021-12-16
2021-12-04
00 Adrian Farrel IETF conflict review requested