Mehrfaktorauthentifizierung per Yubikey für Azure und SSH

Eine sichere Authentifizierung, sowie der sichere Umgang mit Authentifizierungsmerkmalen sind wesentliche Bausteine der modernen IT-Security. Grund genug als Dienstleister in dem Bereich mit gutem Beispiel voran zu gehen und die Möglichkeiten für eine sichere Authentifizierung aus dem Microsoft Universum rund um AzureAD / EntraID, sowie aus dem Linux-Universum im Kontext der SSH-Public-Key-Authentifizierung voll auszuschöpfen. Zum Einsatz kommt hierfür der Yubikey 5. Im Folgenden beschreiben wir unsere Erfahrungen der letzten Monate.  

Authentifizierung mit dem Yubikey

Mit Hilfe des Yubikey lässt sich eine sichere Mehrfaktorauthentifizierung für verschiedene Dienste realisieren. Der Yubikey selbst ist dabei keine neue Erfindung, hatte aber immer mit Problemen und Vorurteilen zu kämpfen: 

  • Zu teuer
  • Zu kompliziert
  • Zu wenig Unterstützung in der Fläche

Wir haben ein paar Anwendungsfälle zusammengetragen und – mit etwas Energie – den Umstieg von der Authenticator App und den OTP-Zahlenreihen durchgezogen. In den ersten Schritten waren es die folgenden Szenarien, bei denen der Yubikey zum Einsatz kam:

Das ganze funktioniert sowohl am Windows-PC, als auch am iPad – was die Nutzung unterwegs vereinfacht. 

 

Mehrfaktorauthentifizierung - Yubikey-Manager mit Interfaces

Der Yubikey 5 NFC verfügt über eine Vielzahl von Schnittstellen zur Nutzung. Da ist FIDO2 nur eine der Möglichkeiten, um sichere Mehrfaktorauthentifizierung für die verschiedenen Anwendungsfälle zu realisieren. Wir Nutzen hier FIDO2 / WebAuthn und OpenPGP – Letzteres allerdings nicht für die Verschlüsselung oder Signatur von E-Mails, sondern für die Erzeugung von SSH-Schlüsselpaaren und die SSH-Publik-Key-Authentifizierung.

Sichere Authentifizierung mit Azure AD / Entra ID

Die Sicherheit von Microsoft M365 und den Azure zählen neben Penetrationstests zu unseren Kernthemen. Klar, dass Conditional Access und die Absicherung von „Entra ID“ (Danke Microsoft – wirklich, wirklich wichtige Namensänderung *Sarkasmus OFF*) da einen großen Fokus haben. Zuletzt haben wir uns mit Conditional Access und WhatIf im Detail beschäftigt und auch das passende Audit-Tool WhatTheAzureCA dazu veröffentlicht. 

Aber Klartext: Azure / M365 sind „jederzeit von überall aus“ angreifbar – ähm: erreichbar. Der Schutz des Zugriffs ist daher essentiell. Angriffe wie „MFA Fatigue“ und „Adversary in the Middle“ haben gezeigt, dass insbesondere hochkarätige Accounts besonders gut geschützt werden müssen. 

Im Bereich „Authentication strengths“ führt Microsoft die möglichen Verfahren zur Nutzung von MFA in Conditional Access auf. Phishing-resistant MFA ist dabei die Variante mit der geringsten Anzahl „Authentication Methods“. Custom-Regeln können genutzt werden, um explizit einen „FIDO2 Security Key“ wie den Yubikey zu erfordern. 

Azure Authentication strengths

Der Login über den Yubikey funktioniert unter Windows in Firefox, Chrome und co., sowie unter iOS – beispielsweise auch auf dem iPad. Die Idee dahinter: Keine (sicherheitsrelevanten) administrativen Aufgaben oder Logins mit dem „Global Administrator“ (+ X) ohne Phishing-resistant MFA. Kein „wegklicken“ von Anmeldeaufforderungen Nachts um 2. Keine Chance für Man-in-the-Middle-Angriffe über evilginx und seine Mitstreiter. Aber was passiert, wenn der Key verloren geht? Oder gestohlen wird? Oder kaputt geht? Naja, ein Backup-Plan muss her (s.u.). Ein gut konfiguriertes CA-Regelwerk kann auch helfen, um ein „Hintertürchen“ offen zu lassen – und damit ist nicht das Hintertürchen für Microsoft gemeint :-).

WebAuthn - Bitwarden und mehr

Die Verwaltung von Onlinezugriffen ist ein großes Thema. Ein Passwort-Safe macht da auf jeden Fall Sinn. Der muss immer und überall erreichbar sein, braucht also über das Internet eine entsprechende Absicherung. 

Bitwarden unterstützt in der Community Edition beispielsweise die Nutzung einer Authenticator App oder FIDO2 WebAuthn – die direkte Nutzung des Yubikey ist der Enterprise Lizenz vorbehalten. 

BitWarden-FIDO2 WebAuthn

Klar, die Authenticator App stellt eine Variante von MFA dar. Der Token ist auf einem separaten Gerät. Gefühlt tippe ich am Tag 20 x OTP-Ziffernblöcke in irgendwelche Formulare. Ob die Seiten immer echt sind?! 

Der Hauptgrund hier WebAuthn zu aktivieren ist aber Bequemlichkeit: Den Yubikey brauche ich eh für die Anmeldung an Windows, Azure und den SSH-Servern. Mit WebAuthn für Bitwarden entfällt an dieser Stelle also das Entsperren des Handys und das Abtippen des OTP. Auch WebAuthn funktioniert mit dem Yubikey 5 seither einwandfrei. 

Sichere Aufbewahrung von SSH-Public-Key-Schlüsseln

Natürlich kennen wir alle die Theorie: SSH-Authentifizierung nur per Public-Key. Niemals per Passwort – ein Passwort lässt sich durch einen Angreifer leichter erraten und gilt nicht als Mehrfaktorauthentifizierung. Auch wenn Werkzeuge wie fail2ban einem Angreifer das Leben mit Brute-Force-Angriffen schon schwer machen. 

Mit der Nutzung von Public-Key-Authentifizierung haben wir aber neue Probleme: 

  • Wie schützen wir den Key?
  • Und hat jedes System den gleichen Key oder bekommt jedes System einen individuellen Key?
  • Wo liegen die Passworte für jeden Key?  

Es war einer unserer Penetrationstests Anfang des Jahres, in dem das Thema mal wieder offensichtlich wurde: Alle Linux-Systeme hatten den gleichen Benutzer (root) mit dem gleichen Public-Private-Key-Paar. Der Private-Key landete „ausversehen“ auf einem File-Share. Der war „unüblicherweise“ world-readable. Microsoft würde wohl von einer ungünstigen Verkettung von Umständen sprechen. Das Resultat war verheerend: Zugriff auf sämtliche Linux-Systeme mit dem „root“-Benutzer. Wären wir Ransomware, dann wäre das ein schwarzer Tag für den Kunden gewesen. 

Mit (einigen) Yubikeys lassen sich SSH-Schlüsselpaare erzeugen, sicher verwahren und mit GnuPG direkt von dort aus für die Authentifizierung nutzen. Die Anleitung stellt Yubico hier selbst zur Verfügung. 

Der Vorteil?

  • Der SSH-Private-Key wird auf dem Yubikey erzeugt
  • Der SSH-Private-Key liegt auf dem Yubikey
  • Der SSH-Private-Key kann nur nach PIN-Eingabe auf dem Yubikey entsperrt werden
  • Der SSH-Private-Key liegt nicht auf dem Dateisystem, kann nicht kopiert werden und ist damit vor dem unbefugten Abzug und Brute-Force-Angriffen auf die PIN geschützt. 

Der Nachteil? 

  • Der SSH-Key liegt genau an einem Ort … aber dazu unten mehr
  • Es braucht die gpg-Software auf dem System, auf dem der Yubikey benutzt wird

Das Setup eines neuen Keys ist in wenigen Minuten erledigt – ja: pro Key. Und der Benutzer wird ebenfalls benötigt, um seine PIN einzugeben. Auch die Installation von gpg und das Starten sind schnell erledigt:

gpg-connect-agent killagent  /bye

gpg-connect-agent /bye

Für Großunternehmen vermutlich nicht die geilste Lösung. Wer ohnehin IT-Equipment persönlich übergibt und einrichtet, der hat die paar Minuten wohl auch noch! 

Achtung: Backup planen!

Ohne den Yubikey geht nichts mehr! Zwar ist das Risiko eher gering, dass der Yubikey im Rahmen eines Ransomware-Angriffs verschlüsselt wird, dafür stehen andere Risiken im Raum:

  1. Wo ist nur mein Kopf .. ähhh Yubikey geblieben?! – Vergessen 
  2. Wie, der Yubikey kann nicht tauchen?! – Kaputt 
  3. Ach verdammt, der war doch vorhin noch da – Geklaut 

Während Szenario 1 nur ein temporäres Problem ist, können 2. und 3. zu ungewollten Zugriffsproblemen auf die eigene Infrastruktur führen. Gerade, wenn „root“-Konten oder „Global Administrator“-Konten per Yubikey abgesichert sind, sollte ein Backup-Plan existieren, um im Fall der Fälle noch an die Systeme und Daten zu kommen. 

Verfügt etwa der Tenant über mehrere Administratoren, dann ist der Verlust eines Keys womöglich nicht so dramatisch – ein Firefighter-Global-Admin ohne MFA mit Passwort im Safe ist dennoch keine üble Idee. 

Ähnlich sieht es bei den SSH-Keys aus. Hat nur eine Person Zugriff auf ein System, dann braucht es einen weiteren Yubikey mit einem zusätzlichen SSH-Keypair. Wir haben uns in diesen Fällen übrigens für zwei Backups an unterschiedlichen Orten entschieden. So sind für die administrativen Benutzer jeweils drei Keys in den authorized_keys hinterlegt. Da ohnehin auf jedem System die authorized_keys angefasst werden mussten, war der Mehraufwand überschaubar. Die Kosten auch. Der Verlust eines Keys ist kein Problem. Durch die geschickte Verteilung der Keys ist auch das „Vergessen“-Szenario gut abgedeckt. 

Sichere Mehrfaktorauthentifizierung - ein gutes Gefühl

Die vielseitigen Nutzungsmöglichkeiten vom Yubikey haben uns in der Praxis überrascht – insbesondere angesichts der geringen Verteilung in der Praxis. Der Sicherheitsgewinn ist für jedes Szenario individuell, aber nicht zu vernachlässigen:

  • Phishing-resistentes MFA für Azure 
  • Diebstahl-resistente Erzeugung und Aufbewahrung der SSH-Keys
  • Schwachstellenunabhängige MFA für Webdienste 

Ja – der letzte Punkt wird auch oft vernachlässigt. Trotz regelmäßiger „aktiv ausgenutzter Zero-Day-Angriffe“ auf Apple-Geräten, gelten diese und die Nutzung der Authenticator Apps irgendwie noch als sicher. Dabei sind die kleinen Computer längst regelmäßig mit kritischen Schwachstellen gesegnet, die zumindest zum Hinterfragen dieser Vertrauensstellung führen sollten. Beim Yubikey ist die Angriffsfläche zumindest mal deutlich kleiner. Und mit Blick auf die Verteilung an Mitarbeiter ist der Yubikey auch deutlich günstiger als ein Smartphone – gerade da, wo „ich pack doch keine Unternehmens-App auf mein privates Gerät“-Menschen unterwegs sind. 

Das Fazit nach mehreren Monaten Yubikey für die obigen Anwendungsfälle: Ausprobieren lohnt sich. Es ist sicher, es funktioniert und lässt sich um viele weitere Anwendungsfelder ergänzen!