I'm working on
adding support to
ctlint for checking embedded SCT lists against Mozilla's CT Policy and log list. Mozilla's list of CT logs doesn't differentiate between Qualified and Usable; instead, the "Admissable" state covers both.
Q: How should a CA (or linter) determine which Admissable logs are actually Usable in Firefox? ("Usable" in this context means that all in-use installations of Firefox can be expected to either recognize the log as Admissible or to have disabled CT enforcement)
Based on the
10 week expiration time of the log list and the >10 week
ESR release cycle, I think the answer
should be that: an Admissable log is Usable if it has been Admissable for >=70 days; or Qualified otherwise. However, it's not currently possible to determine for how long a log has been Admissible just by looking at the latest published log list, because the log list
generator script appears to overwrite Admissible timestamps by blindly copying Qualified and Usable timestamps from Chrome's log list. Recent example: Sycamore2027h1 was previously Admissable with timestamp 1758078000000 (microseconds since Unix epoch), but that Admissible timestamp was later updated to 1764212400000.
I suppose the "missing" timestamps could be found by iterating through every commit to the
log list, to discover when each Admissible log was originally added; then use that version of the list's expiration date as the log's Usable timestamp, and set the log's Qualified timestamp to 70 days earlier than that.
Is this the expected approach?