ThinkFinger
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
. 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.
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
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.
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.
Zusätzliche Fremdquellen können das System gefährden.
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!
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.
Vor Hardy Heron muss man viel selbst verändern, was genau steht in dem übrigen Artikel.
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].
Dieser Schritt sollte unter Gutsy entfallen. Das Thinkfinger Debian-Paket enthält den Patch für gksudo bereits.
Der Quellcode des Treibers kann hier
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.
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
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
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.
Jetzt kann jeder Benutzer mit folgendem Befehl seinen Fingerabdruck einlesen:
sudo tf-tool --add-user BENUTZERNAME
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).
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
ppa von thjaeger zu installieren, muss, abhängig von der Ubuntu-Version, eine der folgenden Paketquellen eingetragen werden:
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.
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.
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
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
finden. Weitere Hinweise zur Installation und Konfiguration gibt es auch auf Madmans Blogeintrag
. Außerdem sei auch auf die Anleitung zur Installation des proprietären Treiber BioAPI verwiesen
.
Als Abhilfe kann unter KDE der Fingerprintscanner zum Laufen gebracht werden, wenn man den Anmeldemanager KDM durch GDM ersetzt.
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
2004 – 2010 ubuntuusers.de • Einige Rechte vorbehalten