Open meyira opened 3 months ago
Hi meyira!
First off, thanks for doing this analysis! Building performance estimates from real-world data is super useful for understanding how MTCs can operate in practice. Please forgive the length of this response; It’s a bit rambly as I work out how to reason about these measurements.
So, the question I think we want to answer is something along the lines of: “In a world in which MTCs are deployed, how often, and in what circumstances do we expect the fallback to be needed for certificate validation to succeed?”
When a MTC is issued, there will be a period of time in which clients cannot validate the MTC because they have not yet received a tree head that corresponds to the batch containing this issuance (let’s call this the fallback period). For convenience, we can organize clients into rough buckets:
Buckets 1 and 2 are related to fresh MTC issuance to some degree, while 3 represents an independent population whose behavior is unaffected by issuance or update cadence. Since fresh MTC issuance is difficult to measure without MTCs being widely deployed, we can attempt to infer the likelihood of fallback for bucket 1 (and bucket 2 to a lesser extent) by looking at publicly-available certificate and domain data and identifying scenarios that would force a MTC fallback:
Before digging too far into the numbers, does this list look right? I think our ability to measure fallback today might be limited to inferring behavior about predominantly bucket 1 -type clients from a limited amount of observable data related to the above scenarios.
Hi, Thanks for looking over the estimates and insisting on refining the criteria! I agree they are still very rough, but I wanted to get a bit of a feeling for the likeliness of triggering a fallback. The bucket division is interesting! I agree that bucket 1 is the only one I likely can estimate, however, bucket 3 is also unlikely to check SCTs right now. For Bucket 2, the fallback probability likely depends on how much configuration MTC is going to offer to clients, and how long the cadence period is. I guess estimating bucket 2 would need an actual deployment. The list of the criteria looks good to me, except for the MTC incorrectness: Is it expected behaviour to fall back when the MTC is malformed?
I don't quite follow the MTC Incorrectness scenario. Are you proposing that on receiving an invalid certificate, the client automatically retries asking for a different one? I don't think that's very desirable, as you indeed loose visibility into misconfigurations and other errors. This is separate from servers being able to negotiate and support multiple certificates.
On bucket 2. I'd say it makes sense to broaden this to all willing but potentially stale clients because of the network (eg. airplane, strict network firewall.) It'd be great to have better insight into such client staleness some way.
Ah, yes. Incorrectness actually doesn’t matter for this analysis; you’re right. It’s a situation where having some other certificate would be helpful if it were able to be negotiated but not actually useful when measuring expected MTC fallback behavior.
Re: client staleness, we looked at whether this could be inferred from existing metrics but I don’t think we have a great way to measure this directly today. We could likely add the relevant metrics in a A/B test but that would have to wait for prototyping and experimental rollout to gather.
Summary of MTC Fallback Estimates
We aim to estimate the probability of triggering the fallback to another PKI mechanism when Merkle Tree Certificates are deployed widely. We estimate the fallback probabilities from the server side by monitoring historic certificate data, checking for incorrect configurations and potential attacks that risk the client becoming out of sync.
Estimation Method
We queried all certificates since 2022-1-1 from 75 of the top 100 domains on Radar. We will call them top domains. In addition, we have queried certificates since 2022-1-1 for domains with a siphash ending in 0000. We call those domains random domains. Note that the statistics for those domains may have a large rate of false positives for the fallback estimations, as certificates for
random-domain.tld
are in the sample, but certificates forwww.random-domain.tld
are not. Therefore, our estimates are a rather loose upper bound, but we believe them to be useful nonetheless.Fallback triggers
We have identified the following triggers for fallbacks so far:
Probability of Fallbacks
The table above provides the absolute probability of triggering a fallback over 2.5 years and the relative probability, assuming it takes three days for the relying party synchronize with the correct tree heads.
We warmly welcome further possible fallback triggers.