-
Notifications
You must be signed in to change notification settings - Fork 33
Add support for tiled CT logs #79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
I omitted some features to keep the size of the diff manageable. I plan to add them once this PR will be merged. The missing features are:
There are also some aspects that need discussion:
|
|
Is there anything which would prevent this to merge @d-Rickyy-b ? |
|
Hi @Knight1, shame on me, I haven't found the time to check the PR yet. Same with the other open PRs and issues. Over the holidays I should have some time to check and test each of them thoroughly and merge them :) PS: Main priority is stability, so I want to test what I am about to merge. |
|
If you want to merge this, please let me know and I will rebase and update the PR |
|
I am currently reviewing the PR. At first, thanks to @mimi89999 for the effort, and sorry for the long wait. I couldn't find the time sooner. 1.) One issue I spotted is related to generating the cert link that is contained in the cert's JSON we generate. Currently, this is only done for regular logs, not for tiled logs:
From my understanding of the static CT monitoring API, there is no such thing as a direct link to a certificate anymore. Certs are grouped together in tiles, so we could add a link to the tile the cert is a part of. I am not yet sure what's the best solution for this. 2.) Apart from that, I think we should give clients the ability to identify if a cert came from a tiled log or from a regular RFC 6962 one. Therefor, I think adding a field "Type" to the Source struct should help. That can be used to identify if we're dealing with a tiled or RFC 6962 based log. certstream-server-go/internal/certificatetransparency/ct-parser.go Lines 33 to 38 in e40aeff
3.) While testing the PR locally, I added a new option to the config to manually specify custom TiledLogs. This also needed a modification of the getAllLogs method to process them accordingly. Those options are definitely needed in order to merge the PR. 4.) Since the RFC 6962 logs got their own buffer, we could also implement a buffer that buffers logs before adding them to the broadcast channel.
5.) Due to the log "Processed tile...", we're spamming a lot to stdout. I do appreciate the log and I think we should definitely add it back as debug output, after we implemented leveled logging. 6.) Also, there is currently no check for the validity of signatures of the content of tiled logs. Given the purpose of the tool, this doesn't sound too critical, but we might add something like that later. 7.) We need to add an entry regarding these changes to the changelog.md file. I can add a commit for that to the PR. 8.) Do you think this feature should be published as v2.0.0 or, as it doesn't constitute a breaking change, as v1.9.0? |
|
I merged this PR into its own branch so that I can publish a beta release for the feature in order to collect feedback on the changes. |
No description provided.