Yubikey-Einrichtung mit PGP/SSH

Tim Niemeyer tim at tn-x.org
Sa Nov 7 10:43:16 CET 2020


Moin

Ich nutze den YubiKey ausschließlich für GnuPG. Über GnuPG mache ich
auch meine SSH Authentifizierung.

Der unschlagbare Vorteil ist, dass ich meinen GnuPG Key auch auf dem
Smartphone nutzen kann, obwohl man sich sicher sein kann, dass das
Smartphone unsicher ist. Die verschlüsselten Daten können dann zwar
abgegriffen werden, aber es ist nicht möglich meinen privaten GnuPG
Schlüssel zu klauen, weil er eben in einem anderen Gerät (dem YubiKey)
steckt. Der YubiKey ist tatsächlich auch ein kleiner Computer, so dass
der private Schlüssel beim Entschlüssel niemals den YubiKey verlassen
muss.

Neben dem YubiKey gibt es diverse Alternativen: 
https://en.wikipedia.org/wiki/OpenPGP_card

Günstige Nachbauten, wo man mit einem kleinen µC einfach eine Smartcard
nachbauen kann, haben aber meistens den Nachteil, dass man sehr leicht
den privaten Schlüssel (z.B. mittels Debug Adapter) aus der Hardware
extrahieren kann, falls die Smartcard mal geklaut wird. Sicherlich ist
das bei einer echten Smartcard auch nicht unmöglich, aber da kommen wir
eher in die Größenordnung von Rasterelektronenmikroskopen und so krams
-> also extrem(!) viel aufwändiger.

Ich persönlich würde bei der Auswahl immer drauf achten, dass ich min.
RSA Schlüssen mit 4096 Bit nutzen kann und dass ich ein NFC Interface
habe (damit ich das Ding am Handy nutzen kann). Hier mal die Liste der
Unterstützten Karten von OpenkeyChain:
https://github.com/open-keychain/open-keychain/wiki/Security-Tokens

Für den perfekten Alu-Hut-Charakter bietet GnuPG den Vorteil, dass man
die täglich genutzten Keys nur als "Sub-Key" an einem Haupt-Schlüssel
hat. Nur der Haupt-Schlüssel wird dabei von dritten beglaubigt. Falls
mir nun doch mal mein YubiKey verloren geht (oder er plötzlich nicht
mehr geht und ich annehmen muss, dass meiner gegen einen defekten
getauscht wurde), kann ich leicht die Schlüssel auf dem YubiKey für
ungültig erklären und mir neue ausstellen ohne das meine Beglaubigung
darunter leidet. Natürlich wird der Haupt-Schlüssel dadurch zu einer
noch kritischeren Ressource, weshalb er ausschließlich auf Computern
ohne Netzwerk/Funk Anschlüsse betrieben werden sollte. Macht man das,
hat man einen sog. "Offline-Master-Key". Mega geil, aber leider auch
sehr umständlich wenn es um das Thema Beglaubigungen geht. Die
Schlüssel von anderen Menschen lassen sich nämlich nur mit diesem
Haupt-Schlüssel beglaubigen.

Das Gegenseitige Beglaubigen ist wichtig, da nur so MITM Attaken
ausgeschlossen werden können. Jeder kennt die Meldung bei Signal, wo
sich offenbar die Schlüssel der Sitzung plötzlich geändert haben weil
der Gesprächspartner ein neues Handy hat oder so. Das ist ein riesen
Problem, denn für Angreifer ist es ein leichtes sich zwischen zu
schalten. Beide Parteien bekommen dann den Schlüssel vom Angreifer
vorgegaukelt. Eine kurze Nachricht al'la "Sry, hab neuinstalliert" an
beide Parteien geschickt und schon ist die Verschlüsselung gebrochen.
Bei GnuPG geht das nicht so einfach, weil man zum einen den Schlüssel
entsprechend sichern und wieder einspielen kann, zum anderen ein
Schlüssel nur benutzt werden sollte, wenn man einen beglaubigten Pfad
zum Ziel findet. Das ist im Grunde genauso wie bei https/ssl-
Zertifikaten, nur dass eben nur eine (nicht)vertrauenswürdige Instanz
die Zertifikate ausstellt, sondern alle teilen sich gegenseitig die
Zertifikate aus. Zertifikate können dabei Ketten bilden, so ist es
möglich, dass sich zwei gegenseitig authentifizieren, obwohl die sich
vielleicht selbst nie gesehen haben.

Wenn man nicht ganz so mega Alu-Hut-Mäßig unterwegs ist, kann man sich
das mit dem Offline-Master-Key sparen und den Master-Key einfach auf
seinem etwas besser vertrauen Online-PC speichern (vielleicht muss man
da nicht unbedingt Software aus nicht vertrauenswürdigen Quellen drauf
packen). Das hat aber den riesen Vorteil, dass das Thema Beglaubigungen
deutlich einfacher ist. Sollte dann man der Online-PC kompromittiert
sein, kann man den Master-Key immer noch für ungültig erklären und
einen neuen anlegen. Man muss dann nur wieder neue Beglaubigungen
sammeln.

Der YubiKey kann aber auch noch mehr als GnuPG, z.B. für die Zwei-
Faktor Authentifizierung nutzen oder statische Passwörter speichern
(was eigentlich ziemlich quatsch ist). Letztlich kann man da wohl über
dieses Java-Smartcard gedöns noch viel mehr machen. Auch dieses Fido
kann er. Habe ich aber alles links liegen lassen, für mich war nur
GnuPG spannend. ;-)

Grüße
Tim

Am Dienstag, den 03.11.2020, 22:18 +0100 schrieb fff at mm.franken.de:
> Für alle die auch keinen Plan haben und wissen möchten um was es
> geht:
> https://de.wikipedia.org/wiki/YubiKey
> 
> Wenn ich das richtig verstehe kann man damit die Passwortabfrage beim
> Systemstart durch einen USB-Dongle für 70 € ersetzen, der sicherer
> ist
> als das Passwort, den man aber immer physisch dabei haben muss (und
> der
> dann nicht verloren gehen oder geklaut werden darf...?
> 
> Gruss, Markus
> 
> 
> Am 03.11.2020 um 18:37 schrieb Felix Schymura:
> > Hallo zusammen,
> > 
> > für das nächste Haßfurt-Treffen im November, welches nun
> > pandemiebedingt
> > nicht stattfinden kann, war eine Erklärung von Yubikeys und der
> > Funktionsweise sie für PGP/SSH zu nutzen sowie das Erstellen der
> > Schlüssel seitens lemmi geplant. Er bat mich, hier in der Liste mal
> > nach
> > weiteren Interessenten zu suchen um herauszufinden, ob und wann
> > sich das
> > Ganze in einem Jitsi Meeting lohnt.
> > 
> > Bitte antwortet auf diese Mail (an alle), wenn Interesse besteht.
> > 
> > @lemmi: Hoffe ich habe das jetzt richtig verstanden und umgesetzt.
> > 
> > Grüße
> > Felix
> > 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: This is a digitally signed message part
URL         : <https://lists.freifunk.net/pipermail/franken-freifunk.net/attachments/20201107/68afbc30/attachment.sig>


Mehr Informationen über die Mailingliste franken