Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(456)

Issue 1845113003: Certificate Transparency: Start tracking logs' state (Closed)

Created:
4 years, 8 months ago by Eran Messeri
Modified:
4 years, 7 months ago
CC:
chromium-reviews, certificate-transparency-chrome_googlegroups.com, cbentzel+watch_chromium.org, droger+watchlist_chromium.org, blundell+watchlist_chromium.org, sdefresne+watchlist_chromium.org, waffles
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Certificate Transparency: Start tracking the logs' STHs. This introduces the framework for actual inclusion checking of SCTs, and the certs the SCTs are associated with. This is done by introducing a new class, the TreeStateTracker, which can receive notifications of new STHs (which will be provided by the component updater), as well as notifications of verified STHs (provided by CTLogVerifiers). Right now, the only logic is tracking the state of observed SCTs to determine if they can be checked for inclusion or not - that is, whether or not an STH is available that is newer than the SCT's timestamp + the logs maximum merge delay. Except for freshly issued/logged certificates, this is expected to generally be the case. The next change will gather metrics about this. BUG=506227 Committed: https://crrev.com/a824b1534a7a52132d1767a789d8cffd603ff20b Cr-Commit-Position: refs/heads/master@{#395045}

Patch Set 1 #

Patch Set 2 : Catching up with master #

Patch Set 3 : Getting rid of a redundant class #

Patch Set 4 : Rebasing on issue 1853753003 #

Patch Set 5 : ChromeOS compilation woes #

Patch Set 6 : Removing browser thread include #

Patch Set 7 : Correct patchset #

Patch Set 8 : Catching up with master #

Patch Set 9 : Merging with master #

Patch Set 10 : Splitting classes #

Patch Set 11 : Testing SingleTreeTracker. #

Patch Set 12 : Ready for review #

Total comments: 25

Patch Set 13 : Addressing review comments #

Total comments: 20

Patch Set 14 : Addressing 2nd round of review comments #

Patch Set 15 : Catching up with master #

Total comments: 12

Patch Set 16 : Removing plumbing bits #

Total comments: 26

Patch Set 17 : Addressing review comments #

Total comments: 24

Patch Set 18 : #

Patch Set 19 : Using std::move as suggested #

Total comments: 1

Patch Set 20 : Fixed passing of scoped_refptr #

Total comments: 26

Patch Set 21 : Review comments, test improvement #

Total comments: 28

Patch Set 22 : Documenting tests, etc #

Total comments: 10

Patch Set 23 : Improving documentation. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+506 lines, -0 lines) Patch
M components/certificate_transparency.gypi View 1 2 3 4 5 6 7 8 9 1 chunk +4 lines, -0 lines 0 comments Download
M components/certificate_transparency/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +5 lines, -0 lines 0 comments Download
A components/certificate_transparency/single_tree_tracker.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +116 lines, -0 lines 0 comments Download
A components/certificate_transparency/single_tree_tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +100 lines, -0 lines 0 comments Download
A components/certificate_transparency/single_tree_tracker_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +158 lines, -0 lines 0 comments Download
A components/certificate_transparency/tree_state_tracker.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +67 lines, -0 lines 0 comments Download
A components/certificate_transparency/tree_state_tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +49 lines, -0 lines 0 comments Download
M components/components_tests.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 chunk +1 line, -0 lines 0 comments Download
M net/cert/ct_verifier.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +3 lines, -0 lines 0 comments Download
M net/test/ct_test_util.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +3 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (10 generated)
estark
Hey Eran, I took a look at single_tree_tracker.cc to think about how to test it ...
4 years, 8 months ago (2016-04-13 17:11:21 UTC) #3
Eran Messeri
I've settled on a different approach where the SingleTreeTracker can be queried about the status ...
4 years, 8 months ago (2016-04-13 17:18:26 UTC) #4
Eran Messeri
Ryan, please review this change towards inclusion checking of SCTs. Emily, FYI (if you have ...
4 years, 8 months ago (2016-04-14 16:31:33 UTC) #7
Ryan Sleevi
https://codereview.chromium.org/1845113003/diff/220001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/1845113003/diff/220001/components/certificate_transparency/single_tree_tracker.cc#newcode18 components/certificate_transparency/single_tree_tracker.cc:18: bool STHIsTooOld(const SignedTreeHead& sth, const base::Time& sct_timestamp) { Doesn't ...
4 years, 8 months ago (2016-04-14 16:56:16 UTC) #8
Eran Messeri
Thanks for the prompt review, Ryan, PTAL. https://codereview.chromium.org/1845113003/diff/220001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/1845113003/diff/220001/components/certificate_transparency/single_tree_tracker.cc#newcode18 components/certificate_transparency/single_tree_tracker.cc:18: bool STHIsTooOld(const ...
4 years, 8 months ago (2016-04-18 22:02:12 UTC) #9
Ryan Sleevi
Mostly focusing on style & design issues before reviewing the meat of the code. https://codereview.chromium.org/1845113003/diff/220001/net/cert/ct_observer.h ...
4 years, 8 months ago (2016-04-21 14:05:16 UTC) #10
Eran Messeri
Ryan, PTAL. Regarding propagation of data from the ComponentInstallerTraits implementation to the IOThread, if the ...
4 years, 7 months ago (2016-04-25 14:51:00 UTC) #11
Ryan Sleevi
Concrete suggestion: Let's separate out the implementation of the tree state tracker and notification bits ...
4 years, 7 months ago (2016-04-27 23:05:59 UTC) #12
Eran Messeri
Ryan, per your suggestion I've removed all the wiring code from this change, focusing on ...
4 years, 7 months ago (2016-05-03 15:00:13 UTC) #13
Sorin Jianu
Ryan, please see my rationale below. It is a minor point and perhaps not a ...
4 years, 7 months ago (2016-05-05 00:32:03 UTC) #15
Ryan Sleevi
https://codereview.chromium.org/1845113003/diff/300001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/1845113003/diff/300001/components/certificate_transparency/single_tree_tracker.cc#newcode28 components/certificate_transparency/single_tree_tracker.cc:28: if (entries_status_.find(sct->timestamp) != entries_status_.end()) Document why the short-circuit https://codereview.chromium.org/1845113003/diff/300001/components/certificate_transparency/single_tree_tracker.cc#newcode31 ...
4 years, 7 months ago (2016-05-09 17:03:49 UTC) #16
Eran Messeri
Thanks for the review - PTAL. There are a few more TODOs in this CL ...
4 years, 7 months ago (2016-05-10 20:01:10 UTC) #17
Sorin Jianu
lgtm Thank you Eran. Please consider fixing some of the const correctness issues, as needed, ...
4 years, 7 months ago (2016-05-11 17:03:39 UTC) #18
Eran Messeri
Thanks for the review, Sorin, addressed your comments. Ryan, PTAL. https://codereview.chromium.org/1845113003/diff/320001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/1845113003/diff/320001/components/certificate_transparency/single_tree_tracker.cc#newcode64 ...
4 years, 7 months ago (2016-05-12 17:04:49 UTC) #19
Ryan Sleevi
https://codereview.chromium.org/1845113003/diff/320001/components/certificate_transparency/tree_state_tracker.h File components/certificate_transparency/tree_state_tracker.h (right): https://codereview.chromium.org/1845113003/diff/320001/components/certificate_transparency/tree_state_tracker.h#newcode42 components/certificate_transparency/tree_state_tracker.h:42: std::vector<scoped_refptr<const net::CTLogVerifier>> ct_logs); On 2016/05/12 17:04:49, Eran Messeri wrote: ...
4 years, 7 months ago (2016-05-12 17:09:12 UTC) #20
Ryan Sleevi
https://codereview.chromium.org/1845113003/diff/320001/components/certificate_transparency/single_tree_tracker.h File components/certificate_transparency/single_tree_tracker.h (right): https://codereview.chromium.org/1845113003/diff/320001/components/certificate_transparency/single_tree_tracker.h#newcode67 components/certificate_transparency/single_tree_tracker.h:67: explicit SingleTreeTracker(scoped_refptr<const net::CTLogVerifier> ct_log); On 2016/05/12 17:04:49, Eran Messeri ...
4 years, 7 months ago (2016-05-12 17:10:04 UTC) #21
Eran Messeri
Fixed passing of scoped_refptr and usage of std::move per suggestion in a thread Ryan kindly ...
4 years, 7 months ago (2016-05-16 14:44:39 UTC) #22
Ryan Sleevi
https://codereview.chromium.org/1845113003/diff/380001/components/certificate_transparency/single_tree_tracker.h File components/certificate_transparency/single_tree_tracker.h (right): https://codereview.chromium.org/1845113003/diff/380001/components/certificate_transparency/single_tree_tracker.h#newcode36 components/certificate_transparency/single_tree_tracker.h:36: // This class periodically receives STHs provided via Chrome's ...
4 years, 7 months ago (2016-05-16 19:29:56 UTC) #23
Eran Messeri
Ryan, PTAL - in addition to addressing your comments I've modified the unit test based ...
4 years, 7 months ago (2016-05-17 12:42:57 UTC) #24
Ryan Sleevi
Reworded the CL description as well. Remember, the CL Subject doesn't end up in source ...
4 years, 7 months ago (2016-05-18 16:58:19 UTC) #26
Eran Messeri
Addressed all comments, PTAL. https://codereview.chromium.org/1845113003/diff/400001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/1845113003/diff/400001/components/certificate_transparency/single_tree_tracker.cc#newcode27 components/certificate_transparency/single_tree_tracker.cc:27: << "Got called for a ...
4 years, 7 months ago (2016-05-19 12:35:00 UTC) #27
Ryan Sleevi
A few comment nits, but I'm going to LGTM, under the assumption you'll review them ...
4 years, 7 months ago (2016-05-19 17:20:57 UTC) #28
Eran Messeri
Addressed all comments, attempting to commit now. https://codereview.chromium.org/1845113003/diff/420001/components/certificate_transparency/single_tree_tracker.h File components/certificate_transparency/single_tree_tracker.h (right): https://codereview.chromium.org/1845113003/diff/420001/components/certificate_transparency/single_tree_tracker.h#newcode80 components/certificate_transparency/single_tree_tracker.h:80: // Should ...
4 years, 7 months ago (2016-05-20 08:47:28 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1845113003/440001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1845113003/440001
4 years, 7 months ago (2016-05-20 08:47:54 UTC) #32
commit-bot: I haz the power
Committed patchset #23 (id:440001)
4 years, 7 months ago (2016-05-20 10:07:06 UTC) #34
commit-bot: I haz the power
4 years, 7 months ago (2016-05-20 10:08:47 UTC) #36
Message was sent while issue was closed.
Patchset 23 (id:??) landed as
https://crrev.com/a824b1534a7a52132d1767a789d8cffd603ff20b
Cr-Commit-Position: refs/heads/master@{#395045}

Powered by Google App Engine
This is Rietveld 408576698