google / google/certificate-transparency-go
Add support for STH-based validation when using `--size` flag
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 1.2k
- Forks
- 323
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 5
Description
Description
The current behavior of the certificate-transparency-go client when using the --size flag is potentially confusing and could be dangerous in auditing contexts.
Current Behavior
- When using
--size <value>: The tool does not validate the inclusion proof - When omitting
--size: The tool does perform validation
This inconsistency may mislead users who aren't deeply familiar with Certificate Transparency internals, as they might reasonably assume the tool validates inclusion proofs consistently regardless of the --size flag.
Proposed Enhancement
-
Primary feature: Allow specifying a previous STH to verify that a historical tree size inclusion proof is actually valid
-
Enhanced feature: Implement a "wait-for-new-updated-sth-before-validating" option that would:
- Wait for a new STH that includes the specified tree size
- Then perform the validation against that STH
Benefits
- Eliminates the current confusing behavior difference
- Provides stronger security guarantees for auditing use cases
- Makes the tool's behavior more predictable and safer by default
Additional Context
# This validates the inclusion proof
$ client get-inclusion-proof --log_uri=https://... --cert_chain=cert.pem
# This does NOT validate the inclusion proof (but users might expect it to)
$ client get-inclusion-proof --log_uri=https://... --cert_chain=cert.pem --size=12345
I'm happy to submit a PR for this functionality if there's interest.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the client get-inclusion-proof command and trace how the --size flag currently handles inclusion-proof validation. Review the existing STH and historical tree-size verification paths. Done means a previous STH can be supplied for validation, with the proposed wait-for-a-new-STH behavior clarified and covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100