We sell harvest-now-decrypt-later risk quantification. Our own security posture has to hold up to the same scrutiny we apply to other people’s domains. This page documents what we collect, how we protect it, which third parties we depend on, and how to report a vulnerability. No spin, no audit-report theater.
Every /api/scan invocation is recorded in an event log used only for internal analytics + abuse detection. The fields stored:
?source= tag).null instead of an unsalted hash.We do not collect: cookies, fingerprints, geolocation, names, or any field that could re-identify an individual visitor.
For customers who buy the $49/mo badge, we additionally store:
verified_badges row.X25519MLKEM768) advertised. Yes — the scanner that grades other people on PQC posture runs PQC itself.
sha256(token + server_pepper) in the database, and required as the sole entry to /api/badge-portal. Token format is versioned (v1.<hex>) so future pepper rotation can roll forward without breaking existing customer links.
The third parties we depend on. Each carries a portion of the data described above:
| Provider | Role | Data held |
|---|---|---|
| Vercel | Application hosting, edge network, serverless functions | All API request/response data in transit; function logs (sanitized) |
| Supabase | Primary database (Postgres) | Scan events (hashed IPs), verified-badge subscriptions, cert observation history, score history |
| Cloudflare | DNS + CDN edge in front of Vercel | Request metadata (IP, headers) routed to Vercel; no application data persisted |
| Stripe | Payment processing for the Verified Monitoring Badge | Customer email, payment method (we never receive raw card data), subscription status |
| Resend | Transactional email (welcome / subscription notifications) | Customer email address, transactional content |
| Sentry | Error monitoring (optional; activated via SENTRY_DSN) | Exception stack traces, request metadata (sanitized of secrets / PII at emit) |
| npm registry | Hosts the public pqcheck CLI | Public package metadata + download counts only |
| crt.sh / CertSpotter | Public certificate transparency log queries | No customer data sent; only the domain being scanned |
This list is the complete set. We add or remove subprocessors on this page within seven days of any change.
Cipherwake will notify affected paid-account owners by email within 72 hours of becoming aware of a Personal Data Breach affecting their data (GDPR Article 33-style). The notification will describe the nature of the breach, the categories and approximate number of affected data subjects, the likely consequences, and the measures taken or proposed to address the breach. Notifications are sent by email to the account-owner address on file — keep that address current.
Full breach-notification terms live in our Data Processing Agreement §8.
We don’t publish a formal incident-response playbook (Cipherwake is a solo-founder pre-revenue project), but our practice is: triage on receipt, contain immediately, preserve evidence, notify affected customers within the 72-hour window above, then publish a public post-mortem for incidents with broad customer impact. Past incidents (none material to date) would be listed on /status.
We aim to acknowledge customer emails on a best-effort basis. There is no formal SLA on Starter / Growth / Scale self-serve subscriptions. Security-related emails (security@cipherwake.io) are prioritized above general support. We’ll be honest about turnaround if it’s slower than usual.
Customer data is hosted on Supabase (Postgres on AWS us-east-1), which performs continuous WAL backups and daily snapshots with managed retention. We do not publish guaranteed RPO/RTO numbers on self-serve tiers. If your organization needs contractual recovery targets, contact legal@cipherwake.io to discuss whether we can accommodate.
Accounts have exactly one owner (enforced by database constraint). If the original owner is unreachable — left the company, lost credentials — a team admin can request owner-transfer by emailing legal@cipherwake.io with proof of corporate authority (e.g., an employment-verification letter on company letterhead OR a DNS-TXT-record demonstration of control over the account’s primary domain). We review each case and complete legitimate transfers once verification is satisfactory; specific timelines aren’t guaranteed.
If you find a security issue in Cipherwake — the scanner, the website, the browser extension, the CLI, the API, the GitHub Action — please email security@cipherwake.io with details.
If you act in good faith and follow this policy — no destructive actions, no exfiltrating data beyond what’s needed to prove the issue, no public disclosure before the agreed timeline — we will not pursue legal action or report you to your employer / ISP / etc. Cipherwake considers your research authorized.
We don’t currently run a paid bug bounty. If you want to be paid for substantive findings, mention it in your initial email and we will discuss.
We do not currently hold SOC 2, ISO 27001, or any other formal compliance certification. We don’t pretend to. We’re a small, pre-Series-A engineering team, and our customers are mostly individual engineers and small teams — not Fortune 500 procurement departments.
What we offer instead:
If your purchasing process requires SOC 2, we’re happy to discuss timelines — we plan to begin SOC 2 prep when a customer specifically needs it. Email hello@cipherwake.io.
Reports: security@cipherwake.io
Procurement / due-diligence questions: hello@cipherwake.io
Machine-readable contact (RFC 9116): /.well-known/security.txt