Sicheres Desktop-Login mit Einmal-Token

Aus LinuxUser 12/2014

Sicheres Desktop-Login mit Einmal-Token

Doppelt gemoppelt

Für die Desktop-Anmeldung genügen normalerweise Benutzername und Passwort – beide oft leicht zu erraten. Für besseren Schutz sorgt eine Zwei-Faktor-Authentifizierung mithilfe eines PAM-Moduls und einer kostenlosen Handy-App.

Die übliche Desktop-Anmeldung per Benutzername und Kennwort bietet zwar einen rudimentären Schutz vor unerlaubtem Zugriff, reicht aber nicht immer aus. Zudem verwenden viele Anwender unsichere Passwörter oder heften gar die Login-Daten auf einem Notizzettel an den Monitor. Man muss kein Sicherheitsexperte sein, um festzustellen, dass der Login in solchen Situationen keine wirkliche Hürde darstellt.

Ein besseres Gefühl versprechen Methoden, die einen zusätzlichen Faktor ins Spiel bringen. So bieten etwa frisch generierte, nur einmalig gültige Security-Token, also passwortähnliche Zeichenketten, ein zusätzliches Maß an Sicherheit. Der Rechner fragt ein solches One Time Password (OTP) beim Login zusammen mit den üblichen Daten ab.

Der Clou dabei: Nur der berechtigte Anwender hat Zugriff auf das Einmal-Token; unberechtigte Dritte (wie zum Beispiel Kollegen) kommen nicht an das OTP heran und können sich ergo nicht am PC anmelden. Solche Mechanismen bezeichnet man auch als Zwei-Faktor-Authentifizierung.

Google hilft

Die Implementation einer Zwei-Faktor-Authentifizierung erfolgt auf Linux-Systemen meist über PAM-Module – so auch in unserem Fall bei der Erweiterung des Desktop-Logins. Eine simple, aber mächtige Lösung dazu kommt von Google: Unter Zuhilfenahme des Google Authenticators [1] erweitern Sie die für das Login zuständigen PAM-Module auf dem Linux-Rechner, indem Sie eine zusätzliche Bibliothek einhängen.

Zudem installieren Sie auf Ihrem Android-, iOS- oder Blackberry-Smartphone eine kostenlose App [2], die das eigene Linux-Login mit dem Google Authenticator verknüpft. Fordert das System dann zur Eingabe eines Einmal-Tokens mit zeitlich begrenzter Gültigkeit (TOTP, Time-based One Time Password) auf, greifen Sie zum Smartphone und lesen die Zeichenkette ab.

An dieser Stelle sei erwähnt, dass sowohl das Smartphone als auch der Linux-Rechner dazu eine funktionierende Zeitsynchronisation benötigen. Läuft die Zeit auf beiden Geräten auseinander, funktioniert das Login mittels TOPT nicht mehr. Der Google-Authenticator-Mechanismus muss übrigens nicht zwingend für alle Benutzer des fraglichen Systems verpflichtend sein: PAM lässt sich so konfigurieren, dass es andere Benutzer nicht vom System aussperrt.

Fünf Minuten

Für unsere Testinstallation verwendeten wir Ubuntu 14.04 (32 Bit). Sofern nicht explizit anders angegeben, müssen Sie alle gezeigten Befehle mit Root-Rechten ausführen.

TIPP

Falls Sie nicht mit Ubuntu oder einem seiner zahlreichen Derivate arbeiten, sondern mit einer anderen Distribution, finden Sie im offiziellen Wiki des Google-Authenticator-Projekts [6] wertvolle Tipps und Tricks zur Zwei-Faktor-Authentifizierung.

Zunächst einmal bringen Sie per Apt-get das System auf den aktuellsten Stand (Listing  1, Zeile 1 und 2), anschließend richten Sie die benötigten Komponenten aus dem Repository ein (dritte Zeile). In unserem Test war das notwendige Paket libpam-google-authenticator im offiziellen Ubuntu-Repo verfügbar. Unter anderen Distributionen kann das entsprechende Paket einen anderen Namen tragen.

Listing 1

$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get install libpam-google-authenticator libqrencode3

Das Paket libqrencode3 benötigen Sie nur für ein zusätzliches Maß an Komfort: Die Bibliothek ermöglicht es dem Google Authenticator, einen QR-Code zu erzeugen. Den scannen Sie dann mit dem Smartphone ein und verknüpfen so Ihr Benutzerkonto mit dem Google Authenticator.

Im nächsten Schritt gilt es, den Google Authenticator in die Login-Maske einzubauen, die beim Systemstart erscheint. Unter Ubuntu 14.04 öffnen Sie dazu die PAM-Konfigurationsdatei des Display-Managers Lightdm (/etc/pam.d/lightdm) mit einem Texteditor und hängen Sie die folgende Zeile am Ende der Datei an:

auth required pam_google_authenticator.so nullok

Der Parameter nullok am Ende der Zeile sorgt dafür, dass auch weiterhin für einzelne Benutzerkonten eine Anmeldung ohne Google Authenticator möglich bleibt.

Soll auch der Bildschirmschoner beim Entsperren ein Sicherheits-Token verlangen, müssen Sie zudem die Datei /etc/pam.d/gnome-screensaver durch Anhängen der angegebenen Zeile anpassen.

TIPP

Verwenden Sie weder Lightdm noch den Gnome-Screensaver, nehmen Sie die Anpassungen stattdessen bei den von Ihrem System eingesetzten Display-Managern und Screensavern vor. Wir haben den Google Authenticator allerdings ausschließlich unter Ubuntu getestet.

Token, Token, Token …

Nun aktivieren Sie den Google Authenticator für das gewünschte Benutzerkonto. Dazu muss die Google-Authenticator-App bereits auf Ihrem Smartphone installiert sein. Öffnen Sie nun unter Linux ein Terminal und tippen Sie den Befehl google-authenticator ein. Die Anwendung schlägt verschiedene Konfigurationsmöglichkeiten vor, wobei es Ihnen freisteht, für welche Varianten Sie sich entscheiden.

Das Tool erklärt alle Konfigurationswerte, allerdings ausschließlich in Englisch. Die erste Frage beantworten wir in unserem Test mit Ja, woraufhin der Google Authenticator einen QR-Code ausspuckt (Abbildung 1). Nun öffnen Sie auf dem Smartphone die entsprechende App (Abbildung 2) und scannen den QR-Code ein (Abbildung 3). Auf diese Weise verknüpfen Sie die Linux-Anmeldung mit dem Google Authenticator. Die App quittiert das mit den warmen Worten Das war’s schon! (Abbildung 4).

Abbildung 1: Der Google Authenticator generiert die erforderlichen Daten und stellt einen QR-Code zum Einscannen bereit.

Abbildung 1: Der Google Authenticator generiert die erforderlichen Daten und stellt einen QR-Code zum Einscannen bereit.

Abbildung 2: Nach dem erstmaligen Öffnen der Google-Authenticator-App lässt uns Google einen Barcode scannen.

Abbildung 2: Nach dem erstmaligen Öffnen der Google-Authenticator-App lässt uns Google einen Barcode scannen.

Abbildung 3: Das Einscannen des QR-Codes funktioniert auf Anhieb ohne Probleme.

Abbildung 3: Das Einscannen des QR-Codes funktioniert auf Anhieb ohne Probleme.

Abbildung 4: Der Google Authenticator bestätigt den erfolgreichen Verknüpfungsvorgang.

Abbildung 4: Der Google Authenticator bestätigt den erfolgreichen Verknüpfungsvorgang.

Damit ist die Einrichtung jedoch noch nicht ganz abgeschlossen: Der Authenticator stellt weitere Fragen, die Sie nach eigenem Ermessen beantworten können. Wir haben uns dazu entschlossen, alle Fragen mit y zu beantworten, also mit Ja. Wie ein abgeschlossener Konfigurationsdialog in der Konsole aussieht, zeigt Abbildung 5.

Abbildung 5: Nach nur wenigen Augenblicken ist die Einrichtung des Google Authenticators abgeschlossen.

Abbildung 5: Nach nur wenigen Augenblicken ist die Einrichtung des Google Authenticators abgeschlossen.

Während der Beantwortung der Fragen erscheinen im Terminalfenster sogenannte Emergency Scratch Codes. Damit melden Sie sich am Rechner an, falls das Smartphone einmal nicht zur Hand ist, die App nicht richtig funktioniert oder auf Rechner und Smartphone die Systemzeit zu weit auseinanderläuft. Diese einmalig gültigen Token schreiben Sie sich auf und lagern Sie an sicherer Stelle fern des eigenen Rechners.

Vertrauen ist gut …

Damit ist das Einrichten des Google Authenticators abgeschlossen, ein erster Test steht an. Prinzipiell genügt es, sich dazu aus der aktuellen Desktop-Sitzung auszuloggen; da Sie jedoch das System zu Beginn der Einrichtung aktualisiert haben, starten Sie es bei dieser Gelegenheit gleich neu.

Bei der nächsten Anmeldung für eine Desktop-Sitzung fragt das System neben dem Benutzernamen und dem Kennwort auch ein Einmal-Token ab (Abbildung 6). Öffnen Sie also die Smartphone-App und geben Sie das angezeigte Token in der Login-Maske ein. Vergessen Sie nicht: Das TOTP gilt nur für einen begrenzten Zeitraum. Erfreulicherweise Weise funktioniert das Generieren des TOTP übrigens auch dann, wenn das Smartphone über keine Netzwerkverbindung verfügt.

Abbildung 6: Das System verlangt nach einem TOPT.

Abbildung 6: Das System verlangt nach einem TOPT.

Fazit

Das Absichern des Desktop-Logins mittels Zwei-Faktor-Authentifizierung erfordert nur geringen Einrichtungsaufwand, bringt dafür aber ein hohes Maß an zusätzlicher Sicherheit. Der Google Authenticator zeigt sich als nützliches und handliches Tool, sobald es um den Abruf und die Eingabe der TOTPs geht. Noch sicherer geht es höchstens mit Lösungen, die auf Hardware-Token basieren, wie etwa dem YubiKey [3] von Yubico [4]. Sie erfordern allerdings einen nicht unerheblichen finanziellen und zeitlichen Aufwand bei der Einrichtung. 

Der Autor

Valentin Höbel arbeitet als Cloud Architect für den Münchener VoIP-Spezialisten NFON AG. In seiner Freizeit bastelt er an seinem Raspberry Pi oder beteiligt sich an Open-Source-Projekten.

Glossar

PAM

Pluggable Authentication Modules. Softwarebibliothek, die eine allgemeine API für Authentisierungsdienste zur Verfügung stellt. Statt die Details der Anmeldung in jedem Programm neu zu formulieren, bietet PAM einen standardisierten Dienst in Form von Modulen an [5].

Infos

[1] Google Authenticator: http://code.google.com/p/google-authenticator/

[2] Google-Authenticator-App: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=de

[3] YubiKey-Workshop: Frank Hofmann, “Doppeldecker”, LU 08/2014, S. 78, https://www.linux-community.de/32603

[4] Yubico: http://www.yubico.com

[5] PAM-Grundlagen: Thorsten Scherf, “Fingerübung”, LU 06/2009, S. 40, https://www.linux-community.de/18292

[6] Google-Authenticator-Wiki: https://code.google.com/p/google-authenticator/wiki/PamModuleInstructions

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 12/2014 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben