On 06/11/2012 15:04, Mason Schmitt wrote:
I recently setup a DMARC reject policy for some domains and then did
some testing. I was surprised to find that by simply omitting the
"From: " header, in a spoofed email sent to a gmail address, that the
email was accepted! The email was quarantined, not delivered to the
inbox, but I would have thought it would be rejected because I do have
a DMARC reject policy.
As others have pointed out, the issue is that DMARC is exclusively about
the email address contained in the From: header. The focus is
intentionally narrow, but the reason for this narrow focus is not so
obvious:
* A Mail Receiver can do a great many things by itself to deal with
spoofed messages with cousin domains or with malformed
(missing/multiple/deceptive) From: headers, none of which require
coordination with the relevant Domain Owner.
* The same is not true for spoofs which assert the correct domain name
of the organisation which is being impersonated. If a spoofer sends
a message "From: [email protected]", there is no way for a Mail
Receiver to work this out _*without the Domain Owner's help*_
(PayPal in this case). DMARC exists to specify an interoperable
means for Domain Owners and Mail Receivers to address _*this
specific*_ - and otherwise intractable - problem.
There are a great many other things that a Mail Receiver can and should
do (MUA UI design in particular) which don't require co-ordination with
Domain Owners (or any other form of interoperability) and which are
therefore out of scope for an interoperability spec, like DMARC.
This does give rise to a seemingly odd situation: that many Mail
Receivers - including some very big ones - have not implemented some of
the relevant best practices around preventing spoofing, which then means
that instead of DMARC filling one of the last major gaps it gains the
appearance of an incomplete solution. This is best understood by
recognising:
* Any organisation's adoption of best practices is likely to be
incomplete at any point in time - possibly for perfectly good
reasons[1], and
* DMARC is not like a security-vendor's product that attempts to close
as many related holes as possible, it is instead an interoperability
specification that minimally specifies a useful (and otherwise
unavailable) interoperability mechanism that should be integrated as
part of a security system. That is to say, DMARC is not intended to
be (and should not attempt to be) a complete solution.
Ok, so here's what I don't understand about DMARC. DMARC appears to
require both DKIM and SPF checks to return some kind of result or else
the DMARC policy is not followed. Why? It would seem to me that if
someone is setting up DMARC, they are aware that they need both a DKIM
policy and an SPF policy. Thus, shouldn't the spec state that if a
query for either policy returns no result, this is treated as a
failure for that test?
DMARC requires that either mechanism pass, not both. There would be no
good reason for requiring that both pass. Note also that neither
mechanism would be enough for DMARC to depend upon on its own (SPF never
survives forwarding, DKIM requires key management and - therefore - is
frequently not implemented).
- Roland
1: The big one is: if a hole isn't being actively exploited then closing
it isn't the highest possible priority. The internal engineering
trade-offs for dealing with lower priority practices are far out of
scope for an interoperability specification.
--
Roland Turner | Director, Labs
TrustSphere Pte Ltd | 3 Phillip Street #13-03, Singapore 048693
Mobile: +65 96700022 | Skype: roland.turner
[email protected] | http://www.trustsphere.com/
_______________________________________________
dmarc-discuss mailing list
[email protected]
http://www.dmarc.org/mailman/listinfo/dmarc-discuss
NOTE: Participating in this list means you agree to the DMARC Note Well terms
(http://www.dmarc.org/note_well.html)