RaspiReader: build your own fingerprint reader

Three researchers from Michigan State University have developed a low-cost, open-source fingerprint reader which can detect fake prints. They call it RaspiReader, and they’ve built it using a Raspberry Pi 3 and two Camera Modules. Joshua and his colleagues have just uploaded all the info you need to build your own version — let’s go!

GIF of fingerprint match points being aligned on fingerprint, not real output of RaspiReader software

Sadly not the real output of the RaspiReader

Falsified fingerprints

We’ve probably all seen a movie in which a burglar crosses a room full of laser tripwires and then enters the safe full of loot by tricking the fingerprint-secured lock with a fake print. Turns out, the second part is not that unrealistic: you can fake fingerprints using a range of materials, such as glue or latex.

Examples of live and fake fingerprints collected by the RaspiReader team

The RaspiReader team collected live and fake fingerprints to test the device

If the spoof print layer capping the spoofer’s finger is thin enough, it can even fool readers that detect blood flow, pulse, or temperature. This is becoming a significant security risk, not least for anyone who unlocks their smartphone using a fingerprint.

The RaspiReader

This is where Anil K. Jain comes in: Professor Jain leads a biometrics research group. Under his guidance, Joshua J. Engelsma and Kai Cao set out to develop a fingerprint reader with improved spoof-print detection. Ultimately, they aim to help the development of more secure commercial technologies. With their project, the team has also created an amazing resource for anyone who wants to build their own fingerprint reader.

So that replicating their device would be easy, they wanted to make it using inexpensive, readily available components, which is why they turned to Raspberry Pi technology.

RaspiReader fingerprint scanner by PRIP lab

The Raspireader and its output

Inside the RaspiReader’s 3D-printed housing, LEDs shine light through an acrylic prism, on top of which the user rests their finger. The prism refracts the light so that the two Camera Modules can take images from different angles. The Pi receives these images via a Multi Camera Adapter Module feeding into the CSI port. Collecting two images means the researchers’ spoof detection algorithm has more information to work with.

Comparison of live and spoof fingerprints

Real on the left, fake on the right

RaspiReader software

The Camera Adaptor uses the RPi.GPIO Python package. The RaspiReader performs image processing, and its spoof detection takes image colour and 3D friction ridge patterns into account. The detection algorithm extracts colour local binary patterns … please don’t ask me to explain! You can have a look at the researchers’ manuscript if you want to get stuck into the fine details of their project.

Build your own fingerprint reader

I’ve had my eyes glued to my inbox waiting for Josh to send me links to instructions and files for this build, and here they are (thanks, Josh)! Check out the video tutorial, which walks you through how to assemble the RaspiReader:

You can find a parts list with links to suppliers in the video description — the whole build costs around $160. All the STL files for the housing and the Python scripts you need to run on the Pi are available on Josh’s GitHub.

Enhance your home security

The RaspiReader is a great resource for researchers, and it would also be a terrific project to build at home! Is there a more impressive way to protect a treasured possession, or secure access to your computer, than with a DIY fingerprint scanner?

Check out this James-Bond-themed blog post for Raspberry Pi resources to help you build a high-security lair. If you want even more inspiration, watch this video about a laser-secured cookie jar which Estefannie made for us. And be sure to share your successful fingerprint scanner builds with us via social media!

10 comments

Avatar

The American TV Show “MythBusters” had proven that fingerprint readers can be fooled. The truth is, ‘if one man can build it, another man can circumvent it.” Furthermore (It should be over by now), there is a case against Interpool and the Spanish Government by an American “Terrorist” who was arrested for a train bombing in Madrid. Though he was there at the time of the bombing, he was not involved in it. But he was identified by a partial fingerprint found on the device. The Bio-Scanners pointed to him as the culprit, and it was an incorrect assessment of that fingerprint, as it belonged to a known Al-Quida operative who was later arrested for the crime. Though he was later released and cleared of charges it proves that the technology was too flawed to use in crime investigations.

It’s an interesting project in Bio-Mechanics and Bio-Scanning/Identity. I will give it that. The Dual Camera board has peaked my interest.

Avatar

An example with the compute module would be good too ?

Avatar

I was thinking the exact same thing while watching this. :)

The Compute Modules have 2 camera ports instead of 1, so not only can this be made much cheaper, but also *much* smaller and much faster as you can take the pictures simultaneously (no need to switch cameras and wait for the sensor to settle).

Awesome project! I had totally dismissed fingerprint sensing as far too insecure, but this method has me wondering where I can use it now. :)

Avatar

Excellent project :)

Also you can choose to use original camera module multiplexer (IVPort) which is introduced very early than its clone that you have used…I suggest you so because Ivport have support for 8mp sensor camera module v2 and version for only 2 camera modules if you want to economy budget and you will be using only 2 camera modules at your application.

http://www.ivmech.com/magaza/en/ivport-dual-v2-p-109
http://www.ivmech.com/magaza/en/ivport-dual-p-104

Avatar

Hi Rolantika, I tried using IVPort, but the board I purchased must have been a dud, because it was not working. I plan to purchase another one to try again, since the IVPort is compatible with Version 2 Pi cameras. Thanks!

Avatar

There was a project ivport, which supports 8mp camera and has 2 port to use. Also ivport is cheaper than arducam. I recommend you to google ivport or ivmech.

Concentrations for your project.

Avatar

*congratulations

Avatar

Could you use usb webcams instead?

Avatar

Hi Russ, I tried the USB webcams, but they are much slower, and the resolution was not as high (see whitepaper)

Avatar

hi guys, would something like this allow for biometric access, say if my fingerprint is accessible to the reader then I scan my fingerprint and the door unlocks.

Leave a Comment

Comments are closed