Announcing fprint project

If you’ve been following my previous work with DigitalPersona fingerprint readers on Linux, you’ll be aware that what was an active and exciting project was reduced to almost nothing when it became apparent that open source fingerprinting code was possibly in conflict with U.S. export control laws.

Well, after studying the export control documents in detail, I discovered that these restrictions simply do not apply. I decided to propose my 3rd year university project as an open source software project to really sort out the state of fingerprinting on Linux. This project is now underway. For an overview, look at this poster.

The core project component, libfprint, aims to make it easy for application developers to add fingerprinting support to their applications – be it imaging or verification (or in future, identification). libfprint strives to provide you a single API for manipulating fingerprint readers in the most generic of fashions. Internally, a variety of different devices are supported through a driver-like abstraction. These devices do differ tremendously, but libfprint works to wrap that up so that as an application developer, you don’t care what type of device the user has plugged in.

As this is an academic project, it was necessary to keep development closed while I implement the fundamentals myself. I’m now at a point where I’m able to release this as open source and accept contributions in the normal way. I plan to keep this project going beyond the academic project schedule and I’d love to see a community forming. In the long term I’m aiming for inclusion with major distros, integration into desktop environments, etc.

Quick summary of where things are at:

  • libfprint is relatively stable and works well with most devices
  • a PAM module named pam_fprint has been created, which allows you to use your fingerprint to login to your system
  • The code is all in git repositories, there are initial releases but there are no guarantees of stability or forwards-compatibility
  • API documentation is mostly complete, but is subject to change without notice
  • I’ve been working hard to get a decent amount of content on the project website

Hardware currently supported:

  1. UPEK TouchStrip (found in many ThinkPads) – works great, we already knew this as ThinkFinger is quite successful
  2. DigitalPersona/Microsoft devices – these work fantastically well
  3. Authentec AES2501 – an imaging device, swipe sensor, works well (requires a little extra care while scanning).
  4. Authentec AES4000 – an imaging device I haven’t really played with before. Image quality isn’t that brilliant, but it’s good enough for fingerprint login if you’re careful.

I’m very happy with the project so far. I’m pretty sure I’m the first person to fully implement open source fingerprint login for the DigitalPersona devices, the AES2501, and the AES4000, plus I’ve done it in a generic way which interchangeably works with all supported devices.

Please direct all questions/bug reports to the mailing list, please don’t use the comment form on this post for anything other than comments.

22 thoughts on “Announcing fprint project

  1. Chewi

    I doubt I’ll ever use this but I just have to say that the PAM module is so cool. :D

  2. Daniel Drake Post author

    pam_fprint hasn’t been tested with graphical login managers, please try it and let me know how it gets on :)

  3. Daniel Drake Post author

    I just corrected that page not to list fingerprint readers as they are already mentioned on http://linuxdriverproject.org/twiki/bin/view/Main/NoLinuxDriverNeeded

    libfprint is (I believe) the first project to offer full support for this device. It can obtain images *and* reliably process/compare them, meaning that you can login with your fingerprint. It works for me and at least 2 other people.

    However we have had a bug report from someone on the mailing list reporting that the image quality is really low on his system. We need to implement automatic gain calibration in the driver to get good images on all setups.

  4. Alex

    Great, thanks. I have this unit in my Lenovo 3000 N100. I’ll see if I can get it working this weekend.

  5. Daniel Drake Post author

    Alex, if I haven’t done a new libfprint release by then, try to grab the code from git because I just drastically improved the AES2501 image quality and matching performance. Also I believe the laptop this code was tuned for was the same model as yours, so I think you’ll be successful :)

  6. Alex

    Noted. I’ll let you know how it goes. I believe I have a Linux device with an AES4000 around here also, but it’ll take a lot of work to get it into a testable state. That’s on my todo list for one of these days.

  7. Alex

    Oops, the above was me.

    I also spoke too soon… that Linux device has an AES3400.

  8. Alex

    I’ve installed libfprint, pam_fprint, and fprint_demo on my Lenovo and tried all the examples/demos. Very impressive work!

    It’s hard to imagine that the quality of scanning and recognition could get any better, at least for the AES2501. After a couple of dozen verifications, I’ve not a single mismatch for the correct finger, nor a single false positive with the wrong fingers. That’s a far higher success ratio than I experienced with the proprietary AuthenTec drivers for my AES3400, and that’s a non-swiping reader!

    You may be pleased to hear that pam_fprint works fine with gdm, gnome-terminal, and even gnome-screensaver’s screen locking feature. Gdm does need some kind of popup or message to inform the user it’s waiting for a scan after you enter your username, but perhaps that’s just my gdm theme hiding stuff from me. gnome-terminal and gnome-screensaver do show messages.

  9. Pingback: fprint - Fingerprint Reader/Login project launched - India Broadband Forum

  10. atlas95

    Hello,
    Before I use thinkfinger, but i’m switching to fprint.
    I search how to get working with gnome-screensaver and gdm.
    Could you help me please?

    Thanks for this very good program!

  11. atlas95

    I have this currently in y /etc/pam.d/common-auth

    auth sufficient pam_fprint.so
    auth required pam_unix.so nullok_secure

    And in gdm after typing my login, nothing appears! I can’t enter the password….

  12. *j

    To atlas95:
    you have to scan your finger. If the scan will be successful you’ll be prompted to confirm, otherwise it will display the password prompt.

    It is working (almost) perfectly on my HP 6910p – the only improvement could be possibility to allow more than one try with fingerprint before switching to password prompt.

    Thanks dsd! Very good work!

  13. ubumike

    HP 8510w mobile workstation has the aes2501. Running Ubuntu 7.10.

    Sometimes it works but other times I get the following
    aes2501:error [dev_init] could not claim interface 0
    fp:error [fp_dev_open] device initialisation failed, driver=aes2501

    any clues ?

  14. Pingback: texas holdem rangfolge

  15. Pingback: juego seguro portal

  16. Alex VanDeusen

    Hi I have a motion computing tablet model m1400. I am running the 32bit hardy version. It uses the authentec 2501 fingerprint scanner. I installed your software using debs someone pointed me to (version 0.6) However it does not recognize the hardware. After some searching I found a post that states the following:

    I have a Motion Computing M1400 Tablet with an AES2500 chip (or
    something like that). The aes2501 driver works perfectly fine with
    it, but I needed to add 0x08ff:0x2500 to the driver’s vender/product
    table. Other than that it works great!

    BTW, I could not create an account on the Wiki to put this on the
    Supported Devices page, it did not give me an option to create an
    account.

    Regards,
    Daniel Hazelbaker

    So my question is how do you get the libfprint to support this device? I dont know how to add it and then compile it.

  17. freko

    Hi,
    I develop a driver for Linux of the Vascular Biometric PalmSecure from Fujitsu, i can detect the right position of hand and obtain the vein pattern data, i want integrate my development with the fprint, to have enrollment, identify and verification features, do you think is possible?? sorry for my english i am from Mexico.

  18. Pingback: SysAdmin’s Diary :: Using HP Compaq 6515b’s Fingerprint Sensor on Linux

  19. жEлтЫйкOт

    Спасибочки за интересную точку зрения. Я с ней не совсем согласен, но она имеет право на существование.

Comments are closed.