There is one widely-used private registry which is not in the PSL.   For
security purposes, I think the name should remain out of the public record,
but I suspect that it is the one responsible for the attack mentioned by
Michael Hammer.
1) DMARC policies for Private Registry Clients (Registrar not listed in PSL)
Under RFC 7489, if you are a client of a private registry that is not in
the PSL, and then you create a DMARC policy with relaxed alignment, any
client of the private registry can impersonate the domain name associated
with your DMARC policy.   So the only safe moves are no policy or strict
alignment.

Under the Tree Walk, that particular problem is solved.    If you create a
DMARC policy, and the private registrar does not have a policy, then your
policy will be considered the organization domain and other sibling domains
will be perceived as having no policy.

2) DMARC policies for Private Registry Organizational Domains
Under RFC 7489, if a private registrar is not listed in the PSL, and then
it creates an organizational domain policy with relaxed authentication, any
domain name within the private registrar's tree can impersonate any other
name in the tree.  Clients have limited defenses against this problem.
They can protect specific names by publishing strict-alignment policies on
specific domain names, but they cannot defend all possible names that might
be attacked.

Under the Tree Walk, if the private registrar creates a DMARC policy for
his organization, and does not publish an explicitly-tagged PSD=Y policy
for the client registration domain, then the registry's organizational
record will apply to all clients.   Again, this would allow any domain name
to impersonate any other domain name.   The defense against this problem is
for the client to publish a DMARC policy with the PSD=N tag, to prevent the
registrar's policy from being selected.


Observations
Based on this comparison, the Tree Walk attack surface appears to be
smaller, but in an ecosystem with both algorithms in use, the net effect
seems to be to increase the options available to an attacker.

Evaluators need DMARC PAAS to be reliable, so these scenarios that allow
false PASS are concerning.   (It seems unwise for an evaluator to assume
that all private registries and their client have implemented all necessary
tags to prevent a false positive.)  To defend against the problem globally,
evaluators should accept sibling authentication by exception, essentially
as a form of whitelisting for trusted sources, rather than by default for
all sources.

RFC 7489 has vulnerabilities because it failed to consider all the
implications of private registries and an imperfect PSL.  Are we obligated
to perpetuate vulnerabilities for the sake of upward compatibility?

Doug







On Mon, Jul 18, 2022 at 5:57 AM Scott Kitterman <skl...@kitterman.com>
wrote:

>
>
> On July 18, 2022 9:21:33 AM UTC, Alessandro Vesely <ves...@tana.it> wrote:
> >On Sat 16/Jul/2022 16:20:09 +0200 Douglas Foster wrote:
> >>
> >> My proposal:
> >> Sibling authentication should be disabled by default, even for policies
> that specify relaxed authentication.    Those organizations that want
> sibling authentication should explicitly request it using a tag (to be
> defined) on the Organizational Domain policy.  If the tag is not present,
> relaxed authentication enables only exact, parent-child, and child-parent
> relationships.
> >
> >
> >I'd be in favor of introducing a third mode, adkim=n, say, for
> not-so-relaxed.
> >
> >Since it'd be a new feature, it cannot be the default.  Those who don't
> recognize it should ignore it and assume adkim=r.
> >
>
> What issue does this address that isn't addressed by using psd=n?
>
> Scott K
>
> _______________________________________________
> 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

Reply via email to