Security

Threat-modeling a Canadian fintech mobile app

Back to Blog

A fintech security plan should start with the service, data, users, and regulated entity involved. PIPEDA, provincial privacy law, contractual obligations, and any applicable OSFI guidance do not collapse into one universal mobile checklist. Confirm the legal and regulatory scope with qualified specialists.

The engineering task is to turn that scope into threats and controls the team can test. The sections below cover the mobile side of that exercise without pretending that a library choice makes the product compliant.

Data at rest: secure local storage

Financial data stored on the device is a prime target. If a phone is lost or stolen, the data on it must be unreadable without proper authentication.

Minimize stored sensitive data first. Then document which values remain, how they are protected, when they are available, whether they survive backup or device migration, and what happens after sign-out or credential revocation.

Data in transit: begin with a correct trust model

Use platform TLS, valid server authentication, modern protocol configuration, and cleartext blocking. Certificate or public-key pinning can narrow trust, but it also creates an availability risk when keys rotate or an emergency certificate must be issued. Decide from the threat model, ship backup pins when appropriate, and rehearse recovery before enabling enforcement.

For additional protection, we implement:

Authentication: beyond passwords

Authentication and transaction authorization are server-side security decisions with a mobile interface. The application may use:

Biometric-gated local credentials. Face ID, Touch ID, and Android biometrics can authorize access to a locally protected key or credential. That is not automatically a remote second factor. Define what the server verifies and how account recovery, biometric changes, and device replacement affect trust.

Session management. Short-lived access tokens (15 minutes) with longer-lived refresh tokens stored in the Keychain/Keystore. Sensitive operations (transfers, profile changes) require re-authentication regardless of session status.

Device binding. We generate a device-specific keypair during onboarding and register the public key with the server. Each subsequent session is bound to that device. If a user tries to access their account from a new device, additional verification is required.

Runtime protection

Assume the client can be inspected and modified. Runtime signals may increase confidence or trigger additional verification, but none creates a trusted boundary on its own:

PIPEDA and Law 25 compliance

Canadian privacy law requires meaningful consent for collecting personal information, where the form of consent depends on how sensitive the data is and what a user would reasonably expect. It gives individuals a right to access their information, and it requires a breach of security safeguards that creates a real risk of significant harm to be reported to the Privacy Commissioner and to affected individuals as soon as feasible. There is no fixed 72-hour clock under PIPEDA. On mobile, this translates to:

Quebec's Law 25 goes further. Among other obligations, it requires a privacy impact assessment for projects to acquire, develop, or redesign an information system or electronic service delivery involving personal information, rather than for every system that happens to process it. Where an assessment applies, we document our security architecture decisions so it has something concrete to work from.

Security as a continuous process

Security is not a feature you ship once. We integrate security into the development lifecycle:

A useful security review produces a threat model, named control owners, verification evidence, and residual risks. For review of the mobile implementation alongside that work, contact DEVSFLOW.

Afroz Zaheer

Afroz Zaheer

Senior iOS Developer at DEVSFLOW Technologies

Need ongoing security patching and dependency management for your fintech app? Our maintenance plans include security monitoring and 48-hour critical patch response. See our maintenance plans