Close

Reality check. Changing the concept.

A project log for Kindly Identify Yourself

Server-side access control with ESP32 readers, fingerprint, NFC, and an Android phone key. The reader only relays, the server decides.

strangerandstrange.rand • 10 hours ago•0 Comments

Reality check

Posted the idea of this project on Reddit and received valuable (negative) feedback.

My motivation for moving matching to the server was:

The biggest downsides are:

Here I need to note that probably all hobby-grade fingerprint sensors are vulnerable and may leak your fingerprints, as communication over unencrypted UART means anyone can send any command, including a template export or get a raw image. Despite the reconstruction of the original fingerprint image from the template being impossible (AFAIK), it is possible to construct a synthetic image that will pass the lock using that template.

Changing the concept

As of now, the idea is to support multiple authentication methods:

The current phase is NFC using a smartphone, and it already works on the bench. The private key lives in the phone’s secure hardware and never leaves it. The server stores only the public key. Enrollment is done once (hardware attestation + manual approval). On every tap, the server sends a signed one-time challenge, the phone verifies it and signs it back. A recorded exchange can’t be replayed, and a leaked database has nothing to steal.

I'm renaming the project to Kindly Identify Yourself (KIY). Naming a project is almost as hard as naming variables, and in this field, almost every good word is already taken. So I went to the Culture series by Iain M. Banks to find something interesting.

What about a fingerprint reader?

As of now, it is still planned, and I'm waiting for the sensors. I'll do what I can to reduce the risks (e.g., raw images won't be stored, and templates will be encrypted), and of course it'll be an optional method (probably with the possibility of disabling it during installation).

Discussions