Your product claims that its signed audit records are non-repudiable evidence. What has to be true operationally for that claim to hold, and where do real systems usually fail it?
answer
- exclusive control or it binds the service, not the user
- enrolment quality = identity meaning
- timestamp before compromise, not after
- append-only store the signer can't rewrite
- algorithms age: re-timestamp long-lived evidence
basics
~20 sNon-repudiation is a system property, not an algorithm property. It needs exclusive key control by the party being bound, a trustworthy key-to-identity binding, trusted time so revocation has meaning, an append-only store the signer cannot rewrite, and someone who actually verifies.
solid answer
~60 sThe math gives you "the holder of this key signed these bytes". Turning that into evidence against a *party* requires five operational facts: 1. **Exclusive control.** The key must be usable only by the party being bound — hardware-backed, non-exportable, per-principal. If one service key signs on everyone's behalf, the record binds the service, never the user. This is the most common failure by far. 2. **Identity binding at signing time.** Enrolment quality decides what the certificate or directory entry actually means. 3. **Trusted time.** A bare signature has none, so a later key compromise retroactively poisons all history. A timestamping authority or an append-only log entry made before the compromise separates "signed while valid" from "forged afterwards". 4. **A store the signer cannot rewrite.** Records signed and held by the same party who benefits from changing them are self-attestation; use append-only, replicated or third-party-witnessed storage. 5. **Verification actually performed**, plus long-term validity — re-timestamp or re-sign before hash or scheme deprecation. Failure modes: one shared server key, keys in configuration, no timestamping, nobody ever verifying, and forgetting that what the human approved may differ from what was signed.
go deeper
Know that non-repudiation depends on the private key being held by exactly one party and nobody else, and that a server signing for everyone does not bind a user.
Add trusted time and revocation semantics — was the key valid at signing time — and say why a bare signature carries no timestamp.
Design the arrangement: hardware-backed keys, append-only storage, timestamping in the signing path, retention of chain and revocation data, and verification that is actually exercised and alerted on.
Decide whether the claim is worth making at all, given custody, enrolment, retention and legal cost, and state precisely what the system does guarantee instead of overclaiming.
## The claim is about a system, not a primitive Unforgeability is a property of a scheme. Non-repudiation is a property of an **arrangement of people, keys, storage and process** whose cryptography is only one component. The principal-level answer is to enumerate what the arrangement must guarantee, and to be honest that most deployments claiming non-repudiation do not have it. ## Requirement 1 — exclusive control of the signing key A signature binds the *key holder*. So ask: who could possibly have used that key? - If a server-side service signs audit records with one key on behalf of all users, the record proves the *service* asserted something. That is tamper-evidence of the log, which is genuinely useful, but the user can repudiate it: "your system said I did that". - Binding a person requires a key only that person can use — hardware-backed, non-exportable, unlockable by something they hold or know, with the operation performed on the device rather than by a server holding the key. - Between organisations the equivalent is a key in a hardware security module with dual control over its use, an audit trail of signing operations, and no export path. Be precise about what your design actually achieves and use the accurate phrase: "tamper-evident log signed by the platform" is a defensible claim; "non-repudiable proof the user approved it" usually is not. ## Requirement 2 — identity binding The key-to-identity link is only as strong as the enrolment process that created it: who checked the identity, with what evidence, and what the certificate or directory entry actually asserts. A robust cryptographic chain over a self-service enrolment with an unverified email address inherits that weakness. Also decide what the binding means over time — after an employee leaves, after a rename, after a merge. ## Requirement 3 — trusted time A bare signature has no time. This creates a specific and severe failure: when a key is compromised, an attacker can produce signatures indistinguishable from earlier genuine ones, and can date the *content* however they like. Without independent time evidence, revocation forces a choice between accepting forgeries and discarding all history. The fixes are external: a timestamping authority countersigning your signature at a known moment, or inclusion in an append-only log whose entries are published and independently witnessed so a later insertion is detectable. Either way, the anchor must be created *before* the compromise, so timestamping is a routine part of signing, not a recovery action. This also resolves the revocation semantics question, the one people get wrong: the useful check is not "is the key valid now" but "was it valid at signing time, and can I prove when that was". ## Requirement 4 — storage the signer cannot rewrite If the party whose behaviour is being recorded also controls the store, they can delete inconvenient records, and deletion defeats signing entirely — a missing record has no signature to check. Countermeasures: append-only storage with hash chaining so gaps are detectable, replication to a party with different interests, periodic publication of a digest of the log, or a third-party witness. Notice this is orthogonal to signing and frequently omitted. ## Requirement 5 — verification, and long-term validity - **Someone must verify.** A signature nobody checks is a very expensive checksum. Verification should be routine and monitored, and failures must be alerted, not swallowed. - **Algorithms age.** Records that must remain evidential for years outlive their hash and signature schemes. Plan re-timestamping or re-signing under stronger algorithms *before* the old ones are broken, because a signature made with a broken hash proves nothing retroactively. - **Keep what verification needs**: the exact signed octets, the certificate chain as it was at signing time, revocation information and the timestamp token. Verification years later fails without the contemporaneous material. ## Requirement 6 — the human gap When a person is being bound, what they saw is not necessarily what was signed. If the signing device renders one document and the signature covers a different byte stream, or if the approval interface shows a summary while the payload contains more, the person can credibly deny intent. Trustworthy display, signing over exactly the rendered content, and covering every field the consumer relies on are part of the claim. ## Where systems actually fail In rough order of frequency: one shared platform key doing all signing; signing keys in configuration, environment variables or repositories, so "exclusive control" is fiction; no time anchoring, so compromise erases history; logs signed and stored by the party they incriminate; verification that never happens in practice; no plan for algorithm ageing; and a bare signature used where freshness or audience checks were also required. A per-signature nonce leaking the private key when randomness is reused is a further sharp edge in some schemes and belongs to key-generation and randomness discipline. ## When not to claim it Non-repudiation carries real cost: hardware key custody, enrolment processes, timestamping, retention and legal framing. If your actual requirement is tamper-evidence and attribution *inside* one trust domain, a much cheaper design suffices and you should say so, rather than shipping a claim you cannot defend when it is challenged. Choosing not to claim non-repudiation is frequently the correct architectural decision.
- Our backend signs every audit record with one service key. What can we honestly claim?That the log is tamper-evident and attributable to the platform: entries cannot be silently altered without detection, provided the key is protected and the store is append-only. You cannot claim a user is bound by an entry, because only the service could ever have signed, so the user can repudiate the platform's assertion. To bind users you need per-user keys under their exclusive control, with signing performed on a device they hold.
- Why does a timestamping authority matter more than revocation lists for long-lived evidence?Revocation tells you a key is no longer trusted from some point onward; it cannot tell you whether a given signature predates that point. Without independent time, a compromise forces you to distrust the entire history. A timestamp token created at signing pins the signature to a moment, so signatures anchored before the revocation remain assessable and later forgeries do not. An append-only, publicly witnessed log gives the same guarantee by a different route.
- What has to be retained so a signature can still be verified in ten years?The exact signed octets, the signature, the full certificate chain as it existed at signing time, the contemporaneous revocation information, and the timestamp token — plus a record of the algorithms used. Then plan the refresh: before the hash or signature scheme weakens, re-timestamp or re-sign the archive under stronger algorithms, since a signature made with a broken hash retroactively proves nothing.
A signature is a lock; non-repudiation is the whole chain of custody. A perfect lock proves nothing if a dozen people hold copies of the key, no one recorded when it was fitted, and the room's owner keeps the only logbook.
saying these in an interview costs you the question
- Treating non-repudiation as a property of the algorithm rather than of key custody and process.
- One shared server key described as binding individual users.
- Signing records and storing them in a system the signing party can rewrite or delete.
- No time anchoring, so a key compromise invalidates all historical signatures.
- Assuming signed evidence stays valid indefinitely with no plan for algorithm deprecation.
- Ignoring the gap between what a person approved on screen and what was actually signed.