Status: Public Beta v0.1 · Security · Privacy-first · No blockchain

Security

Threat model, headers, rate limits, logging, and operational security for a hash-only, public-verify protocol.

↑ Top

Security · Last updated: 2025-11-08 · See also: Protocol (ProofSpec) · Privacy

Security & performance verification

HTTP headers enforced: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy.

Threat model

ThreatVectorMitigation
Content exfiltrationUploadsNo file uploads. Hash-only API.
API abuseBots, floodsPer-IP and per-token limits. Idempotency on same hash.
Key compromiseSecrets leakScoped tokens, rotation, kid versioning, least privilege.
Clock driftNTP skewUTC timestamps. Tolerance in verify. Multi-source time.
IntegrityTamperingHMAC-SHA256/Ed25519 signatures. Public verification URL.

Headers & CSP

Content-Security-Policy:
  default-src 'self' https://api.timeproofs.io https://timeproofs-api.jeason-bacoul.workers.dev;
  worker-src 'self' blob:;
  img-src 'self' data: https:;
  style-src 'self' 'unsafe-inline';
  script-src 'self' 'nonce-TP-2025' https://plausible.io https://static.cloudflareinsights.com;
  connect-src 'self' https://api.timeproofs.io https://timeproofs-api.jeason-bacoul.workers.dev 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

Key policy

// Node.js verify (HMAC)
import crypto from "node:crypto";
function verify({hash, ts, sig}, secret){
  const msg = `${hash}|${ts}`;
  const expect = crypto.createHmac("sha256", secret).update(msg).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expect,'hex'), Buffer.from(sig,'hex'));
}

Logging & retention

Vulnerability disclosure

Report via /.well-known/security.txt. Provide steps and impact. We follow responsible timelines.

Dependencies & SBOM

Source: GitHub v0.1

Status & errors

Audits & validation

AuditScopeResultLink
Google PageSpeedMobilePerf 100 · A11y 100 · BP 96 · SEO 100 view
SecurityHeadersHTTP headersA+ view
SSL LabsTLS/HTTPSA+ view
Rich Results / JSON-LDSchemaValid view
Mobile-Friendly TestUX mobileCompliant view

This page is verified by TimeProofs

Release: · Hash: · Verify

Timestamp created via TimeProofs API (public, privacy-first, no blockchain).