You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`x/crypto/ssh` now supports a list of default supported algorithms, and
LabKit provides a mechanism to configure gitlab-shell to use
FIPS-compliant algorithms. Use these as defaults instead of the
hard-coded values.
On a default configuration where no algorithms are configured, an
`ssh-audit` shows:
Removed weak algorithms:
- `diffie-hellman-group14-sha1` was removed (this was flagged as using a
weak hashing algorithm)
Added stronger key exchange algorithms:
- `mlkem768x25519-sha256` - A new post-quantum cryptographic algorithm
- `diffie-hellman-group16-sha512` - Stronger than the group14 variants
- `diffie-hellman-group-exchange-sha256 (2048-bit)` - Provides
additional flexibility
The changes represent a security improvement over the defaults.
What stayed the same:
- Host-key algorithms (still has the same security issues with weak elliptic curves)
- Encryption algorithms (ciphers)
- Message authentication codes
- The problematic NIST curves (nistp256, nistp384, nistp521) remain
- Same fingerprints, indicating the same server identity
Both audits still flag the same core problems:
- Weak elliptic curves (NIST P-curves)
- Weak ECDSA host key
- Encrypt-and-MAC mode usage
- Legacy ssh-rsa algorithm
For FIPS, the changes are much more restrictive. The following
key exchanges have been dropped by default:
* curve25519-sha256
* curve25519-sha256@libssh.org
* ecdh-sha2-nistp521 - The 521-bit NIST curve
* diffie-hellman-group14-sha256
* diffie-hellman-group14-sha1
Encryption algorithms Lost:
* chacha20-poly1305@openssh.com
MAC algorithms dropped:
* hmac-sha1
Relates to https://gitlab.com/gitlab-org/gitlab-shell/-/issues/821
Changelog: changed
Copy file name to clipboardExpand all lines: support/lint_last_known_acceptable.txt
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -90,6 +90,6 @@ internal/gitlabnet/client.go:27:1: exported: exported function ParseJSON should
90
90
internal/gitlabnet/client.go:35:1: exported: exported function ParseIP should have comment or be unexported (revive)
91
91
internal/gitlabnet/healthcheck/client_test.go:19:41: unused-parameter: parameter 'r' seems to be unused, consider removing or renaming it as _ (revive)
92
92
internal/gitlabnet/lfstransfer/client.go:137:3: internal/gitlabnet/lfstransfer/client.go:137: Line contains TODO/BUG/FIXME/NOTE/OPTIMIZE/HACK: "FIXME: This causes tests to fail" (godox)
93
-
internal/sshd/server_config.go:149:19: SA1019: ssh.KeyAlgoDSA is deprecated: DSA is only supported at insecure key sizes, and was removed from major implementations. (staticcheck)
93
+
internal/sshd/server_config.go:130:19: SA1019: ssh.KeyAlgoDSA is deprecated: DSA is only supported at insecure key sizes, and was removed from major implementations. (staticcheck)
94
94
internal/sshd/server_config_test.go:5:2: SA1019: "crypto/dsa" has been deprecated since Go 1.16 because it shouldn't be used: DSA is a legacy algorithm, and modern alternatives such as Ed25519 (implemented by package crypto/ed25519) should be used instead. Keys with 1024-bit moduli (L1024N160 parameters) are cryptographically weak, while bigger keys are not widely supported. Note that FIPS 186-5 no longer approves DSA for signature generation. (staticcheck)
95
95
internal/sshd/sshd.go:268:6: func `extractDataFromContext` is unused (unused)
0 commit comments