Discussion:
Yubico Security Key unterstützt sk-ssh-ed25519
(zu alt für eine Antwort)
Christian Weisgerber
2022-05-14 21:08:05 UTC
Permalink
Weil es nicht ergooglebar ist und jeder Testkauf 30 Euro kostet:

Als OpenSSH seinerzeit Unterstützung für U2F/FIDO-Geräte eingebaut
hat, habe ich mir einen Yubico Security Key angeschafft:

uhidev0 at uhub0 port 2 configuration 1 interface 0 "Yubico Security
Key by Yubico" rev 2.00/5.12 addr 6

Der hat aber nur ECDSA-Schlüssel unterstützt. Die aktuell erhältlichen
Yubico Security Keys...

uhidev0 at uhub0 port 2 configuration 1 interface 0 "Yubico YubiKey
FIDO" rev 2.00/5.43 addr 6

... unterstützen inzwischen auch ED25519-Schlüssel.

$ ssh-keygen -t ed25519-sk
--
Christian "naddy" Weisgerber ***@mips.inka.de
Bastian Blank
2022-05-23 12:25:31 UTC
Permalink
Alles was seit 2020 verkauft wird hat eine neue genuge Firmware dafür.

Siehe
https://www.yubico.com/blog/whats-new-in-yubikey-firmware-5-2-3/

Bastian
Christian Weisgerber
2022-05-23 14:35:47 UTC
Permalink
Post by Bastian Blank
Alles was seit 2020 verkauft wird hat eine neue genuge Firmware dafür.
Siehe
https://www.yubico.com/blog/whats-new-in-yubikey-firmware-5-2-3/
Das bezieht sich nur auf den Yubikey 5. Aus dem Text geht nicht
hervor, ob die einfachere Modellreihe "Security Key" auch diese
Firmware(features) bekommt.
--
Christian "naddy" Weisgerber ***@mips.inka.de
Torsten Berger
2022-05-24 10:01:11 UTC
Permalink
Hallo Christian,
Post by Christian Weisgerber
Post by Bastian Blank
https://www.yubico.com/blog/whats-new-in-yubikey-firmware-5-2-3/
Das bezieht sich nur auf den Yubikey 5. Aus dem Text geht nicht
hervor, ob die einfachere Modellreihe "Security Key" auch diese
Firmware(features) bekommt.
ist etwas schwer zu finden, aber sieh Dir mal die Übersicht an:

https://www.yubico.com/de/store/compare/

Grüße Torsten
--
🐧 PGP public key:
https://keys.openpgp.org/vks/v1/by-fingerprint/44CA495BCF4947FE572A6853983B7EA7E3FC9051
Christian Weisgerber
2022-05-24 12:02:57 UTC
Permalink
Post by Torsten Berger
https://www.yubico.com/de/store/compare/
Da findet Ed25519 keinerlei Erwähnung. Man würde also irrtümlich
schlussfolgern, dass es von keinem Modell unterstützt wird.
--
Christian "naddy" Weisgerber ***@mips.inka.de
Torsten Berger
2022-05-24 16:37:11 UTC
Permalink
Hallo Christian,
Post by Christian Weisgerber
Post by Torsten Berger
https://www.yubico.com/de/store/compare/
Da findet Ed25519 keinerlei Erwähnung. Man würde also irrtümlich
schlussfolgern, dass es von keinem Modell unterstützt wird.
sorry, hatte Deine Frage wohl nicht richtig verstanden.
Offenbar verwendest Du so etwas hier...

https://www.stavros.io/posts/u2f-fido2-with-ssh/

oder hier:
https://xosc.org/u2fandssh.html

Diese Lösung habe ich hier noch nicht im Einsatz. Hier verwende ich die
Version OpenSSH_7.9p1 Debian-10+deb10u2.
Allerdings in Verbindung mit pgp und einen abgeleiteten ssh Key für die
Authentifizierung. Alles leider noch RSA und mit Yubikey4.

Etwas habe ich noch nicht verstanden: Du generierst doch den Key nicht
auf Deinem Yubikey - oder doch (wie?) ?!.
Du signierst Deinen privaten Key wahlweise (U2F/FIDO) mit einem festen
gespeicherten Schlüssel auf dem Yubikey oder machst Ihn (-O) resident in
einem der FIDO2 Slots und hat nur noch einen key-handle auf der HDD.
Ist da nicht viel mehr ssh (ssh-keygen) entscheidend als der Yubikey selbst?

Kannst Du bitte Dein Setup noch ein bisschen weiter ausführen?

Grüße Torsten.
--
🐧 PGP public key:
https://keys.openpgp.org/vks/v1/by-fingerprint/44CA495BCF4947FE572A6853983B7EA7E3FC9051
Christian Garbs
2022-05-25 08:05:45 UTC
Permalink
Mahlzeit!
Post by Torsten Berger
Post by Christian Weisgerber
Da findet Ed25519 keinerlei Erwähnung. Man würde also irrtümlich
schlussfolgern, dass es von keinem Modell unterstützt wird.
sorry, hatte Deine Frage wohl nicht richtig verstanden.
Offenbar verwendest Du so etwas hier...
https://www.stavros.io/posts/u2f-fido2-with-ssh/
https://xosc.org/u2fandssh.html
[…]
Post by Torsten Berger
Ist da nicht viel mehr ssh (ssh-keygen) entscheidend als der Yubikey selbst?
Wohl nicht, denn beide von Dir genannten Links weisen darauf hin, dass
wenn der _Yubikey_ ed25519-sk noch nicht unterstützt, man beim
ssh-keygen auf ecdsa-sk ausweichen soll.

Gruß
Christian
--
....Christian.Garbs....................................https://www.cgarbs.de
Of course Pacman didn't influence us as kids. If it did, we'd be running
around in darkened rooms, popping pills and listening to repetitive music.
Christian Weisgerber
2022-05-25 23:49:28 UTC
Permalink
Post by Torsten Berger
sorry, hatte Deine Frage wohl nicht richtig verstanden.
Offensichtlich, denn ich habe gar keine Frage gestellt.
Post by Torsten Berger
Etwas habe ich noch nicht verstanden: Du generierst doch den Key nicht
auf Deinem Yubikey - oder doch (wie?) ?!.
Doch.
ssh-keygen lässt den Yubikey den Schlüssel erzeugen und bekommt
dann vom Yubikey den Key Handle und den öffentlichen Schlüssel
mitgeteilt.
Post by Torsten Berger
Kannst Du bitte Dein Setup noch ein bisschen weiter ausführen?
Gerne.

FIDO-Authenticator (z.B. Yubikey) an USB-Schnittstelle stecken,
Schlüssel erzeugen:
$ ssh-keygen -t ed25519-sk

Das legt
- einen öffentlichen SSH-Schlüssel an (id_ed25519_sk.pub), der
genau wie jeder andere öffentliche SSH-Schlüssel gehandhabt
wird;
- einen privaten SSH-Schlüssel an (id_ed25519_sk), der aber nur
im Zusammenspiel mit dem Authenticator funktioniert, weil er nur
den FIDO Key Handle enthält. Wie andere private SSH-Schlüssel
lässt er sich mit einer Passphrase schützen, was ich auch tue.

Den öffentlichen Schlüssel habe ich in meine ~/.ssh/authorized_keys
auf zahlreichen Hosts verteilt.

Wenn ich mich an meinem Arbeitsrechner einlogge, lade ich den
privaten Schlüssel in den ssh-agent (ssh-add ~/.ssh/id_ed25519_sk).
Dazu braucht der Authenticator übrigens nicht angesteckt zu sein.

Wenn ich am Rechner sitze, stecke ich den Authenticator an, den ich
an meinem Schlüsselbund habe.

Beim Aufbau einer SSH-Verbindung erfolgt die Authentisierung mit
dem obigen SSH-Schlüssel. Dabei wird auch der FIDO Key Handle (aus
dem privaten SSH-Schlüssel) an den Authenticator geschickt, der
damit auf seinen eigentlichen privaten FIDO-Schlüssel zugreift.

Bevor der Authenticator die Authentisierungs-Operation durchführt,
blinkt er, um die Anwesenheit des Benutzers zu prüfen. Ich zwicke
den Authenticator... und bin drin wie Boris Becker!

Damit ergibt sich eine Zwei-Faktor-Authentisierung, denn es wird
1. die Datei mit dem privaten SSH-Schlüssel
2. der FIDO-Authenticator
benötigt. Weder meinen SSH-Schlüssel exfiltrieren noch meinen
Schlüsselbund klauen verschafft allein Zugriff; man muss schon
beides tun.


Bis auf die Verwendung von ED25519 statt ECDSA bewegt sich das alles
in der Funktionalität des ursprünglichen, kompakten U2F-Standards.
FIDO2 ist gehörig angeschwollen, nachdem man ein ordentliches Komitee
mit mehr Google-Mitarbeitern und Microsoft gegründet hat. OpenSSH
unterstützt ein paar der hinzugekommenen Features, aber obiges Setup
erfüllt seinen Zweck mit minimaler Konfiguration.

Und noch ein wichtiger Hinweis: Der eigentliche private FIDO-Schlüssel
verlässt den Authenticator nie. Er lässt sich damit nicht duplizieren.
Da der Authenticator verloren oder kaputt gehen kann, hat man
sinnvollerweise einen zweiten Authenticator, mit dem man ein zweites
SSH-Schlüsselpaar erzeugt und den öffentlichen Teil auch in alle
~/.ssh/authorized_keys verteilt. Danach kann man diesen Backup-
Authenticator in den Safe legen.
--
Christian "naddy" Weisgerber ***@mips.inka.de
Torsten Berger
2022-05-26 18:21:15 UTC
Permalink
Hallo Christian,
Post by Christian Weisgerber
Offensichtlich, denn ich habe gar keine Frage gestellt.
Na dann, danke für den Hinweis aus dem Ursprungsposting.

Wie ich bereits geschrieben habe, verwende ich ein Setup, welches die
PGP Funktion des Yubikeys (4.x und 5.x) in Verbindung mit SSH verwendet.
Das lässt sich leicht vergleichen.

Meine Vermutung ist, dass die Linie zwischen ED25519 und ECDSA an der FW
Version 5.2.3 verläuft. Damit schließe ich mich Bastian seiner Meinung an.
Siehe hier für PGP:

https://support.yubico.com/hc/en-us/articles/360016649139-YubiKey-5-2-3-Enhancements-to-OpenPGP-3-4-Support

Das Einzige, was ich noch finden konnte, war dieses hier:

https://developers.yubico.com/SSH/Securing_SSH_with_FIDO2.html

Leider ebenfalls diesbezüglich ohne Details. :-(
Post by Christian Weisgerber
Post by Torsten Berger
Kannst Du bitte Dein Setup noch ein bisschen weiter ausführen?
Gerne.
...

Danke auch dafür!

Grüße Torsten
--
🐧 PGP public key:
https://keys.openpgp.org/vks/v1/by-fingerprint/44CA495BCF4947FE572A6853983B7EA7E3FC9051
Loading...