djm@openbsd.org [Fri, 20 Feb 2015 22:17:21 +0000 (22:17 +0000)]
upstream commit
UpdateHostKeys fixes:
I accidentally changed the format of the hostkeys@openssh.com messages
last week without changing the extension name, and this has been causing
connection failures for people who are running -current. First reported
by sthen@
s/hostkeys@openssh.com/hostkeys-00@openssh.com/
Change the name of the proof message too, and reorder it a little.
Also, UpdateHostKeys=ask is incompatible with ControlPersist (no TTY
available to read the response) so disable UpdateHostKeys if it is in
ask mode and ControlPersist is active (and document this)
djm@openbsd.org [Mon, 16 Feb 2015 22:30:03 +0000 (22:30 +0000)]
upstream commit
partial backout of:
revision 1.441
date: 2015/01/31 20:30:05; author: djm; state: Exp; lines: +17 -10; commitid
: x8klYPZMJSrVlt3O;
Let sshd load public host keys even when private keys are missing.
Allows sshd to advertise additional keys for future key rotation.
Also log fingerprint of hostkeys loaded; ok markus@
hostkey updates now require access to the private key, so we can't
load public keys only. The improved log messages (fingerprints of keys
loaded) are kept.
djm@openbsd.org [Mon, 16 Feb 2015 22:08:57 +0000 (22:08 +0000)]
upstream commit
Refactor hostkeys_foreach() and dependent code Deal with
IP addresses (i.e. CheckHostIP) Don't clobber known_hosts when nothing
changed ok markus@ as part of larger commit
miod@openbsd.org [Mon, 16 Feb 2015 18:26:26 +0000 (18:26 +0000)]
upstream commit
Declare ge25519_base as extern, to prevent it from
becoming a common. Gets us rid of ``lignment 4 of symbol
`crypto_sign_ed25519_ref_ge25519_base' in mod_ge25519.o is smaller than 16 in
mod_ed25519.o'' warnings at link time.
djm@openbsd.org [Wed, 11 Feb 2015 01:20:38 +0000 (01:20 +0000)]
upstream commit
Some packet error messages show the address of the peer,
but might be generated after the socket to the peer has suffered a TCP reset.
In these cases, getpeername() won't work so cache the address earlier.
djm@openbsd.org [Sat, 31 Jan 2015 20:30:05 +0000 (20:30 +0000)]
upstream commit
Let sshd load public host keys even when private keys are
missing. Allows sshd to advertise additional keys for future key rotation.
Also log fingerprint of hostkeys loaded; ok markus@
djm@openbsd.org [Fri, 30 Jan 2015 00:59:19 +0000 (00:59 +0000)]
upstream commit
missing parentheses after if in do_convert_from() broke
private key conversion from other formats some time in 2010; bz#2345 reported
by jjelen AT redhat.com
djm@openbsd.org [Mon, 26 Jan 2015 06:10:03 +0000 (06:10 +0000)]
upstream commit
correctly match ECDSA subtype (== curve) for
offered/recevied host keys. Fixes connection-killing host key mismatches when
a server offers multiple ECDSA keys with different curve type (an extremely
unlikely configuration).
djm@openbsd.org [Mon, 26 Jan 2015 03:04:45 +0000 (03:04 +0000)]
upstream commit
Host key rotation support.
Add a hostkeys@openssh.com protocol extension (global request) for
a server to inform a client of all its available host key after
authentication has completed. The client may record the keys in
known_hosts, allowing it to upgrade to better host key algorithms
and a server to gracefully rotate its keys.
The client side of this is controlled by a UpdateHostkeys config
option (default on).
Provide a warning about chroot misuses (which sadly, seem
to have become quite popular because shiny). sshd cannot detect/manage/do
anything about these cases, best we can do is warn in the right spot in the
man page. ok markus
update packet.c & isolate, introduce struct ssh a) switch
packet.c to buffer api and isolate per-connection info into struct ssh b)
(de)serialization of the state is moved from monitor to packet.c c) the old
packet.c API is implemented in opacket.[ch] d) compress.c/h is removed and
integrated into packet.c with and ok djm@
djm@openbsd.org [Sun, 18 Jan 2015 19:53:58 +0000 (19:53 +0000)]
upstream commit
make the signature fuzzing test much more rigorous:
ensure that the fuzzed input cases do not match the original (using new
fuzz_matches_original() function) and check that the verification fails in
each case
djm@openbsd.org [Sun, 18 Jan 2015 19:52:44 +0000 (19:52 +0000)]
upstream commit
add a fuzz_matches_original() function to the fuzzer to
detect fuzz cases that are identical to the original data. Hacky
implementation, but very useful when you need the fuzz to be different, e.g.
when verifying signature
djm@openbsd.org [Sun, 18 Jan 2015 21:40:23 +0000 (21:40 +0000)]
upstream commit
introduce hostkeys_foreach() to allow iteration over a
known_hosts file or controlled subset thereof. This will allow us to pull out
some ugly and duplicated code, and will be used to implement hostkey rotation
later.
djm@openbsd.org [Fri, 16 Jan 2015 07:19:48 +0000 (07:19 +0000)]
upstream commit
when hostname canonicalisation is enabled, try to parse
hostnames as addresses before looking them up for canonicalisation. fixes
bz#2074 and avoids needless DNS lookups in some cases; ok markus
Replace <sys/param.h> with <limits.h> and other less
dirty headers where possible. Annotate <sys/param.h> lines with their
current reasons. Switch to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1,
LOGIN_NAME_MAX, etc. Change MIN() and MAX() to local definitions of
MINIMUM() and MAXIMUM() where sensible to avoid pulling in the pollution.
These are the files confirmed through binary verification. ok guenther,
millert, doug (helped with the verification protocol)