Urgent.News

What's breaking now, across thousands of outlets.

Tech

My spoof gate rejected every attack. It was rejecting them for the wrong reason.

A face-recognition gate I built rejects printed photos, screen replays, and looped video. Last night I found out it was doing it for the wrong reason, and the wrong reason looks identical to the right one from the outside. Here is the whole thing, measured. The gate Two channels. Identity: ArcFace embedding from InsightFace buffalo_l, cosine against a gallery of real faces, threshold 0.45.…

The article discusses a spoof gate that was rejecting printed photos, screen replays, and looped video for the wrong reason. The gate, built using ArcFace embedding and a liveness check, was measuring alternation in the red-blue difference of the center crop. An attack sample, a printed photo filmed with a flashing app, was rejected due to the liveness channel failing to capture the flashing signal.

The author discovered that the liveness channel was sampling the video at 10 Hz, which was insufficient to capture the 10 Hz strobe pulse. After adjusting the sampling to the clip's native frame rate (20 fps), the gate correctly identified the attack. The author also identified a bug in the identity channel, which was running at a 10 Hz stride and failing to detect lit frames.

The article concludes with a fix to improve the gate's security by ensuring that no prompt time allows the loop to pass through, rather than simply rejecting everything.

Brief written by urgent.news from Dev.to's own syndicated text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

The agent drifts from your requirement while the context fills up

You ask for one behavior: add a validation that rejects a malformed id before the request reaches the handler. The agent reads the route, finds the schema file, runs a couple of searches, edits two…

  • Agent completed task without implementing validation for malformed ids
  • Validation criteria not included in final code changes
  • Acceptance block not referenced during final diff review

More from Friday 23 October →