Application security feature

iOS app data encryption

Otukan adds app-level encryption on top of iOS Data Protection, with keys held in the Keychain and released only while jailbreak and hooking checks pass.

  • iOS
  • Swift
  • Objective-C
Readable data at rest is met at the app-level encryption boundary before it reaches the appReadable data at restApp-level encryptionYour app
  • Sealed after unlock

    Most app files stay readable once an iPhone has been unlocked. Otukan keeps marked data encrypted until the moment the app needs it.

  • Copies stay ciphertext

    A copied app container, or a backup restored to another iPhone, holds encrypted data without the key needed to read it.

  • Trust before decryption

    Each decryption depends on a sound device at that moment, so a jailbroken or instrumented session is refused the key.

Where sensitive iOS data is exposed

Choose an exposure to see how Otukan closes it, what the app does and what your team sees.

Files on an unlocked device

  1. Detect

    Otukan encrypts the files you mark as sensitive with a key the app holds, independently of the device lock state.

  2. Respond

    The app decrypts only the record it needs, when it needs it.

  3. Report

    Failed decryption or key-access attempts are recorded for your security team.

Local databases and preferences

  1. Detect

    Records and settings marked sensitive are encrypted by Otukan before they reach storage.

  2. Respond

    Values stay encrypted on disk even if the container is copied.

  3. Report

    Your team can review which stores hold protected values.

Backups and device transfer

  1. Detect

    Otukan keeps its keys this-device-only, so a restored backup on another device carries ciphertext without the key.

  2. Respond

    The app on a new device starts a fresh key and re-syncs from your server.

  3. Report

    A key-missing condition is reported so your backend can re-provision the user.

Key access on a jailbroken device

  1. Detect

    Otukan's jailbreak and hooking checks run before a key is released.

  2. Respond

    Key release is withheld or limited, following your policy.

  3. Report

    The device-integrity signal travels to your backend with the next request.

What Otukan adds on iOS

Each control builds on the protection iOS already provides rather than replacing it.

  • App-level data encryption

    Encrypts files, database records and preferences the app marks as sensitive, with keys the app controls.

  • Key protection

    Keeps data keys in the Keychain as this-device-only items and hides the key-handling code from analysis.

  • Jailbreak detection

    Detects jailbroken devices with checks written for iOS and feeds the result into key release and your backend decision.

  • In-memory exposure

    Shortens how long decrypted values stay in memory once the app has used them.

How it works

  1. Classify the data

    We map what your app stores, where it stores it and which extensions read it.

  2. Set key rules

    You choose, per data class, when keys may be released and what happens on a failed check.

  3. Encrypt the release

    Encryption fits your existing iOS build and release pipeline; signing stays with your team.

  4. Verify on devices

    Signed builds are tested across lock states, restores and updates before they ship.

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.

App-level encryption complements iOS Data Protection by keeping sensitive data sealed at the moments the operating system leaves it readable. iOS encrypts every file with keys tied to the device and passcode, but most app data stays accessible once the phone has been unlocked, and anything running with the app’s privileges, or on a jailbroken device, can read it. Otukan adds encryption the app controls for the files, database records and preferences you mark as sensitive. Keys stay in the Keychain on that device only and are released while jailbreak and hooking checks are clean. This page covers iOS; Android has its own controls.

Storage scope

Not all app data sits in the same place, and each place is protected differently by iOS.

Where data livesWhat iOS providesRemaining exposureWhat Otukan adds
Files in the app containerFile encryption by protection class; most apps default to a class readable after first unlockReadable while the device is unlocked or by a process with the app’s accessEncryption of marked files with an app-held key
Local databasesThe database file inherits its protection classRecords readable in the same conditions as any fileEncryption of sensitive records before they are written
Preferences and settingsStored as ordinary filesOften overlooked, and frequently holds tokens or flagsEncryption of marked values
KeychainEncrypted items with accessibility rules you chooseItems can be read on a jailbroken device if access is not gatedRelease of Otukan keys tied to runtime checks
Caches and temporary filesSame file protection as other filesSystem and library caches may hold copies of sensitive responsesReview of cache paths during onboarding

The choice of what to protect starts with your data, not with our tooling. During onboarding we map every place your app, its libraries and its extensions write data. For Swift and Objective-C apps, the details are on iOS app security and Swift app security.

Key handling

Encryption is only as good as the handling of its keys. Responsibility is split clearly.

ResponsibilityHandled by
Device-level file and Keychain encryptioniOS
Hardware-held elliptic-curve keys, on devices with a Secure EnclaveiOS and the device
Creating and wrapping data keys, and deciding when to release themOtukan, under your policy
Deciding which data is sensitive and when keys rotateYour team, with our guidance
Server-held secrets and user re-provisioningYour backend

Otukan keeps data keys as this-device-only Keychain items and, where a Secure Enclave is available, protects them with a key that never leaves it. The code that handles keys is obfuscated, so it is hard to find and study. For secrets embedded in the app itself, see mobile app secrets protection.

Lifecycle

Data exposure changes with what the device and user are doing.

Unlock states

Before the first unlock after a restart, most app files are unreadable even to the app. After it, they stay readable until the device restarts. Otukan’s own layer does not depend on the lock state: a marked record is decrypted only when the app needs it and only while checks pass.

Backups and new devices

App files are included in device backups unless the app excludes them. Because Otukan’s keys are this-device-only, a backup restored to another phone holds ciphertext without a key. The app then starts fresh and re-syncs from your server, a journey we design and test with you.

Updates and key rotation

An app update keeps the same Keychain items, so protected data remains readable after an update from the App Store. When you rotate a data key, Otukan re-encrypts marked records under the new key the next time the app opens them, and the old key is then removed.

Runtime exposure

While the app is using data, it is decrypted in memory. Otukan shortens how long it stays there, and hooking detection watches for tools that read it. Healthcare and workforce teams will find sector context on healthcare mobile app security and enterprise mobile app security.

Each control is verified on signed builds: protected data is read in an authorised lab under a jailbreak to confirm key release is withheld, the same journey runs on a clean device to confirm it works, and install, update, restore and sign-in are repeated, with versions, devices and the reviewer recorded.

Common questions

  • Is iOS Data Protection not enough on its own?

    It is a strong base. iOS encrypts every file with a key tied to the device, and its strictest protection class makes files unreadable while the device is locked. Most app data uses a class that stays readable after the first unlock, though, and anything running inside an unlocked or jailbroken device can then read it. Otukan adds a layer the app controls, released only while the environment looks sound.

  • Does Otukan encrypt data with the Secure Enclave?

    The Secure Enclave does not encrypt bulk data for apps. It generates and holds elliptic-curve keys that never leave it and can use them for signing and key agreement. Otukan can use such a key to protect the smaller key that encrypts your data, on devices that have a Secure Enclave, and falls back to Keychain protection alone where it is absent.

  • Can a backup move protected data to another iPhone?

    Otukan's keys are stored as this-device-only Keychain items, so they are not moved to a different device through a backup. Encrypted files restored there cannot be read, by design. The app creates a fresh key and fetches the data again from your server, which is why we plan the restore journey with your team.

  • Do app extensions and widgets still work?

    Yes, when they are planned for. Extensions that read shared data need access to the same keys through a shared Keychain access group and to the files through an app group. We map which extensions touch protected data and test each one on signed builds.

On the mobile engineering team?

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

Keep app data sealed on iOS

Tell us your iOS app's language mix (Swift, Objective-C or a cross-platform framework), what it stores on the device and any extensions that share that data. Please do not send app builds, keys or production credentials.

Or request a technical demo