diff options
author | djm@openbsd.org <djm@openbsd.org> | 2018-07-03 11:39:54 +0000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2018-07-03 23:26:36 +1000 |
commit | 4ba0d54794814ec0de1ec87987d0c3b89379b436 (patch) | |
tree | b8d904880f8927374b377b2e4d5661213c1138b6 /compat.c | |
parent | 95344c257412b51199ead18d54eaed5bafb75617 (diff) |
upstream: Improve strictness and control over RSA-SHA2 signature
In ssh, when an agent fails to return a RSA-SHA2 signature when
requested and falls back to RSA-SHA1 instead, retry the signature to
ensure that the public key algorithm sent in the SSH_MSG_USERAUTH
matches the one in the signature itself.
In sshd, strictly enforce that the public key algorithm sent in the
SSH_MSG_USERAUTH message matches what appears in the signature.
Make the sshd_config PubkeyAcceptedKeyTypes and
HostbasedAcceptedKeyTypes options control accepted signature algorithms
(previously they selected supported key types). This allows these
options to ban RSA-SHA1 in favour of RSA-SHA2.
Add new signature algorithms "rsa-sha2-256-cert-v01@openssh.com" and
"rsa-sha2-512-cert-v01@openssh.com" to force use of RSA-SHA2 signatures
with certificate keys.
feedback and ok markus@
OpenBSD-Commit-ID: c6e9f6d45eed8962ad502d315d7eaef32c419dde
Diffstat (limited to 'compat.c')
-rw-r--r-- | compat.c | 27 |
1 files changed, 19 insertions, 8 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: compat.c,v 1.107 2018/04/16 22:50:44 djm Exp $ */ | 1 | /* $OpenBSD: compat.c,v 1.108 2018/07/03 11:39:54 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -52,16 +52,27 @@ compat_datafellows(const char *version) | |||
52 | } check[] = { | 52 | } check[] = { |
53 | { "OpenSSH_2.*," | 53 | { "OpenSSH_2.*," |
54 | "OpenSSH_3.0*," | 54 | "OpenSSH_3.0*," |
55 | "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR}, | 55 | "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR| |
56 | { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR }, | 56 | SSH_BUG_SIGTYPE}, |
57 | { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF}, | 57 | { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR|SSH_BUG_SIGTYPE }, |
58 | { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF| | ||
59 | SSH_BUG_SIGTYPE}, | ||
58 | { "OpenSSH_2*," | 60 | { "OpenSSH_2*," |
59 | "OpenSSH_3*," | 61 | "OpenSSH_3*," |
60 | "OpenSSH_4*", 0 }, | 62 | "OpenSSH_4*", SSH_BUG_SIGTYPE }, |
61 | { "OpenSSH_5*", SSH_NEW_OPENSSH|SSH_BUG_DYNAMIC_RPORT}, | 63 | { "OpenSSH_5*", SSH_NEW_OPENSSH|SSH_BUG_DYNAMIC_RPORT| |
62 | { "OpenSSH_6.6.1*", SSH_NEW_OPENSSH}, | 64 | SSH_BUG_SIGTYPE}, |
65 | { "OpenSSH_6.6.1*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE}, | ||
63 | { "OpenSSH_6.5*," | 66 | { "OpenSSH_6.5*," |
64 | "OpenSSH_6.6*", SSH_NEW_OPENSSH|SSH_BUG_CURVE25519PAD}, | 67 | "OpenSSH_6.6*", SSH_NEW_OPENSSH|SSH_BUG_CURVE25519PAD| |
68 | SSH_BUG_SIGTYPE}, | ||
69 | { "OpenSSH_7.0*," | ||
70 | "OpenSSH_7.1*," | ||
71 | "OpenSSH_7.2*," | ||
72 | "OpenSSH_7.3*," | ||
73 | "OpenSSH_7.4*," | ||
74 | "OpenSSH_7.5*," | ||
75 | "OpenSSH_7.6*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE}, | ||
65 | { "OpenSSH*", SSH_NEW_OPENSSH }, | 76 | { "OpenSSH*", SSH_NEW_OPENSSH }, |
66 | { "*MindTerm*", 0 }, | 77 | { "*MindTerm*", 0 }, |
67 | { "3.0.*", SSH_BUG_DEBUG }, | 78 | { "3.0.*", SSH_BUG_DEBUG }, |