On Thu, Aug 20, 2020 at 01:20:00PM -0400, Wietse Venema wrote:

> Viktor Dukhovni:
>
> > -   &&TLS_DANE_BASED(state->client_start_props->tls_level))
> > +   && TLS_DANE_HASTA(state->client_start_props->dane))
> > @@ -1427,7 +1427,7 @@ static void tlsp_get_request_event(int event, void 
> > *context)
> > -                 TLS_DANE_BASED(state->client_start_props->tls_level));
> > +                 TLS_DANE_HASTA(state->client_start_props->dane));
> 
> This looks weird. I thought that the problem was with trust anchors, not DANE?

Yes, the problem is with trust anchors, but DANE is the general case of:

    * Policy-based end-entity cert matching:

        - DANE "_25._tcp.example.net. IN TLSA 3 ? ? ..." 

        - The Postfix "fingerprint" security level

    * Policy-based issuer CA cert matching:

        - DANE "_25._tcp.example.net. IN TLSA 2 ? ? ..." 

        - The Postfix verify/secure levels with a custom per-site
          "tafile" .

Actual DANE TLSA RRsets can have either or both DANE-EE or DANE-TA
records, with verification ultimately matching either or both.  The
"fingerprint" level is mapped to DANE-EE, while "tafile" support is
mapped to DANE-TA.

Thus actual DANE, fingerprint and secure/verify with a "tafile" are all
handled via the "general case" of "some sort of DANE-like policy".

In Postfix 3.6, the job of validating "some sort DANE-like policy" is
entirely delegated to OpenSSL.  You'll be pleased to know, that in
Postfix 3.6 the TLS_DANE_HASTA() and TLS_DANE_HASEE() macros are gone.
We no longer need to treat the various DANE-like matching differently.

-- 
    Viktor.

Reply via email to