11 April 2013 20:10

Fingerprint-Reader unter Linux

Fingerprint-Reader (FPR) stellen eine bequeme Art dar sich zu authentifizieren. Dabei wird der der Fingerabdruck von einem kleinen Scanner eingelesen und mit Referenzscans verglichen. Das geht nicht nur schnell, sondern erschwert auch sogenannte Shoulder-Surfing-Angriffe (Ausspähen von Passwörtern "über die Schulter").

Während es für Windows von Seiten der Hersteller sehr gute Treiber gibt, ist die Sache unter Linux nicht so einfach. Zum einen muss es einen passenden Treiber für den Reader geben. Zum anderen einen entsprechenden Authentifizierungsdienst. Meistens heißt es also Basteln, weshalb ich mich hier auf das Modell im ThinkPad X220 (UPEK, ID 147e:2016) beschränke. Mit anderen Reader läuft es aber ähnlich.

Allgemeiner Workflow

In den meisten Distributionen arbeitet die Authentifizierung so:

  • Ein Programm erfragt eine Authentifizierung des Benutzers via PAM (Pluggable Authentication Modules).
  • PAM fragt das erste verfügbare Authentifizierungsmodul ab. Dies sollte der FPR sein.
  • Das FPR-Modul startet den FPR, welcher den Fingerabdruck scannt. Dieser wird anschließend mit den Referenzscans verglichen. Anschließend wird das Ergebnis an PAM zurückgegeben.
  • Je nach Konfiguration wird das nächste Modul abgefragt oder das endgültige Ergebnis an die aufrufende Anwendung zurückgegeben.

Intern ist das alles viel komplizierter, da die Schnittstellen zwischen den Schritten zum Teil austauschbar sind und PAM sehr flexibel ist. Aber Grundsätzlich läuft es nach dem Schema Anwendung → PAM → FPR-Modul → PAM → Anwendung.

Man darf aber nicht vergessen, dass man sich mit dem Fingerabdruck zwar Authentifizieren kann, aber kein Passwort eingibt. Ist der Keyring oder ein ssh-Key mit einem Passwort verschlüsselt, so muss man dieses trotzdem eingeben.

Implementierungen

Unter Linux gibt es diverse, zum Teil stark veraltete oder experimentelle, Implementierungen. Ich beschränke mich hier auf fprint und Fingerprint GUI, da diese mit dem o.g. Reader kompatibel sind.

fprint unterstützt diesen Reader erst seit kurzem, daher sollte man auf eine aktuelle Version achten. Es gibt keine keine Oberfläche bei der Authentifizierung, es leuchtet lediglich die grüne Lampe am FPR. Außerdem kann man ein Passwort nur nach drei fehlgeschlagenen Scans eingeben - aber auch nur, wenn man es zuvor eingegeben hat. Dies ist eine Limitierung in PAM. Es gibt zwar Workarounds, aber diese wurden bislang nicht in pam_fprintd eingebaut.

Fingerprint GUI baut zwar auf fprint auf, verwendet aber die proprietären Treiber des Herstellers, die zwar etwas besser funktionieren, aber halt nicht frei sind. Beim Authentifizieren öffnet sich ein hässliches Popup mit einer noch hässlicheren Animation. Dafür kann man jederzeit ein Passwort eingeben. Das Popup war für mich aber der Grund, Fingerprint GUI nicht zu verwenden.

Installationsanleitungen gibt es in diversen Wikis:

Mein Setup

Wie bereits im vorherigen Abschnitt erwähnt, nutze ich fprint, da mich das hässliche Popup störte. Das Ganze läuft in einer halben KDE-Umgebung. KDM, der Display Manger von KDE, kommt mit den Fingerprint-PAM-Modulen aber nicht klar, weswegen ich ihn durch LightDM mit dem KDE-Greeter ersetzt habe. Zudem habe ich mir ein minimales Greeter-Theme geschrieben (da KDE aber alles in jeder KDE-Version ändert, läuft das bestimmt nur mit einer ganz speziellen Version).

Schlussbemerkung zur Sicherheit

Der Fingerabdruck ansich ist mit hoher Wahrscheinlichkeit einzigartig. Es wird also keinen zweiten Finger mit dem selben Muster geben. Allerdings werden nur bestimmte markante Punkte für die Authentifizierung verwendet (über die Bitlänge gibt es sicherlich schöne Arbeiten). Es ist also möglich, dass ein ähnlicher Fingerabdruck auch als passend erkannt wird.

Außerdem hinterlassen wir überall unsere Fingerabdrücke. Inzwischen ist es auch Laien möglich, diese zu sichern und zu reproduzieren. Das klassische Beispiel vom CCC braucht lediglich Sekundenkleber, eine Kamera, einen Drucker für Folien und Leim. Insbesondere in diesem Zusammenhang muss man sich eins klar machen: Ein Passwort kann man ändern. Den Fingerabdruck nicht.

Kommentare

Powered by BetaBlog
Login | RSS Beiträge RSS Kommentare Impressum