Commit 429d8b5
authored
CTPolicy: always try to get SCTs from a tiled log first (#8676)
The Mozilla root program would really appreciate it if more certificates
contained SCTs from tiled logs. This is because their revocation
mechanism, CRLite, can only return a definitive answer for the status of
a certificate after the MMD of at least one SCT on that cert has passed.
Once the MMD has passed, CRLite can guarantee that it has included the
cert in the total cert population while constructing its clubcard
filters, and therefore can prevent any false positives or negatives for
that cert. But RFC 6962 log typically have MMDs of 24h, while static
logs have MMDs of ~1s (and are much easier for the CRLite infrastructure
to read from), so CRLite works better when more certs have SCTs from
static logs.
Today, we treat tiled (static-ct-api) and untiled (rfc 6962) logs nearly
the same when submitting precerts to get SCTs. We shuffle them together,
pick two, attempt to get SCTs for a couple seconds, and if one or both
are too slow, attempt to get SCTs from other logs further down the
shuffled list.
However, this doesn't actually result in a large proportion of our certs
having static SCTs, for two reasons. First, there just aren't that many
static logs: of the 11 logs we get SCTs from, only 4 are tiled. So
simple statistics dictate that only about 36% of our certs will have one
static SCT. Second, static logs have a slower write path, so we're more
likely to give up on a submission to a static log and move on to
attempting to submit to an RFC 6962 log instead.
In order to give our certs a higher chance of containing an SCT from a
static log, always ensure that a tiled log appears in the first two logs
we submit to. This won't be a guarantee -- that log could be slow and we
could get SCTs from the second and third logs in the shuffled list --
but it should bump our static SCT population from 36% to somewhere north
of 90%.1 parent efb6758 commit 429d8b5
3 files changed
Lines changed: 42 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
| 114 | + | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
229 | | - | |
230 | | - | |
231 | | - | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
232 | 234 | | |
233 | 235 | | |
234 | 236 | | |
235 | 237 | | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
236 | 248 | | |
237 | 249 | | |
238 | 250 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
163 | | - | |
| 163 | + | |
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
| 179 | + | |
180 | 180 | | |
181 | 181 | | |
182 | 182 | | |
| |||
191 | 191 | | |
192 | 192 | | |
193 | 193 | | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
194 | 218 | | |
195 | 219 | | |
196 | 220 | | |
| |||
0 commit comments