Application security feature

Biometric flow protection

Otukan turns a biometric check in your Android or iOS app into signed, server-verified approval, and flags hooked, overlaid or remote-controlled prompts.

  • Android
  • iOS
  • Flutter
  • React Native
Faked biometric match is met at the key-bound approval boundary before it reaches the appFaked biometric matchKey-bound approvalYour app
  • Approval as a signature

    A real face or fingerprint match unlocks a key, and that key signs the server's challenge. Your backend verifies a signature, not a true or false.

  • What the user sees is real

    Otukan checks for screen sharing on both platforms and overlays on Android before the prompt, so a harmless-looking screen does not hide a transfer.

  • The app around the prompt

    Hooking, debugging and modified-system checks run just before the prompt appears, and their result travels with the signed approval.

Biometric attacks Otukan exposes

Choose an attack to see how Otukan detects it, how the app responds and what your server receives with the approval.

Forced success callback

  1. Detect

    Otukan detects hooking of the biometric callback. Even if a hooked callback claims success, the key stays locked without a real match and no valid signature exists.

  2. Respond

    The action does not proceed without a signature your server accepts.

  3. Report

    Your server sees an approval request with a missing or invalid signature and a hooking signal.

Prompt behind an overlay (Android)

  1. Detect

    Otukan detects another app drawing over the approval screen while the prompt is shown.

  2. Respond

    The approval is paused and the real transaction details are shown again.

  3. Report

    The overlay signal is attached to the approval request.

Approval under remote control

  1. Detect

    Otukan flags screen sharing during the approval step, and on Android, remote-access tools controlling the phone.

  2. Respond

    The user is warned about who can see the screen, or the approval is held.

  3. Report

    Your fraud team receives the remote-control context with the request.

Newly enrolled biometrics

  1. Detect

    Keys created to follow the enrolled biometric set stop working when a new face or fingerprint is added on the device.

  2. Respond

    The app asks the user to re-establish trust through your chosen step-up.

  3. Report

    Your server records a key re-registration for the account.

Replayed approval

  1. Detect

    Each approval signs a fresh server challenge that includes the transaction details.

  2. Respond

    A signature reused for another request or another amount is rejected.

  3. Report

    The mismatch is logged against the installation and the transaction.

Controls around the biometric prompt

These controls protect the moments before and after the operating system performs the match.

  • Android root detection

    Finds rooted Android devices where system components that handle biometric results can be altered.

  • iOS jailbreak detection

    Finds jailbroken iPhones where tweaks can intercept the app's calls to the authentication framework.

  • Remote access risk

    Recognises when someone else can see or steer the screen while a customer approves an action.

  • Memory protection

    Makes it harder to read or rewrite approval state and challenge data while they sit in the app's memory.

You choose the response

Set a response for each user flow. Start by observing, then tighten flow by flow as the signals prove themselves.

Observe

Signal sent to your backend

Rolling out a new policy and measuring real-world signals.

Warn

This device looks modified. Continue with care.

Conditions some genuine users create, such as developer settings.

Restrict

Payments are unavailable on this device.

Payments, stored data and account changes.

Terminate

Session closed for your security.

Clear tampering on a high-risk flow.

How it works

  1. Create a guarded key

    The app creates a key that the platform unlocks only after a successful biometric check.

  2. Receive a challenge

    Your server sends a one-time challenge carrying the action and its details.

  3. Check the surroundings

    Otukan checks the app, the device and the screen before the prompt is shown.

  4. Sign the approval

    A real match unlocks the key, which signs the challenge together with Otukan's result.

  5. Verify on the server

    Your backend checks the signature, the challenge and the signals, then approves or steps up.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

A mobile security team should evaluate biometric flow protection by asking what your server actually receives when a customer approves an action with face or fingerprint, and whether that evidence would survive a tampered app. Otukan makes the approval provable. A real match unlocks a key held by the platform, the key signs a one-time challenge carrying the transaction details, and hooking, overlay and remote-control checks run around the prompt and travel with the signature. The operating system still performs the match, and Otukan never touches biometric data. Android and iOS are implemented separately, each on its own platform’s key storage.

The step-by-step evaluation checklist is on the biometric flow protection solution guide.

The flow and its trust boundary

Which actions depend on it

Biometric checks now sit in front of sign-in, payment approval, payee changes, card detail reveals and new device registration. Each is a different risk. A quick unlock on a balance screen needs less than a transfer to a new recipient, and your protection should reflect that.

Where trust changes hands

The match itself happens in hardware the app cannot reach. Trust changes hands at two points: when the platform tells the app the result, and when the app tells your server. Attackers go for those two points, not for the sensor.

What the customer is agreeing to

A biometric approval only means something if the customer knew what they approved. On Android, the app sets the title and description of the system prompt, so the amount and recipient can appear on it. On iOS, the Face ID sheet shows no transaction text, so the details belong on the app screen directly behind it. Otukan’s challenge carries the same details to your server, which lets the backend confirm that the action it executes is the action the customer saw.

HandoverWeak designOtukan design
Platform to appApp reads a true or false in a callbackMatch unlocks a key; no key, no signature
App to userPrompt shown over whatever is on screenOverlay and screen-sharing checks before the prompt
App to serverApp sends “approved”App sends a signature over the server’s challenge plus integrity signals

Who does what

The operating system

Performs the match, holds the key in the Android Keystore on Android or in the Secure Enclave on iOS, and releases it only after a successful check. On both platforms, a key can be created so that it stops working when the device’s enrolled biometrics change. Android also grades biometric sensors by strength: a key that requires user authentication can be unlocked by a Class 3 (strong) biometric or the device credential, never by a weaker sensor.

The app with Otukan

Creates the key at registration, requests a challenge before each approval, checks the app, the device and the screen, then asks the platform to sign. If a check fails, the response you set for that flow applies before the prompt appears. Platform specifics are on the Android biometric guide and the iOS biometric guide.

Your backend

Holds the public key for each registered installation, issues challenges and checks each returned signature against the right key, challenge and transaction. It combines the result with Otukan’s signals and decides: approve, step up or decline.

Evaluating it in practice

Platforms and scope

Ask for separate Android and iOS answers for every behaviour: how the key is created, what happens on re-enrolment, which screen checks apply. Remote-access tool detection and overlay checks are Android signals. Screen sharing is checked on both.

Evidence

In an authorised lab, hook the biometric callback and confirm your server rejects the approval. Show an overlay over the Android prompt and confirm the pause. Add a new fingerprint and confirm the old key no longer signs. Reuse a signature for a different amount and confirm the refusal.

User impact

Run the same approvals on ordinary phones and confirm they pass without extra prompts. Measure how often the fallback route is used, and test it with assistive technologies switched on. A protection that pushes customers towards weaker routes has moved the risk, not removed it. Keep a dated log of each run with the phone model, OS version, outcome and the engineer who checked it, and repeat the set after each release that touches sign-in or payments.

For the wider account security picture, return to identity and account protection.

Common questions

  • Does Otukan see or store biometric data?

    No. Face and fingerprint matching happens inside the operating system and its secure hardware, and the app only learns whether the key was unlocked. Otukan works with that outcome and with the state of the app and screen around it. No template, image or measurement of the user's face or finger ever reaches Otukan or your servers.

  • Why is a success callback not enough?

    A callback is ordinary code in your app, and ordinary code can be hooked. If your server trusts a flag the app sends after the callback, a tampered app can send that flag without any match. A signature from a key the platform only releases after a real match is evidence that survives hooking of the callback.

  • What about users who cannot or will not use biometrics?

    Every biometric flow needs a fallback, and the fallback deserves the same care. Otukan's checks apply equally when the user approves with the device passcode or an app PIN, and your policy can set a different response for each route, so accessibility and choice are preserved without opening a weaker door.

  • How do Flutter and React Native apps fit?

    Cross-platform frameworks call the same native biometric services underneath. Otukan protects the native layer on each platform, so a Flutter or React Native app receives the Android protection on Android and the iOS protection on iOS, each built for its own platform.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

Make each biometric approval provable

Tell us the platform, the app framework and the actions your customers approve with face or fingerprint, such as sign-in, payments or device change. We do not ask for binaries, signing keys, biometric data or production credentials.

Or request a technical demo