[dns-operations] Anyone with contacts at Paypal and/or Ultradns?

Viktor Dukhovni ietf-dane at dukhovni.org
Wed Dec 11 18:48:02 UTC 2019


On Wed, Dec 11, 2019 at 06:06:08PM +0100, Tom Ivar Helbekkmo wrote:

> Viktor Dukhovni <ietf-dane at dukhovni.org> writes:
> 
> > A word of unsolicated advice (you're more than free to ignore) from
> > someone (me) deeply enmeshed in email security and DNSSEC:
> 
> Thanks, Viktor!
> 
> >     * Don't use qname minimization with validating MTA-facing resolvers.
> >     * Instead run a *local* resolver.  The cache on that resolver will
> >       do all the qname minimization you can get.
> 
> I do run a local recursor, so yeah, I see what you mean.  However, it
> turns out that I need to turn off DNSSEC validation, too, to get the
> recursor to accept the name servers from Ultradns; their mishandling of
> those ENTs trips up the validation, which fails.

Let's see whether that's necessary.  Indeed with qname minimization,
you'd run into issues (answers below are stripped of RRSIGs to save
space).

First the MTA name parent ENT, which does not come into play once you
turn off qname minimization:

  * Good:
    @ns1.p57.dynect.net.[208.78.70.57]
    @ns2.p57.dynect.net.[204.13.250.57]
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35708
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
    ;slc.paypal.com.                IN NS
    paypal.com.             SOA     ppns1.phx.paypal.com. hostmaster.paypal.com. 2012279282 7200 600 1209600 300
    siplb.paypal.com.       NSEC    mx-ma1.slc.paypal.com. A RRSIG NSEC

  * Bad: No NSEC RRs to validate the ENT NODATA.
    @pdns100.ultradns.com.[156.154.64.100]
    @pdns100.ultradns.net.[156.154.65.100]
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54453
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 1
    ;slc.paypal.com.                IN NS
    paypal.com.             SOA     ppns1.phx.paypal.com. hostmaster.paypal.com. 2012279282 7200 600 1209600 300

Next the MTA A records (valid signed answer across all the nameservers):

    @ns1.p57.dynect.net.[208.78.70.57]
    @ns2.p57.dynect.net.[204.13.250.57]
    @pdns100.ultradns.com.[156.154.64.100]
    @pdns100.ultradns.net.[156.154.65.100]
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56730
    ;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 1
    ;mx-ma1.slc.paypal.com. IN A
    mx-ma1.slc.paypal.com.  A       173.0.94.245

Next the DKIM key ENT:

  * Good:
    @ns1.p57.dynect.net.[208.78.70.57]
    @ns2.p57.dynect.net.[204.13.250.57]
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17089
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
    ;_domainkey.paypal.com. IN NS
    paypal.com.             SOA     ppns1.phx.paypal.com. hostmaster.paypal.com. 2012279282 7200 600 1209600 300
    _token._dnswl.paypal.com. NSEC  1sfdc._domainkey.paypal.com. TXT RRSIG NSEC

  * Bad: No NSEC RRs
    @pdns100.ultradns.com.[156.154.64.100]
    @pdns100.ultradns.net.[156.154.65.100]
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41560
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 1
    ;_domainkey.paypal.com. IN NS
    paypal.com.             SOA     ppns1.phx.paypal.com. hostmaster.paypal.com. 2012279282 7200 600 1209600 300

Next a (signed) DKIM key TXT record, which is also fine across all the
nameservers:

    @ns1.p57.dynect.net.[208.78.70.57]
    @ns2.p57.dynect.net.[204.13.250.57]
    @pdns100.ultradns.com.[156.154.64.100]
    @pdns100.ultradns.net.[156.154.65.100]
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8259
    ;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 1
    ;1sfdc._domainkey.paypal.com. IN        TXT
    1sfdc._domainkey.paypal.com. TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqG..."

By way of contrast, querying for the TLSA records of Paypal's inbound
MTAs (MX hosts), which live under paypalcorp.com, works with or without
qname minimization:

    @ns1.p57.dynect.net.[208.78.70.57]
    @ns2.p57.dynect.net.[204.13.250.57]
    @pdns100.ultradns.com.[156.154.64.100]
    @pdns100.ultradns.net.[156.154.65.100]
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 32943
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
    ;_tcp.mx1.paypalcorp.com. IN NS
    paypalcorp.com.         SOA     ppns1.phx.paypal.com. hostmaster.paypal.com. 1969010819 7200 600 1209600 60
    mx1.paypalcorp.com.     NSEC    mx2.paypalcorp.com. A RRSIG NSEC

    @ns1.p57.dynect.net.[208.78.70.57]
    @ns2.p57.dynect.net.[204.13.250.57]
    @pdns100.ultradns.com.[156.154.64.100]
    @pdns100.ultradns.net.[156.154.65.100]
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 28243
    ;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
    ;_25._tcp.mx1.paypalcorp.com. IN        TLSA
    paypalcorp.com.         SOA     ppns1.phx.paypal.com. hostmaster.paypal.com. 1969010819 7200 600 1209600 60
    mx1.paypalcorp.com.     NSEC    mx2.paypalcorp.com. A RRSIG NSEC

So the UltraDNS servers look generally capable of handling ENTs,
and the issue appears to be somewhat specific to the paypal.com
zone.

> A quick exchange on the PowerDNS IRC channel (I'm using their most
> excellent software) helped me understand what was going on, and I ended
> up configuring my recursor to avoid querying the Ultradns name servers.

That may be prudent anyway, but it looks like avoiding qname
minimization would be sufficient to avoid at least the more obvious
issues.  If you disable qname minimization and flush your cache, it
would be interesting to learn what issues you still see after that,
assuming you're willing to re-enable the ultradns servers long enough to
perform a test.

-- 
    Viktor.


More information about the dns-operations mailing list