Skip to main content
ZombieMutex

30 results · ↑ ↓ navigate · Enter open · Esc close

Back to home

Note

By

Replay resistance belongs on the server, not in the client.

Client-side hints are useful, but replay resistance only becomes real once the server can verify freshness.

Context

A client can be instrumented, cloned, or replayed. If the backend accepts a claim without binding it to freshness and context, the trust signal is only advisory.

The safer pattern is to verify nonce binding, reject stale envelopes, and make the acceptance window obvious in logs and metrics.

That keeps the server in charge of the decision, which is where the trust boundary already lives.

Takeaways

01

Nonce binding should be server-verifiable.

02

Stale evidence should fail closed.

03

A trust signal is not a trust decision until the backend says so.

Entry

Short engineering note. Have a question or a correction? Send me a message.

[email protected]