Security & Trust

Security is the product.

Onelo handles your users' identities, sessions and payments. We don't treat security as a feature bolted on top — it's the thing you're paying us to get right. Here's exactly what protects every app, and what changes per platform.

Protecting every app · every platform
Encrypted connection
Every request between your app and Onelo runs over TLS. Tokens, user data and payment details can’t be read or altered in transit — on public Wi-Fi or anywhere else on the network.
Encrypted secrets
The keys that let your app and Onelo trust each other are stored encrypted with authenticated encryption (AES-256-GCM) in our database. A database leak on its own never yields a usable secret — and any tampering is detected on decryption.
Tenant isolation
Every request Onelo answers is scoped to your account and re-checked in code — isolation at the data layer plus a per-tenant check on every call. One developer’s app can never reach another’s users, subscriptions or revenue.
Hosted sign-in
Your users enter their password on an Onelo-hosted page, not inside your app. Credentials never pass through your code or your servers, so a bug on your side can’t leak them — and it shrinks the surface you’re responsible for.
Password hashing
Passwords are hashed with bcrypt (work factor 12) — deliberately slow and per-user-salted. Even if our database leaked, the passwords stay useless to an attacker, and we can raise the cost as hardware gets faster.
Session security
After sign-in your app holds a refresh token that’s single-use and rotated on every renewal. If a stolen token is ever replayed, Onelo detects the reuse and kills the whole session automatically. Sessions are capped per user and revocable instantly; on mobile they live in the device keystore (Keychain / EncryptedSharedPreferences), never plaintext.
Signed, rotating keys
The session tokens your app trusts are cryptographically signed and bound to Onelo, so they can’t be forged or replayed against another service. Signing keys rotate gracefully — we can retire a key without logging your users out.
Proving each request is your real app

Beyond the baseline, every request your app makes carries a proof of where it came from, and Onelo verifies it before doing anything. What that proof is depends on where your app runs:

iOS & macOS

Apple App Attest proves each request comes from a genuine, unmodified build of your app on real Apple hardware. The sign-in handshake is protected with PKCE (S256), so an intercepted login code can’t be reused.

🤖

Android

Google Play Integrity confirms the request comes from your unmodified app, installed from Google Play, on a certified device. Sign-in is protected with PKCE.

🖥

Desktop (Windows / macOS / Linux)

On macOS and Windows, desktop builds are verified by their code-signing fingerprint (Apple codesign / Windows Authenticode) — a repackaged or unsigned build is turned away. Every desktop build is also bound by its app identity, and sign-in uses PKCE.

🌐

Web

Browser apps are locked to your own domains with an origin allowlist and authenticated with a server-side client secret — only your site can call Onelo on your behalf. (No code to intercept, so no PKCE here.)

🛠

Server / backend

Server-to-server calls use a secret key and an optional IP allowlist, so only your own infrastructure can reach the privileged endpoints.

Bots, emulators, tampered and cloned apps are turned away before they reach your backend or your bill. Each proof is verified on Onelo's servers and tied to the specific request — it's one layer we apply alongside the rest, not a silver bullet, and we tier enforcement so genuine users on older devices aren't wrongly shut out.

Payments

Card data never touches Onelo's servers — or your app. All payments are processed by Stripe, a PCI Service Provider Level 1 (the highest tier). Onelo mints short-lived, scoped tokens for each checkout and records every money event with idempotency keys and two-phase commits, so a network blip can't double-charge a customer or lose a sale.

Abuse

Auth endpoints are rate-limited per IP and per account, with credential-stuffing lockouts after repeated failures. Security events are logged with IP addresses anonymised — protecting your users and your bill.

Privacy / GDPR

Versioned Terms & Privacy consent is captured at signup and on every change, tied to the user and exportable for a DSAR or audit. We store a hash of the IP, never the raw address. Account deletion runs on a grace period with a full cascade.

Responsible disclosure

Found a vulnerability? Email [email protected]. Report in good faith and we won't pursue legal action — we aim to acknowledge within 48 hours and will credit you once it's fixed.

What we don't claim — yet

Onelo is an independent product built by a small team. We are not yet SOC 2 or ISO 27001 certified, and we won't pretend otherwise. Everything described above is what we do today; formal certification is on our roadmap as we grow. If your use case needs a signed DPA or a specific attestation, email [email protected].

Security — Onelo