Digital Persona UareU Fingerprint Sensor driver for Linux

I recently mentioned my new project, writing a Linux driver for the “Microsoft Optical Desktop with Fingerprint Reader” keyboard. The keyboard works fine already (its just HID), but the fingerprint reader sensor requires its own driver, which I’m aiming to create.

Thanks to Tony Vroon from Gentoo for donating this device to me, and to the people who sent emails/comments after the last mention of this. Through this information and some extra googling, I now know:

  • The fingerprint sensor is almost certainly designed/manufactured by Digital Persona, a biometrics company recently assimilated by Microsoft.
  • The fingerprint sensor is probably a Digital Persona UareU 4000
  • If this is true, the fingerprint image is encrypted…
  • …but a developer familiar with the UareU Windows API suggests that the encryption key is defined by the host computer at installation time.
  • …and this forum post suggests that the Microsoft keyboard lacks some features of the UareU 4000.
  • The encryption algorithm might be XTEA (source)
  • VALinux Japan have done some biometrics work, including fingerprint-based login using UareU devices. A presentation (html, pdf) suggests that they have produced/obtained a uareu kernel module which has a /dev/usb/uareu char interface. I wonder if they can help me out.
  • The device is firmware-based, or at least, the driver sends a 1904 byte blob of data found inside one of the windows DLL files on every plugin.
  • This guy also seems to have run into the uareu module. Can anyone help me find his email address?

I’m naming my driver dpfp and the initial work can be found here. So far I have created a script to extract the firmware from the windows driver distribution, and a skeleton driver which pulses the light around the sensor 3 times on plugin (looks very cool!). I’m a bit stuck on the next step, the sniffed data suggests the Windows driver is doing things which are impossible (sending data in the wrong direction). I’ve been experimenting trying to guess what it might be doing, but I haven’t been able to provoke the expected response yet (which is the device sending a section of the firmware back to the host computer — again strange…).

If any other Linux users are in possession of one of these keyboards or a standalone UareU reader, then please email me. I will send in an article to linuxbiometrics.com soon.

Update November 2007: I see I’m still getting a lot of hits from “digitalpersona linux” on Google (I’m still #1). I’ve recently launched a new project called fprint which supports DigitalPersona devices under Linux. Click to go to the project homepage.

22 Responses to “Digital Persona UareU Fingerprint Sensor driver for Linux”

  1. dsd’s weblog » Blog Archive » Digital persona fingerprint driver progress Says:

    [...] Quick update on the dpfp project: [...]

  2. Riaan Jonker Says:

    Hello there.

    I was yesterday asked to have a look at a Access Control solution installed by an individuel about a year ago. The system uses the Digital Persona 4000 to verify the employee and if he’s comming in or going out. The system was written in M$ Basic and has several flaws.

    We are currently in talks to have the system moved from Microsoft to Linux as Microsoft has proven to be unreliable, has a lot of dataloss due to regular reboots and has several security issues that will need to be addressed before installing at another site.

    Our company supports Open Source as far as possible and as far as we know a system using the Digital Persona 4000 using Linux has not yet been developed for our clients specific need.

    I myself am a Object Pascal programmer. I have spoken to many people and it was agreed that a Linux Access Control Server will be a long term solution to our clients needs. Since this would be the first time that I touch a Finger scanner, I will need a lot of help. I’m willing to go the distance and will share all knowledge with whom ever needs it.

    Please let me know if you require further information about our company as I will gladly supply any info you require.

    If you can send me all information that you have gathered on the Digital Persona 4000 I would be extremely thank full as it would give me a head start that I need to write the deamon that we will need to support our client.

    Kind regards

    Riaan Jonker
    Lead Programmer
    CompUnite C.C.

    Cell: +27 72 789 6787
    e-mail: rjonker@compunite.co.za

  3. dsd Says:

    Everything I know is published at http://dpfp.berlios.de and you can find more tidbits in the mailing list archives.
    If you have any further questions, please use the mailing list.

  4. Rijish Rajan Says:

    I am the director of a company that integrates and market access control and time management solutions based on fingerprint sensors. All the hardware i get work with windows, but i find it difficult to work with Windows and want to make have solutions made in UNIX/LINUX environment

    can you guys please help me
    i have 4 software programmers working for me
    and am myself a post graduate in software engineering

    regards
    Rijish

  5. dsd Says:

    Rijish,

    I would have thought that four professional software programmers and a software engineering postgraduate were collectively capable of reading the post directly above yours which points to the project website.

    If you have specific questions, please use the mailing list.

  6. Jeff Sadowski Says:

    dude we have to get you a sourceforge acount I ran into you project and was so impressed from what I read I bought a Microsoft finger print scanner between the time I was thinking about buying it and the time I acctually bought it no more than a week I lost your page and searching for it was a real pain in the butt.
    I’m impressed in how you split the project up (clapping hands) Really well design I know you claim it as alpha and I guess I shouldn’t have jumped to buy but I love these kind of projects :-D Before buying I tryed to compile and it all worked fine so thats why I bought one :-D I hope to be helping soon.

  7. Jeff Sadowski Says:

    worked flawlessly first try and hardly any reading :-D very intutive. And I love the test programs so cool it worked better than I imaged it and I have butterflys thanks alot now im gonna spend all night playing with it and taking my finger prints :-P

  8. dsd Says:

    I chose berlios over sourceforge because I use SF on another driver project and it is frustratingly slow most of the time.

    As for being hard to find, what were you searching for? Google lists dpfp as the #1 hit for “microsoft fingerprint linux”

  9. Jeff Sadowski Says:

    microsoft fingerprint reader under google/linux also microsoft fingerprint scanner also
    microsoft finger print reader funny how adding words can make it not work right or by having finger print as two words does the same. Do you know about freshmeat.net? sf.net must be slow because of your distance. hmm I never thought of that

  10. Jeff Sadowski Says:

    This seems as though its going to be a pain to clean. Has anyone bought an invisable shield for one of these?
    Also I noticed mine has the image upside down is this normal? Doesn’t really matter just wanting to know.

  11. Dougie Says:

    I’ve used the predecessor, (uru 2000) since 2002 in a 120 user engineering enviroment (over 1,000,000 impressions).

    Now using Uru4000′s. Great so far.

    Clean only using sellotape. Don’t let your users ‘wipe with toilet paper etc’.

    Dougie.

  12. some dude Says:

    Have you seen this page?
    http://www.neurotechnologija.com/scanners.html

    they speak of a “Linux kernel with nfs support and DigitalPersona U.are.U module”

    anyway, they have a developer kit for working with fingerprint images — recognition algorythm, etc.
    it looks to be compatible with several fingerprint readers including the uareu 4000 and uareu 2000. But, it only lists mswindows for those sensors, but other sensors (down lower on the page) support linux.

    When I looked over thier stuff, it seems that they accept the image of the fingerprint rather than processing it driectly from the scanner, so it looks like they have some linux lib files (for the scanners near the bottom of the page) and all you have to do is get the image from the uareu to pass to it.

    Their standard sdk found here, http://www.neurotechnologija.com/vf_sdk.html#st_sdk
    looks like it has libs and a sample, just no support for the uareu

    the part I dont get is the device that sais it has a “Linux kernel with nfs support and DigitalPersona U.are.U module” why dont they just share the uru module so we can use linux with the uru 4000 (or ms scanner)

    ?

  13. Ja Says:

    Does anyone know any free or very cheap fingerprint recognition library for linux? I have looked for it but I only found VeriFinger but it is very expensive for me.

  14. Rèmy Pestana Says:

    Does anyone know any how to describe the install of pam_bio* with this excelent digital persona driver?
    Tanks!!!

  15. NPS Says:

    Hello all,
    I have seen some links on bio-metrics, though pretty old.

    FVS:
    http://freshmeat.net/projects/fvs/?topic_id=43%2C44%2C809
    MPL:
    http://www.mozilla.org/MPL/MPL-1.1.html

    http://bias.csr.unibo.it/fvc2000/ — Conference
    http://bias.csr.unibo.it/fvc2002/ — Conference
    http://www.east-shore.com/verify.html — SDK

    I am interested in interfacing the U.for.U module to an embedded controller!!!!!!!!! At this point of time I am not sure what this invlolves. Any help in providing direction will be helpful. Thank you.

    NPS

  16. atlas Says:

    Hello, I have buy a microsoft finger print reader toon but like you I want to use it into linux, I havn’t understand all the start of comment…
    Could you explain to me how to install it please?
    i’m french sorry for my english

  17. Manuel Godoy Says:

    Hello Atlas, Do you still need the installation procedure?. If you need it, send me an email

  18. icks Says:

    Hi Manuel ! If you still read this post i’m interested for the procedure to install the microsoft fingerprint on linux :)
    I’ve read the informations on http://dpfp.berlios.de but i’m not sure to understand how to do. Does it work fine ?
    Thanks a lot for your answers :)
    I’m french too (and a little drunk too ^^), so… sorry for my english :)

    icks99@gmail.com

  19. r3ap3r Says:

    Check out this: http://www.downloadjunction.com/product/software/30262/index.html It may help with your project…. any new news, let me know… I am currently compiling fresh object right now, and should have a beta out shortly…. been troubleshooting this **** for 4 months :-) mike@r3ap3rinc.com or r3ap3r@email.phoenix.edu -Peace,
    Mike C.
    Owner and CIO; R3AP3R, Inc.
    http://r3ap3rinc.com

  20. Arun Patil Says:

    How can i get the templates for finger print identifier i am using Digital persona . and on windows XP 32-bit can any one help me out..,

  21. Rohan Says:

    Good day sir,

    i was currently designated to write software for the UareU in .NET. Though my employer would definitely want me to migrate it to Java. Are there any updates on your efforts?

    Thanks!

  22. Yacon Says:

    Surprised that after all this time we aren’t seeing legit biometrics on iPhones. Just those cheesy apps.

Leave a Reply

You must be logged in to post a comment.