Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-20 Thread John Levine
It appears that Alessandro Vesely   said:
>TL;DR: p=validate: reject on fail, but only on first hop.  New ticket: 
>https://trac.ietf.org/trac/dmarc/ticket/122

I'm with Scott and Mike.  Let's not.

In most cases MLMs can do strict DMARC enforcement on *incoming* mail
with good results since it is rare to have a hop between the sender
and the MLM that breaks DMARC.

On the other end, we know what the problems are, so let's not.

R's,
John

___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-20 Thread Dotzero
On Mon, Sep 20, 2021 at 2:32 PM Scott Kitterman 
wrote:

>
> That's not specified in RFC 7489, so it's an assumption that this is how
> the
> world works.  At best it's undefined and I don't think we can engineer
> interoperability based on assumptions about how current implementations
> address undefined behavior.
>
> Also, in my experience anyway, mailing lists aren't a significant source
> of
> problematic spam and so I don't think doing things to solve what is mostly
> already a non-problem is really needed.
>
> Let's not do this.
>
> Scott K
>

+1

It does more than assume how current implementations address undefined
behavior. It also makes assumptions about curren behavior that is somewhat
known and defined but not necessarily consistent across participating
entities.

It assumes for example that outbound mail only does a single hop except for
going through MLMs. It assumes that there aren't multiple hops on the
inbound side (Think for example cloud based or hybrid security solutions
where the ultimate receiver may have limited control or no control over
behavior before ultimate delivery.

So as Scott succinctly puts it, " Let's not do this."

Michael Hammer
___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-20 Thread Scott Kitterman
On Monday, September 20, 2021 2:15:58 PM EDT Alessandro Vesely wrote:
> On Fri 17/Sep/2021 15:42:12 +0200 Scott Kitterman wrote:
> > On September 17, 2021 1:15:40 PM UTC, Benny Lyne Amorsen 
 wrote:
> >>Scott Kitterman  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.

That's not specified in RFC 7489, so it's an assumption that this is how the 
world works.  At best it's undefined and I don't think we can engineer 
interoperability based on assumptions about how current implementations 
address undefined behavior.

Also, in my experience anyway, mailing lists aren't a significant source of 
problematic spam and so I don't think doing things to solve what is mostly 
already a non-problem is really needed.

Let's not do this.

Scott K

> >  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
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-20 Thread Alessandro Vesely

On Fri 17/Sep/2021 15:42:12 +0200 Scott Kitterman wrote:

On September 17, 2021 1:15:40 PM UTC, Benny Lyne Amorsen 
 wrote:

Scott Kitterman  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
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-18 Thread Douglas Foster
Benny said:
"At present, I DKIM sign outgoing mail, but since p=none, the recipients
are unlikely to find the DKIM signatures particularly helpful."

On the contrary, it helps evaluators.   A well-authenticated message might
be eligible for whitelisting, and will never be blocked based on sender
authentication criteria.   An evaluator's options are not limited by the
sender's policy position.

Doug Foster

Details:

An incoming mail stream can be broken into these phases:

- In phase 1, the message source is evaluated.   "Source" is any
combination of identifiers that can be used to establish a reputation.
In this phase, known-bad sources are blocked.A subset of known-good
sources are tracked for whitelisting (bypass most or all of the content
scanning), but this is only safe if the relevant identifiers are not
spoofed (i.e. authenticated).  Authentication for whitelisting has nothing
to do with the sender's p=policy, only with the ability to authenticate.
Using DKIM as well as SPF gives you greater opportunity to be in this
category, if the evaluator considers your messages to need whitelisting.

(Note that for the evaluator, sender authentication is not limited to SPF
and DMARC.   A trusted source IP, or a trusted and forward-confirmed host
name, can be sufficient for authentication.)

- In phase 2, messages that were not whitelisted are subjected to content
filtering.   Messages with objectionable content are blocked.
 Objectionable content often indicates an objectionable source, so the
content blocks are used to update the message source block rules.  False
positives are used to adjust content filtering rules or add to the source
whitelisting rules.

- In phase 3, sender authentication failures are considered, and may be
determinative.   Note that there at this point there are no known
objections to the message other than the sender authentication problem.
The evaluator wants to block malicious impersonation whether or not the
sender has a DMARC policy.   Similarly, the sender does not want to block
desired messages, and there are many reasons why a critically-important
message can fail sender authentication.   A sender authentication failure
becomes an opportunity to review.   A review could lead to several outcomes

- The message is unacceptable and the offending source needs to be
blocked.   A sender block rule is created in phase 1.

- The message is acceptable but does not require whitelisting.   A sender
authentication exception is created for this identifier set. for use in
phase 3.   Content filter rules may also be added in phase 2.

- Since the message passed content filtering, an acceptable message with
sender authentication failure is unlikely to identify the need for a new
whitelisting rule, but anything is possible.

When the volume of unathenticated messages becomes overwhelming, evaluators
are more likely to apply automatic (stupid) rules.   So it is in everyone's
interest to minimize the volume of unauthenticated messages.


On Fri, Sep 17, 2021 at 12:23 PM Benny Lyne Amorsen 
wrote:

> Scott Kitterman  writes:
>
> > 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.
>
> I am not particularly worried about spoofing of domains under my
> control. They are at p=none and cannot change to quarantine or reject
> due to the mailing list issue.
>
> In the past, the stance of DMARC has been clear, saying that use cases
> like mine cannot be handled by DMARC policies and therefore p=none is
> the only option. p=validate offers me a chance to get on board, at least
> some of the way.
>
> At present, I DKIM sign outgoing mail, but since p=none, the recipients
> are unlikely to find the DKIM signatures particularly
> helpful.
>
>
> /Benny
>
>
> ___
> dmarc mailing list
> dmarc@ietf.org
> https://www.ietf.org/mailman/listinfo/dmarc
>
___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-17 Thread Benny Lyne Amorsen
Scott Kitterman  writes:

> 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.

I am not particularly worried about spoofing of domains under my
control. They are at p=none and cannot change to quarantine or reject
due to the mailing list issue.

In the past, the stance of DMARC has been clear, saying that use cases
like mine cannot be handled by DMARC policies and therefore p=none is
the only option. p=validate offers me a chance to get on board, at least
some of the way.

At present, I DKIM sign outgoing mail, but since p=none, the recipients
are unlikely to find the DKIM signatures particularly
helpful.


/Benny


___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-17 Thread Scott Kitterman



On September 17, 2021 1:15:40 PM UTC, Benny Lyne Amorsen 
 wrote:
>Scott Kitterman  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.
>
>This is a marked upgrade from p=none which most domains are forced to
>use at the moment.
>
>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.

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.  
No need to add complexity to DMARC to get there.

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 think getting the naming and semantics right would be critical.  
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 want to do that.

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.

Scott K

___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-17 Thread Benny Lyne Amorsen
Scott Kitterman  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.

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

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.


/Benny


___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


Re: [dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-17 Thread Scott Kitterman



On September 17, 2021 12:09:51 PM UTC, Alessandro Vesely  wrote:
>TL;DR: p=validate: reject on fail, but only on first hop.  New ticket: 
>https://trac.ietf.org/trac/dmarc/ticket/122
>
>
>It appears that John Levine via Arc wrote:
>(Yes, it appears, because I cannot be sure --see below)
>> 
>> One time I asked one of the authors of ARC why they don't just
>> whitelist mail from known mailing lists. They said the problem is that
>> lists do lousy spam filtering, and legit lists leak bursts of spam all
>> the time. For example, spammer steals someone's address book and
>> starts sending spam to a mailing list with a From: that happens to be
>> a subscriber. Most lists only check the From: address and let the spam
>> through. ARC lets the final recipient peek back and see whether a
>> message was DMARC aligned when it arrived at the list. Real mail from
>> the sender would be, the spam wouldn't.
>
>
>Without taking anything away from ARC, since IETF's MLM does check DKIM 
>signatures, why does it let fake senders through?  The answer is, because 
>John's domain has p=none.  Many domains have p=none.  Some do so exactly 
>because of mailing lists.  Meanwhile, several mailing lists are adopting the 
>practice of rewriting From:.
>
>Now, if my server checked ARC signatures, and if it was configured to trust 
>IETF's MLM, and if a...@ietf.org produced ARC headers, and if my mail client 
>recognized ARC authentication, then I'd be sure it was really John who wrote 
>the text quoted above.  Quite some if's, eh?
>
>Alternatively, although my mail client displays DKIM authentications, I have 
>to look for non-automatically trusted Authentication-Results: in the header in 
>order to check the text was John's.
>
>However, if I knew IETF's MLM rejected fake senders, I wouldn't have to 
>recourse to search the header.  Knowing that the IETF rejected DMARC failure 
>would be enough.
>
>Indeed, most of the times DKIM signatures are valid.  On first hops, there's 
>the additional opportunity of SPF.  Still, there are a number of failures.  I 
>see stuff such as:
>
> Old-Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail 
> (2048-bit key)
>  reason="fail (message has been altered)"
>  header.d=iecc.com
>  header.b=1w7rvJSu; dkim=fail (2048-bit key)
>  reason="fail (message has been altered)" header.d=taugh.com
>  header.b=Kc7/HE9z
>
> Old-Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail 
> (1152-bit key)
>  reason="fail (message has been altered)"
>  header.d=tana.it
>
>These seem to be signing errors.  If we had p=validate they'd have bounced 
>back and we'd have had to resend them, possibly investigating why they failed. 
> Too much annoyance?  Dunno.  Since 2016 I only found 11 messages from me to 
>IETF lists which failed to validate at the first hop.  So those bounces would 
>be bearable, and they would help debugging the signing filter.  So, I'd set 
>p=validate if it were available.  Would you?

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

Scott K

___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc


[dmarc-ietf] Proposing p=validate, another DMARC improvement to better support indirect mail flows

2021-09-17 Thread Alessandro Vesely

TL;DR: p=validate: reject on fail, but only on first hop.  New ticket: 
https://trac.ietf.org/trac/dmarc/ticket/122


It appears that John Levine via Arc wrote:
(Yes, it appears, because I cannot be sure --see below)


One time I asked one of the authors of ARC why they don't just
whitelist mail from known mailing lists. They said the problem is that
lists do lousy spam filtering, and legit lists leak bursts of spam all
the time. For example, spammer steals someone's address book and
starts sending spam to a mailing list with a From: that happens to be
a subscriber. Most lists only check the From: address and let the spam
through. ARC lets the final recipient peek back and see whether a
message was DMARC aligned when it arrived at the list. Real mail from
the sender would be, the spam wouldn't.



Without taking anything away from ARC, since IETF's MLM does check DKIM 
signatures, why does it let fake senders through?  The answer is, because 
John's domain has p=none.  Many domains have p=none.  Some do so exactly 
because of mailing lists.  Meanwhile, several mailing lists are adopting the 
practice of rewriting From:.

Now, if my server checked ARC signatures, and if it was configured to trust 
IETF's MLM, and if a...@ietf.org produced ARC headers, and if my mail client 
recognized ARC authentication, then I'd be sure it was really John who wrote 
the text quoted above.  Quite some if's, eh?

Alternatively, although my mail client displays DKIM authentications, I have to 
look for non-automatically trusted Authentication-Results: in the header in 
order to check the text was John's.

However, if I knew IETF's MLM rejected fake senders, I wouldn't have to 
recourse to search the header.  Knowing that the IETF rejected DMARC failure 
would be enough.

Indeed, most of the times DKIM signatures are valid.  On first hops, there's 
the additional opportunity of SPF.  Still, there are a number of failures.  I 
see stuff such as:

Old-Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail 
(2048-bit key)
 reason="fail (message has been altered)"
 header.d=iecc.com
 header.b=1w7rvJSu; dkim=fail (2048-bit key)
 reason="fail (message has been altered)" header.d=taugh.com
 header.b=Kc7/HE9z

Old-Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail 
(1152-bit key)
 reason="fail (message has been altered)"
 header.d=tana.it

These seem to be signing errors.  If we had p=validate they'd have bounced back 
and we'd have had to resend them, possibly investigating why they failed.  Too 
much annoyance?  Dunno.  Since 2016 I only found 11 messages from me to IETF 
lists which failed to validate at the first hop.  So those bounces would be 
bearable, and they would help debugging the signing filter.  So, I'd set 
p=validate if it were available.  Would you?


Best
Ale
--












___
dmarc mailing list
dmarc@ietf.org
https://www.ietf.org/mailman/listinfo/dmarc