With DMARC I can set the policy to rejct mail. But isn’t it the same I can do with -all from within a SPF?
Same goes for quarantine and a softfail ~all.
Beside the reporting where is the benefit using DMARC on top of SPF?
With DMARC I can set the policy to rejct mail. But isn’t it the same I can do with -all from within a SPF?
Same goes for quarantine and a softfail ~all.
Beside the reporting where is the benefit using DMARC on top of SPF?
SPF only specifies which addresses are authorized to send mail for your domain. It is up to the recipient to decide what to do with that information.
DMARC allows you to indicate exactly what actions you would like recipients to take when the SPF check fails.
These are not redundant, but complementary.
With DMARC you can tell how the recipient should handle for both DKIM and SPF. It's also the only way to tell that DKIM is available and required, as DKIM in itself only applies to mail already signed with it.
SPF protects your domain from being used on the SMTP protocol level as the envelope sender, but the recipient only sees the headers the SPF doesn't protect. The envelope sender might get recorded in the Return-Path
header, but most users only ever sees the From:
and thinks the email is coming from that address. Only DKIM enforced with DMARC can protect the From
header.
Because SPF+DMARC and DKIM+DMARC protects against different kind of forgery, you should have them both. Also, your DMARC alignment can tell that the message can be unsigned with DKIM as long as the SPF passes and that the SPF doesn't need to pass for DKIM signed messages. This becomes handy when you have more than one use cases for a single mail domain.
TL;DR SPF alone can't protect you against exact-domain email spoofing. The DMARC is a must.
Here is a scenario, that passes your SPF's -all
protection.
Let's assume you have a.com
domain, and I own the b.com
. I set up v=spf1 {myserversIP} -all
TXT SPF record in b.com
's DNS, and additionally install mail server on {myserversIP}
host to use SMTP protocol to send emails. I use bounce@b.com
as my envelope from address (which is Return-Path
header on receiving side) and send email to someone by putting From: you@a.com
in email's body. MDA receives my email and performs the following pseudo actions:
Return-Path: bounce@b.com
b.com
's SPF record, and gets v=spf1 {myserversip} -all
So how to prevent this situation? The DMARC comes to rescue. DMARC adds an important new mechanism: alignment. With DMARC enabled, basically MDA performs the following pseudo actions after 3rd step:
From
and Return-Path
domains' alignment (b.com
against a.com
)That's it. Hope my answer make sense.
PS: I am a co-founder of all-in-1 DMARC deployment system. Every day I am dealing with lots of customers to explain the importance of DMARC, how it is the best industry standard nowadays to protect your domain against email spoofing and phishing.
There are 2 from addresses in email: the envelope from address and the header from address. SPF has a security hole in that it only authenticates the envelope from address while leaving the header from address unauthenticated.
Therefore, one is still able to spoof the header from address if only SPF is deployed.
DMARC introduces identifier alignment (IA) to patch this security hole. Identifier alignment requires that the domain in the header from address "aligns" with that in the envelope from address.
DMARC's identifier alignment adds another layer of security to block attempts to spoof header from address in email.
For more info on identifier alignemtn, refer to: DMARC identifier alignment