DMARC is the protocol that lets a domain say "reject mail that fails authentication" โ the thing that stops phishing sent as you. But nobody turns enforcement on blind: first you watch the aggregate reports to learn who legitimately sends as your domain, then you tighten. The reports are the feedback channel, and like CSP's, it usually stays dark. Cribado-DMARC is the listener: point your domain's DMARC record at it, and the sieve does the rest.
_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@<your-cribado-dmarc-address>"
Same premise as the rest of the family: a report stream is a dedup problem, not a logging problem. A thousand rows of XML about the same sending source is one fact with a counter. Store the fact once, and watch for the handful of changes that matter.
How it works
From zipped XML nobody reads to warnings anybody can act on.
Reports arrive by mail โ straight to the binary
DMARC reporting is mailto-only in practice, so email is unavoidable; the only question is who speaks SMTP, and the answer is Cribado-DMARC itself. A small inbound-only listener lives in the binary, and your domain's MX points straight at it โ no relay, no third-party mail service in the path.
Unpack, parse, deduplicate
Each report is unzipped, parsed, and folded into counted facts per sending source โ alignment rates, volumes, first-seen dates โ instead of a mailbox of attachments nobody opens.
Plain warnings
A new server started sending mail as your domain. Mail from this source is failing authentication. You're safe to tighten your policy. Deterministic rules over the counted facts โ the loudest warning is real mail failing while your policy says reject.
The trade-off, stated plainly
Cribado-DMARC's operators can read every report it stores. On purpose.
The same deliberate deviation from CARLOS server-blindness that Cribado-CSP makes, for the same reason: the product is analytics over the data, and aggregate reports are operational telemetry about your own mail flows. Enumerated, justified, published, never hidden โ and no end-to-end encryption claimed.
- Aggregate (
rua) reports only. Forensic (ruf) reports can contain actual message content, and are deliberately not ingested at all. - The dashboard is gated. Sign-in is Keymail OAuth SSO; a deployed build fails closed if SSO isn't configured.
- The listener is inbound-only by construction. It never relays, never sends, never bounces, and every dimension is bounded. Report senders are the world's best-behaved MTAs and retry on any transient failure, so there is no queue to manage. STARTTLS is advertised once the operator supplies a certificate.
Status
Fewer claims, all of them checkable.
On its way. The binary โ SMTP ingest, parsing, warnings, and the dashboard โ is built, and the app is deployed with its dashboard live; wiring up the production mail path (the MX record, the port the listener answers on, the STARTTLS certificate) is the current work, so no reports flow yet. Like its sibling, Cribado-DMARC exists to watch its makers' own domains first. The source is not yet published; the licence is being decided before first publication, and open source is the family default โ not optional, only deferred. When that changes, this page will link to it.