| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
it to make it more generally usable and testable.
ok markus@
|
|
|
|
|
|
| |
are themselves now macros, and preprocessor directives inside macro
arguments are undefined behaviour which some compilers (eg old GCCs)
choke on. It also makes the code tidier. ok deraadt@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FIDO2 supports a notion of "user verification" where the user is
required to demonstrate their identity to the token before particular
operations (e.g. signing). Typically this is done by authenticating
themselves using a PIN that has been set on the token.
This adds support for generating and using user verified keys where
the verification happens via PIN (other options might be added in the
future, but none are in common use now). Practically, this adds
another key generation option "verify-required" that yields a key that
requires a PIN before each authentication.
feedback markus@ and Pedro Martelletto; ok markus@
|
|
|
|
|
|
|
| |
Extracts a public key from the unencrypted envelope of a new-style
OpenSSH private key.
ok markus@
|
|
|
|
|
|
|
|
|
|
|
| |
Allow passing a PIN via the SK API (API major crank) and let the
ssh-sk-helper API follow.
Also enhance the ssh-sk-helper API to support passing back an error
code instead of a complete reply. Will be used to signal "wrong PIN",
etc.
feedback and ok markus@
|
|
|
|
| |
feedback and ok markus@
|
|
|
|
|
|
|
| |
that ssh-keygen no longer needs to link against ssh-sk-helper,
and only ssh-sk-helper needs libfido2 and /dev/uhid* access;
feedback & ok markus@
|
|
|
|
|
|
|
|
|
| |
This extracts and refactors the client interface for ssh-sk-helper
from ssh-agent and generalises it for use by the other programs.
This means that most OpenSSH tools no longer need to link against
libfido2 or directly interact with /dev/uhid*
requested by, feedback and ok markus@
|
|
|
|
|
|
|
|
|
| |
This is populated during signature verification with additional fields
that are present in and covered by the signature. At the moment, it is
only used to record security key-specific options, especially the flags
field.
with and ok markus@
|
|
|
|
|
|
|
|
| |
- in ssh-agent we need to delay the call to shield
until we have received key specific options.
- when serializing xmss keys for shield we need to deal with
all optional components (e.g. state might not be loaded).
ok djm@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
U2F signatures.
Don't use sshsk_ecdsa_sign() directly, instead make it reachable via
sshkey_sign() like all other signature operations. This means that
we need to add a provider argument to sshkey_sign(), so most of this
change is mechanically adding that.
Suggested by / ok markus@
|
|
|
|
|
|
|
| |
Key library support: including allocation, marshalling public/private
keys and certificates, signature validation.
feedback & ok markus@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
enabled via "ssh-keygen -m PKCS8" on operations that save private
keys to disk.
The OpenSSH native key format remains the default, but PKCS8 is a
superior format to PEM if interoperability with non-OpenSSH software
is required, as it may use a less terrible KDF (IIRC PEM uses a single
round of MD5 as a KDF).
adapted from patch by Jakub Jelen via bz3013; ok markus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and memory sidechannel attacks like Spectre, Meltdown, Rowhammer and
Rambleed. This change encrypts private keys when they are not in use
with a symmetic key that is derived from a relatively large "prekey"
consisting of random data (currently 16KB).
Attackers must recover the entire prekey with high accuracy before
they can attempt to decrypt the shielded private key, but the current
generation of attacks have bit error rates that, when applied
cumulatively to the entire prekey, make this unlikely.
Implementation-wise, keys are encrypted "shielded" when loaded and then
automatically and transparently unshielded when used for signatures or
when being saved/serialised.
Hopefully we can remove this in a few years time when computer
architecture has become less unsafe.
been in snaps for a bit already; thanks deraadt@
ok dtucker@ deraadt@
|
|
|
|
| |
Work by markus@ and Pedro Martelletto, feedback and ok me@
|
| |
|
|
|
|
| |
feedback and ok tb@ jsing@ markus@
|
|
|
|
| |
against a supplied whitelist; ok markus
|
|
|
|
| |
signature wrt loading and certification operations; ok markus@
|
|
|
|
| |
hosted in ssh-agent
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
|
|
|
|
|
|
|
| |
The code is not compiled in by default (see WITH_XMSS in Makefile.inc)
Joint work with stefan-lukas_gazdag at genua.eu
See https://tools.ietf.org/html/draft-irtf-cfrg-xmss-hash-based-signatures-12
ok djm@
|
|
|
|
|
| |
check that the negotiated algorithm matches the type in the
signature (only matters for RSA SHA1/SHA2 sigs). ok markus@
|
|
|
|
| |
ok markus@
|
|
|
|
| |
remaining bit that it still used into ssh-rsa.c; ok markus
|
|
|
|
| |
certificates. bz#2377 ok markus
|
| |
|
|
|
|
| |
do not meet this requirement. ok markus@
|
| |
|
|
|
|
| |
ok markus@
|
|
|
|
|
| |
excluding SHA2 RSA signature methods. bz#2680, patch from Nuno
Goncalves; ok dtucker@
|
|
|
|
|
| |
Reported by mb AT smartftp.com in bz#2547 and (independantly)
Ron Frederick; ok markus@
|
|
|
|
| |
ok markus@
|
|
|
|
|
| |
based on draft-rsa-dsa-sha2-256-03.txt and draft-ssh-ext-info-04.txt;
with & ok djm@
|
| |
|
|
|
|
|
|
|
| |
- Remove unused function argument.
- Remove two unnecessary variables.
OK djm@
|
|
|
|
| |
problems spotted by sthen@ ok deraadt@ markus@
|
| |
|
| |
|
|
|
|
|
| |
sshkey_to_base64() function and out of sshkey_write();
ok markus@
|
|
|
|
| |
ok markus
|
|
|
|
|
| |
options to allow sshd to control what public key types will be
accepted. Currently defaults to all. Feedback & ok markus@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interfaces. Refactor the generic key loading API to not require
pathnames to be specified (they weren't really used).
Fixes a few other things en passant:
Makes ed25519 keys work for hostbased authentication (ssh-keysign
previously used the PEM-only routines).
Fixes key comment regression bz#2306: key pathnames were being lost as
comment fields.
ok markus@
|
|
|
|
|
|
|
| |
fingerprints. Default changes from MD5 to SHA256 and format
from hex to base64.
Feedback and ok naddy@ markus@
|
|
existing API is offered as a set of wrappers.
with and ok markus@
Thanks also to Ben Hawkes, David Tomaschik, Ivan Fratric, Matthew
Dempsky and Ron Bowes for a detailed review a few months ago.
|