UPEK TouchChip TFM/ESS Fingerprint BSP on FreeBSDReversed engineered GPL drivers exists UPEK offers a large numer of different fingerprint sensors, both embedded solutions and stand-alone USB-readers. Their fingerprint sensors can be found in many devices such as IBM Thinkpad notebooks, ASUS notebooks, NEC Versa notebooks and some Samsung notebooks. A full list is available athttp://www.upek.com/solutions/pc_and_networking/default.asp
Since February 2006 UPEK provides a native driver for FreeBSD, although it is binary only and closed source. The binary itself is available at http://www.upek.com/support/dl_freeBSD_bsp.asp. This article shows how to get it working with FreeBSD. Document revisions20060224 – Updated to reflect pam_bsdbioapi 1.5 Requirements
Identifying the sensorTake a look at your /var/run/dmesg.boot, you should have something like this ugen0: STMicroelectronics Biometric Coprocessor, rev 1.00/0.01, addr 2 usbdevs reports vendor id 0×0483 and device id 0×2016 Swipe sensors based on the chipset TCD42/TCS3C (such as IBM) should be supported (these devices does fingerprint matching in hardware). It does not work on “sensor only” models where matching is done in software. Also, older models based on the TCD41/TCS3B chipset (Sony laptops) are also not supported. InstallingEverything is available through FreeBSD ports. > cd /usr/ports/security/bsp_upektfmess && make install > cd /usr/ports/security/pam_bsdbioapi && make install These instructions are for pam_bsdbioapi 1.5 ConfiguringA large part of the pam_bsdbioapi package is libbirdb. This library allows multiple database backends for BIR (Biometric Identification Record) storage. A sample configuration file should have been placed in /usr/local/etc/birdb.conf.sample. > cp /usr/local/etc/birdb.conf.sample /usr/local/etc/birdb.conf This file tells libbirdb which backend modules that are available and which options they require. > bbdm -l birdb Installed BIRDB modules filedb Filebacked database (b-tree) plain Plain text file Selecting a backend moduleThis depends on your requirements. However, “filedb” is recommended for normal usage. If you want to use a MySQL database as a backend, you must create a database and table. See the pam_bsdbioapi documentation for more information. Creating fingerprint recordsFirst, check if the BSP was installed correctly
Now enroll the user(s) to whom you want to add fingerprint login. To enroll the user “foo” with the database backend “filedb”, run the following
You might get error messages saying that your finger is not centered correctly, or that you swiped too fast. Just swipe your finger again if this happens. You can create any number of records for each user (except for the plain backend which only supports one). You can view the created records with
If you want, you can now try verifying your newly created record.
It also supports user identifying, however if you enroll the “same”
Configuring PAM to allow fingerprint authenticated loginTo allow both biometric login and password based login you should configure /etc/pam.d/system in the following way (this is for the “filedb” backend)
The “sufficient” keyword will allow fallback to pam_unix if no biometric data was found for a user or if biometric login failed. Change this to “required” if you want to force biometric login. Now, you can try to login as the user you previously enrolled. FreeBSD/i386 (genesis) (ttyv0) login: foo Verification start Put finger [SWIPE FINGER] Image processing Scanned good image Operation succeeded Last login: Fri Jan 13 14:51:37 on ttyv1 Copyright (c) 1992-2005 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. foo@genesis> This also works for “su”, note that you must enroll the user “root” for this foo@genesis> su Verification start Put finger [SWIPE FINGER] Image processing Scanned good image Operation succeeded root@genesis> If you want the ability to create new records with passwd you must configure the “password” service for PAM. Note that both BSP UUID and the backend alias must match the login service.
Example of the user “foo” creating a new record for himself. > passwd Changing local password for foo Verification start Put finger [SWIPE FINGER] Image processing Scanned good image GUI finished Enrollment start Put finger [SWIPE FINGER] Image processing Put finger 2nd time [SWIPE FINGER] Image processing Put finger 3rd time [SWIPE FINGER] Image processing Scanned good image Operation succeeded Please verify record... Verification start Put finger [SWIPE FINGER] Image processing Scanned good image GUI finished Record created successfully GDM loginpam_bsdbioapi works quite well together with GDM because it supports BioAPI GUI callback messages which are sent to PAM by pam_info and displayed by GDM during the login sequence. A message file for the UPEK TouchChip included in the distribution and can be found in /usr/local/share/pam_bsdbioapi/upek_touchchip.cmsg This is how you should configure /etc/pam.d/gdm if you want message feedback during login
It should be noted that the selected GDM theme must display PAM info messages. Most themes do this, but not all. Configuring the Touchchip BSPThe touchchip BSP creates a /etc/tfmessbsp.cfg file, unfortunately you can not change this location. This file contains two settings, hide-capture-success which hides the “Operation succeeded” messages. And security-level which can be used to raise and lower the the security level. The default value is medium security. If you want more information on the security level see TFMESS_BSP_FreeBSD.pdf. Further informationDownload the package from UPEKs site and read the included TFMESS_BSP_FreeBSD.pdf, it contains more detailed information. See also |
Entries (RSS)