Status: Public Beta v0.2 · ProofSpec v0.1 · API v0.2 · Privacy-first · No blockchain

Security

Threat model, headers, rate limits, logging, and disclosure policy for proof-file verification (.tproof.json) — without uploading your content.

↑ Top

Last updated: 2025-12-30 · See also: Privacy · Legal

Security verification

This page documents controls; it is not a guarantee of security. Always verify a proof file using a trusted verifier and keep your device secure.

Threat model

ThreatVectorMitigation
Content exfiltrationUploadsNo file uploads; hashes computed locally; proof file contains no original content.
API abuseFloodingRate limiting, strict validation, predictable 4xx/429 responses.
Proof forgeryTamperingSigned proof file; verifiers reject modified fields/signatures.
Replay/spamAutomationAbuse controls and operational monitoring.
Supply chainDepsMinimal dependencies; reviewed updates.

Headers & CSP

Content-Security-Policy:
  default-src 'self' https://api.timeproofs.io;
  worker-src 'self' blob:;
  img-src 'self' data: https:;
  style-src 'self' 'unsafe-inline';
  script-src 'self' 'nonce-TP-2025' https://plausible.io;
  connect-src 'self' https://api.timeproofs.io https://plausible.io;
  font-src 'self' https: data:;
  object-src 'none';
  base-uri 'self';
  form-action 'self';
  frame-ancestors 'none';
  upgrade-insecure-requests

Rate limits

Exact thresholds are operational controls and may change without notice.

Key policy

The proof file contains the verification context (issuer, alg, kid) so independent tools can validate consistently.

Logging

Coordinated disclosure

Report vulnerabilities via /.well-known/security.txt. Include impact, reproduction steps, and affected URLs. Please avoid public disclosure before a fix is available.

For encrypted reports, use the PGP key listed in security.txt.

Dependencies

Source: GitHub (v0.2 branch)

Status & errors

Operational checks

AreaCheckNotes
BrowserCSP + no framing + no mixed contentFrame-ancestors none; upgrade-insecure-requests.
AbuseRate limiting & validation429 + backoff expected.
SecretsNo secrets in clientSigning stays server-side.
PrivacyHash-only + proof-file modelNo uploads; verification uses .tproof.json.
Disclosuresecurity.txtCoordinated disclosure route.