On 9/8/2021 10:18 μ.μ., Ryan Sleevi wrote:


On Mon, Aug 9, 2021 at 1:25 PM Dimitris Zacharopoulos <[email protected] <mailto:[email protected]>> wrote:



    On 14/5/2021 2:58 π.μ., Ryan Sleevi wrote:

         *

            Cross-certification adds another certificate to the
            chain, which is sometimes difficult for customers to
            configure, and S/MIME clients do not process cross
            certificates very well.

         *

            Mozilla should distinguish between root CAs supporting
            serverAuth certificates vs. S/MIME certificates, and
            Mozilla should keep the email trust bit and remove the
            websites trust bit to help bridge the transition.


    These are somewhat reasonable, although the statement about
    S/MIME clients is one that demands evidence, and is a little
    suspect based on the major implementations I've examined in the
    past. Supported with concrete data, it might be reasonable to
    treat a TLS transition independent of an S/MIME transition.

    We were able to reproduce and confirm past findings on this issue
    regarding the S/MIME agents not using cross-certificates in the
    chain.

    Our tests were performed using Thunderbird as sending agent and
    TB/Outlook as receiving agents.

    Sending agent trusted old and new Root and included the
    cross-certificate in local certificate store.

    The signed email contained only the Intermediate Certificate that
    chains to the new Root. There was no way to "dictate" TB to
    include the cross-certificate in the signature.

    The receiving agents trusted only the old Root.

    The receiving agents did not attempt to follow the AIA CAIssuers
    URI in order to get the cross-certificate, therefore the path
    validation failed and the signature was marked invalid.


Thanks. This, at least, is a little more concrete as to what you meant by "do not process well" - it seems what you were actually testing here is whether or not AIA fetching occurs, correct?


Not quite, we first ensured that the sending agent did not add the cross-certificate in the certificate chain, which we knew it would make it impossible for the receiving agent to successfully validate the chain, and then "hoped" for AIA fetching to occur.


It's certainly not unexpected that Thunderbird does not do AIA chasing, especially since Firefox does not. At a minimum, the Thunderbird behaviour will be affected by what path builder it's using (which depends on which NSS version as well as the build flags for your distribution - e.g. if it's Mozilla-provided Thunderbird vs a distro-provided version), but even there, I suspect Thunderbird-proper hasn't wired up AIA. It should, however, properly handle the scenario where sender sends both, as well as paths that chain to "new certified by old".

It's unclear, however, from your description on your test methodology for the certificate chain. It sounds like you did "(new leaf) <- (new intermediate)" as the actual message contents, but it's unclear if you constructed a chain "(new leaf) <- (new intermediate) <- (new root) <- (old root)" or a chain of "(new leaf) <- (new intermediate) <- (new root), (new leaf) <- (old intermediate) <- (old root)", the latter of which is expected to be problematic.

We constructed the "(new leaf) <- (new intermediate) <- (new root) <- (old root)".


The test here is:
- Sending agent sends certificate bundle that contains their cert, intermediate, and new-signed-by-old

This is where the sending mail agents fail. As explained in the test, TB and Outlook do not have a way to "inject" the cross-certificate in the chain, therefore the default behavior is to only send (new leaf) <- (new intermediate).

If the cross-certificate is included in the chain, the receiving agents successfully validate the chain. In order to do that, the sender must manually delete the (new root) from the local trust store so the sending agent can build a path to the (old root), using the cross-certificate, but that's not something we want to enourage.

I hope this makes things a bit clearer.


Thanks,
Dimitris.


That should work. Outlook's calls through WinVerifyTrust/CAPI will handle that, as should Thunderbird, provided the notBefore/notAfter dates are set appropriately for (new root signed by old root).

Maybe I'm further misunderstanding what you're meaning though by "do not process cross certificates well", but it seems this was a test methodology issue more than anything?

--
You received this message because you are subscribed to the Google Groups 
"[email protected]" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/c0928cfe-85e6-0e27-de96-1654349f8744%40it.auth.gr.

Reply via email to