TD0446: Missing selections for SSH
Publication Date
2019.10.18
Protection Profiles
PP_SSH_EP_v1.0
Other References
FCS_SSHC_EXT.1.3, FCS_SSHC_EXT.1.5, FCS_SSHS_EXT.1.3, FCS_SSHS_EXT.1.5
Issue Description
Currently, the SSH EP does not support TOEs that only implement the "@openssh.com" variant of GCM. Resolution
FCS_SSHC_EXT.1.3 is modified as follows (using underlines to indicate additions): FCS_SSHC_EXT.1.3 The SSH software shall ensure that the SSH transport implementation uses the following encryption algorithms and rejects all other encryption algorithms: aes128-ctr, aes256- Application Note: RFC 5647 specifies the use of the AEAD_AES_128_GCM and AEAD_AES_256_GCM algorithms in SSH. As described in RFC 5647, AEAD_AES_128_GCM and AEAD_AES_256_GCM can only be chosen as encryption algorithms when the same algorithm is being used as the MAC algorithm. If AES-GCM is selected, there should be corresponding FCS_COP entries RFC 5647 only applies to the RFC compliant implementation of GCM. A TOE that only implements the “@openssh.com” variant of GCM should not select 5647-compliant algorithms in FCS_SSHC_EXT.1.1. aes*-gcm@openssh.com is specified in Section 1.6 of the OpenSSH Protocol Specification (https://cvsweb.openbsd.org/cgi- bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=1.31).
FCS_SSHC_EXT.1.5 is modified as follows (using underlines to indicate additions): FCS_SSHC_EXT.1.5 The SSH client shall ensure that the SSH transport implementation uses [selection: hmac-sha1, hmac-sha1-96, hmac-sha2-256, hmac-sha2-512] and [selection: AEAD_AES_128_GCM, AEAD_AES_256_GCM, implicit, no other MAC algorithms] as its MAC algorithm(s) and rejects all other MAC algorithm(s).
Application Note: RFC 5647 specifies the use of the AEAD_AES_128_GCM and AEAD_AES_256_GCM algorithms in SSH. As described in RFC 5647, AEAD_AES_128_GCM and AEAD_AES_256_GCM can only be chosen as MAC algorithms when the same algorithm is being used as the encryption algorithm. RFC 6668 specifies the use of the sha2 algorithms in SSH. The ST author selects “implicit” when, and only when, aes*-gcm@openssh.com is selected as an encryption algorithm. When aes*-gcm@openssh.com is negotiated as the encryption algorithm, the MAC algorithm field is ignored and GCM is implicitly used as the MAC. “implicit” is not an SSH algorithm identifier and will not be seen on the wire; however, the negotiated MAC might be decoded as “implicit”. Assurance Activity The evaluator will check the TSS to ensure that it lists the supported data integrity algorithms, and that that list corresponds to the list in this component. The evaluator will also check the guidance
FCS_SSHS_EXT.1.3 is modified as follows (using underlines to indicate additions): FCS_SSHS_EXT.1.3 The SSH server shall ensure that the SSH transport implementation uses the following encryption algorithms and rejects all other encryption algorithms: aes128-ctr, aes256- Application Note: RFC 5647 specifies the use of the AEAD_AES_128_GCM and AEAD_AES_256_GCM algorithms in SSH. As described in RFC 5647, AEAD_AES_128_GCM and AEAD_AES_256_GCM can only be chosen as encryption algorithms when the same algorithm is being used as the MAC algorithm. RFC 5647 only applies to the RFC compliant implementation of GCM. A TOE that only implements the “@openssh.com” variant of GCM should not select 5647-compliant algorithms in FCS_SSHS_EXT.1.1. aes*-gcm@openssh.com is specified in Section 1.6 of the OpenSSH Protocol Specification (https://cvsweb.openbsd.org/cgi- bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=1.31).
FCS_SSHS_EXT.1.5 is modified as follows (using underlines to indicate additions): FCS_SSHS_EXT.1.5 The SSH server shall ensure that the SSH transport implementation uses [selection: hmac-sha1, hmac-sha1-96, hmac-sha2-256, hmac-sha2-512] and [selection: AEAD_AES_128_GCM, AEAD_AES_256_GCM, implicit, no other MAC algorithms] as its MAC algorithm(s) and rejects all other MAC algorithm(s).
Application Note: RFC 5647 specifies the use of the AEAD_AES_128_GCM and AEAD_AES_256_GCM algorithms in SSH. As described in RFC 5647, AEAD_AES_128_GCM and AEAD_AES_256_GCM can only be chosen as MAC algorithms when the same algorithm is being used as the encryption algorithm. RFC 6668 specifies the use of the sha2 algorithms in SSH.
The ST author selects “implicit” when, and only when, aes*-gcm@openssh.com is selected as an encryption algorithm. When aes*-gcm@openssh.com is negotiated as the encryption algorithm, the MAC algorithm field is ignored and GCM is implicitly used as the MAC. “implicit” is not an SSH algorithm identifier and will not be seen on the wire; however, the negotiated MAC might be decoded as “implicit”.
Assurance Activity The evaluator will check the TSS to ensure that it lists the supported data integrity algorithms, and that that list corresponds to the list in this component. The evaluator will also check the guidance
Justification
The key exchange defined for AES GCM defined in Section 5.1 of RFC 5467 is ambiguous regarding how the encryption and MAC algorithm should be negotiated. To resolve this ambiguity, a de facto standard has emerged whereby if AES GCM is negotiated as the encryption algorithm by use of aes*- gcm@openssh.com, the MAC field is ignored. (https://cvsweb.openbsd.org/cgi- bin/cvsweb/src/usr.bin/ssh/PROTOCOL?rev=1.31 section 1.6). The necessary modifications are specified in TD0337 for the NDcPP. |