Refactor SCT verification/CT key handling #263
Labels
bug
Something isn't working
component:signing
Core signing functionality
component:verification
Core verification functionality
This has come to light during the staging instance's recent sharding: there are now multiple CT signing keys, instead of just
ctfe.pub
. The newer signing keys aren't necessarily compatible with the older ones (i.e. they can be ECDSA instead of RSA), and new CT entries are signed with the latest key rather than the older ones.As a result, our assumption of a single CT key (
ctfe.{staging.}pub
) is no longer correct. This makes SCT verification fail for newer SCTs, since they're no longer signed with the key that we've vendored.To fix this, we need to refactor our CT key handling. In particular:
dict[KeyID, Key]
, whereKeyID
is the key ID format described in RFC 6962 s. 3.2.logID
field, which is really just the key ID.For the time being, we'll create this keychain by vendoring more CT keys (#262). Longer term, the TUF integration planned under #25 will be expected to retrieve all CT key targets, either via their usage metadata or some other identifying feature in the TUF repo.
The text was updated successfully, but these errors were encountered: