Application security feature

Mobile device binding

Otukan device binding links an app installation to a device with keys your server verifies, while reinstall, new phones and recovery keep real users signed in.

  • Android
  • iOS
  • Flutter
  • React Native
Sessions moved off-device is met at the bound key check boundary before it reaches the appSessions moved off-deviceBound key checkYour app
  • A key that stays put

    Otukan creates a key inside the platform's protected key store at enrolment. Requests signed with it prove they come from that installation on that device.

  • Recovery without lock-out

    Reinstall, a new phone and a lost device each have a defined path back, so binding raises the bar for attackers without stranding customers.

  • Private by design

    Binding uses keys scoped to your app, not permanent hardware identifiers, so it proves continuity without tracking people across apps.

Misuse Otukan's binding exposes

Choose a scenario to see how binding reacts, what the app does and what your backend records.

Token copied to another phone

  1. Detect

    A request carries a valid session token but no signature from the key bound to that installation.

  2. Respond

    Your backend refuses the call or asks for full re-authentication.

  3. Report

    The mismatch is logged against the pseudonymous binding reference, ready for investigation.

Cloned app data

  1. Detect

    Copied app storage arrives on a new device without the non-exportable key, so signatures fail.

  2. Respond

    The clone is treated as a new, unbound installation that must enrol again.

  3. Report

    Your team sees that stored data reappeared on a device that was never enrolled.

Remote enrolment by a fraudster

  1. Detect

    A new binding request arrives with remote access or runtime tampering signals from the app, or after a SIM change your own systems report.

  2. Respond

    Enrolment waits for a stronger check you choose, such as an existing bound device or in-branch verification.

  3. Report

    Fraud teams receive the enrolment context along with the app risk signals present at the time.

Signature replay

  1. Detect

    Each signed request carries a server-issued challenge and timestamp, so a reused signature fails freshness checks.

  2. Respond

    The stale request is rejected before business logic runs.

  3. Report

    Repeated replays against one binding are flagged as a pattern of their own.

What Otukan device binding includes

Enrolment, verification and lifecycle controls, built together so binding keeps pace as phones and people change.

  • Protected key enrolment

    Generates the binding key in the platform key store at first sign-in, marked non-exportable where the device supports it.

  • Challenge-signed requests

    Sensitive requests are signed over a fresh server challenge, and your backend checks signature and age before business logic runs.

  • Risk-aware enrolment

    New bindings carry remote access and runtime tampering signals, so a fraudster enrolling a new phone meets a stronger check.

  • Old-device approval

    A customer moving to a new phone can approve the new binding from the old one before it is retired.

  • App attestation pairing

    Adds proof that the enrolling client is your genuine release, which binding alone does not show.

  • Mismatch reporting

    Missing, wrong or replayed signatures are reported against a pseudonymous binding reference for your fraud team.

How binding works

  1. Verify the person

    Your existing sign-in or onboarding confirms who the customer is before any binding is created.

  2. Enrol the install

    The app creates a key in the platform key store and registers its public half with your server.

  3. Sign what matters

    Sensitive requests are signed over a fresh server challenge, never with a reusable value.

  4. Verify on your side

    Your backend checks signature and freshness, then applies the rule for that action.

  5. Rebind with care

    New phones and recovery go through the path you defined, with extra checks where risk is high.

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.

An installation can be linked to a device without locking out legitimate users when the link is a key, not an identifier, and when every way of losing that key has a planned path back. Otukan creates a binding key inside the platform’s protected key store when a customer first signs in, signs sensitive requests with it over a fresh challenge from your server, and lets your backend verify each signature. Reinstall, device replacement, account recovery and key rotation each follow a defined route. Binding proves continuity of an installation on Android and iOS; it does not replace user authentication.

For how binding fits the wider request evidence, see mobile API protection.

Binding semantics

Three identifiers are often mixed up in binding designs. Each answers a different question and changes at a different moment.

IdentifierWhat it tells youWhen it changesHow Otukan uses it
InstallationThis copy of your app, as enrolledReinstall, clearing app data, restore to a new phoneThe binding key belongs to the installation and is created at enrolment
DeviceThe hardware the installation runs onNew phone, repair that replaces secure hardwareThe key lives in the device’s protected store and is non-exportable where the device supports it, so it does not travel to another phone
AccountThe customer, as your service knows themAlmost neverYour backend links one account to its active bindings and decides how many it allows

A request signed by the binding key tells your server that the same installation on the same device is still talking to it. It does not tell you who is holding the phone; that remains the job of your sign-in and step-up checks. Otukan also pairs binding with app attestation, because a key proves continuity, not that the enrolling client was your genuine release.

Freshness on the server

Each signature covers a challenge your server issued moments earlier, plus the request content that matters. Your backend checks the signature, the challenge and its age before business logic runs. A captured signature fails the freshness check if it is sent again.

Lifecycle

Binding designs fail on the ordinary events of a customer’s life. Otukan defines each path before the first release.

  • Reinstall. On Android, keys in Android Keystore are removed with the app, so a reinstall means a fresh enrolment. On iOS, Keychain items can outlast an app deletion; Otukan does not treat a surviving item as proof of the same installation and asks for re-enrolment on the terms you set.
  • Device replacement. The key cannot travel, by design. The customer signs in on the new phone, and your chosen path decides whether approval from the old device, a stronger identity check or both are needed.
  • Recovery. A lost or broken phone leaves no device to approve from. Recovery runs through your strongest identity step, and the old binding is revoked on your server.
  • Key rotation. Bindings can be renewed on a schedule you choose or after a risk event, without the customer noticing more than a normal sign-in.

Otukan works with your team to test every path before release: enrol and verify on a supported device, attempt the same request from a cloned installation and confirm it fails, then repeat install, update, sign-in and your most sensitive flow, recording OS versions, devices, expected results and the reviewer.

Sector needs are covered on fintech app security and telecom mobile app security.

Privacy

Binding can be built as a quiet tracking system, and Otukan deliberately does not build it that way.

  • App-scoped keys. The binding key belongs to your app and means nothing to any other app or service.
  • No permanent identifiers. Otukan does not rely on hardware serial numbers or other values that survive a factory reset or follow a person between apps.
  • Replaceable by design. A customer who rebinds gets a new key; the old one is retired, not kept as a history of their devices.
  • Pseudonymous references. Your backend and your logs see a binding reference, not a device fingerprint.

Both Android and iOS restrict access to persistent hardware identifiers for exactly this reason. Otukan’s approach proves what your security team needs to know, that this request comes from the enrolled installation, and stops there.

Common questions

  • Does device binding authenticate the user?

    No, and it should not be sold that way. Binding proves that a request comes from the installation that enrolled, on the same device. Who is holding the phone is a question for your sign-in, biometrics or second factor. The two work best together: authentication confirms the person, binding confirms the channel they authenticated on.

  • What happens when a customer buys a new phone?

    The old binding does not move, by design, because the key cannot leave the old device. The customer signs in on the new phone and goes through the rebinding path you chose: approval from the old device if they still have it, a stronger identity check if they do not. The old binding is then retired.

  • Is binding the same on Android and iOS?

    The idea is shared, the details are not. Android apps create keys in Android Keystore, which can be hardware-backed on devices that support it, and those keys are deleted when the app is uninstalled. On iOS, keys can live in the Secure Enclave, and Keychain items can outlast an app deletion. Otukan designs reinstall and recovery for each platform's behaviour.

  • Can binding be used to track our users?

    No. Otukan's binding is built not to serve as a tracking identifier. Keys belong to your app, are created at enrolment and are replaced when the customer rebinds. Your backend sees a pseudonymous reference that means nothing outside your service, which keeps the design aligned with platform privacy rules.

On the mobile engineering team?

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

Keep sessions on the phone they belong to

Tell us the platform, the app framework and where binding matters most, such as sign-in, payments or SIM change. We do not ask for binaries, signing keys, user data or production credentials.

Or request a technical demo