Hadmut Danisch

Ansichten eines Informatikers

Die Sicherheit von Yubikeys

Hadmut
15.11.2020 17:15

Ein kryptographisches Stirnrunzeln.

Es ist ja ein altbekanntes Problem, wie man seine kryptographischen Schlüssel speichert. PGP, SSL/TLS, ssh und ähnliche.

Die einfache Variante ist, sie einfach als Passwort-verschlüsselte Datei, einzeln oder in einem „Keyring” mit mehreren zu speichern. Lässt sich auch leicht auf andere Rechner kopieren.

Wenn der Rechner aber auch nur irgendeine Schwäche hat, jemand ihn penetriert, die Software faul ist, oder auch nur eine Fehlkonfiguration, dann kann ein Angreifer an die Datei kommen und Passworte durchprobieren, oder auch den Speicher der Software nach Eingabe des Passwortes, also den privaten Schlüssel im Klartext auslesen und dann alle Nachrichten knacken (außer Online-Verbindung mit zusätzlichem DH oder andere Verfahren der „perfect forward secrecy”).

Die Abwehrmethode dagegen ist, Schlüssel in einem Stück Sonderhardware zu verbergen, so dass man den Schlüssel nicht mehr rauskopieren kann. In Rechenzentren mit Servern kann das ein eigener, speziell geschützter Server sein, sogenannte HSM (Hardware Security module) oder NetHSM (über das Netzwerk). So einem Ding kann man sagen „mach mir mal diese verschlüssele E-Mail auf”, aber nicht „Gib mir mal eine Kopie des Schlüssels”.

Für den kleinen Schreibtisch-PC gibt es da andere Mittel. Im Prinzip das gleiche, nur viel kleiner. Biespielsweise das TPM, das Trusted Platform Module. Oder ein Security-Token in Form eines USB-Sticks. Oder eine Chipkarte.

Ich hatte ja schon erzählt, dass wir damals am E.I.S.S. Chipkarten und Leser entwickelt hatten. Ich habe zwar noch irgendwo welche als Andenken, aber benutzt haben wir die seit ca. 2000 nicht mehr, weil die Rechte an der Software an der Uni und bei Xlink geblieben warn, die nicht mehr weiterentwickelt wurden, veraltet sind, und ich die Software auch nicht mehr habe. So Mitte der 2000er Jahre hatte ich (dann in Dresen) mal Aladdin eToken in Gebrauch, das war aber eher rustikal und inkompatibel zwischen Linux und Windows, weil noch irgend ein Standard fehlte. Aber funktioniert hat das schon.

Im Prinzip stellen alle diese USB-Token noch immer eine altmodische Chipkarte dar, und tun softwaremäßig so, als wären sie ein externer Kartenleser mit serieller Schnittstelle von anno Tobak, in dem eine Chipkarte steckt. Deshalb werden sie auch als Kartenleser angezeigt, obwohl man nichts reinstecken oder rausziehen kann. Wie ein Kartenleser, in den man die Karte fest eingeklebt hat.

Keine Ahnung, was mit den Aladdins passiert ist, irgendwann waren die trotz neuer Modelle mehr oder weniger verschwunden. Ich hatte mir zwar aus alten Beständen privat noch welche beschafft, konnte die aber nicht mehr benutzen, weil die Software unter Linux neueren, inzwischen definierten Standards entsprach, die Aladdins aber nicht aktualisiert worden waren. Ich hatte mal nachgeforscht, und war darauf gestoßen, dass die Firma von Safenet geschluckt worden war, und die antworteten mir auf nachbohren, dass sie für den Endkundenmarkt nicht mehr produzierten. Die wurden wiederum von Gemalto irgendwie absorbiert.

Inzwischen kann man zwar auch Gemalto eToken kaufen, die habe ich aber nie probiert.

Total hip in der Szene (aber nicht billig) sind seit ein paar Jahren die Yubikey Token.

Das liegt daran, dass sie sehr gefällig gemacht sind und ein schön flaches, robustes, dichtes Gehäuse haben und sehr praktisch sind. Und, je nach Modell, einiges an Funktionen bieten. OTP, U2F, FIDO2, GnuPG, TLS/SSL/RSA über PKCS11-Bibliothek, also für alles möglich zu verwenden, beispielsweise für Webbrowser oder Mailclients, außerdem noch ein Yubi-eigenes Authentifikationssystems, und notfalls können sie sich als Tastatur ausgeben, die eine Passworteingabe vorspielt. Dazu als Taste eine Sensortaste, die sich also nicht abnutzt oder klemmen kann, und es gibt auch Varianten mit NFC, die man mit dem Handy verwenden kann. Plus nette Software.

Funktionieren auch prima und, naja, ich sage mal problemarm, sind jedenfalls gut entwickelt und gemacht, da kümmert sich jemand wirklich drum. Feine Sache, und Handschmeichler auch noch.

Die Sache hat zwei Haken:

  • Technisch gesehen speichert man den Schlüssel darin nicht mehr kryptographisch gesichert, sondern per Systemsicherheit. Denn so ein token ist im Prinzip auch nur ein ganz kleiner Computer, dem gegenüber man sich mit Passwort (=PIN) ausweist, um sich einzuloggen. Also eine Verschiebung in die Systemsicherheit.

    Eine verschlüsselte Schlüsseldatei auf meinem eigenen Rechner ist zwar deutlich gefährdet, aber so lange sie gut verschlüsselt auf der Platte liegt und ich das Passwort nicht eingebe, kann die Software noch so faul sein, kommen die da nicht dran. Weil die Daten selbst gesichert sind.

    Zwar gilt so ein Token als sicherer, weil eben der Schlüssel nicht angreifbar ist (sein soll), wenn der Rechner übernommen wird, und der Schlüssel eben im Token drin liegt, und nur da, aber wenn das Ding eine Backdoor hat, liegt der Schlüssel offen vor, weil der da drin im Klartext gespeichert wird. Die PINs sind in der Regel zu kurz, um die Schlüssel damit ernstlich zu verschlüsseln. Kann man eh nicht nachprüfen, und wenn die eine Backdoor haben, würden sie es ja auch nicht wirklich tun.

  • Die Yubikey Token werden in den USA und Schweden hergestellt. Gemacht von einer schwedischen Firma mit Niederlassung in den USA.

    Da kann man sich jetzt in Kenntnis des US-Rechts fragen, ob die überhaupt sicher sein dürfen.

    Oder ob nicht gerade der Verkauf von Yubikeys ein Angriff auf normale, als Datei gespeicherte Schlüssel ist, weil die Leute dann zwar den Schlüssel im Yubikey speichern, der daran aber potentiell im Klartext liegt und per Backdoor von Software ausgelesen werden könnte. So rein theoretisch ist so ein Token also sogar unsicherer als eine mit einem gutem Passwort verschlüsselte Datei, weil zwar nett gegen normale Angreifer, aber der, der eine eventuelle Backdoor kennt, den Schlüssel einfach so auslesen könnte, was bei einer verschlüsselten Datei nicht ginge.

Es gibt da noch die Nitrokey.

Die können weniger, haben kein so schönes Gehäuse, dafür einen richtigen, vollständigen USB-Stecker aus Metall, und rühmen sich, in Berlin konstruiert und hergestellt zu sein. (Woher der wichtige Sicherheitsbaustein darin dann tatsächlich kommt, wäre eine andere Frage.)

Wie man nun die USA, Schweden oder Berlin als Ursprungsorte von Security-Token einstuft, das folgt eigentlich aus den bisherigen Blog-Artikeln.