[ Transport security ]

Deduplicate TLS reports and preserve reporting-period context

Deduplicate report ingestion without losing corrections, policy scope or the difference between observation time and arrival time.

By the EmailAuth research team · 3 min read

[ Key points ]

  • Keep authenticated reporter identity, observation period and arrival events separate.
  • Treat changed content under one identity as a reviewable conflict.
  • Make replay idempotent without losing original evidence.
On this page

Deduplicate report ingestion without losing corrections, policy scope or the difference between observation time and arrival time.

Treat retransmission as an ingestion problem

References: RFC 8460 §4.1, RFC 8460 §5.5.

A report may reach a collector more than once through retries, forwarding or multiple destinations. Counting each arrival as new telemetry inflates traffic and failure totals. Preserve the raw payload and a digest before normalizing it. Record arrival timestamp and intake channel separately from the report’s date-range. Reports normally cover a UTC day and may arrive later, so arrival-day grouping can shift incidents into the wrong operational window.

Design a key with explicit assumptions

References: RFC 8460 §3, RFC 8460 §4.4.

RFC 8460 defines report-id and reporting metadata, but it does not prescribe a universal collector deduplication algorithm. A practical local design uses authenticated reporter identity, report-id and reporting period as an identity key, plus a content digest to detect exact duplicate bytes or equivalent normalized content. The free-text organization-name alone is not a verified identity. Preserve the original document and authentication context so an administrator can investigate collisions rather than silently accepting a self-asserted organization label.

Distinguish duplicates from conflicting revisions

The synthetic fixture receives report R1 twice with the same identity key and normalized digest. It retains one analytical copy and records two arrivals. It then receives R1 with the same identity key but a different failure count and digest. That becomes a conflict requiring review, not an automatic additional report and not an overwrite of the original. A fourth arrival, R2 in a different period, remains separate. These rules are a documented local ingestion choice, not requirements imposed on all TLS-RPT collectors.

Keep policy boundaries after deduplication

References: RFC 8460 §4, RFC 8460 §4.4, RFC 8460 §7.

One report can contain multiple policies. Preserve policy-type, policy-domain, policy-string and mx-host when storing entries so a report-level duplicate decision does not flatten meaningful policy differences. Failure categories may overlap within an entry; deduplication does not make their detail counts additive. Reject or quarantine malformed records according to a documented ingestion policy, retaining safe diagnostic metadata. Do not repair a bad count by guessing or throw away the only raw evidence of a parsing problem.

Make replay safe and auditable

Use a deterministic normalization rule and version it. The supplied teaching fixture sorts JSON object keys before hashing; it does not define universal semantic equivalence for every JSON encoding or schema. Reject duplicate object keys and malformed data before normalization under a documented intake policy, so a parser cannot silently erase conflicting values. Avoid including ingestion timestamps in the content digest used for duplicate comparison. Store duplicate arrival events without adding their session counts again. For a replay after a parser fix, ensure the same report identity cannot increment totals twice. Test exact duplicates, changed payloads, reordered JSON keys and distinct periods. Access controls and retention limits still apply to the preserved operational data. The newly rerun local fixture demonstrates those idempotency cases; it does not implement a production database, verify a real reporter or claim that all corrections share one reporting convention.

Retained historical evidence and current checks

The transport observations below were captured on 7 November 2026 and inspected, not rerun as network tests, for this review. The new offline model checks are recorded separately.

The new offline ingest fixture stores every arrival in a separate list, records new, duplicate or conflict classification, and asserts two arrivals after the duplicate replay. The second arrival does not add an analytical report. A changed payload creates a conflict while the original digest is retained. The retained historical annotated report separately links a loopback hostname-validation failure to report-shaped data. No production database, authenticated intake service or real reporter was exercised. The historical transport runner requires Python with cryptography and loopback sockets. Its outcomes are bounded lab evidence, not current service health or production interoperability.

Primary-source basis

The field definitions and reporting limits come from RFC 8460, SMTP TLS Reporting, sections 3 and 4. The operational recommendations are distinguished from protocol requirements.

[ Takeaway ]

Make replay idempotent without losing original evidence.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Version the ingestion contract

Reproduce the named condition before making a configuration change.

Next steps

  1. Version normalization and identity rules.
  2. Test duplicate-safe parser replay.
  3. Keep arrival time separate from observation time.

CISO / SecOps

Retain conflicts and provenance

Keep security conclusions proportional to authenticated evidence.

Next steps

  1. Bind reporter identity to authenticated intake.
  2. Retain conflicting payloads without silently overwriting.
  3. Protect access to raw report archives.

Founder / Non-technical

Trust reproducible totals

Make the result useful to the person responsible for service continuity.

Next steps

  1. Require reproducible report totals.
  2. Make conflicting revisions visible to reviewers.
  3. Set retention expectations for raw evidence.

[ FAQs ]

Frequently asked questions

Does RFC 8460 mandate this deduplication key?

No. The key is a documented collector design recommendation.

Is organization-name sufficient identity?

No. It is report content and should be tied to authenticated intake context.

RFC 8460 §3 RFC 8460 §4.4

Should duplicate arrivals be erased?

Keep arrival evidence while avoiding duplicate analytical counts.

What if the same key has different content?

Preserve both and flag a conflict rather than silently overwrite or double-count.

Should arrival date define the reporting day?

No. Use the report’s observation period and retain arrival time separately.

RFC 8460 §4.1

Can JSON key order change a raw digest?

Yes. A versioned canonical normalization can distinguish semantic equivalence from raw-byte identity.

Do detail counts become additive after deduplication?

No. Failure categories can still overlap.

RFC 8460 §4

What makes replay safe?

A stable identity and idempotent processing that avoids incrementing totals twice.

[ Sources ]

Sources

  1. RFC 8460

    Sections §3 · §4 · §4.1 · §4.4 · §5.5 · §7

[ Glossary ]

Glossary

Identity key
A documented local tuple used to group potentially repeated reports, including authenticated reporter context.
Content digest
A hash of raw bytes or a specified normalized representation; the representation must be named.
Conflicting revision
Different report content under the same local identity key, retained for review rather than silently overwritten.

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base