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

Re: FIDO-basierte SSH-Schluessel


On Thu, Jun 09, 2022 at 08:31:34PM -0000, Christian Weisgerber wrote:
> On 2022-06-09, Marc Haber <mh+uugrn@xxxxxxxxxxxx> wrote:
> > (1) mit Resident Keys
> > Dabei ist der Key komplett auf dem Key gespeichert und der Key macht die
> > Kryptographie wie bei einem normalen Crypto-Device, damit braucht man
> > nur den Key und eventuelle Sicherheitsmaßnahmen wie eine PIN (wenn es
> > das bei dem Key gibt) um die Authentifikation auslösen zu können.
> 
> Wenn man mit ssh-keygen einen Resident Key erzeugt, wird der private
> SSH-Schlüssel (= FIDO-Keyhandle) zwar auf dem Authenticator
> gespeichert, aber um ihn mit ssh benutzen zu können, muss man ihn
> vom Authenticator runterladen, sei es als Datei (ssh-keygen -K),
> sei es direkt in den ssh-agent (ssh-add -K).
> 
> Ich sehe keinen Sicherheitsgewinn gegenüber einem Nonresident Key,
> der auf dem Rechner liegt.

Es ist ein Komfortgewinn weil man nicht genau den Rechner braucht, aber
das ist ja vielleicht gar nicht gewollt. Ich gebe zu, dass ich meinen
Yubikey mit PIV schon mehrmals genutzt habe um von einem eigentlich
nicht dafür gedachten Rechner auf einen ssh-Server zuzugreifen, aber
eigentlich waren das Verletzung meiner eigenen Policy. Mit einem
resident FIDO key würde das genau so gehen, mit einem non-resident key
wird der Rechner auf dem der Key abgelegt ist zu einem zweiten faktor
light. Light deswegen, weil man den privaten Schlüssel kopieren und
diesen dann zusammen mit dem Authenticator zum Login verwenden kann.

Vielleicht ist die Arbeit mit einem Resident Key auch einfacher, wenn
der ssh-Client ein Smartphone ist.

Es gibt noch einen deutlichen Unterschied zum PIV-Key: Wenn man den
PIV-Key in den ssh-Agent lädt, braucht man dafür die PIN für den
Yubikey. Wenn man den FIDO2-Key in den ssh-Agent lädt, braucht man dafür
den Passphrase für den secret key, die man optiomal vergeben kann wie
für einen normalen ssh-Key. Die PIN für den FIDO Authenticator braucht
man z.b. zum Generieren eines neuen Keys und gewisse andere ssh-keygen
Operationen, aber nicht im "normalen" Betrieb. Ist der Key mit
"verify-rquired" gebaut, braucht man die PIN bei JEDER Verwendung des
Keys, nicht nur beim Einladen in den ssh-agent.

Für mich wird das dazu führen, dass ich die FIDO2-SSH-keys wie
"normale" ssh-Keys verwalten werde: Auf jedem Rechner wird es einen
eigenen mit eigener Passphrase geben, damit ich im Falle des
Rechnerverlusts keyscharf sperren kann. Der Authenticator ist in diesem
Setup nur ein Anhängsel des auf dem Rechner gespeicherten Keys, während
beim PIV-Key der Yubikey der Speicherort des Private Keys ist.

Muss noch in mich gehen ob ich - wenn ich denn einen ecdsa key brauche
und nicht eh alles mit ed25519 abfackeln kann - den beiden private keys
dieselbe Passphrase geben kann, sonst wird das vermutlich echt
unübersichlich.

Und das "authenticator anfassen" wird vermutlich beim Starten von
ansible run mit > 20 Zielen ziemlich schnell ziemlich lästig.

> Um Resident Keys anlegen zu können, muss meines Wissens mit
> Herstellersoftware eine PIN am Authenticator konfiguriert werden.

Und der ykman-gui hat inzwischen genau so wie sein
Kommandozeilen-Gegenstück wieder den Einzug nach Debian gefunden. Damit
ist man nun voll arbeitsfähig. Irgendwo habe ich noch einen Nitrokey
rumfliegen und es gibt inzwischen auch Authenticatoren auf Basis freier
Hard- und Firmware. Fall: Ist der ykman-gui gestartet, kann ssh nicht
auf den gesteckten Key zugreifen und versagt mit subtilen, aber nicht
auf den vermuteten Zugriffskonflikt hinweisenden Fehlermeldungen.

> Resident Keys mögen sinnvoll sein in einem Firmenumfeld, wo man an
> ständig wechselnden Rechnern arbeitet. Wer dagegen immer am selben
> Desktop und Laptop sitzt, kann dort einfach ~/.ssh/id_ed25519_sk
> hinterlegen.

Das kommt darauf an wie man es haben will, aber ich denke fürs erste
arbeite ich mal mit non-resident keys. Vieleicht noch irgendwo einen
Reserve-Authenticator mit Resident Key hinterlegen für den Fall dass man
total abbrennt.

Grüße
Marc

-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421

-- 
Unix User Group Rhein-Neckar e.V.       https://www.uugrn.org
Archiv und An-/Abmeldeinformationen     https://mail2.uugrn.org
Veranstaltungen https://fixme.uugrn.org https://stammtisch.uugrn.org

Follow-Ups:
Re: FIDO-basierte SSH-SchluesselChristian Weisgerber <naddy@xxxxxxxxxxxx>
References:
Re: FIDO-basierte SSH-SchluesselChristian Weisgerber <naddy@xxxxxxxxxxxx>