Auto Secure LoginPlatform
Live · test portal 1:1 only Bilingual EN / ES

Face verification that fails closed — and never overclaims.

ASL Verifier is privacy-first one-to-one facial comparison. It does exactly two things: compare an ID portrait to a live selfie, and compare two stills (non-authenticating). A local OpenCV engine does the work — images never leave the box, every comparison is metadata-only, and the decision engine is architecturally fail-closed. It is explicitly not surveillance, gallery matching, demographic inference, or one-to-many search, and it says so.

1:1only — never 1:many
on-boximages never leave the server
Ed25519short-lived PASS receipts
no fallbackto PASS, ever

The problem

Face tech earns distrust by doing too much.

Most facial software slides from "verify this one person" into gallery search, demographic guessing, and quiet surveillance — and uploads your face to someone else's cloud to do it. That's exactly the behavior that makes the technology radioactive.

Verifier draws a hard line: one-to-one comparison, on the box, metadata-only, with a decision engine that turns any missing signal, engine failure, or policy mismatch into REVIEW or FAIL — never a fallback to PASS.

What it refuses to do

  • One-to-many / gallery search
  • Demographic or attribute inference
  • Surveillance or watch-listing
  • Send images off the box
  • Issue a PASS it can't prove

Capabilities

A narrow tool, built to stay narrow.

Two isolated features

ID-to-live and photo-to-photo have different result contracts — the non-authenticating path can't be mistaken for an approval.

Fail-closed engine

Any missing signal, FAIL, or policy mismatch resolves to REVIEW or FAIL — there is no code path that falls back to PASS.

Signed PASS receipts

Short-lived Ed25519 (EdDSA) receipts with replay-guarded jti, and strict allow-listing of engine results.

👁

Local OpenCV

YuNet detection + SFace comparison run locally, with SHA-256 model-integrity checks on pinned ONNX models.

🧹

Ephemeral media

Images are ≤12 MiB, streamed, buffers zeroed, with no upload directory — nothing lingers on disk.

Metadata-only audit

An HMAC audit records the decision and context — never the face.

Versioned consent

Consent is bound to a notice digest and versioned, so you can prove exactly what a subject agreed to.

Dual-port trust split

The portal (:5080) and the engine (:5081) are separated, with a strict CSP and bilingual EN/ES UI.

📱

Native Android capture

CameraX capture that never accepts a gallery image as "live," with buffers wiped after use.

refuses to startwithout systemd creds + a verified engine
contentSha256immutable release provenance
node --test+ retained Android/synthetic QA evidence
publicly candidabout what it can't do
It publishes its own limits. Document authenticity, liveness, and presentation-attack detection are marked UNAVAILABLE — so ID-to-live explicitly cannot issue a final approval on its own. That refusal to overclaim is what makes the PASS receipts it does issue worth trusting.

Verify one person. Nothing more.

On-box, metadata-only, 1:1 face verification that fails closed and never issues a PASS it can't prove.