Mehr Sicherheit durch Zwei-Faktor-Authentifizierung mit dem YubiKey

23. Sep
2019
geschrieben von Roland Meier

In den letzten Wochen las ich immer wieder Berichte, wo es um das Thema Sicherheit, Passwörter und die 2 Faktor Authentisierung.

"FIDO2 und der Abschied vom Passwort" von Heise oder "Wichtige Dienste per Zwei-Faktor-Authentifizierung schützen" von PCWelt sind nur ein paar Beispiele.

Als Webentwickler und Serveradmin bin ich natürlich stets darum bemüht, das Sicherheitslevel hoch und die Angriffsfläche gering zu halten.
Aus diesem Grund habe ich mich um das Thema bemüht und mir einen ersten YubiKey bestellt.

 

Mir sind zwar Themen wie Account-Übernahme, Pishing & Co. durchaus bekannt und ich predige es selbst immer gegenüber Bekannten & Kunden, nicht blind durch die Gegend zu klicken, trotzdem ist es auch mir schon passiert...

"Schau Roland, hab dich auf diesem Video entdeckt..." kam vor nicht allzu langer Zeit und das auch noch von einer alten Bekannten. Ich las dies morgens noch im Bett und schwups war der Klick erledigt, aber es passierte nichts.

Wenige Minuten später las ich in ihrem Facebook Profil, dass ihr Account gehackt wurde... Oh mann... Die sofortige Durchführung meines Notfallplans verhinderte wohl schlimmeres.

 

Anzeige

Was ist die 2 Faktor Authentifizierung?

Prinzipiell kennt man dieses Verfahren bereits vom Online-Banking. Neben Benutzer/Kontonummer & Passwort/Pin kommt noch ein zweiter Faktor hinzu, Beispielsweise in Form einer TAN, einer Bestätigung in der Smartphone App oder der Karte im PC.

Im einfachsten Sinn kann man sich per SMS einen automatisch generierten Schlüssel schicken lassen, welcher nur eine bestimmte Zeit lang in Kombination der anderen Faktoren gültig ist.

Mit einem Hardwareschlüssel wie z.B. dem YubiKey kann dies noch einfacher bewerkstelligt werden, alleine dass der Schlüssel am System angesteckt, oder in NFC Reichweite ist.
Zusätzlich kann ein User seine Anwesenheit über den kleinen kapazitiven Touch-Bereich bestätigen.

 

Wie aber soll das nun verhindern, dass Unbefugte an meine Passwörter z.B. von Facebook kommen?
In der Tat, gar nicht...

Damit lässt sich nicht verhindern, dass ich in einem unachtsamen Moment auf einen schädlichen Link klicke, oder mir einen Trojaner einfange, welcher meine Zugangsdaten verschickt.
Diese sind aber sinnlos, wenn derjenige eben den 2. Faktor nicht hat. Im Falle eines YubiKeys müsste derjenige also auch meinen Schlüsselbund finden und damit käme er sowieso auch in mein Haus, Auto etc.

Oder er verschafft sich Zugang zu meinen 4 Wänden, dann präsentiere ich unseren Faktor 3:

lea faktor 3

 

Persönliche Überlegung welche Bereiche & Dienste ich absichern möchte?

Neben der erhöhten Sicherheit war ein Faktor für mich persönlich, ob ich evtl. sogar einen oder zwei Schritte vom alltäglichen Workflow einsparen kann?
Bisher verwende ich für fast all meine Dienste KeePassRC, alleine deswegen ist der Passwortsafe schonmal ein erster guter Anlaufpunkt, um die Sicherheit des Masterpassworts zu erhöhen.

Hier meine kleine Tabelle mit den ersten Überlegungen, auf die ich später im Einzelnen noch genauer eingehe:

Bereich / Dienst

Persönliche Priorität
(Schulnoten 1-6
1 = wichtig)

Weitere Beschreibung
Kubuntu / Windows Login 3 Kubuntu Linux Login mit dem YubiKey absichern
KeePass 1   KeePass mit dem YubiKey absichern
SSH Logins der Server 2  
Google Account 2  
Social Media & Forenaccounts 3  
Eigene Webseiten (Joomla) 3 Joomla! Webseiten mit dem YubiKey absichern 
 Haustüre als NFC Schlüssel 2 Mit dem YubiKey die DoorPI Türanlage steuern bzw. Haustür öffnen 
     
     

 

Hinweis:
Da ich mich selbst gerade bei den ersten Schritten versehentlich von den Unterschiedlichsten Diensten ausgesperrt habe, achtet bitte auf funktionierende Backup-Lösungen.
Lest am Besten auch die Punkte bis zum Ende durch, bevor Ihr loslegt. Wo es Schwierigkeiten gab, werde ich auch direkt darauf eingehen.

 

KeePass mit dem YubiKey absichern

Hinweis: Haltet eure Datenbankdatei immer auch ohne 2 Faktor Anmeldung als Backup, solltet Ihr euch einmal versehentlich aussperren.
Mein persönlicher Fall war, dass ich versehentlich den nachfolgenden 2. Slot mit einem anderen Key überschrieben habe und dadurch auf die abgesicherte Datenbank nicht mehr drauf kam.

Wie im vorherigen Punkt schon erwähnt, möchte ich als Erstes meinen Password-Safe absichern, zumal dieser auch auf meinen Linux, Windows und mobilen Geräten benutzt wird.

Mit dem YubiKey Personalization Tool (Anzeige) erstelle ich im 2. Slot einen neuen HMAC-SHA1 Challenge-Response Modus:

yubikey challenge response

 

Den Haken bei Require user input lasse ich mal entfernt, generiere einen Secret Key, welchen ich mir sicherheitshalber auch mal auf ein Papier schreibe und gehe auf Write Configuration.

 

Im KeePass gehe ich in der geöffneten Datenbank auf Hauptschlüssel ändern und gehe hier auf zusätzlichen Schutz hinzufügen. Ich wähle dann den YubiKey Challenge-Response und speichere die Einstellungen.

Anzeige

 

Im KeePass2Android wähle ich vor dem Öffnen der abgesicherten Datenbank dein Eintrag Passwort + Challenge-Respons für KeePassXC aus.

Beim ersten Anmeldeversuch erscheint, dass ich ykDroid benötige, die Treiber um Challenge Response von YubiKeys zu erkennen.

Anschließend kann die Datenbank wie gewohnt geöffnet werden, man legt wenn KeePass danach fragt den YubiKey einfach hinten am Smartphone in Antennennähe, bei meinem Samsung S8 im oberen Drittel.

 

Joomla! Webseiten mit dem YubiKey absichern

joomla yubikeyZugegeben, einen gehörigen "Schubser" in die Richtung bekam ich am JoomlaDay vom YubiKey Händler Christian Schmidt von HSW IT Consulting & Solution (Anzeige) welcher mir auch Tipps & Tricks bis hin zu Einrichtung und alltäglichen Nutzung gab.

Im Joomla! Backend kann das Zwei-Faktor-Authentifizierung - YubiKey Plugin z.B. für das Backend aktiviert werden.

Anschließend muss dann jeder Benutzer seinen Schlüssel für sein Konto hinterlegen.
Im Profil des Benutzers erscheint durch vorherige Aktivierung des Plugins ein weiterer Reiter Zwei-Faktor Authentifizierung.

Hier kann der YubiKey ausgewählt werden, um anschließend den Cursor in das Schlüsselfeld zu setzen und die goldene Fläche des YubiKeys zu berühren.
Der Schlüssel wird erstellt und eingetragen, danach kann das Profil gespeichert werden und es werden 10 Einmalpasswörter erstellt, um bei Verlust des YubiKeys noch ins System zu kommen.
Diese also am Besten an sicherer Stelle aufbewahren!

Beim Joomla! Login ins Backend erscheint nun ein neues Feld Sicherheitscode, in welches dann per Touch auf den angeschlossenen YubiKey der 2. Faktor eingetragen wird. (siehe rechtes Bild)

 

Kubuntu Linux Login mit dem YubiKey absichern

Mit der ersten Variante, den Kubuntu Login mit U2F abzusichern (Anzeige), bin ich gescheitert, weshalb ich gleich gar nicht näher darauf eingehe.

Hier hatte ich mich gleich mal selbst als Sudo ausgesperrt.
Beim Versuch die Root Rechte zu erlangen wurde der Yubikey nicht aktiviert, es wurde auch nicht danach gefragt.
Mit meinem Passwort alleine konnte ich die Rechte nicht mehr erhalten, was das System sogut wie unbrauchbar macht.
Gut dass ich in einer virtuellen Test-Kubuntu Installation unterwegs war.

Da ich aber das System nicht neu aufsetzen wollte, habe ich folgende Lösung durchgearbeitet:

 

Lösung der Kubuntu U2F Root-Sperre

Mit einer Live-CD habe ich die eigentliche Festplatte gemounted und die vorherige Zeile wieder entfernt.
Nach einem Neustart konnte ich auch ohne Yubikey wieder Root Rechte erlangen:

sudo mkdir /mnt/rescue
sudo mount /dev/sda1 /mnt/rescue
sudo nano /mnt/rescue/etc/pam.d/sudo
# vorher hinzugefügte Zeile wieder entfernen

 

Der zweite Versuch über die Challenge Response Methode (Anzeige) hatte dann funktioniert, im übrigen auch ohne die in anderen Beiträgen beschriebenen UDEV Regeln.


HINWEIS: Damit ich mich nicht nochmal aussperre, lass ich das Konsolenfenster, in welchem ich die sudo-Datei bearbeite und mich bereits ohne YubiKey autorisiert habe, geöffnet.
Meine Tests, ob die Anmeldung funktioniert, mache ich über ein 2. separates Konsolenfenster.
So kann ich im ursprünglichen Fenster einfach die Zeile wieder auskommentieren und sperre mich nicht selbst aus.

 

Hier die Befehle um den Sudo abzusichern:

sudo add-apt-repository ppa:yubico/stable && sudo apt-get update
sudo apt-get install libpam-yubico yubikey-manager

Der Challenge-Response Modus war bereits vom vorherigen KeePass Punkt in Slot 2 eingerichtet!
Der YubiKey ist angesteckt:

ykpamcfg -2

Sofern der Befehl erfolgreich war, wird der initiale Challenge abgespeichert wurde.

 

Dann kann Sudo mit der Authentifizierung verbunden werden:

sudo mcedit /etc/pam.d/sudo

# am Ende der Datei folgendes einfügen:
auth required pam_yubico.so mode=challenge-response

 

Hier dann eben einfach NUR SPEICHERN, das Fenster aber nicht schließen!

In einem 2. Fenster kann z.B. ein SUDO ECHO TEST mit und ohne YubiKey geprüft werden.

 

Nachdem nun Sudo funktioniert, wage ich mich an den eigentlichen Kubuntu Login.
Entgegen der Doku auf Yubico verwendet Kubungu SDDM für den Login, weshalb auch diese Datei verändert werden muss:

sudo mcedit /etc/pam.d/sddm

# am Ende der Datei folgendes einfügen:
auth required pam_yubico.so mode=challenge-response

 

Anschließend muss beim Login der YubiKey angesteckt sein.

 

Hinweis: Die beschriebene 1 Faktor Version, nur mit dem YubiKey, indem ich anstelle REQUIRED dann INSUFFICIENT verwende, hatte bei mir weder für SUDO noch für den Login funktioniert!
Im Gegenteil, beim Sudo wurde der YubiKey gar nicht mehr abgefragt, beim Login habe ich mich erneut ausgesperrt und ich musste über den genannten Weg der Live-CD die Datei zurücksetzen.

 

Mit dem YubiKey die DoorPI Türanlage steuern bzw. Haustür öffnen

NFC basiert auf der RFID-Technik, insofern kam ich relativ schnell auf die Idee, meinen NFC-fähigen YubiKey auch für die Haustüre zu verwenden.

rfid spule

 

Die Anschlüsse des RFID Moduls gehen auf den Raspberry Pin 4 (5V), Pin 6 (GND), Pin 8 & 120 (RX/TX) ACHTUNG bei letzteren ist evtl. ein Spannungsteiler nötig!
Ich werde hierzu noch eine Schaltung zeichnen und einfügen.

 

Am Raspberry muss man in der Raspi-Config die Konsolenausgabe auf die Serielle Schnittstelle abschalten, damit der RFID-Leser darauf kann.

In der DoorPI Config wird dann nur noch eine neue Keyboard Aktion hinzugefügt z.B.

[keyboards]
onboardpins = gpio
rfidreader = rdm6300

[rfidreader_InputPins]
1234567 = out:Tueroeffner,1,0,3 bzw. ipsrpc_setvalue:12345,True

 

Bei den InputPins gebe ich dann für jede ID meiner Transponder bzw. der im YubiKey hinterlegten Schlüssel eine Aktion ein.
In meinem Fall schalte ich die IP-Symcon Variable vom Türöffner.

 

Gelesen 186 mal Letzte Änderung am Freitag, 27 September 2019
Artikel bewerten
(2 Stimmen)

Schreibe einen Kommentar

Ich habe den Datenschutz gelesen. Ich stimme zu, dass meine Angaben und Daten zur elektronisch erhoben und gespeichert werden. Alternativ kann ich als Namen auch ein Pseudonym eintragen. Hinweis: Sie können Ihre Einwilligung jederzeit für die Zukunft per E-Mail an widerrufen.

Kalender

« Oktober 2019 »
Mo Di Mi Do Fr Sa So
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Newsletter

Euch interessieren meine Themen hier? Dann tragt euch einfach in den Newsletter ein und ihr werden bei neuen Beiträgen informiert.

Anzeige