[ DKIM ]

Interpret DKIM timestamps and expiration

Separate signer time, receipt time and expiration when delayed messages fail verification.

By the EmailAuth research team

[ Key points ]

  • t and x are absolute Unix-epoch timestamps; x must exceed t when both appear.
  • Compare reliable first receipt and later recheck times before diagnosing expiration.
  • DNS TTL, key retention and signature expiration are separate operational controls.
On this page

A delayed message can fail a time-related DKIM check even when nobody changed its content. Diagnose the signature's time fields and the verifier's decision before rotating keys or blaming a gateway. The message Date header, signature creation time and receiver arrival time describe different events.

Read t and x correctly

In a DKIM-Signature header, t is the signature creation timestamp and x is the absolute expiration timestamp, both expressed as seconds since the Unix epoch in UTC. RFC 6376 section 3.5 formally marks both tags RECOMMENDED. They may be absent, but this allowance should not be confused with an OPTIONAL requirement level. The x value is not a duration to add to the current time. When both are present, x must be greater than t. Missing t means an unknown creation time; missing x means no signature expiration is specified by that tag. DNS TTL is a different concept and does not set x. The t tag in a DNS DKIM key record is a set of flags, not this signature timestamp.

RFC 6376 section 3.5 permits implementations to ignore a signature with a future timestamp. It also permits a signature to be considered invalid when verification is past its expiration. For the comparison, the verification time should be when the verifier's administrative domain first received the message if reliably available, otherwise the current time. This leaves implementation choices that an incident record must distinguish from a universal rejection rule.

Build a three-clock timeline

Capture the exact signature and raw receiver evidence. Convert t and x to readable UTC while retaining the original integers. Record the signer's clock, first reliable receipt time at the verifying administrative domain, and time of the diagnostic recheck. Add relevant queue delays. Do not use an untrusted Date header as proof of when a system received a message.

Illustrative scenario: a signature is created at 10:00 UTC with expiration at 12:00 UTC. The message reaches the receiver at 11:50 but is examined again at 12:15. A verifier with reliable first-receipt information may use 11:50; a later standalone tool may only have its current time. Different outcomes do not by themselves show corrupted content. The example describes the protocol's timing distinction, not a promise about a particular provider.

Distinguish clock skew from a tight window

If newly emitted signatures appear to come from the future, inspect the signer's clock synchronization and timestamp generation. If the values are sensible but mail regularly arrives after x, examine queueing, retry routes and the chosen validity interval. RFC 6376 does not prescribe a universal ideal lifetime. Set one using your actual delivery requirements and supported signer settings.

A short expiration is not a complete replay defense. RFC 6376 section 3.5 explicitly says x is not intended for that purpose. It also does not replace key protection or abuse monitoring. Removing an old public key can make delayed verification impossible independently of x, so coordinate expiration policy with key retention.

Test the repair and retain the distinction

After correcting clock or policy configuration, send new controlled messages through the slow and normal paths. Verify their timestamps and receiver results. Preserve evidence showing whether the prior failure concerned time, key availability, body hash or signature verification. Do not edit t or x on an existing signed message: those values are covered by the signature and changing them is not a repair.

Work an epoch example

Synthetic values t=1794132000 and x=1794139200 correspond to 8 November 2026 at 10:00 UTC and 12:00 UTC. Their difference is 7,200 seconds, or two hours, but x itself remains an absolute timestamp. A reliable first receipt at 11:50 is before expiration; a standalone recheck at 12:15 is after it. The verifier’s chosen reference time and permitted expiration handling explain the possible difference. By contrast, x=t violates the required ordering when both tags are present. These values illustrate arithmetic and protocol rules, not an executed mail test.

Keep a compact investigation record

Use this suggested worksheet for the route under review. It is a planning aid, not evidence of an executed test.

  • Signature: original t and x values, their UTC conversions, d and selector.
  • Timeline: signer clock, first reliable receipt and later recheck, with time zones.
  • Finding: future timestamp, expired signature, unavailable key or another verification failure.
  • Repair: supported clock or lifetime change and results from newly sent normal and delayed-path tests.

[ Takeaway ]

t and x are absolute Unix-epoch timestamps; x must exceed t when both appear. Compare reliable first receipt and later recheck times before diagnosing expiration. DNS TTL, key retention and signature expiration are separate operational controls.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Keep a UTC timeline

Separate signer creation, first receipt and later recheck.

Next steps

  1. Preserve original epoch values.
  2. Check clock synchronization.

CISO / SecOps

Separate freshness from abuse control

Expiration does not establish recipient intent or prevent all replay.

Next steps

  1. Retain abuse monitoring.
  2. Coordinate key retention.

Founder / Non-technical

Account for delayed business mail

Choose timing policies that acknowledge legitimate queueing.

Next steps

  1. Include delayed invoices in tests.
  2. Assign a clock-service owner.

[ FAQs ]

Frequently asked questions

Is x a number of seconds after t?

No. It is an absolute Unix-epoch timestamp. If both tags are present, x must exceed t.

RFC 6376 §3.5

What does missing x mean?

No expiration is specified by that signature tag. Other verification and receiver-policy checks still apply.

RFC 6376 §3.5

Can a future t cause failure?

Implementations may ignore signatures whose timestamps are in the future. Check signer clock and receiver behavior.

RFC 6376 §3.5

Which receipt time matters?

RFC 6376 recommends reliable first receipt at the verifier’s administrative domain, otherwise the current time.

RFC 6376 §3.5

Does DNS TTL set signature lifetime?

No. TTL concerns DNS caching; x concerns the signature’s optional expiration.

RFC 6376 §3.5

Can we change x on a delayed message?

Changing the signed header invalidates the original signature. Correct configuration and test new messages.

RFC 6376 §3.7

Does a short x stop replay?

It is not a complete replay defense and is explicitly not intended as one in RFC 6376.

RFC 6376 §3.5

How long should validity be?

Use observed queueing and delivery requirements within supported signer behavior; there is no universal lifetime prescribed here.

RFC 6376 §3.5

[ Sources ]

Sources

  1. RFC 6376 DomainKeys Identified Mail Signatures

    Sections §3.5 · §3.6.1 · §3.7 · §5.2 · §6.1.1 · §8.6

  2. RFC 9989 Domain Based Message Authentication Reporting and Conformance

    Sections Introduction · §4.4 · §5.3.5

  3. RFC 8601 Authentication Results

    Sections §1.2 · §7.1

[ Glossary ]

Glossary

Signature timestamp (t)
The optional DKIM-Signature creation time, expressed in seconds since the Unix epoch.

RFC 6376 §3.5

Signature expiration (x)
The optional absolute time after which a verifier may consider the signature invalid.

RFC 6376 §3.5

First receipt
When the message first entered the verifier’s administrative domain, used for the expiration comparison when reliably available.

RFC 6376 §3.5

Clock skew
A difference between system clocks that can affect time-based signature checks.

RFC 6376 §3.5

DKIM selector
The s value used with the signing domain to locate the public verification key.

RFC 6376 §3.5

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