PAM Fingerprint

Available translations:

en

PAM Fingerprint ist ein Linux PAM Modul, womit sich ein Benutzer mit seinem Fingerabdruck an seinem Rechner anmelden kann. PAM Fingerprint benutzt dazu Hardware-seitig den ZFM-20 von Zhaintec (auch bekannt als "Arduino Fingerprint Sensor"), der mittels USB-TTL Adapter an den Rechner angeschlossen wird.

Fingerabdrucksensor

Für die Steuerung des Fingerabdrucksensors wird die Python Bibliothek PyFingerprint verwendet. Mit ein wenig handwerklichem Geschick, kann der Sensor in einem kleinen Universalgehäuse untergebracht werden:

Fingerabdrucksensor in Gehäuse

Falls kein Fingerabdrucksensor angeschlossen ist, wird die Standard-Passwortauthentisierung benutzt. Das Einrichten einer Zwei-Faktor-Authentifizierung ist zudem möglich. PAM Fingerprint wird mit dem Programm pamfingerprint-conf konfiguriert.

Hardware

PAM Fingerprint benötigt folgende Hardware:

  • Zhaintec ZFM-20 (auch bekannt als "Arduino Fingerprint Sensor")
  • USB-TTL Adapter
  • (optional) Universalgehäuse (75x55x25)

Anschluss des Sensors

Der Fingerabdrucksensor wird wie folgt mit dem USB-TTL Adapter verbunden:

Anschluss der Sensors

Installation

Nachdem das PM Code Works APT-Repository hinzugefügt wurde, kann das Paket einfach mit folgendem Befehl installiert werden:

$ sudo apt-get install libpam-fingerprint

Anschließend fehlende Pakete installieren:

$ sudo apt-get install -f

Einrichtung

Da PAM Fingerprint über USB kommuniziert und dies standardmäßig nur "root" vorbehalten ist, muss jedem Benutzer, der PAM Fingerprint benutzen will, dies zuerst erlaubt werden:

$ sudo usermod -a -G dialout username

Ein Neustart ist anschließend erforderlich. Danach können Benutzer zu PAM Fingerprint hinzugefügt werden.

$ sudo reboot

PAM Fingerprint besteht zum einen aus dem Linux PAM Modul selbst und einem konsolenbasierten Konfigurationsprogramm, um Benutzer hinzuzufügen. Die Fingerabdruckauthentisierung wird beispielsweise mit folgendem Befehl für einen Benutzer aktiviert:

$ sudo pamfingerprint-conf --add-user username

Dabei wird ein beliebiger Finger zweimal eingelesen. Um zu überprüfen, ob sich der gerade hinzufügte Benutzer mit seinem Fingerabdruck anmelden kann, wird der folgende Befehl benutzt:

$ pamfingerprint-conf --check-user username

Die LED des Sensors sollte anfangen zu leuchten und der eben eingelesene Finger sollte wieder benutzt werden. Währendessen werden einige Informationen in der Konsole ausgegeben. Steht am Ende "successful", war der Test erfolgreich und der Benutzer kann sich in Zukunft mit seinem Finger anmelden.

Die Anmeldedaten von PAM Fingerprint werden in der Datei /etc/pamfingerprint.conf unterhalb der Sektion [users] gespeichert. Der Aufbau eines Eintrags ist dabei:

Benutzername = Fingerabdruck-ID, SHA256(Fingerabdruck)

In der anderen Sektion [PyFingerprint] können Einstellungen des Fingerabdrucksensors geändert werden.

Da PAM Fingerprint komplett in Python implementiert wurde, ist es auf jeder Architektur verwendbar, für die eine Python Implementierung vorhanden ist. Somit kann auch der Raspberry Pi mit der ARM-HF Architektur unter Verwendung von Raspbian, mit PAM Fingerprint betrieben werden.

Eigenes PAM Modul

Wie genau PAM funktioniert und wie eigene PAM Module implementiert und in Linux integriert werden können, gibt es eine Anleitung unter Linux PAM.