DEV Community

CaraComp
CaraComp

Posted on • Originally published at go.caracomp.com

Your Boss Got Your Face. A Signed Form Won't Save Either of You.

Navigating the Legal Ethics of Facial Comparison

For developers building computer vision (CV) pipelines, the latest ruling from Türkiye’s data protection authority (KVKK) serves as a critical architectural warning. A company was recently fined TRY 500,000 for implementing a facial recognition attendance system, despite having signed consent forms from every employee.

The technical takeaway for those of us working with biometric APIs and Euclidean distance analysis is clear: technical feasibility does not equal legal proportionality. In the world of data protection, just because you can resolve a face to a UID doesn’t mean you should—especially when less intrusive methods like RFID or simple PIN hashes are viable alternatives.

The Problem with "Permanent" Data

As engineers, we often treat biometric templates like any other string or vector embedding. But the law treats facial geometry as "special category" data. Unlike a password stored in a database that can be salted, hashed, and rotated, a biometric template is derived from a permanent physical attribute.

When you implement an attendance system using 1:N identification (scanning a face and matching it against a gallery), you aren't just storing a timestamp. You are creating a high-stakes liability. If that vector database is breached, your users cannot "reset" their faces. This permanence is exactly why regulators are moving toward a "proportionality" test rather than a simple "consent" checkbox.

Proportionality in Your Codebase

From a development perspective, proportionality means applying the principle of data minimization at the architectural level. If your goal is to verify that a specific user has access to a specific device (1:1 verification), the risk profile is significantly lower than a system that constantly scans an environment for matches (1:N identification).

At CaraComp, we focus on facial comparison—a specific, manual-input process used by investigators to analyze individual photos. This is fundamentally different from the automated surveillance systems currently being penalized. We utilize the same high-level Euclidean distance analysis used by enterprise-grade tools to determine the mathematical similarity between two faces, but the context matters:

  • Comparison: An investigator uploads two specific images to see if they are the same person.
  • Surveillance/Attendance: A system automatically scans every person walking through a door to identify them.

One is a targeted tool for case analysis; the other is a passive harvester of biometric data.

The Developer's Liability

If you are currently integrating biometrics into an app, you need to consider the "Power Imbalance" factor. In an employer-employee relationship, "consent" is often viewed as coerced by default. From a framework perspective, this means your UI shouldn't just offer an "I agree" button. You should be building in "Opt-out" workflows by design.

Furthermore, consider the compute cost vs. the liability. Using complex facial landmarks to track clock-ins is over-engineering a simple problem with high-risk tech. If your system requires court-ready reporting or batch processing for investigative purposes—where the identity is already under question—the tech makes sense. For recording who showed up at 9:00 AM, it’s a bazooka aimed at a fly.

We’ve built CaraComp to provide solo investigators with enterprise-grade Euclidean analysis at 1/23rd the price of government-tier tools, specifically because professional investigation requires this level of accuracy without the massive privacy overhead of automated surveillance.

When you're designing your next CV feature, ask yourself: is this biometric template strictly necessary for the core function of the app, or is there a non-biological data point that could do the job just as well?

How do you handle data minimization when your clients or stakeholders demand "modern" biometric features that might not be strictly necessary?

Top comments (0)