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

Issue 2017563002: Add Certificate Transparency logs auditing (Closed)

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

Description

Audit CT logs by requesting inclusion proofs for observed Signed Certificate Timestamps from the CT log that issued them. To verify that a CT log behaves correctly and indeed publishes all the certificates it committed to publishing, it is necessary to verify that each observed log entry (as denoted by an SCT and the corresponding certificate) is included in the log. Check for inclusion of observed SCTs by finding out the leaf index of each observed SCT and requesting an inclusion proof from the CT log for it over DNS (using the LogDnsClient). Note that no action is taken based on the inclusion check results in this change. Follow-up changes will add telemetry. BUG=613495 Review-Url: https://codereview.chromium.org/2017563002 Cr-Commit-Position: refs/heads/master@{#445513} Committed: https://chromium.googlesource.com/chromium/src/+/1b5a833bca72a9f89e8c6e8c592037540eaf1411

Patch Set 1 #

Total comments: 12

Patch Set 2 : Switching to TimestampedLeaf #

Total comments: 10

Patch Set 3 : Addressing all comments #

Total comments: 46

Patch Set 4 : ObservedLeaf -> LeafState #

Patch Set 5 : Marking comparator const #

Total comments: 2

Patch Set 6 : Getting rid of the LeafState, MerkleTreeLeaf usage #

Total comments: 16

Patch Set 7 : Significant re-work to separate entry & STT states #

Patch Set 8 : Fully-implemented SingleTreeTracker #

Patch Set 9 : Simplified STT with throttling, memory pressure handling #

Total comments: 42

Patch Set 10 : Addressing Ryan's comments #

Patch Set 11 : Completing implementation of tests #

Patch Set 12 : Fixing compilation issues #

Patch Set 13 : Merging with master #

Patch Set 14 : Ready for review #

Total comments: 45

Patch Set 15 : Addressed review comments #

Patch Set 16 : Removed unused function in the test. #

Total comments: 2

Patch Set 17 : Addressed in-person review comments #

Patch Set 18 : (Re-upload) #

Total comments: 64

Patch Set 19 : Addressed review comments #

Total comments: 34

Patch Set 20 : Simplified test. #

Total comments: 8

Patch Set 21 : Review comments & one less TODO #

Total comments: 23

Patch Set 22 : Improving documentation #

Patch Set 23 : TODO for hooking up NetLOg #

Patch Set 24 : Fix Windows compilation issue #

Total comments: 10

Patch Set 25 : Remove templated function from tests #

Total comments: 4

Patch Set 26 : Addressing Ryan's two final comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+963 lines, -67 lines) Patch
M components/certificate_transparency/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M 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 23 24 4 chunks +72 lines, -11 lines 0 comments Download
M 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 22 23 24 25 4 chunks +357 lines, -37 lines 0 comments Download
M 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 23 24 25 10 chunks +475 lines, -16 lines 0 comments Download
M components/certificate_transparency/tree_state_tracker.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +7 lines, -0 lines 0 comments Download
M 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 22 23 24 1 chunk +29 lines, -2 lines 0 comments Download
M net/cert/merkle_audit_proof.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -0 lines 0 comments Download
M net/cert/merkle_audit_proof.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1 chunk +3 lines, -1 line 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 chunks +18 lines, -0 lines 0 comments Download

Messages

Total messages: 99 (64 generated)
Eran Messeri
4 years, 7 months ago (2016-05-26 13:08:19 UTC) #3
Rob Percival
https://codereview.chromium.org/2017563002/diff/1/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/1/components/certificate_transparency/single_tree_tracker.cc#newcode43 components/certificate_transparency/single_tree_tracker.cc:43: rhs_entry.issuer_key_hash); ".operator()" is redundant here, isn't it? https://codereview.chromium.org/2017563002/diff/1/components/certificate_transparency/single_tree_tracker.cc#newcode78 components/certificate_transparency/single_tree_tracker.cc:78: ...
4 years, 7 months ago (2016-05-26 17:33:15 UTC) #4
Rob Percival
https://chromiumcodereview-hr.appspot.com/2017563002/diff/20001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://chromiumcodereview-hr.appspot.com/2017563002/diff/20001/components/certificate_transparency/single_tree_tracker.cc#newcode73 components/certificate_transparency/single_tree_tracker.cc:73: (sct->timestamp + base::TimeDelta::FromHours(24)))) { Extract "base::TimeDelta::FromHours(24)" to a constant ...
4 years, 5 months ago (2016-06-30 14:15:58 UTC) #5
Eran Messeri
Ryan - please take a look, I believe this is ready for you to review. ...
4 years, 5 months ago (2016-06-30 19:58:29 UTC) #7
Ryan Sleevi
Does ObservedLeaf really need to be a dedicated class? If so, where are the unittests? ...
4 years, 5 months ago (2016-06-30 22:48:19 UTC) #8
Eran Messeri
Ryan, PTAL. I've changed the design based on your comments, now the leaf state is ...
4 years, 5 months ago (2016-07-01 13:24:01 UTC) #9
Ryan Sleevi
Hi Eran, I've revisited this CL, and perhaps a key piece I'm missing is why ...
4 years, 5 months ago (2016-07-01 22:15:50 UTC) #10
Eran Messeri
Ryan, PTAL at the revised design. Based on your suggestions: - Instead of keeping the ...
4 years, 5 months ago (2016-07-13 14:42:56 UTC) #11
Ryan Sleevi
https://codereview.chromium.org/2017563002/diff/100001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/100001/components/certificate_transparency/single_tree_tracker.cc#newcode41 components/certificate_transparency/single_tree_tracker.cc:41: // to the SignedCertificateTimestamp so we can avoid copying ...
4 years, 5 months ago (2016-07-18 23:38:02 UTC) #12
Eran Messeri
Ryan, please take a look at patchset 9. This patchset incorporates all the feedback from ...
4 years, 3 months ago (2016-09-21 21:10:44 UTC) #15
Ryan Sleevi
More of a nit, but since I keep fixing them up: Please make sure your ...
4 years, 3 months ago (2016-09-22 05:58:09 UTC) #16
Ryan Sleevi
https://codereview.chromium.org/2017563002/diff/160001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/160001/components/certificate_transparency/single_tree_tracker.cc#newcode68 components/certificate_transparency/single_tree_tracker.cc:68: return std::string(""); std::string() https://codereview.chromium.org/2017563002/diff/160001/components/certificate_transparency/single_tree_tracker.cc#newcode72 components/certificate_transparency/single_tree_tracker.cc:72: return std::string(""); std::string() https://codereview.chromium.org/2017563002/diff/160001/components/certificate_transparency/single_tree_tracker.cc#newcode90 ...
4 years, 3 months ago (2016-09-22 07:08:29 UTC) #19
Eran Messeri
Ryan, I've addressed your comments, but I suggest holding off further review until we figure ...
4 years, 3 months ago (2016-09-22 20:10:21 UTC) #20
Eran Messeri
Ryan, this is now ready for you to review. The latest patchset utilizes all of ...
4 years, 1 month ago (2016-11-14 03:08:52 UTC) #37
Ryan Sleevi
First pass to make sure there aren't any significant design issues. Let me know when ...
4 years, 1 month ago (2016-11-14 05:03:29 UTC) #38
Eran Messeri
Thanks for the quick first pass, PTAL. I've addressed all of your comments, except one. ...
4 years, 1 month ago (2016-11-16 14:24:11 UTC) #39
Eran Messeri
Ryan, PTAL - addressed your in-person review comments (but haven't mailed the MemoryPressureListener owners yet). ...
4 years, 1 month ago (2016-11-22 13:18:50 UTC) #48
Ryan Sleevi
And I found out why this missed multiple review passes - it was hidden in ...
4 years ago (2016-12-14 01:34:16 UTC) #49
Eran Messeri
Thanks for the thorough review, Ryan, PTAL. I acknowledge the test is not the most ...
4 years ago (2016-12-22 16:12:12 UTC) #52
Eran Messeri
I've found a way to simplify the test a bit, particularly around setting expectations for ...
4 years ago (2016-12-22 21:22:05 UTC) #57
Ryan Sleevi
https://codereview.chromium.org/2017563002/diff/340001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/340001/components/certificate_transparency/single_tree_tracker.cc#newcode100 components/certificate_transparency/single_tree_tracker.cc:100: CHECK_EQ(leaf_hash_str.size(), crypto::kSHA256Length); On 2016/12/22 16:12:11, Eran Messeri wrote: > ...
4 years ago (2016-12-22 21:33:22 UTC) #58
Ryan Sleevi
https://codereview.chromium.org/2017563002/diff/380001/components/certificate_transparency/single_tree_tracker_unittest.cc File components/certificate_transparency/single_tree_tracker_unittest.cc (right): https://codereview.chromium.org/2017563002/diff/380001/components/certificate_transparency/single_tree_tracker_unittest.cc#newcode50 components/certificate_transparency/single_tree_tracker_unittest.cc:50: base::TimeDelta kMoreThanMMD = base::TimeDelta::FromHours(25); constexpr base::TimeDelta kMoreThanMMD - avoid ...
4 years ago (2016-12-22 21:50:28 UTC) #59
Eran Messeri
Ryan, PTAL - addressed all your comments and made use of the fact that MRUCache ...
3 years, 11 months ago (2017-01-03 23:07:41 UTC) #64
Ryan Sleevi
I have a specific question for Eric below (Eric, see "eroman:") - feel free to ...
3 years, 11 months ago (2017-01-10 03:15:54 UTC) #68
eroman
https://codereview.chromium.org/2017563002/diff/400001/components/certificate_transparency/tree_state_tracker.cc File components/certificate_transparency/tree_state_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/400001/components/certificate_transparency/tree_state_tracker.cc#newcode40 components/certificate_transparency/tree_state_tracker.cc:40: net::NetLogWithSource net_log; On 2017/01/10 03:15:54, Ryan Sleevi wrote: > ...
3 years, 11 months ago (2017-01-10 21:23:10 UTC) #69
Eran Messeri
Ryan, PTAL. It'd help to get an overview of what are the next steps for ...
3 years, 11 months ago (2017-01-17 11:37:57 UTC) #72
eroman
https://codereview.chromium.org/2017563002/diff/400001/components/certificate_transparency/tree_state_tracker.cc File components/certificate_transparency/tree_state_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/400001/components/certificate_transparency/tree_state_tracker.cc#newcode40 components/certificate_transparency/tree_state_tracker.cc:40: net::NetLogWithSource net_log; On 2017/01/17 11:37:57, Eran Messeri wrote: > ...
3 years, 11 months ago (2017-01-20 00:03:49 UTC) #75
Eran Messeri
https://codereview.chromium.org/2017563002/diff/400001/components/certificate_transparency/tree_state_tracker.cc File components/certificate_transparency/tree_state_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/400001/components/certificate_transparency/tree_state_tracker.cc#newcode40 components/certificate_transparency/tree_state_tracker.cc:40: net::NetLogWithSource net_log; On 2017/01/20 00:03:49, eroman (slow) wrote: > ...
3 years, 11 months ago (2017-01-20 09:49:05 UTC) #76
Ryan Sleevi
LG % one remaining issue from the previous round. I'm really not a fan of ...
3 years, 11 months ago (2017-01-20 12:53:21 UTC) #79
Eran Messeri
Ryan, PTAL. https://codereview.chromium.org/2017563002/diff/380001/components/certificate_transparency/single_tree_tracker_unittest.cc File components/certificate_transparency/single_tree_tracker_unittest.cc (right): https://codereview.chromium.org/2017563002/diff/380001/components/certificate_transparency/single_tree_tracker_unittest.cc#newcode109 components/certificate_transparency/single_tree_tracker_unittest.cc:109: const int sct_list_size = sizeof...(scts); On 2017/01/10 ...
3 years, 11 months ago (2017-01-23 16:45:47 UTC) #82
Ryan Sleevi
lgtm https://codereview.chromium.org/2017563002/diff/480001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/480001/components/certificate_transparency/single_tree_tracker.cc#newcode323 components/certificate_transparency/single_tree_tracker.cc:323: if (auditable_entries_begin != auditable_entries_end) { nit: (only because ...
3 years, 11 months ago (2017-01-23 17:37:31 UTC) #85
Eran Messeri
Steven, please review the histogram.xml changes. https://codereview.chromium.org/2017563002/diff/480001/components/certificate_transparency/single_tree_tracker.cc File components/certificate_transparency/single_tree_tracker.cc (right): https://codereview.chromium.org/2017563002/diff/480001/components/certificate_transparency/single_tree_tracker.cc#newcode323 components/certificate_transparency/single_tree_tracker.cc:323: if (auditable_entries_begin != ...
3 years, 11 months ago (2017-01-23 20:51:57 UTC) #89
Steven Holte
histograms lgtm
3 years, 11 months ago (2017-01-23 21:07:00 UTC) #92
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2017563002/500001
3 years, 11 months ago (2017-01-23 21:33:38 UTC) #96
commit-bot: I haz the power
3 years, 11 months ago (2017-01-23 22:22:39 UTC) #99
Message was sent while issue was closed.
Committed patchset #26 (id:500001) as
https://chromium.googlesource.com/chromium/src/+/1b5a833bca72a9f89e8c6e8c5920...

Powered by Google App Engine
This is Rietveld 408576698