#3916: Mutt 1.8: TOFU approach bails out on first fail or reject, not offering
higher links of the cert' chain
--------------------------+----------------------
Reporter: kratem32 | Owner: mutt-dev
Type: enhancement | Status: new
Priority: minor | Milestone: 1.8
Component: crypto | Version:
Resolution: | Keywords: tofu
--------------------------+----------------------
Comment (by kevin8t8):
Matthias,
I feel as if some confusion is occurring about how the option/patch is
intended to be used. Or it may be that I am too ignorant and am missing
an important point.
> Saving the cert of the intermediate that is closer to the root (2/4),
however, mutt
> will ask for the root again next time.
No. The **next** time you connect. ssl_verify_partial_chains should be
set to "=yes". The patch will ignore (1/4), find (2/4) in the certificate
file and return true, and so (3/4) and (4/4) should then be marked
preverify_ok=1.
The ssl_verify_partial_chains=ask-yes setting is **only** for the
**first** time you connect to a host. The (s)kip option is only to help
you save one of the certificates in the chain to your certificate file.
Once you do this, you set it back to "=yes".
> The "=yes" setting on the other hand is useless IMO because it only
presents
> the host certificate.
No. Again, "=yes" is for when you have already saved the desired
certificate to your file. Once this is done, "=yes" should not prompt at
all.
> the whole rig is questionable from the user interface perspective
Yes. I admit this is not a great UI. However, kratem32 and pete3215 in
https://github.com/neomutt/neomutt/issues/429 both seem to understand the
idea behind the patch.
The patch is for those with specific needs who want to directly control
who they trust. The UI is a bit lousy, but it at least gives them that
control.
> Or we implement an even more complex concept that uses the
> earlier callbacks to just build a global view of the chain,
> always pretending success and caching the preverify results as
> well as the cache state, until we get to the final
> callback (which is the one concerning the host certificate), when
> we present the user with the necessary questions. This would,
> however, amount to doing most of the verification in loops
> ourselves again. But before we go into code, we need to
> understand how OpenSSL itself deals with "alternative trust
This is certainly the *best* way to go about it. But I am trying to avoid
this option
if at all possible. I feel the quadoption patch allows the tinkerers to
tinker
without too much effort from mutt development side, while the "=no" option
preserves the safe/correct behavior for 99% of the users.
With the above explanation, does the patch make more sense? MichaĆ does
it
make sense to you?
--
Ticket URL: <https://dev.mutt.org/trac/ticket/3916#comment:48>
Mutt <http://www.mutt.org/>
The Mutt mail user agent