skip to content

What is the Repudiation threat in STRIDE, and which security property does it violate?

level: juniorimportance: must knowfreq 75%

answer

  1. a future argument, not an immediate breach
  2. someone says: I didn't do that
  3. answered by evidence, not by encryption
  4. identity at the time, plus an unalterable record

basics

~20 s

Repudiation is an actor plausibly denying an action they took, or falsely claiming one they did not, because the system kept no trustworthy evidence. It violates non-repudiation, and the answering control family is identity plus auditing.

solid answer

~50 s

Repudiation is the STRIDE category for "I didn't do that" - a user, an operator or another service performs an action, later denies it, and the system cannot show otherwise. It is the mirror of `non-repudiation`: the property that an action can be tied to a specific principal and shown to have happened. Unlike the other five letters, the answer is not a control over the data itself but evidence - an authenticated identity at the moment of the action, plus a record of that action which the acting party cannot alter, erase or fabricate. It is analysed on processes (an action taken and later denied) and on data stores (history quietly rewritten or discarded). A repudiation threat often comes from an identity design rather than a missing log: three on-call engineers sharing one production administrator account produce entries naming a principal that maps to three humans, so nothing is attributable to a person.

go deeper

for a junior

Be ready to say the letter, the property, and one example in a sentence: repudiation is denying an action, it breaks non-repudiation, and the answer is authenticated identity plus an audit record nobody can quietly edit.

for a middle

Explain why repudiation is the odd letter out - the control is evidence about an action rather than protection of data - and give the two directions it runs in, denying a real action and asserting a false one.

for a senior

Show that you look for repudiation in the identity design and the storage model, not just in whether logging exists. Shared accounts and update-in-place stores are the findings that matter in real reviews.

for a principal

Own the argument about why repudiation findings get deferred and what that costs. Be ready to say where accountability evidence is mandatory in your product and to defend the retention, custody and cost tradeoffs that follow.

## The letter and the property STRIDE names six threat categories, and each one is the negation of a security property you wanted: | Letter | Threat | Property it violates | |---|---|---| | S | Spoofing | Authentication | | T | Tampering | Integrity | | **R** | **Repudiation** | **Non-repudiation** | | I | Information Disclosure | Confidentiality | | D | Denial of Service | Availability | | E | Elevation of Privilege | Authorization | Repudiation is therefore not "someone broke in". It is: **an action happened, and afterwards nobody can prove who caused it or what it was.** The threat runs in two directions - a party denies something they really did, and a party asserts something that never happened - and both are won by the same thing: evidence a neutral third party would accept. ## Threat, vulnerability, risk, control Keep the four straight, because repudiation is where they blur most easily. - The **threat** is "the trader will deny placing the order". - The **vulnerability** is the concrete flaw that makes the denial credible - the order record holds no authenticated principal, or the store lets the row be updated in place. - The **risk** is the rated consequence: a disputed six-figure trade you cannot defend, plus a regulator asking how you close out disputes at all. - The **control** is the answer: authenticate the actor, record the action with the fields that settle a dispute, and put the record somewhere the actor and their administrators cannot edit. ## Where it lands in a model When you walk a data-flow diagram, repudiation is the question you ask of **processes** ("which actions can this component take that someone would later want to deny?") and of **data stores** ("can this store's history be rewritten or discarded so that what it said at the time is unknowable?"). A store whose only representation of a fact is the current row has no history to appeal to; once it changes, the previous state is a matter of memory and assertion. Repudiation clusters wherever an action is **consequential and contested later**: money moves, a clinical result is released, a customer-visible configuration is changed, a privileged operator runs something in production, a record used for regulatory reporting is edited. ## Identity design is half of it A very common finding is not "there is no log" but "the log names something that is not a person". Shared administrator accounts, a generic `svc-deploy` credential used by five pipelines, a support tool that acts as a single system identity on behalf of any agent - each of these makes every downstream record unattributable, no matter how carefully the logging was implemented. You cannot log your way out of an identity model that cannot distinguish actors. That is why the answering control family for R is **authentication plus audit**, in that order: the record can only be as specific as the identity that produced it. ## Logs are not automatically evidence Saying "we ship everything to a central log platform" does not close a repudiation finding. Evidence has requirements that ordinary application logging usually does not meet: a named authenticated principal, the full parameters of the action rather than a summary line, trustworthy time, a store outside the acting party's administrative control, a retention period longer than the window in which disputes arise, and the ability to actually retrieve the entry months later. A log written mainly for debugging is optimised for none of those. ## Why teams under-rate it Repudiation findings get deprioritised more than any other STRIDE letter, because the harm is deferred and hypothetical - nothing is stolen today, nothing is down today, and the cost only arrives during a dispute, an investigation or an audit. That is also why it is worth calling out explicitly in a model: it is precisely the class of finding that never generates its own pressure until the moment you need it and it is not there. One more consequence worth writing into the model: once you build an evidence store, that store becomes an asset in its own right, and attracts attention from exactly the people it holds accountable. Its own integrity and its own access control are part of the design, not an afterthought.

  • Why do teams routinely deprioritise repudiation findings compared with the other five STRIDE categories?
    Because the harm is deferred. Nothing is stolen or down today; the cost lands during a dispute, investigation or audit, possibly a year later. There is no operational pain generating pressure in the meantime, so the finding sits. That is an argument for making the consequence concrete in the model - name the dispute you would lose and who would be asking - rather than an argument for accepting it.
  • Three on-call engineers share one production administrator account. Where exactly is the repudiation threat?
    In the identity design, not the logging. Every action is recorded faithfully against an account that maps to three humans, so no entry attributes anything to a person. The fix is individual authenticated identities with privilege granted per person, so the record has something specific to name. Logging harder against a shared account cannot recover attribution that was never captured.
  • Is "we send all application logs to a central log platform" a sufficient answer to a repudiation finding?
    No. Volume is not evidence. The entry still needs an authenticated principal, the action's real parameters, trustworthy time, integrity protection, retention past the dispute window, and a store the acting party's administrators cannot edit. Debug-oriented logging usually meets none of those, so the finding stands until the specific evidence requirements are met.

Encryption is the locked box; non-repudiation is the countersigned receipt. A locked box does not help you when the argument is about who signed for the delivery.

saying these in an interview costs you the question

  • Confuses repudiation with denial of service
  • Answers with encryption instead of evidence and identity
  • Treats any log file as automatically non-repudiable proof
  • Assumes repudiation only involves external attackers, never insiders or operators
  • Thinks repudiation applies only to humans, not to services and operators

context