Thanks again to Viktor for his assistance in helping me clarify the tester I am developing.

Viktor wrote:
Finally, the test results below don't look right...

> Test #        Host    IP      Status  Test Description (§ Section)
> 103   addons.mozilla.org              FAILED  Service hostname must have matching TLSA record
> Resolving TLSA records for hostname '_443._tcp.addons.mozilla.org'

This one is merely misleading, "FAILED" should only apply when the
TLSA records don't match, or DNS lookups fail.  Not publishing TLSA
records is not a failure, it is rather a non-deployment (with some
neutral colour not "red").

I have changed test 103 to read "NON DEPLOYMENT" when there is no TLSA record for a given host. The background is now cyan. I personally feel that a domain fails the DANE test if it does not have a DANE TLSA record, but I will defer to Viktor.

 


> SECURE DNS CNAME lookup addons.mozilla.org = addons.dynect.mozilla.net.
> 102                     PASSED  if at any stage of recursive expansion an
> "insecure" CNAME record is encountered, then it and all subsequent results
> (in particular, the final result) MUST be considered "insecure" regardless
> of whether any earlier CNAME records leading to the "insecure" record were
> "secure". (§2.1.3)
> Expanding CNAME addons.mozilla.org to addons.dynect.mozilla.net.
> INSECURE DNS A lookup addons.dynect.mozilla.net. = 63.245.216.132

The CNAME record is "secure" but its target lies in a sub-zone that
is not signed.  Therefore, the TLSA record should be obtained from
the original name, not the CNAME expanded name (draft-ietf-dane-ops
to become RFC7671 later this week I expect).

In fact, my tester was presenting the results of a test of addons.mozilla.org and addons.dynect.mozilla.net. However this wasn't exactly clear that I was doing this. I was getting the TLSA record for the primary name, then seeing if there was a CNAME chain.Following RFC7671, I will now do the following:

   - Fully expand the CNAME to the final target.
   - Get the TLSA record for the corresponding expanded, target domain
   - If there is no TLSA record, try to initial, unexpanded, source domain.
   - Document all DNS lookups that result in NO_NAME.  (Question: how do I tell from the getdns API if a NO_NAME response is DNSSEC authenticated?)



So _443._tcp.addons.mozilla.org is the TLSA RRset qname.  That
lookup yields authenticated denial of existence (without an SOA
record, so not cacheable).

> Fetching EE Certificate for addons.mozilla.org from 63.245.216.132 port 443 via https
> 306   a       63.245.216.132          Server EE Certificate does not PKIX Verify

This part is surely wrong, the "addons.mozilla.org" HTTPS service
has a valid EV cert.  I would expect it to PKIX verify given the
right trust anchor:

    CN = DigiCert High Assurance EV Root CA
    OU = www.digicert.com
    O = DigiCert Inc
    C = US

I'm not sure what was happening before. However, this is now reporting correct. Would it be useful to have the CN, OU, O and C fields from the certificate displayed?

 

> Checking EE Certificate 'addons.mozilla.org' against system anchors
>
> 307     a       63.245.216.132  FAILED  "When name checks are applicable
> (certificate usage DANE-TA(2)), if the server certificate contains a
> Subject Alternative Name extension ([RFC5280]), with at least one DNS-ID
> ([RFC6125]) then only the DNS- IDs are matched against the client's
> reference identifiers.... The server certificate is considered matched
> when one of its presented identifiers ([RFC5280]) matches any of the
> client's reference identifiers." (§3.2.3)

This is not a DANE-TA(2) check, the domain has no TLSA records, so
the text is not applicable.

This is interesting. Name checks are applicable because the certificate is served via HTTP. The only thing that makes the text not applicable is the parenthetical (certificate usage DANE-TA(2)." I will therefore remove the parenthetical and replace it with an ellipses . 
 

> Hostname addons.mozilla.org does not match EE Certificate Common Name 'addons.mozilla.org'

This does not look right, clear the names are identical.
>
> 403     addons.mozilla.org              FAILED  All IP addresses for a
> host that is TLSA protected must TLSA verify Validating TLSA records for
> 0 out of 1 IP addresses found for host addons.mozilla.org

TLSA matching is not pertinent, this domain has no TLSA records.

A NON DEPLOYMENT message is now given if the domain does not have TLSA records.It now reports how many relied on and how many are secure.  In this case, Validating TLSA records are found for 0 out of 1 IP addresses for host addons.mozilla.org

 

> 405                   FAILED  All DNS lookups must be secured by DNSSEC

That's not a failure, at most a non-deployment, and in any case
not right.  In this case however, sufficiently many DNS records
are "secure" to allow the domain to verify via DANE too, had they
published a matching TLSA RRset at the above mentioned qname.

The tester determines if a DNS lookup is relied upon to reach a DANE TLSA certificate. 
 

> 404                   FAILED  No HTTP DANE test may fail
>               Were any DANE HTTP tests a hard fail?

No DANE tests are in scope, for lack of TLSA records.

Now it reports "Total HTTP TLSA Records Present: 0"

To see the revised report, please visit:

http://arp.simson.net/dev/dane_check.cgi/https/addons.mozilla.org