Application security protection

Identity and account protection

Otukan ties each login, factor and session to a genuine install of your app on Android and iOS, so stolen credentials and tokens lose their value elsewhere.

  • Android
  • iOS
  • Flutter
  • React Native
Borrowed identities is met at the login and session boundary before it reaches the appBorrowed identitiesLogin and sessionYour app
  • Identity bound to the install

    Otukan ties each account session to a verified installation of your genuine app, so a password or token alone no longer opens the account elsewhere.

  • Factors that hold up

    Biometric prompts, one-time codes and authenticator steps are protected against hooking, so a tampered app cannot report a success that never happened.

  • One view across your apps

    Consistent installation signals across your own family of apps help your identity team recognise the same person, or spot accounts that do not belong together.

Identity attacks Otukan interrupts

Choose an attack to see how Otukan detects it, how the app responds and what your identity service receives.

Faked biometric success

  1. Detect

    Otukan detects hooking of the biometric flow and requires a cryptographic operation that only a real match unlocks.

  2. Respond

    The approval is refused and the user is asked for another factor, per your policy.

  3. Report

    Your identity service receives the failed biometric integrity result with the request.

One-time code capture

  1. Detect

    On Android, Otukan detects overlays and accessibility services active on code entry screens; on both platforms, it detects hooking of the sign-in flow.

  2. Respond

    Code entry is paused or moved to a stronger factor.

  3. Report

    The signal travels with the verification request for your authentication service.

Lifted session tokens

  1. Detect

    Device binding shows when a token appears from a device or app instance other than the one that received it.

  2. Respond

    Your backend ends the session and asks the user to sign in again.

  3. Report

    The mismatch is recorded against the pseudonymous installation for investigation.

Cloned app instances (Android)

  1. Detect

    Otukan recognises when the app runs inside a cloning container or as a parallel instance on Android.

  2. Respond

    Sensitive account actions are restricted in the cloned instance.

  3. Report

    Your team sees how many installations each account uses and which ones are clones.

Rogue device enrolment

  1. Detect

    A new installation claiming an existing account is checked for app integrity, device state and automation.

  2. Respond

    Enrolment is stepped up or held for review before the new device is trusted.

  3. Report

    Enrolment signals reach your identity team with the account and installation history.

Controls for identity and accounts

Each control strengthens a different moment in the account lifecycle, from first sign-in to device change.

  • MFA and authentication protection

    Protects sign-in, one-time code and authenticator flows inside the app against interception, hooking and automation.

  • Biometric flow protection

    Ties biometric approval to a key held in the Android Keystore or iOS Keychain, so hooking the prompt's result does not unlock the key.

  • Account and installation integrity

    Recognises cloned, duplicated and unexpectedly reinstalled app instances, so each account maps to installations you can account for.

  • Cross-app identity signals

    Gives your identity team consistent installation signals across your own apps, under your privacy rules.

  • Device binding

    Binds tokens and refresh credentials to the device and app instance that received them.

  • Credential stuffing protection

    Marks sign-in attempts that arrive without genuine app evidence, so leaked password lists lose their easy route in.

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. Map identity moments

    Mark enrolment, sign-in, step-up, session renewal and device change as protected moments.

  2. Bind the installation

    The protected app creates a key-backed identity for each genuine installation.

  3. Harden each factor

    Biometric, code and authenticator steps run with hooking and overlay detection active.

  4. Verify server-side

    Your identity service checks installation evidence with every sensitive request.

  5. Review and adjust

    Compare signals with confirmed takeovers and support cases, then tighten step-up rules.

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.

Otukan ties each sign-in, factor and session to a genuine installation of your app, so a stolen password or lifted token no longer opens the account from somewhere else. It binds sessions to a verified installation, protects biometric and one-time code flows against hooking and, on Android, overlays, recognises cloned instances and reports all of it to your identity service with each sensitive request. Your identity provider still decides who the person is. Evaluate it moment by moment, from enrolment to device change. Otukan covers Android, iOS, Flutter and React Native apps, and scopes every signal per platform, because the two platforms offer different identity building blocks.

Identity moments and trust boundaries

An account is attacked at the moments your app decides to trust someone. Each moment has its own boundary, the point where the app hands a claim of identity to your backend.

Identity momentWhat an attacker triesTrust boundaryOtukan signal
EnrolmentRegister a new installation against a stolen accountNew installation to identity serviceInstallation integrity, device state, automation
Sign-inReplay leaked passwords, capture one-time codesCredential checkGenuine app evidence, overlay and hooking detection
Step-upFake a biometric match in a tampered appFactor verificationKey-backed biometric result
SessionLift a token and use it on another deviceToken presentationDevice binding
Device changeMove the account to an attacker’s phoneRe-bindingIntegrity of the new installation, step-up

Device change and enrolment deserve the most care. They are built to let a customer in without the usual context, which makes them the favoured door for account takeover. For the full takeover path, see account takeover prevention.

Who holds each part of identity

In the app

The protected app is where identity evidence is born. Otukan creates a key-backed identity for each genuine installation, checks app integrity and device risk signals before a factor is accepted, and detects hooking, overlays and cloning around sign-in screens. Because a modified app could forge any of these results, integrity checks run first and travel with every result.

In the platform

The platforms supply strong primitives. On Android, the Keystore holds keys that can be bound to biometric approval, and key attestation describes where a key lives. On iOS, the Keychain can require biometric approval before a key is used, and App Attest lets your server confirm a genuine app instance. Otukan builds on these rather than around them, and uses each one only on its own platform.

On your identity servers

Your identity provider and authentication service hold the account, its factors and its history. They decide whether to allow, step up or refuse. Otukan’s evidence arrives with the request, so those decisions stay on servers you control and hold even when the device is in hostile hands. For binding tokens to devices, see device binding.

How to evaluate identity and account protection

Signals per platform

Ask for a signal-by-signal list for Android and iOS. Cloning checks, overlay detection and accessibility signals are Android concerns; App Attest is an iOS mechanism. A shared label such as “biometric protection” should break down into two separate, documented implementations.

Evidence to request

Run the attacks yourself in a test environment. Hook the biometric result in a protected test build and confirm the server refuses the approval. Copy a session token to a second device and confirm the mismatch is reported. Install the app in a cloning container on Android and confirm the instance is recognised. Each test should produce a record your identity team can read without help.

Then check the paths an attacker would try next. Register the same account from a fresh installation on an emulator and confirm enrolment is stepped up. Drive a code entry screen with an automation tool and confirm the attempt is marked. Compare what each test produced on Android with what it produced on iOS, and make sure your team knows which signals exist on only one platform.

Customer friction

Strong identity controls fail when they punish real customers. Measure how often legitimate sign-ins are stepped up per platform and app version before enforcing. Check the device change journey end to end with real support staff. Make sure people using accessibility tools can still sign in, with their assistive services treated as trusted where your policy allows. Signals are logged against a pseudonymous installation identifier, which keeps investigation possible without spreading personal data.

For how identity signals feed wider fraud decisions, see mobile fraud prevention.

Common questions

  • Does Otukan replace our identity provider?

    No. Your identity provider decides who the person is and which factors they need. Otukan tells it something it cannot see on its own: whether the request comes from a genuine, unmodified installation of your app that has been bound to this account. Your provider keeps its policies, and gains a stronger signal to base them on.

  • Are passkeys enough on their own?

    Passkeys are a strong answer to phishing and password reuse, and worth adopting. They prove possession of a credential, but not whether the app using it has been modified or whether someone is driving the session remotely. Otukan adds that app and session context, so a passkey sign-in from a tampered or remote-controlled app can still be stepped up.

  • How do Android and iOS differ for identity signals?

    They offer different building blocks. Android provides Keystore key attestation and lets users run cloned or parallel app instances, so cloning checks are Android-specific. iOS provides App Attest and the Keychain with access control tied to biometrics. Otukan builds its installation identity from what each platform offers and labels every signal with its platform.

  • What happens when a genuine customer changes phone?

    A new phone means a new installation, and that is exactly when attackers try to slip in too. Otukan treats it as a protected moment: the new installation presents attestation and integrity evidence, including any signs of a modified device, and your policy asks for a step-up the old device or a trusted channel can confirm. The customer moves across smoothly, while a stranger meets friction.

On the mobile engineering team?

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

Make every login prove its origin

Tell us the platform, the app framework and the identity moment you most want to harden, such as sign-in, biometric approval or device change. We do not ask for binaries, signing keys, user credentials or identity data.

Or request a technical demo