Wiki

ThinkFinger

ThinkFinger

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

ThinkFinger {en} ist ein freier Treiber für den Fingerabdruck-Scanner SGS Thomson Microelectronics Fingerprint Reader. Ursprünglich konzipiert für IBM/Lenovo ThinkPads, funktioniert der Treiber auch mit Modellen anderer Marken wie Dell und Toshiba, die auf dieses Scanner-Modell zurückgreifen. ThinkFinger ermöglicht nicht nur bei der Anmeldung, die Passworteingabe zu ersetzen, sondern es kann bei jeder Passwort-Abfrage benutzt werden. Der Treiber ist noch nicht ausgereift und es können momentan noch verschiedene Probleme auftreten. Bitte vor der Installation die bekannten Probleme am Schluss dieses Artikels beachten.

Zudem ist zu beachten, dass der Treiber nur die Passworteingabe ersetzt und nicht, wie in anderen Betriebssystemen beispielsweise, den ganzen Anmelde-Vorgang. Weiterhin ist zu beachten, dass ein gut gewähltes Passwort genau so sicher (oder auch sicherer) ist als der Fingerabdruck, da es auch Möglichkeiten gibt, Fingerabdrücke zu fälschen {de}. Der Fingerabdruckscanner ist daher eher ein Komfortmerkmal als eine extra Sicherheit. Dies kann man aber erreichen, in dem man Fingerabdruck und Passwort zur Authentifizierung verlangt, was aber auf Dauer relativ unkomfortabel sein kann.

Hardware prüfen

Vor der Installation sollte getestet werden, ob überhaupt das Modell SGS Thomson Microelectronics Fingerprint Reader eingebaut ist. Dazu gibt man Folgendes in ein Terminal ein [1]:

lsusb 

In der Ausgabe sollte dann folgende Zeile enthalten sein:

Bus XXX Device XXX: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader 

Installation unter Karmic, Jaunty und Intrepid

Ab Ubuntu 8.10 Intrepid Ibex müssen nur folgende Pakete installiert werden [4]:

  • thinkfinger-tools

  • libpam-thinkfinger

Jetzt kann mit dem Befehl

sudo tf-tool --acquire 

die Datei thinkfinger.bir angelegt werden. Mit

sudo tf-tool --verify 

kann diese überprüft werden.

Konfiguration

Um den FP-Reader auch beim gnome-desktop zum laufen zu bekommen, muss zuerst eine neue Benutzergruppe fingerprint angelegt werden:

sudo groupadd fingerprint 

Jetzt muss die neue Datei /etc/udev/rules.d/60-thinkfinger.rules mit folgendem Inhalt angelegt werden:

#
# udev rules file for the thinkfinger fingerprint scanner
# 
# gives access to the fingerprint reader to those in the "fingerprint" group
#
# Taken from:
#  http://www.thinkwiki.org/wiki/How_to_enable_the_fingerprint_reader_with_ThinkFinger
# which was taken and modified from:
#  http://article.gmane.org/gmane.linux.drivers.thinkfinger/329
#

# SGS Thomson Microelectronics Fingerprint Reader
SYSFS{idVendor}=="0483", SYSFS{idProduct}=="2016", SYMLINK+="input/thinkfinger-%k", MODE="0660", GROUP="fingerprint"

# the also-needed uinput device
KERNEL=="uinput", MODE="0660", GROUP="fingerprint"

und folgender Befehl ausgeführt werden (falls er nicht funktioniert, muss evtl. neu gestartet werden):

sudo /sbin/udevadm trigger 

Jetzt müssen noch die Benutzer- und Dateizugehörigkeiten angepasst werden: Benutzer zur Gruppe "fingerprint" hinzufügen:

sudo gpasswd -a $USERNAME fingerprint 

Ihn zum Besitzer seiner .bir-Datei machen:

sudo chown $USERNAME:root ~/.thinkfinger.bir 

Nur-lesen Zugriff:

chmod 400 ~/.thinkfinger.bir 

Eventuell muss jetzt noch der folgende Befehl ausgeführt werden:

sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable 

Der Fingerprint reader sollte jetzt funktionieren, allerdings muss seit Intrepid nach der Authentifizierung immer gedrückt werden, dies kann durch einen Eintrag in der xorg.conf geändert werden. 256429

xorg.conf:

Section "InputDevice"
	Identifier	"Generic Keyboard"
	Driver		"kbd"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"de"
EndSection

...

Section "ServerLayout"
	Identifier      "Default Layout"
	Screen        0 "Default Screen" 0 0
	InputDevice	"Generic Keyboard"
EndSection

Falls durch den Eintrag in der xorg.conf Fehler auftreten sollten, bei denen z.B. manche Tasten anderst als gewollt belegt werden, sollte auf die PPA-Pakete vom Bug 256429 zurückgegriffen werden. Die PPA-Pakete bringen allerdings andere Probleme mit sich, und sollten deshalb möglichst nicht verwendet werden.

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

Hinweis:

Pro Benutzername lässt sich nur ein Fingerabdruck einlesen - das ist vor allem dort zu beachten, wo sich mehrere Personen unter einem Namen auf einem System anmelden!

Installation unter Hardy

Unter Ubuntu 8.04 Hardy Heron müssen nur folgende Pakete installiert werden [4]:

  • thinkfinger-tools

  • libpam-thinkfinger

Danach muss einmalig folgender Befehl in einem Terminal ausgeführt werden [1]:

sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable 

Nun ist das System bereit und jeder Benutzer kann mit einfachen Benutzerrechten seinen Fingerabdruck einlesen. Der Abdruck wird dann im jeweiligen Homeverzeichnis in der Datei .thinkfinger.bir gespeichert.

tf-tool --acquire 

Wenn nach der Eingabe von dem obigen Befehl der Fehler "Could not claim USB device." erscheint sollte man den Befehl mit Rootrechten ausführen und dann die Rechte der Datei ~/.thinkfinger.bir so anpassen das die Datei wieder dem Benutzer gehört.

Um Fehler auszuschließen verlangt das tf-tool, dass man dreimal hintereinander den Finger über den Sensor zieht. Mit dem Befehl tf-tool --verify kann man danach noch überprüfen, ob die Erkennung klappt.

Unter Hardy gibt es keine Probleme mehr mit verschiedenen Diensten wie Bildschirmschonern oder Gksu. Nur Anwendungen, in denen eine Passphrase zum Entschlüsseln chiffrierter Daten benutzt wird, z.B. GNOME Keyring oder SSH-Schlüssel, können prinzipbedingt nicht durch ThinkFinger gesteuert werden.

Installation

Vor Hardy Heron muss man viel selbst verändern, was genau steht in dem übrigen Artikel.

Vorbereitung

Um den Scanner als Passwort-Alternative benutzen zu können, muss zuerst im Verzeichnis /etc das Unterverzeichnis /pam_thinkfinger erstellt werden. Das geht im Terminal mit folgendem Befehl [1]:

sudo mkdir /etc/pam_thinkfinger 

Über das gewöhnliche Metapaket hinaus, das zum Kompilieren verwendet wird [3], müssen zudem folgende Pakete installiert sein [4]:

  • libtool

  • libusb-dev

  • libpam0g-dev

Ab Gutsy muss zudem sichergestellt sein, dass das Modul uinput geladen ist [5].

Bearbeitung des Quellcodes

Hinweis:

Dieser Schritt sollte unter Gutsy entfallen. Das Thinkfinger Debian-Paket enthält den Patch für gksudo bereits.

Der Quellcode des Treibers kann hier {en} als Archiv geholt werden. Dieses ist in ein beliebiges Verzeichnis zu entpacken. Danach muss, um die Probleme mit gksu zu umgehen, die Datei /Weg/zum/Archiv/pam/pam_thinkfinger.c editiert werden [2]: Es ist nach der Zeile

        pam_prompt (pam_thinkfinger->pamh, PAM_PROMPT_ECHO_OFF, &resp, "Password or swipe finger: ");

zu suchen; der Ausdruck "Password or swipe finger: " ist durch "Password:" zu ersetzen, so dass die Zeile folgendermaßen aussieht:

        pam_prompt (pam_thinkfinger->pamh, PAM_PROMPT_ECHO_OFF, &resp, "Password:");

Die Änderung an der Datei muss natürlich gespeichert werden.

Kompilieren

Nun muss der Quellcode kompiliert und installiert [3] werden. Dabei sind für ./configure die folgenden Optionen nötig:

./configure --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger 

Funktionstest

Um zu testen, ob der Scanner korrekt installiert worden ist, kann mit folgendem Befehl [1] ein Fingerabdruck in ein temporäres Verzeichnis geladen werden:

sudo tf-tool --acquire 

Der Benutzer wird nun aufgefordert, dreimal einen Finger einlesen zu lassen, danach kann mit folgendem Befehl getestet werden, ob der Fingerabdruck auch erkannt wird:

sudo tf-tool --verify 

Konfiguration

Nun ist noch das Skript in /etc/pam.d/common-auth so zu editieren [2], dass es folgendermaßen aussieht (Root-Rechte benötigt):

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth    sufficient      pam_thinkfinger.so
auth    required        pam_unix.so try_first_pass nullok_secure

D.h. an erster Stelle ist die Zeile "auth sufficient pam_thinkfinger.so" einzutragen und die nächste (letzte) Zeile um das Argument "try_first_pass" zu ergänzen.

Einrichten der Benutzer

Jetzt kann jeder Benutzer mit folgendem Befehl seinen Fingerabdruck einlesen:

sudo tf-tool --add-user BENUTZERNAME 

Hinweis:

Pro Benutzername lässt sich nur ein Fingerabdruck einlesen - das ist vor allem dort zu beachten, wo sich mehrere Personen unter einem Namen auf einem System anmelden!

Von nun an kann bei Passwortabfragen statt einer Passwort-Eingabe der Finger über den Scanner gezogen werden (Ausnahmen siehe unten).

Bekannte Probleme

Probleme unter Jaunty 9.04

Unter Jaunty 9.04 bereitet die Version aus den offiziellen Paketquellen verschiedene Probleme. So kann es sehr lange dauern, bis der Sensor reagiert oder es sind mehrere Fingerscans notwendig. Diese Fehler sind u. a. hier und hier dokumentiert. Die Probleme können umgangen werden, indem man eine aktuelle Version aus einer externen Paketquelle installiert:

Um das Programm aus dem PPA Wiki/Vorlagen/PPA/ppa.png ppa von thjaeger zu installieren, muss, abhängig von der Ubuntu-Version, eine der folgenden Paketquellen eingetragen werden:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.

Für Ubuntu Jaunty Jackalope 9.04:

deb http://ppa.launchpad.net/thjaeger/ppa/ubuntu jaunty main

Um die Quelle zu verwenden, sollte man den Signierungsschlüssel für diese Quelle einspielen. Dazu verwendet man folgenden Befehl:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 9E691625  

Danach nur noch die thinkfinger Pakete aktualisieren und thinkfinger sollte problemlos unter Jaunty laufen.

gksudo

Wer die Datei pam_thinkfinger.c nicht wie angegeben ediert hat, erhält Probleme mit gksudo: Der Passwort-Dialog erscheint nicht. Greift eine Anwendung beim Starten auf gksudo zurück, so wartet sie bei einigen Systemen solange, bis der Benutzer ohne Aufforderung seinen Finger einscannt. Bei einigen Systemen hilft auch das nicht, die Anwendung gibt nach einigen Sekunden auf und der Fingerabdruck-Scanner kann erst nach einem Neustart wieder verwendet werden. Die administrativen Anwendungen können bis dahin normal über die Passwortabfrage gestartet werden. Als provisorische Lösung im Terminal [1] folgenden Befehl eingeben:

killall gksu 

Danach funktionieren die lauffähigen Anwendungen wieder mit dem Fingerabdruck-Scanner, jene problematischen administrativen Anwendungen können mittels

sudo <Anwendungsstartbefehl> 

gestartet werden. Hier kommt die bekannte "Password or swipe finger"-Aufforderung direkt im Terminal.

KDE

Größere Probleme gibt es mit KDE: Weder bei der Anmeldung noch bei kdesu-Aufrufen läuft der Treiber und auch mit den Root-Rechten kann es Probleme geben. Außerdem kann die Abänderung in der Datei /etc/pam.d/common-auth - wie oben beschrieben - zu einer permanenten Ablehnung/Sperrung der Nutzerpasswörter führen. (aufgetreten unter Kubuntu 7.04 - Kernel_V. 2.6.20-16). Wenn kein Root-Passwort gesetzt ist, kann mit Hilfe der Shell (welche über die recovery-Bootoption zu erreichen ist) die Änderung rückgängig und das Passwort somit wieder nutzbar gemacht werden). Für KDE-Nutzer sei auf das freie Open-Source-Tool Fprint {en} verwiesen, das fehlerfrei mit KDM und zu eingem gewissen Grad mit kdesu (bei kdesu gibt es keine Nachricht, dass man seinen Fingeradruck zur Authentifizierung einscannen soll) funktioniert. Fprint-Pakete für Gutsy kann man hier {dl} finden. Weitere Hinweise zur Installation und Konfiguration gibt es auch auf Madmans Blogeintrag {en} . Außerdem sei auch auf die Anleitung zur Installation des proprietären Treiber BioAPI verwiesen {en} .

Als Abhilfe kann unter KDE der Fingerprintscanner zum Laufen gebracht werden, wenn man den Anmeldemanager KDM durch GDM ersetzt.

Spezialfälle

In einigen Fällen kann auch mit funktionierendem Scanner auf die Passworteingabe nicht verzichtet werden: So unterstützen etwa GNOME Schlüsselbund oder GNOME-Bildschirmschoner den Fingerabdruck-Sensor nicht; auch aus dem Ruhezustand kommt man nur via Passwort wieder ins System hinein.

Diese Revision wurde am 5. Januar 2010 um 12:06 Uhr von sherpa erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Sicherheit, Hardware, System

Passwort vergessen?