Skip to content
Talk to Us

Attestation SDKs for iOS/Android

What device attestation verifies, the fraud scenarios it addresses, and how Cipherstep’s end-to-end attestation fits into your app and backend.

SDK downloads and release audit logs in the Cipherstep Developer Portal.

What attestation is

Device attestation gives your backend evidence about the environment making a request. Is the device consistent with the system it claims to run? Is your application executing in an ordinary runtime, or is another tool changing what it sees and does? Those questions matter because a valid-looking request can come from a manipulated client.

Cipherstep’s SDK collects device and firmware-related values, environmental behavior, and app runtime observations. Semantic seals and encryption package those observations into an opaque envelope for server-side analysis. The application carries that envelope; it does not need to read or interpret the checks inside it.

Signals collected and sealed by the SDKAn exploded diamond stack separates device and firmware, behavioral, and runtime observations. The striped purple top plane represents semantic seals and encryption.Device / firmware signalsBehavioral signalsRuntime signalsSemantic seals & encryptionSignals collected and sealed by the SDKAn exploded diamond stack separates device and firmware, behavioral, and runtime observations. The striped purple top plane represents semantic seals and encryption.Device / firmwaresignalsBehavioral signalsRuntime signalsSemantic seals& encryption
Collection and sealing happen inside the app. Behavioral signals here describe how the environment behaves—not a profile of the user’s habits. Coverage depends on the platform and SDK release.

Attestation helps assess whether a device and runtime are suitable for a protected action. It supplies integrity evidence alongside your authentication, identity verification, and transaction controls; it does not establish a person’s identity by itself.

The problems it solves

Sophisticated fraud often targets an application’s trust layer: the login, identity capture, account recovery, or suspicious-activity challenge that decides who can proceed. An attacker who controls the runtime can try to substitute camera input, alter a check, or automate a flow while preserving the appearance of a normal session.

If that manipulation goes unrecognized, the next system may treat the result as trustworthy. An account opened with a stolen identity can become a route for laundering funds. A compromised login can give an attacker access to a real customer’s account. Downstream controls may still identify the abuse, but by then the attacker has crossed an important boundary.

Stolen identity passes through a spoofed proof of life. If accepted, automated money laundering can follow via account networks.
Identity verification A substituted capture can undermine the evidence used to open an account, creating room for illicit activity downstream.
Stolen credentials pass through bypassed integrity checks at login, enabling account takeover (ATO) if accepted.
Account access A manipulated login can let an attacker act as the account holder, change settings, or initiate unauthorized transfers.

Cipherstep adds a check on the client behind those flows. Signals of instrumentation, runtime hooks, or inconsistent device identity can inform a challenge, review, or block before the protected action proceeds. Your backend combines the result with the account and business context it already owns.

How Cipherstep integrates with your system

The SDK sits inside your application as an iOS XCFramework or Android AAR. Trigger a fresh collection for the action you want to protect, then attach the resulting opaque envelope to the request you send to your backend. Collection is asynchronous on iOS; Android exposes a collection call that runs off the UI thread. The exact entry point is documented with your SDK release.

The protected request and its attestation envelope take separate paths at your backendYour app sends the business request, represented by braces around a user, with a smaller Cipherstep attestation sidecar. Your backend separates them, retains the business request, and forwards only the attestation to Cipherstep. Completed analysis returns to the backend, which responds to the app. Check marks inside braces represent completed responses, not an unconditional allow decision.Your mobile appYour backendCipherstep APIThe protected request and its attestation envelope take separate paths at your backendYour app sends the business request, represented by braces around a user, with a smaller Cipherstep attestation sidecar. Your backend separates them, retains the business request, and forwards only the attestation to Cipherstep. Completed analysis returns to the backend, which responds to the app. Check marks inside braces represent completed responses, not an unconditional allow decision.Your mobile appYour backendCipherstep Decision API
Your backend retains the business request and forwards the attestation for analysis. Check marks inside braces represent completed responses; your backend applies its own policy to the result.

Your backend submits the evidence to the Decision API and retrieves the completed evaluation. The response includes a recommended action—allow, review, challenge, or block—and high-level signal diagnoses with confidence values. Evaluation is asynchronous: an accepted submission is not an allow decision.

For example, real phones in a coordinated operation can still carry instrumentation or disagreeing device observations. The response below shows the kind of findings your team can review. Your backend uses the returned decision to apply its policy and route the end user.

Rows of physical phones connected to computers, shown with a purple duotone treatment.
Rows of exposed mobile phone boards connected by cables in a device farm, shown with the same purple duotone treatment.
Completed evaluationJSON excerpt
{
  "status": "complete",
  "analysis": {
    "decision": "block",
    "signals": [
      {
        "type": "device_identity_inconsistent",
        "confidence": 100
      },
      {
        "type": "dynamic_instrumentation_detected",
        "confidence": 90
      },
      {
        "type": "runtime_hooking_detected",
        "confidence": 95
      }
    ]
  }
}
Illustrative phone-farm setting paired with a synthetic response excerpt. Confidence measures evidence strength on a 0–100 scale, not the probability of fraud. The full response also carries the evaluation ID and analysis metadata.

Secure SDK releases and audit controls

The Developer Portal gives your team a controlled source for its SDK releases. Review platform and release status, verify an artifact’s SHA-256, and download the appropriate build. Audit records make SDK downloads and access-related changes traceable, so the team responsible for shipping the app can follow how releases are obtained and used.

Client security has to evolve with the people trying to bypass it. Cipherstep varies protection mechanisms across customer builds and SDK releases, including the representation and sealing of collected evidence. Understanding one build should not give an adversary a reusable map of every customer’s SDK or the next release. They must re-examine the changed surface and revalidate their tooling.

A release policy makes that ongoing research part of your application’s defenses. Validate new SDKs, ship them with app updates, and monitor adoption rather than leaving an old build in circulation indefinitely. Obfuscation, semantic protections, encryption, and release variation add layers of friction; consistent updates keep those layers changing as attackers adapt.

Ten different SDK protection surfaces, becoming more prominent from left to rightA straight row of ten distinct square patterns fades from very light older protection on the left to solid-purple current protection on the right. There are no arrows or repeated patterns.
Each square represents a different SDK protection surface, progressing from older builds to new releases. Your app’s update policy brings those changes to users.

Explore the rest of the platform

See how runtime protection, server-side decisions, and investigation tools work alongside attestation.

Stay ahead of the threat.

Bring us your use case. We’ll help you protect the device and runtime behind it.

By submitting, you agree that Cipherstep may contact you about your inquiry. Privacy Policy