On Fri 17/Sep/2021 15:42:12 +0200 Scott Kitterman wrote:
On September 17, 2021 1:15:40 PM UTC, Benny Lyne Amorsen 
<[email protected]> wrote:
Scott Kitterman <[email protected]> writes:

How do you define "First Hop" without enabling spoofers to trivially
bypass DMARC checks by forging more than one hop of headers?

It wouldn't matter. Sensible mailing lists would reject non-first-hop
mails for domains with p=validate. Spoofers can still spoof directly,
but they cannot use mailing lists to spread their spoofed mails.


Indeed, it might be better to specify that the policy is intended for MLMs and similar mediators. They usually happen to be the first external hop, which helps authentication but is not the key.


This is a marked upgrade from p=none which most domains are forced to
use at the moment.


Yes. Although authentication results take part in most local filtering recipes, this policy provides for clear, protocol level behavior.


Then as infrastructure improves, recipients will start to reject
incoming non-first-hop mail with p=validate if it does not have a valid
ARC header.


ARC has different problems.


If the point is that intermediaries that expect to be the first hop should 
reject failures for p=None, they can already do that by rejecting on SPF fail.


spf=pass does not imply first hop.  Actually MLM mail often passes SPF check.


No need to add complexity to DMARC to get there.


The added complexity is really minimal. I agree that this proposal may conflict with the need to simplify DMARC.


If there's consensus that adding something like this to DMARC as an 
intermediate step for intermediaries only would be useful, then I think there 
are multiple issues.  One, which is resolvable, is that validate isn't the 
right name.


I had thought p=mlm-validate, then I simplified it.  Do you have better names?


I think getting the naming and semantics right would be critical.


Indeed.


I don't think this can get past backwards compatibility problems though.  The p 
tag is a mandatory part of the record and any new value will be seen as invalid 
by all existing DMARC implementations, so you'd have to bump the version.


I don't think we need a different version to say something so trivial as:

   Unrecognized values must be ignored.

That point is missing in the DKIM spec.  RFC 7489 just says:

   DMARC records follow the extensible "tag-value" syntax for DNS-based
   key records defined in DKIM [DKIM].

But RFC 7376 only says:

   Unrecognized *tags* MUST be ignored.

It doesn't say that unrecognized values, in general, must be ignored. It says so for individual tag values, such as unrecognized canonicalization algorithms, Unrecognized query mechanisms, Unrecognized algorithms, Unrecognized key types, and Unrecognized flags.

For the receiver behavior, to consider the record invalid would be equivalent to p=none, which is correct. However, feedback reports tags shouldn't be invalidated.


 I don't think we want to do that.


Agreed.


Also, doing anything based on an ARC header field from anything other than a 
trusted source is a recipe for failure.  I've already seen cases where spoofed 
email got accepted due to ARC from an untrusted source.  Don't forget the 
limitations of ARC.


100% agreed. While this proposal doesn't solve the MLM problem, it can partially help a recipient to learn whether a message was DMARC aligned when it arrived at the list, which is one of ARC's aims.


Best
Ale
--











_______________________________________________
dmarc mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dmarc

Reply via email to