All Items
How this actually works
What it measures
Every frame, the face model returns 51 expression coefficients: jawOpen,
browInnerUp, cheekPuff, eyeSquintLeft and so on. They describe
what your face is doing, not whose face it is.
So this isn't biometrics
Face ID asks “are you the owner?”. This asks “do you know the face?”. Someone with your exact face still can't get in unless they know which face to pull. It's a knowledge factor wearing a biometric costume. Closer to a password than to a fingerprint.
The neutral trick
Enrolment captures your resting face as well as the silly one, and stores the difference between them. Matching compares that difference, so sitting there blankly scores near zero instead of accidentally landing close enough to pass.
One face, or several
You pick during enrolment. Add a second or third and it stops being one expression and becomes an ordered sequence of them, which is where what little entropy this thing has actually comes from. Enrolled faces have to be meaningfully different from each other, or the sequence gets ambiguous and you'd end up tripping your own password.
The rehearsal
After capturing your faces you have to perform the whole sequence once before it's saved. A face you can't reproduce is a password you can't type. That run also sets each face's personal pass threshold from how well it actually came back, and gets averaged into the stored signature, so what's saved is the middle of two real attempts rather than one lucky frame.
No warmer, no colder
The challenge tells you pass or fail and nothing else. A live similarity score would be an oracle: you could adjust your face, watch the number climb, and hill-climb your way into a face you'd never seen.
Being straight with you though: the step indicator advancing through the sequence is a small oracle. It tells you face one was right before you attempt face two, so an attacker could solve the faces one at a time instead of all at once. A stricter build would advance on a fixed timer and tell you nothing. That version is much harder to use, and this is a toy, so it doesn't.
A photograph beats it
Hold up a printed picture of the right face and it opens. No depth sensing, no liveness detection, nothing. That's precisely why real face authentication needs an infrared dot projector, and precisely why this is a toy.
And it can't be hashed
Passwords get hashed because matching them is exact. A face is fuzzy, so you have to keep the original
numbers around to measure distance against. That's the same problem real biometrics have, which is why
they live in a secure enclave and never leave the device. This one lives in localStorage,
where you can go and read it.
This is a toy. The face detection runs in your browser: your camera feed is never uploaded,
recorded, or sent anywhere. This page does make network requests: it fetches itself, the face-detection
model, and a cookieless page-view counter that never sees your camera. Your face signature is a list of
51 expression numbers kept in localStorage, in the clear.
It is not encrypting anything and it is not securing anything. It's a joke about step-up authentication
that happens to work.
to watch the numbers live while it reads your face.