Flagship

Security

Flagship is a personal-cloud product. Your phone is the trust root, you host your own data on hardware you own. We take that seriously.

Security model

Threat model in one paragraph

Your phone holds your User Master Key (UMK), wrapped by a key in its secure hardware (Secure Enclave on iPhone, hardware-backed Keystore on Android); while the app is unlocked it is held in the phone's memory. It never leaves the phone unwrapped. Derived keys do specific jobs: BAK gates server boot, IRK signs account-level operations like image-rebuild and revocation, and SWK is provisioned to the server so backup runs autonomously without keeping your phone awake. Peer hosts who store your backup shards only ever see opaque ciphertext. The flagshipserver.com control plane is a delivery channel and matchmaker; it never sees secrets in the clear.

Two kinds of key storage. The iPhone and Android apps wrap your keys with the phone's secure hardware (the Secure Enclave on iPhone, the hardware-backed Keystore on Android, StrongBox where the phone has it): strong key storage. The installable webapp keeps its keys in the browser, protected by your passphrase: weaker, and we say so when you start with it. Either can be a device of the same account.

What we promise

What 0.3 changed

For 0.3 we assumed parts of a server could be attacked, and made each part hold as little power as it needs. In plain terms:

What has not changed: TLS ends on your own server, so we can't read what your apps send. Our relay sees connection metadata: which server, when, and how much. An AI model never learns who or where you are.

Source code

The protocol, daemon, image-builder, and mobile clients live at github.com/ibisllc/flagship (link will be live when the repo is published). Audit it, build it, run it.

Coordinated disclosure & bounty

We pay for serious vulnerabilities in a defined scope and respond to reports under a published SLA. Coordinated disclosure is required: exploit details stay private until a fix ships.

Scope

In scopeOut of scope
  • flagshipserver.com: the Cloudflare Worker, all /api/* routes, the static site, and domain configuration / cookie scoping.
  • webapp.flagshipserver.com: the webapp PWA: WebAuthn / IRK signing / lease deposit / recovery upload paths.
  • remote.flagshipserver.com: the browser-remote surface: the phone-approval ceremony and the keyless session it issues.
  • *.flagship.services: the SNI passthrough plane on Fly, the tunnel hub, and the tunnel transport from each Flagship server.
  • The Flagship daemon as shipped by Flagship Studio on the Debian-based boot image. Includes ACME, the local TLS server, the data layer (Postgres / Forgejo / Chromium under /var/flagship/data/, and each app's files volume).
  • The boot image and Flagship Studio, the image-builder.
  • The canonical-bytes layer in @flagship/protocol: sign/verify routines, key derivations, encryption.
  • The Flagship iOS and Android apps.
  • Vulnerabilities in apps installed by individual users (those are the app author's responsibility; report to them directly).
  • Self-hosted forks of Flagship (only the canonical builds are in scope).
  • Issues in third-party dependencies, please report upstream and copy us.
  • Issues requiring physical access to a user's already-unlocked phone or laptop.
  • Theoretical attacks against well-vetted primitives (Ed25519, X25519, AES-256-GCM, SHA-256, HKDF) without a working PoC.
  • Rate-limiting, denial-of-service, or volumetric attacks against public endpoints. (We rely on Cloudflare's edge for these.)
  • Missing security headers on static pages where there's no XSS sink.
  • Reports auto-generated by scanners with no manual analysis.
  • Social engineering of staff or users.

Response targets

Bounty payouts

Status: pre-release, not yet fully funded. Flagship has not launched commercially and the bounty programme is not funded yet, so payouts are delayed until it is. The bands below are what we expect to pay once funding is in place; they are not a current offer. Until then we triage, fix, and credit reports under this policy, and we record every qualifying report as an outstanding obligation to be assessed against these bands at commercial launch. We would rather tell you this before you spend your time than after.

What that means in practice, until the programme is funded:

SeverityExamplesRange (USD)
Critical Account takeover without phone access; arbitrary unlock-key extraction; remote code execution on the daemon; canonical-bytes signature bypass. $5,000 – $20,000
High Cross-user data exposure; bypass of paired-session auth; unauthenticated read of auto_unlock_leases or webauthn_recovery_records contents (cleartext). $1,000 – $5,000
Medium Stored or reflected XSS on flagshipserver.com or webapp.flagshipserver.com; CSRF on a state-changing endpoint not protected by signed canonical-bytes; significant trust-model violation that doesn't directly leak keys. $250 – $1,000
Low Open redirect; subdomain takeover on a non-served subdomain; privacy leak (e.g. timing-side-channel revealing whether a username exists) without further impact. $50 – $250

Final amount depends on impact, exploitability, the quality of the report, and whether you provided a working PoC. We reserve the right to award above the listed range for exceptional reports. Payouts are in USD via bank transfer or sent to a Bitcoin / Ethereum address you provide.

Safe harbor

Good-faith research conducted under this policy will not be subject to legal action by Flagship. You may probe production endpoints provided you don't:

Hall of fame

Researchers who reported a vulnerability to us, and the commits that closed each report, are on the hall of fame.

Report a vulnerability

Use the form below (preferred: it asks for the right structured fields), or email security@flagshipserver.com. Encrypted reports are encouraged. Use our PGP key:

Please include: