ssh: disable RSA/SHA-1 signatures
From OpenSSH 8.8p1's release notes: --- Potentially-incompatible changes ================================ This release disables RSA signatures using the SHA-1 hash algorithm by default. This change has been made as the SHA-1 hash algorithm is cryptographically broken, and it is possible to create chosen-prefix hash collisions for <USD$50K [1] For most users, this change should be invisible and there is no need to replace ssh-rsa keys. OpenSSH has supported RFC8332 RSA/SHA-256/512 signatures since release 7.2 and existing ssh-rsa keys will automatically use the stronger algorithm where possible. Incompatibility is more likely when connecting to older SSH implementations that have not been upgraded or have not closely tracked improvements in the SSH protocol. For these cases, it may be necessary to selectively re-enable RSA/SHA1 to allow connection and/or user authentication via the HostkeyAlgorithms and PubkeyAcceptedAlgorithms options. For example, the following stanza in ~/.ssh/config will enable RSA/SHA1 for host and user authentication for a single destination host: Host old-host HostkeyAlgorithms +ssh-rsa PubkeyAcceptedAlgorithms +ssh-rsa We recommend enabling RSA/SHA1 only as a stopgap measure until legacy implementations can be upgraded or reconfigured with another key type (such as ECDSA or Ed25519). [1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust" Leurent, G and Peyrin, T (2020) https://eprint.iacr.org/2020/014.pdf --- Relnotes: Yes Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
e9e8876a4d
commit
8c22023ca5
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: myproposal.h,v 1.68 2020/10/03 04:15:06 djm Exp $ */
|
/* $OpenBSD: myproposal.h,v 1.69 2021/08/29 23:53:10 djm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
||||||
@ -46,7 +46,6 @@
|
|||||||
"sk-ecdsa-sha2-nistp256-cert-v01@openssh.com," \
|
"sk-ecdsa-sha2-nistp256-cert-v01@openssh.com," \
|
||||||
"rsa-sha2-512-cert-v01@openssh.com," \
|
"rsa-sha2-512-cert-v01@openssh.com," \
|
||||||
"rsa-sha2-256-cert-v01@openssh.com," \
|
"rsa-sha2-256-cert-v01@openssh.com," \
|
||||||
"ssh-rsa-cert-v01@openssh.com," \
|
|
||||||
"ssh-ed25519," \
|
"ssh-ed25519," \
|
||||||
"ecdsa-sha2-nistp256," \
|
"ecdsa-sha2-nistp256," \
|
||||||
"ecdsa-sha2-nistp384," \
|
"ecdsa-sha2-nistp384," \
|
||||||
@ -54,8 +53,7 @@
|
|||||||
"sk-ssh-ed25519@openssh.com," \
|
"sk-ssh-ed25519@openssh.com," \
|
||||||
"sk-ecdsa-sha2-nistp256@openssh.com," \
|
"sk-ecdsa-sha2-nistp256@openssh.com," \
|
||||||
"rsa-sha2-512," \
|
"rsa-sha2-512," \
|
||||||
"rsa-sha2-256," \
|
"rsa-sha2-256"
|
||||||
"ssh-rsa"
|
|
||||||
|
|
||||||
#define KEX_SERVER_ENCRYPT \
|
#define KEX_SERVER_ENCRYPT \
|
||||||
"chacha20-poly1305@openssh.com," \
|
"chacha20-poly1305@openssh.com," \
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# $OpenBSD: knownhosts-command.sh,v 1.2 2020/12/22 06:47:24 djm Exp $
|
# $OpenBSD: knownhosts-command.sh,v 1.3 2021/08/30 01:15:45 djm Exp $
|
||||||
# Placed in the Public Domain.
|
# Placed in the Public Domain.
|
||||||
|
|
||||||
tid="known hosts command "
|
tid="known hosts command "
|
||||||
@ -39,7 +39,9 @@ chmod a+x $OBJ/knownhosts_command
|
|||||||
${SSH} -F $OBJ/ssh_proxy x true && fail "ssh connect succeeded with bad exit"
|
${SSH} -F $OBJ/ssh_proxy x true && fail "ssh connect succeeded with bad exit"
|
||||||
|
|
||||||
for keytype in ${SSH_HOSTKEY_TYPES} ; do
|
for keytype in ${SSH_HOSTKEY_TYPES} ; do
|
||||||
|
algs=$keytype
|
||||||
test "x$keytype" = "xssh-dss" && continue
|
test "x$keytype" = "xssh-dss" && continue
|
||||||
|
test "x$keytype" = "xssh-rsa" && algs=ssh-rsa,rsa-sha2-256,rsa-sha2-512
|
||||||
verbose "keytype $keytype"
|
verbose "keytype $keytype"
|
||||||
cat > $OBJ/knownhosts_command << _EOF
|
cat > $OBJ/knownhosts_command << _EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
@ -48,6 +50,6 @@ test "x\$1" = "x$keytype" || die "wrong keytype \$1 (expected $keytype)"
|
|||||||
test "x\$3" = "x$LOGNAME" || die "wrong username \$3 (expected $LOGNAME)"
|
test "x\$3" = "x$LOGNAME" || die "wrong username \$3 (expected $LOGNAME)"
|
||||||
grep -- "\$1.*\$2" $OBJ/known_hosts
|
grep -- "\$1.*\$2" $OBJ/known_hosts
|
||||||
_EOF
|
_EOF
|
||||||
${SSH} -F $OBJ/ssh_proxy -oHostKeyAlgorithms=$keytype x true ||
|
${SSH} -F $OBJ/ssh_proxy -oHostKeyAlgorithms=$algs x true ||
|
||||||
fail "ssh connect failed for keytype $x"
|
fail "ssh connect failed for keytype $x"
|
||||||
done
|
done
|
||||||
|
@ -882,12 +882,11 @@ sk-ssh-ed25519-cert-v01@openssh.com,
|
|||||||
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
|
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
|
||||||
rsa-sha2-512-cert-v01@openssh.com,
|
rsa-sha2-512-cert-v01@openssh.com,
|
||||||
rsa-sha2-256-cert-v01@openssh.com,
|
rsa-sha2-256-cert-v01@openssh.com,
|
||||||
ssh-rsa-cert-v01@openssh.com,
|
|
||||||
ssh-ed25519,
|
ssh-ed25519,
|
||||||
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
|
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
|
||||||
sk-ssh-ed25519@openssh.com,
|
sk-ssh-ed25519@openssh.com,
|
||||||
sk-ecdsa-sha2-nistp256@openssh.com,
|
sk-ecdsa-sha2-nistp256@openssh.com,
|
||||||
rsa-sha2-512,rsa-sha2-256,ssh-rsa
|
rsa-sha2-512,rsa-sha2-256
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
The
|
The
|
||||||
@ -929,12 +928,11 @@ sk-ssh-ed25519-cert-v01@openssh.com,
|
|||||||
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
|
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
|
||||||
rsa-sha2-512-cert-v01@openssh.com,
|
rsa-sha2-512-cert-v01@openssh.com,
|
||||||
rsa-sha2-256-cert-v01@openssh.com,
|
rsa-sha2-256-cert-v01@openssh.com,
|
||||||
ssh-rsa-cert-v01@openssh.com,
|
|
||||||
ssh-ed25519,
|
ssh-ed25519,
|
||||||
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
|
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
|
||||||
sk-ecdsa-sha2-nistp256@openssh.com,
|
sk-ecdsa-sha2-nistp256@openssh.com,
|
||||||
sk-ssh-ed25519@openssh.com,
|
sk-ssh-ed25519@openssh.com,
|
||||||
rsa-sha2-512,rsa-sha2-256,ssh-rsa
|
rsa-sha2-512,rsa-sha2-256
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
If hostkeys are known for the destination host then this default is modified
|
If hostkeys are known for the destination host then this default is modified
|
||||||
@ -1512,12 +1510,11 @@ sk-ssh-ed25519-cert-v01@openssh.com,
|
|||||||
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
|
sk-ecdsa-sha2-nistp256-cert-v01@openssh.com,
|
||||||
rsa-sha2-512-cert-v01@openssh.com,
|
rsa-sha2-512-cert-v01@openssh.com,
|
||||||
rsa-sha2-256-cert-v01@openssh.com,
|
rsa-sha2-256-cert-v01@openssh.com,
|
||||||
-ssh-rsa-cert-v01@openssh.com,
|
|
||||||
ssh-ed25519,
|
ssh-ed25519,
|
||||||
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
|
ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,
|
||||||
sk-ssh-ed25519@openssh.com,
|
sk-ssh-ed25519@openssh.com,
|
||||||
sk-ecdsa-sha2-nistp256@openssh.com,
|
sk-ecdsa-sha2-nistp256@openssh.com,
|
||||||
rsa-sha2-512,rsa-sha2-256,ssh-rsa
|
rsa-sha2-512,rsa-sha2-256
|
||||||
.Ed
|
.Ed
|
||||||
.Pp
|
.Pp
|
||||||
The list of available signature algorithms may also be obtained using
|
The list of available signature algorithms may also be obtained using
|
||||||
|
Loading…
Reference in New Issue
Block a user