All Policies

Information Security Policy

Effective Date: April 23, 2026

1. Purpose

This Information Security Policy (ISP) establishes the security framework for VaultKeeper to protect the confidentiality, integrity, and availability of all information assets: consumer financial data entered manually or imported via Plaid / Teller, subscription state managed by RevenueCat and Apple, AI chat context sent to Anthropic, and operational metadata in Firebase and Cloudflare.

2. Scope

This policy applies to all systems, services, and personnel involved in the development, deployment, and operation of VaultKeeper, including cloud infrastructure, third-party integrations, client applications (iOS native + web PWA), and data processing activities.

3. Security Principles

4. Authentication and Access Control

Multi-factor authentication (MFA) is required on all administrative accounts: Apple Developer, App Store Connect, Firebase Console, Cloudflare Dashboard, RevenueCat Dashboard, Anthropic Console. Role-based access control (RBAC) governs access to production systems and third-party service dashboards. See our Access Control Policy for details.

End-user authentication is handled by Firebase Auth (email/password, Google, or Apple Sign-In) with optional app-level TOTP two-factor authentication and passcode / Face ID / Touch ID device-level lock.

5. Data Protection

5.1 Consumer data tiering

5.2 Bank data (Plaid / Teller)

Bank access tokens are stored exclusively in Cloudflare Workers KV with encryption at rest and are never exposed to client-side code. Firebase Security Rules enforce per-user isolation on bankMappings, tightening to $uid === auth.uid for both read and write so household members cannot touch the owner's bank configuration. Teller production traffic uses mutual TLS (mTLS) certificate binding in the Worker.

5.3 Subscription state

The users/{uid}/subscription Firebase node is the single source of truth for premium entitlement. It is locked to admin-only writes via .validate: false; authenticated clients cannot self-grant premium. Writes come only from:

Both webhook paths use constant-time string comparison for secret verification to prevent timing attacks.

5.4 AI chat

VaultKeeper AI is consent-gated at the per-user level. Before any data is sent to Anthropic:

5.5 Credential management

API keys, secrets, and tokens are managed through Cloudflare Workers secrets (not environment variables). No credentials are committed to source code. Firebase service-account JSON is kept exclusively as a Wrangler secret and never lands in git or the repo. The RevenueCat public API key ships in the client binary (safe by design; the corresponding private key lives only on the Worker side). Secrets are rotated on discovery of potential exposure or as part of scheduled reviews.

6. Infrastructure Security

7. Client-Side Security

8. Incident Response

Security incidents are handled with the following process:

9. Vulnerability Management

Identified vulnerabilities are patched according to defined SLAs. See our Vulnerability Management Policy for details. Dependencies (Firebase SDK, Plaid Link SDK, Teller, GoogleSignIn, RevenueCat SDK) are tracked for CVE advisories; security updates are applied within 7 days of public disclosure for critical severity.

10. Software Lifecycle

End-of-life software is tracked and replaced before support ends. See our EOL Management Policy. Current major runtime targets: iOS 17.0+ (covers >95% of active iPhones), modern evergreen browsers on web.

11. Change Management

All code changes land on the main branch with commit-author attribution. Web changes deploy to Cloudflare Workers via wrangler deploy; iOS changes ship through the App Store submission + review process. No silent server-side code pushes — every deploy is traceable to a specific commit.

12. Third-Party Risk

Each third-party processor listed in the Privacy Policy is evaluated for security posture: SOC 2 / ISO 27001 attestations, published privacy posture, breach history, and Data Processing Agreements (GDPR Article 28) in place. Anthropic, Cloudflare, Google / Firebase, and Apple each have DPAs; Plaid and Teller have data-handling terms embedded in their commercial agreements.

13. Policy Review

This policy is reviewed and updated at least annually, or whenever significant changes occur to the system architecture or regulatory requirements. Last substantive review: April 23, 2026.