A supplier bank-change email passes SPF, DKIM and DMARC - what has that actually proved?
answer
- a claim about a domain, not a person
- alignment with the visible From domain
- the operator owns their lookalike outright
- a compromised real mailbox passes trivially
- failure informs, passing does not
basics
~20 sOnly that the message really came from the domain shown in its From header, with that domain's blessing. It proves nothing about whether that domain is your supplier's, who typed the message, or whether the banking change is honest.
solid answer
~50 sThose three checks are statements about a *domain*, not about a person or an intention. SPF says the sending server was authorised by the envelope domain; DKIM says a signature validates against a key that domain publishes; DMARC says one of those passed and the authenticated domain aligns with the visible From domain. A payment-diversion message passes all three in two ordinary ways. First, the operator registers a lookalike domain and controls it outright - they publish their own SPF and sign with their own DKIM key, so everything is genuinely valid for their domain, which merely reads like your supplier's. Second, the supplier's real mailbox has been taken over, so the mail is authentically from the real domain. Either way, an all-pass result is the expected outcome, not a reassurance, and the banking change still needs verifying out of band.
code
text · 10 linesFrom: "Acme Industrial Supplies (Accounts)" <[email protected]>
Reply-To: [email protected]
Subject: Updated remittance details - invoice INV-40118
Authentication-Results: mx.buyer.example;
spf=pass smtp.mailfrom=acme-industriaI.example;
dkim=pass header.d=acme-industriaI.example;
dmarc=pass (p=none) header.from=acme-industriaI.example
...
Our banking has moved as of this month. Please settle INV-40118
(GBP 48,210.00, due Friday) to the account below.go deeper
Remember that these checks say a message came from the domain it claims, and nothing more. A convincing fraud can own a domain that merely looks like your supplier's.
Be able to state each check's scope in a sentence, explain DMARC alignment with the visible From domain, and give both routes by which a fraudulent request passes all three.
Demonstrate the direction-of-claim discipline: a pass is the expected state of competent fraud, so it must not move the verification decision, and assurance has to come from a channel the requester did not supply.
Frame sender authentication as an outbound control that protects your counterparties from forgery of your domain, and argue where the inbound assurance budget should actually sit.
## What each check asserts, precisely - **SPF** answers: was this connecting server listed as permitted to send for the envelope sender's domain? It is a statement by a domain owner about which hosts may send on their behalf. - **DKIM** answers: does this cryptographic signature validate against a public key published by the signing domain, over the headers and body it covers? It is a statement that the signing domain vouched for this message and that the covered parts were not altered in transit. - **DMARC** answers: did SPF or DKIM pass *for a domain that aligns with the domain in the visible From header*? Alignment is the part that matters, because SPF and DKIM alone can pass for a domain the reader never sees. Every one of those is a claim about **domain provenance**. None is a claim about the human at the keyboard, and none is a claim about the truthfulness of the contents. Confusing provenance with honesty is the single most common wrong answer here. ## The two ways a fraudulent bank change passes all three **1. A lookalike domain the operator owns.** The operator registers something that reads like the supplier - a swapped character, an added word, a different top-level domain - and configures it properly: SPF record published, DKIM key published, DMARC policy published. Everything passes, because the operator is the legitimate owner of that domain. Authentication was never designed to answer "is this domain the one you meant?" Display names make it worse. The From header carries a human-readable name that receivers show and authentication does not evaluate. A message can render as *Acme Industrial Supplies (Accounts)* while the authenticated domain is something else entirely, and many mail clients show only the name. **2. The supplier's real mailbox.** If the supplier's own account has been taken over, the message is genuinely from the genuine domain, sent by the genuine infrastructure. It will pass every check that legitimate correspondence passes, because at the protocol level it *is* legitimate correspondence. Nothing you can inspect about the message distinguishes it. ## What a failure would have told you, and why that asymmetry matters The checks are far more informative when they fail than when they pass. A DMARC failure on a domain publishing a strict policy is a real signal that something is off. A pass tells you the sender's paperwork is in order - which the operator also has. Treating a pass as evidence of legitimacy inverts the direction of the claim, exactly like treating a successful authentication as proof that a particular person was present. There is a second inversion worth stating: publishing a strict DMARC policy on *your* domain protects other people from receiving forged mail that claims to be you. It does very little to protect your accounts-payable inbox from mail sent by third-party domains, which is where this attack lives. ## Where the assurance has to come from instead Since every property of the message is either forgeable or genuinely owned by the operator, assurance must come from outside the message. The workable rule is that a change to banking details is authorised only after contact through a route the requester did not supply - a phone number captured at onboarding or written into the signed contract, dialled to a named contact. That step does not care whether authentication passed, whether the domain looks right, or whether the mailbox was compromised, because it depends on something the operator cannot substitute. ## Answering well State the scope of each check in one clause each, name the two pass-anyway paths, and land on the conclusion: an all-pass result is the *expected* state of a competent fraud, so it moves the verification decision not at all. Candidates who say "DMARC passed, so it really is the supplier" have made the classic direction-of-claim error and will usually make it again about a successful login.
- Would a strict DMARC policy on your own domain have helped here?No. A strict policy tells other receivers to reject mail that forges your domain, which protects your brand and your counterparties. This message never claimed to be your domain; it claimed to be the supplier's, or a domain that merely reads like it, so your own policy is not consulted.
- Which of the three checks looks at the name a user actually sees in their mail client?None of them evaluates the display name. DMARC evaluates alignment with the From header's domain, and SPF and DKIM operate on the envelope and signing domains. The friendly name is free text that a receiver may show in place of the address entirely.
- If authentication is this weak a signal, is it worth deploying?Yes, but for what it does: it makes exact-domain forgery of your own domain fail at receivers, which removes one cheap variant and pushes operators onto lookalike domains or compromised mailboxes. It is a control on impersonation of you, not an assurance about inbound requests.
saying these in an interview costs you the question
- Says a DMARC pass means the mail really came from the supplier
- Confuses domain provenance with the honesty of the request
- Thinks SPF or DKIM evaluates the display name
- Believes a strict policy on your domain filters inbound fraud
- Assumes a compromised supplier mailbox would fail authentication