Re: FIDO2 resident credentials

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

 



Pavol Rusnak via openssh-unix-dev:

> Quoting from [1]:
> 
> It really makes no sense to me why credential management is needed by
> OpenSSH in the first place. In fact it doesn't even make sense to me why
> resident credentials are needed by OpenSSH. Firstly, the private key file
> `id_ed25519_sk` contains primarily the FIDO credential, which is nothing
> secret and should logically be placed in `id_ed25519_sk.pub` which resides
> on the remote server. This way FIDO authenticators wouldn't even need to
> support resident credentials to function with OpenSSH.

They don't need to support resident credentials.

OpenSSH's FIDO support is fundamentally based on U2F aka FIDO1,
which doesn't even feature resident keys.  The U2F/FIDO key handle
is placed in id_ecdsa_sk.  That provides a very useful property:
If an attacker steals my authenticator, they still cannot log into
my accounts because they lack id_ecdsa_sk.

Note that U2F was conceived as a second factor in a 2FA scheme.
If you allow a login simply with the FIDO credential, you're back
to a single factor.  By moving the key handle into the SSH private
key, OpenSSH splits this into two again:
(1) possession of the authenticator and
(2) possession of the SSH private key (= FIDO key handle).

Any old U2F authenticator can be used with OpenSSH's U2F/FIDO
support.  You only need FIDO2 for the _additional_ features of
ED25519 and resident keys...

> I see no justifiable reason why to load resident keys from a
> FIDO authenticator to the SSH client computer, which is what `ssh-add -K`
> does.

The use case for supporting FIDO2 residential keys appears to be
that you can use ssh on a machine which does not already have a
copy of id_ecdsa_sk, say, in a corporate network.  You can use
ssh-add -K to download the FIDO key handle from the authenticator.
Note that the authenticator will only allow this after the user has
entered a PIN or a fingerprint etc. to confirm their identity to
the authenticator, so again a simple theft of the authenticator
does not provide an attacker with access.

IIRC, the principal difference between CTAP 2.0 and 2.1 is that 2.1
allows the deletion of individual keys, whereas 2.0 only provides
a reset of the authenticator that deletes all keys.  That's an issue
when the authenticator's storage capacity has been exhausted, but
it has nothing to do with OpenSSH.

-- 
Christian "naddy" Weisgerber                          naddy@xxxxxxxxxxxx
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev



[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux