Skip to content

Document user-data trust boundaries and decide the E2EE architecture #312

Description

@Medformatik

Problem

OpenMapX is adding increasingly sensitive user data: timeline connections, saved places/routes, parked location, public/private sharing, and potentially live location. “Use E2EE” is not yet an implementable requirement because server-side search, routing, sharing, recovery, self-hosting, and multi-device sync impose different trust and key-access needs.

Current state

  • Service credentials and linked-account tokens have server-side encryption-at-rest paths.
  • Dawarich timeline data passes through the application server.
  • Mangrove review signing keys support client-side passphrase/WebAuthn wrapping, but only for that keypair use case.
  • Better Auth/passkeys protect authentication; they do not provide general user-data E2EE.
  • SECURITY.md exists, but there is no comprehensive user-data inventory or trust-boundary/cryptography ADR.

Proposed solution

Publish a user-data trust model and an E2EE feasibility ADR before implementing a general encryption layer. Inventory data flows and classify which fields need confidentiality from other users, operators, backups, infrastructure providers, or a compromised server. Evaluate a client key hierarchy, device enrollment, passkey-assisted wrapping, recovery, sharing, and migration against concrete product operations.

Acceptance criteria

  • A data inventory covers accounts, saved content, routes, vehicles/parking, timeline, integration credentials, reviews, shares, social graph, and live location.
  • For each item, document storage, processors, logs/caches/backups, retention, deletion, current encryption, and required server operations.
  • Threat actors and trust boundaries distinguish hosted, self-hosted, database-only, operator, infrastructure, stolen-device, and compromised-server scenarios.
  • Existing at-rest, TLS, passkey, token-vault, and Mangrove protections are described accurately without calling them E2EE.
  • Candidate client key hierarchy covers devices, rotation, revocation, backup/recovery, account reset, and loss of every device.
  • The ADR evaluates passkey PRF/WebAuthn wrapping portability and a non-passkey recovery path.
  • A feature matrix identifies which search, sync, sharing, federation, notifications, and server processing remain possible for each encryption option.
  • Metadata leakage, traffic analysis, key directory authenticity, replay, rollback, and malicious-client behavior are considered.
  • Migration/versioning and cryptographic agility are specified; custom cryptographic primitives are explicitly prohibited.
  • The decision records fields to encrypt now, fields to defer, and conditions for a full E2EE implementation issue.
  • User-facing privacy/security documentation matches the selected trust model.
  • Security review/sign-off is required before implementation begins.

Alternatives considered

Declaring all user data E2EE without a processing/recovery model would be misleading. Relying only on disk/database encryption does not address operator or application-server access.

Area

Security architecture, accounts, storage, sync, documentation.

Non-goal

This issue produces an auditable decision and bounded follow-up work; it does not implement a new cryptosystem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-triageNeeds initial review and categorization

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions