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

Issue 1100003006: Certificate Transparency: Fetching of Signed Tree Heads (DRAFT) (Closed)

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

Description

Certificate Transparency: Fetching of Signed Tree Heads (DRAFT) This change lays out the groundwork for fetching and validating signed tree heads from recognized CT logs. BUG=480867

Patch Set 1 #

Total comments: 110

Patch Set 2 : Merging with master #

Total comments: 82

Patch Set 3 : Review comments, adding shutdown of the proof fetcher. #

Patch Set 4 : Revised design, addressed some comments #

Total comments: 22

Patch Set 5 : Some bits have been committed to master #

Patch Set 6 : Pre merge of LogProofFetcher #

Patch Set 7 : BUILD.gn file fixes per review comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+972 lines, -12 lines) Patch
M chrome/browser/BUILD.gn View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/DEPS View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/io_thread.h View 1 2 3 4 5 4 chunks +8 lines, -1 line 0 comments Download
M chrome/browser/io_thread.cc View 1 2 3 4 5 5 chunks +21 lines, -1 line 0 comments Download
M chrome/browser/profiles/profile_impl_io_data.cc View 1 2 3 4 5 1 chunk +1 line, -2 lines 0 comments Download
M chrome/browser/profiles/profile_io_data.h View 1 2 3 4 5 3 chunks +5 lines, -0 lines 0 comments Download
M chrome/browser/profiles/profile_io_data.cc View 1 2 3 4 5 4 chunks +24 lines, -0 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M components/BUILD.gn View 1 2 3 4 5 6 2 chunks +2 lines, -0 lines 0 comments Download
A components/certificate_transparency.gypi View 1 2 3 4 5 6 1 chunk +28 lines, -0 lines 0 comments Download
A + components/certificate_transparency/BUILD.gn View 1 2 3 4 5 6 1 chunk +10 lines, -6 lines 0 comments Download
A + components/certificate_transparency/DEPS View 1 2 3 4 5 1 chunk +2 lines, -2 lines 0 comments Download
A components/certificate_transparency/log_proof_fetcher.h View 1 2 3 4 5 1 chunk +122 lines, -0 lines 0 comments Download
A components/certificate_transparency/log_proof_fetcher.cc View 1 2 3 4 5 1 chunk +242 lines, -0 lines 0 comments Download
A components/certificate_transparency/log_proof_fetcher_unittest.cc View 1 2 3 4 5 1 chunk +307 lines, -0 lines 0 comments Download
A components/certificate_transparency/tree_state_tracker.h View 1 2 3 4 5 1 chunk +66 lines, -0 lines 0 comments Download
A components/certificate_transparency/tree_state_tracker.cc View 1 2 3 4 5 1 chunk +118 lines, -0 lines 0 comments Download
M components/components.gyp View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M components/components_tests.gyp View 1 2 3 4 5 3 chunks +5 lines, -0 lines 0 comments Download
M net/base/net_error_list.h View 1 2 3 4 5 1 chunk +6 lines, -0 lines 0 comments Download
M net/cert/ct_verifier.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 13 (4 generated)
Ryan Sleevi
https://codereview.chromium.org/1100003006/diff/1/chrome/browser/io_thread.cc File chrome/browser/io_thread.cc (right): https://codereview.chromium.org/1100003006/diff/1/chrome/browser/io_thread.cc#newcode743 chrome/browser/io_thread.cc:743: net::CTLogVerifier::Create(ct_public_key_data, log_description, "")); s/""/std::string()/ https://codereview.chromium.org/1100003006/diff/1/chrome/browser/io_thread.cc#newcode901 chrome/browser/io_thread.cc:901: certificate_transparency::NewSCTsObserver* scts_observer = ...
5 years, 8 months ago (2015-04-24 10:42:08 UTC) #2
Ryan Sleevi
Adding Eric and David to this CL
5 years, 7 months ago (2015-05-07 01:15:13 UTC) #4
davidben
Did an initial pass. https://codereview.chromium.org/1100003006/diff/20001/components/certificate_transparency.gypi File components/certificate_transparency.gypi (right): https://codereview.chromium.org/1100003006/diff/20001/components/certificate_transparency.gypi#newcode10 components/certificate_transparency.gypi:10: 'type': 'static_library', IMPORTANT: Because this ...
5 years, 7 months ago (2015-05-07 21:59:38 UTC) #5
davidben
Oh hrm, I missed that this still said DRAFT and Ryan left comments on the ...
5 years, 7 months ago (2015-05-07 22:00:43 UTC) #6
Eran Messeri
Ryan, David, PTAL, focusing on the wiring in the following files: chrome/browser/io_thread.cc chrome/browser/io_thread.h chrome/browser/profiles/profile_impl_io_data.cc chrome/browser/profiles/profile_io_data.cc ...
5 years, 6 months ago (2015-06-18 15:18:43 UTC) #7
Ryan Sleevi
https://codereview.chromium.org/1100003006/diff/60001/chrome/browser/io_thread.cc File chrome/browser/io_thread.cc (right): https://codereview.chromium.org/1100003006/diff/60001/chrome/browser/io_thread.cc#newcode697 chrome/browser/io_thread.cc:697: for (auto it = known_logs.begin(); it != known_logs.end(); ++it) ...
5 years, 5 months ago (2015-06-29 11:58:13 UTC) #8
Eran Messeri
NO NEED TO REVIEW! Just FYI as I've addressed the comments and will be breaking ...
5 years, 5 months ago (2015-07-10 13:15:48 UTC) #9
Ryan Sleevi
https://codereview.chromium.org/1100003006/diff/20001/net/cert/ct_verifier.h File net/cert/ct_verifier.h (right): https://codereview.chromium.org/1100003006/diff/20001/net/cert/ct_verifier.h#newcode50 net/cert/ct_verifier.h:50: CTLogVerifier* verifier) {} On 2015/07/10 13:15:48, Eran wrote: > ...
5 years, 5 months ago (2015-07-10 13:45:02 UTC) #10
Eran Messeri
5 years, 5 months ago (2015-07-13 10:58:22 UTC) #11
https://codereview.chromium.org/1100003006/diff/20001/net/cert/ct_verifier.h
File net/cert/ct_verifier.h (right):

https://codereview.chromium.org/1100003006/diff/20001/net/cert/ct_verifier.h#...
net/cert/ct_verifier.h:50: CTLogVerifier* verifier) {}
On 2015/07/10 13:45:02, Ryan Sleevi (slow through 7-15 wrote:
> On 2015/07/10 13:15:48, Eran wrote:
> > The distinction between CTVerifier and MultiLogCTVerifier is a bit
artificial
> -
> > mostly for describing a clear interface. I don't expect another class
> > implementing CTVerifier.
> 
> Well, no, it was somewhat intentional, not artificial :)
> 
> For example, I anticipate we may have separate subclasses for V1 verifications
> vs V2, although that remains TBD based on how much is changing (the precert
> aspect is certainly one area of weirdness), such that the MultiLogCertVerifier
> instantiates an appropriate Verifier subclass based on the version the log
> supports, so that the MultiLog can handle (transparently) validation of both
V1
> and V2 SCTs.
> 
> But it was also to keep the separations cleaner - CTVerifier knows about the
> crypto and the protocol, whereas MultiLogCTVerifier nows about the conceptual
> mappings and collations and how to handle missing logs.

Acknowledged - the CTLogVerifier* is not needed here and indeed the
TreeStateTracker can hold onto the verifiers so there's no need to pass them in.

I agree with the comment about separation between crypto/protocol and conceptual
mappings in the MultiLogCTVerifier - it would make it much simpler to upgrade to
V2 with this approach.

Powered by Google App Engine
This is Rietveld 408576698