Logo

Security & Privacy Whitepaper (Overview)Appendix

Appendix: Claim IDs Index (Single Source of Truth)

This appendix is the single source of truth for all Claim IDs in the whitepaper. Each claim has a unique, stable identifier and anchor, and is presented in a single line with a Statement and Evidence. Evidence links only to repeatably verifiable authoritative references (chapter anchors or status/third-party report entry points) and does not link to screenshots or re-hosted content.

Maintenance rules

  • MUST: Claim IDs are unique and stable; once published, they are never reused.
  • MUST: Each claim’s Evidence must be repeatably verifiable (chapter anchors or authoritative third-party entry points).
  • MUST: Statements must only assert what the evidence supports; avoid “absolute security” language.
  • SHOULD: When implementation or policy changes affect a claim, record it in the changelog and link the impacted Claim IDs.

Chapters 1–4 (Scope, Threat Model, Architecture, AuthZ)

SCOPE-01

Statement: The document clearly defines in-scope vs out-of-scope risks and the system security boundary. Evidence:1.31.4

THREAT-01

Statement: The threat model covers network attacks, unauthorized downloads, storage/server-side read attempts, and browser-side attackers. Evidence:2.2

BOUNDARY-01

Statement: Trust boundaries clearly separate responsibilities across client, server, object storage, and external environment; the server MUST NOT obtain CEK. Evidence:2.4

FAILCLOSE-01

Statement: On authentication failure or inconsistent context, the system must fail closed and output no partial plaintext. Evidence:2.5

ARCH-01

Statement: Core data objects are clearly separated: encrypted chunks, manifest, and audit data are isolated from each other. Evidence:3.2

FLOW-UP-01

Statement: The upload flow includes creating a transferId and issuing short-lived access tokens (lookup-based session tokens) with strict scope and expiry controls. Evidence:3.3

FLOW-DL-01

Statement: Downloads parse the URL fragment to obtain CEK; manifest and chunk reads use different scoped tokens; auth failures fail closed. Evidence:3.42.5

AUTH-TOKEN-01

Statement: Short-lived access tokens are server-side session tokens (lookup-based) that expire and are used for access control to ciphertext and manifests. Evidence:4.2

AUTH-SCOPE-01

Statement: Tokens are separated by scopes such as read_manifest / read_chunk / upload_chunk and are strictly validated. Evidence:4.34.43.4

AUTH-PAID-01

Statement: Paid users log in via a one-time magic link and obtain a long-lived client-held token for sender-side management actions. Evidence:4.13.5

REVOKE-01

Statement: The sender can revoke access: deleting a transfer or removing files makes downloads invalid early and denies subsequent access. Evidence:4.5

AUDIT-01

Statement: Audit data such as download counts and progress is visible only to the sender and not to the receiver. Evidence:4.63.5

LOG-01

Statement: Client and server logs/telemetry do not include CEK, URL fragments, or any derivable key material. Evidence:4.710.2

Chapter 5 (Cryptography & Key Management)

CRYPTO-ZK-01

Statement: CEK is generated only in the browser and distributed via the URL fragment; the server never generates a full download link containing CEK. Evidence:5.3.15.3.2

CRYPTO-ZK-02

Statement: The server does not receive/store/log CEK; object storage stores only encrypted chunks. Evidence:5.05.5.1

CRYPTO-E2EE-01

Statement: Chunks use AES-128-GCM; authentication failure must fail closed and output no partial plaintext. Evidence:5.4.25.8.4

CRYPTO-CHUNK-01

Statement: chunkSize is fixed at 16MB (16777216). Evidence:5.4.15.8.1

CRYPTO-NONCE-01

Statement: IV is derived as noncePrefix(8B)||uint32_be(chunkIndex) and must not repeat under the same CEK. Evidence:5.4.35.8.1

CRYPTO-AAD-01

Statement: AAD is bound to transferId + fileId + chunkIndex and encoded via EncodeAAD_v1. Evidence:5.4.4

CRYPTO-CLIENT-01

Statement: Download/decrypt pages load no third-party scripts; client logs/telemetry do not include fragments or key material. Evidence:5.610.2

CRYPTO-TLS-01

Statement: Site-wide HTTPS is enforced; TLS configuration is verifiable via public third-party reports. Evidence:5.1.2/status#tls-configuration

Chapters 6–7 (Data Lifecycle / Abuse Defense)

LIFECYCLE-01

Statement: Expiry and user-initiated deletion trigger cleanup; revocation is supported to invalidate downloads early. Evidence:6.26.34.5

ABUSE-01

Statement: Abuse defense uses rate limiting and tiered controls, operating without breaking the zero-knowledge boundary. Evidence:7.27.4

Chapters 8–9 (Privacy / Web Security & Isolation)

PRIVACY-01

Statement: The zero-knowledge definition and commitments are explicit: CEK is generated and used only on the client; the server cannot recover the key. Evidence:8.1

PRIVACY-02

Statement: Privacy implications of URL fragments (copy/paste, referrer leakage, logging) are documented with mitigations. Evidence:8.210.2

WEB-01

Statement: Key pages enforce strict CSP and resource boundaries to reduce injection and clickjacking risk. Evidence:9.19.3

WEB-HEADERS-01

Statement: Security headers baseline is verifiable via public third-party reports. Evidence:/status#security-headers

WEB-OBS-01

Statement: The site can be checked via public third-party best-practice scans. Evidence:/status#http-observatory

Chapters 10–12 (Logging & IR / Vulnerability Disclosure / Evidence)

OBS-01

Statement: Observability follows a minimal principle, covering only operations/security needs and using aggregation/sampling strategies. Evidence:10.1

IR-01

Statement: A security incident response process is defined (severity, containment, postmortem, remediation, and public notice). Evidence:10.4

VDP-01

Statement: A vulnerability disclosure process exists and prioritizes issues that could affect the zero-knowledge boundary. Evidence:11.2

EV-01

Statement: The status page aggregates third-party evidence entry points; evidence links to authoritative sources and clarifies applicability boundaries. Evidence:12.212.6