For 15 years, my co-founder, our team and I have worked at the front line of mobile application security.
We were there when the central challenge was protecting code from reverse engineering. We watched the attack surface expand into runtime manipulation, malware, API abuse, device compromise, identity spoofing and AI-enabled onboarding fraud.
That experience has led me to an uncomfortable conclusion:
While Google understands Android security exceptionally well, that is a very different security problem from the one faced by a bank, wallet, payment provider or digital identity platform.
Google can secure the latest versions of Android (especially on Google devices like the Google Pixel and Pixel Watch). But a financial institution must secure the complete interaction between a customer, an application, a device, a runtime environment, and a backend.
Those are not the same job.
The attacker chooses the battlefield
Every new Android release improves something. New hardware strengthens isolation. Patches close vulnerabilities. Play Integrity provides useful signals. StrongBox and TEE-backed hardware keystores make cryptographic material harder to extract.
All of that matters, but the attacker is not obliged to use the latest device, the latest OS or the strongest implementation.
The attacker chooses the battlefield.
They will not attempt to gain root, hide its presence, spoof camera input, and manipulate the secure element on a fully patched, current-generation device when the institution still accepts an older phone, an outdated application build, a weaker vendor implementation, or a manipulated runtime.
This produces the rule that should govern every mobile-security architecture:
The security level of your mobile channel is not defined by the strongest device available with the latest OS. It is constrained by the weakest environment your backend is still willing to trust.
Platform security moves forward, and fraud routes around it.
Attackers do not need to defeat the best version of Android (or iOS). They need to find one accepted combination of hardware, software, application version and runtime state that gives them a usable path.
A platform verdict is not a trust architecture.
This is why platform attestation, while valuable, cannot be the entire answer.
Google itself positions Play Integrity as one component of a broader anti-abuse strategy, rather than a sole fraud-prevention mechanism. That distinction is critical.
Attestation is evidence. And evidence must still be validated, correlated and interpreted.
Is the certificate chain valid? Has any certificate been revoked? Is the result fresh? Is the application genuine and current? Is the runtime being manipulated? Is the device still bound to the same legitimate customer? Does the operation match the transaction the customer intended to authorize?
Google’s own key-attestation guidance requires verification of certificate-chain signatures and revocation status before an attestation can be fully trusted.
Tools such as TrickyStore and modern root-cloaking frameworks are important not because they prove that every hardware-backed control is universally defeated. They prove something more fundamental: attackers actively target the evidence on which backend trust decisions depend. TrickyStore, for example, is explicitly designed to modify the certificate chain produced for Android key attestation.
A signed verdict is not automatically a complete root of trust.
The institution needs independent controls around provenance, revocation, freshness, application integrity, runtime state, device continuity and transaction context.
Non-exportable is not the same as non-abusable
Secure elements and hardware-backed keystores are valuable. We use hardware wherever it improves the trust chain.
But secure storage is often discussed as though it solves the whole problem. It does not.
A secure element may prevent a private key from being extracted. However, that does not automatically prove that every operation performed with that key is legitimate.
If a hostile process, a compromised application or manipulated runtime can invoke a cryptographic operation on demand, the key may remain physically protected while its authority is abused. Android’s Keystore documentation explicitly recognizes that compromising an application process may allow an attacker to use the application’s protected keys, even when the key material remains non-exportable.
The secure element cannot, by itself, establish whether:
- the genuine customer intended the operation
- the visible transaction matched the signed transaction
- the application had been manipulated
- the runtime was hostile
- the device had been fraudulently re-enrolled
- the request was being replayed, proxied or generated through an unauthorized client
Non-exportable is not the same as non-abusable.
Often, the more useful attack is not to extract the key at all. It is to turn the legitimate application or cryptographic component into an oracle that performs valid operations on the attacker’s behalf.
Even an EAL4+ evaluation provides assurance for a defined target of evaluation and security target. It does not automatically extend that assurance to the application, runtime, user interface, transaction context or backend.
Secure storage must therefore sit inside a larger architecture that protects the application, the execution path, the device relationship, the user interaction and the communication with the backend.
The two pressure points: onboarding and account takeover
The weakness becomes clearest at two moments.
1. Onboarding
A modern onboarding flow may depend on a camera, a biometric sensor, a liveness process, a document scan, a device identity and backend risk decision.
The institution is not merely asking whether an image looks convincing. It is asking whether the entire path that produced the image can be trusted.
Was a real camera used? Was a fabricated video injected into the camera feed? Was the application genuine? Was the runtime instrumented? Was the device emulated or modified? And were the signals changed before reaching the backend?
AI has made fabricated identities and synthetic media cheaper and more convincing. The defensive response cannot be another visual puzzle. It must protect the input path and establish trust across the whole channel.
2. Account takeovers
Account takeover attacks target continuity.
The criminal may have stolen credentials, intercepted an OTP, abused Accessibility Services, controlled the screen remotely, manipulated the application, hijacked a session, or attempted to bind the account to a new device.
The decisive question is not simply:
“Did the user enter the correct password?”
It is:
Is this still the same legitimate customer, using a cryptographically bound device, through the genuine application, in an acceptable runtime state, performing the transaction that the customer can actually see and intends to authorize?
Once onboarding and account takeovers are treated as end-to-end trust problems, secure storage stops being an isolated feature.
It becomes one part of a coherent system.
Trusted onboarding and durable account-to-device binding also make the secure-storage lifecycle tractable. Key generation, use, rotation, migration and recovery can then be tied to a known customer, a known application and an acceptable device state.
Banks cannot solve this by blocking everyone
There is a tempting response:
Reject every older device and every ambiguous signal. However, that is not a serious operating model.
Financial institutions serve large and diverse customer populations. Devices age. OEM support varies. Customers do not all upgrade on the same schedule. False positives have real human and commercial consequences.
And so the answer needs some nuance. The real challenge is precision: institutions need evidence-based, proportionate controls that separate a genuinely dangerous interaction from a merely imperfect device.
Regulators are increasingly explicit about this expectation. The UAE central bank's Notice 2176/2026 is one recent example.
This is why binary checks are insufficient when the goal is not to trust every old device or reject every unusual one but rather to understand the risk of the exact interaction and apply the appropriate response:
Allow. Step up. Restrict. Investigate. Block.
What a financial institution has to be able to establish
A credible architecture has to connect all of the relevant layers.
Protect the final application
Security should be applied to the final compiled application after the ordinary build process, so that the artifact being protected is the artifact that reaches the customer.
Post-build, on-premises protection reduces exposure and allows the institution to harden code, resources and security logic without sending sensitive application material to a third-party cloud.
Establish runtime integrity
The application must be able to detect and resist tampering, debugging, hooking, instrumentation, code injection, root or jailbreak concealment, hostile containers and malware interference.
The question is not whether the package was genuine when it left the app store, but whether the application remains trustworthy while the sensitive operation is happening.
Verify the device and its hardware-backed evidence
Device and key attestation should validate certificate chains, security levels, boot state, patch state, revocation status and anomalies associated with compromised or abused attestation material.
Hardware evidence is useful, but it should be independently evaluated alongside application and runtime evidence.
Keyboxes are in active circulation today that pass Play Integrity and Key Attestation as genuine hardware. Google revokes them eventually, but revocation follows discovery, and in the interval services relying on a standard attestation verdict are trusting devices that should already have been flagged. That is the window where credential stuffing farms, eKYC bypass, and payment fraud operate with a valid hardware identity. Here at Licel, we already know which ones they are, as we see maliciously used keyboxes two months earlier on average.
Revocation, when it arrives, gives a binary answer. Revoked or not. That is not the distinction an institution needs. A certificate being actively weaponized and a certificate belonging to a device that will simply never receive a renewal are different problems: one is a threat, the other is a false positive waiting to cost you a legitimate customer.
This intelligence is live in Alice RDA, and is already available to a limited number of our clients.
Bind the customer to the device cryptographically
Device binding should be more than a static identifier.
A durable binding connects account state to protected cryptographic material and to the trusted state of the application and device.
Re-enrolment, recovery and migration flows must be treated as security-critical events. Attackers frequently target the process of replacing the trusted device rather than the trusted device itself.
Consider how this fails in practice.
The attacker does not attempt to compromise the bound device. They obtain credentials, initiate a recovery flow, and enroll a device of their own. The binding is then re-established correctly, cryptographically, exactly as designed, to hardware the criminal controls.
Every control downstream of that moment reports green. The application is genuine. The runtime is clean. The device is properly bound. The transaction is signed by a key generated in secure hardware and validated without error.
Nothing has been defeated. The trust relationship has simply been reissued to the wrong person.
Isolate sensitive operations
The gap that matters is between what the customer sees and what actually gets signed.
A key held in secure storage can be invoked by a hostile process. A transaction displayed on screen can differ from the one submitted for authorization. In both cases the cryptography performs exactly as specified, and the result is fraudulent.
Sensitive operations such as key handling, token generation, request authorization, and authentication logic should therefore execute inside an environment isolated from the surrounding application and from a hostile runtime. Not only so the material stays protected, but so that the operation itself remains bound to the transaction the customer intended.
A virtual trusted execution environment provides that isolation consistently across Android and iOS, including devices where hardware capabilities vary.
Protect the mobile API relationship
The backend should not accept a request merely because its syntax is correct or because it contains a reusable secret.
It should be able to verify that the request originated from a genuine, current and untampered application instance operating under acceptable security conditions.
Short-lived cryptographic proofs, app-version enforcement, replay resistance and binding to runtime integrity turn mobile API access into an enforceable trust decision rather than a client-side puzzle.
Feed trusted mobile signals into the fraud system
A strong fraud-prevention system remains essential.
Real-time device attestation and trusted session telemetry should feed that system with high-confidence mobile-native signals:
- application integrity
- device state
- malware indicators
- runtime manipulation
- account-device continuity
- suspicious patterns across devices and sessions
This does not replace behavioral analytics, transaction monitoring, AML controls or a fraud engine.
It makes them more precise.
Better signals can reduce unnecessary step-ups, false positives, manual review and blanket blocking while concentrating friction where risk is real.
That is where Alice RDA can materially improve the economics of fraud prevention.
What we have built at Licel
Licel has spent 15 years protecting high-risk applications from evolving threats. As the attack surface expanded, so did the work: from mobile application protection to mobile channel protection.
This includes DexProtector (reliable protection for Android and iOS apps and SDKs, which has now been evaluated and approved by EMVCo under SBMP SPT for six consecutive years), Alice Threat Intelligence (converts tamper-proof mobile signals into real-time intelligence with Alice RDA), and the Licel vTEE (a virtual Trusted Execution Environment providing an isolated, secure space for the most sensitive transactions and operations, and itself evaluated and approved by EMVCo under SBMP TEE).
These are not disconnected products solving disconnected problems.
Together, they establish a chain of trust across the application, runtime, device, secure execution layer, communication channel and backend decision.
That is mobile channel protection.
Google secures Android. Banks must secure the mobile channel
The next generation of mobile fraud will not be defeated by asking only whether an operating system is secure.
The decisive question is more specific:
Can this exact interaction, from this exact application instance, on this exact device, in this exact runtime state, using this exact cryptographic identity, be trusted right now?
Google secures Android, Apple secures iOS, and device vendors secure hardware.
Financial institutions must secure the customer interaction across all of them.
Attackers do not need to defeat the future. They only need to find one version of the past that your backend still trusts.