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

Issue 2102783003: Add enterprise policy to exempt hosts from Certificate Transparency (Closed)

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

Description

Add and connect an Enterprise Policy for whitelisting hosts as exempt from Certificate Transparency policy. This introduces a policy (CertificateTransparencyEnforcementDisabledForUrls) that allows exempting certain hostnames from the Certificate Transparency requirements. Some CAs, such as Symantec and CNNIC at present, are required to disclose their certificates via CT in order to have them trusted; any certificate not disclosed is not trusted. However, to accomodate some enterprise users who have the capability to manage Chromium consumers, but cannot manage other certificate-consuming systems on their network, and which need certificates from these CAs, and which claim that they cannot have these hosts disclosed publicly (e.g. "topsecret.internal.example.com"), this provides a policy mechanism to allow those hosts to be exempted from CT requirement. This is not a blanket policy for general hosts on the Internet; in general, all certificates from these CAs must conform, unless the device is enterprise managed. Whether or not this policy ends up being temporary or not depends on the IETF and CA community, and whether or not a suitable technical means of redaction can be devised which allows redaction (e.g. "?.?.example.com") to be safely performed. For now and the foreseeable future, redaction is not viable for Chromium, so the enterprise policy is offered as an alternative. BUG=620178 TBR=atwilson@chromium.org Committed: https://crrev.com/96356f8d5e565b402c85b3a4c4a58d58fb594dbd Cr-Commit-Position: refs/heads/master@{#403125}

Patch Set 1 #

Total comments: 9

Patch Set 2 : Feedback #

Patch Set 3 : with unittests #

Patch Set 4 : Rebased & with E2E test #

Patch Set 5 : Less dep #

Patch Set 6 : Rebased #

Patch Set 7 : Combine with https://codereview.chromium.org/2087743002 #

Total comments: 16

Patch Set 8 : Feedback #

Total comments: 18

Patch Set 9 : Rebased to master #

Patch Set 10 : Fix gyp #

Patch Set 11 : Make Win happy with an auto (size_t vs ssize_t) #

Patch Set 12 : Fully shutdown prefs #

Total comments: 2

Patch Set 13 : Fix GYP again #

Total comments: 4

Patch Set 14 : Review feedback & one TODO #

Patch Set 15 : compiled wrong target #

Patch Set 16 : Comment tweak to remove () #

Unified diffs Side-by-side diffs Delta from patch set Stats (+836 lines, -1 line) Patch
M chrome/browser/policy/configuration_policy_handler_list_factory.cc View 1 2 3 4 5 6 7 8 2 chunks +7 lines, -0 lines 0 comments Download
M chrome/browser/policy/policy_browsertest.cc View 1 2 3 4 5 6 7 8 3 chunks +60 lines, -0 lines 0 comments Download
M chrome/browser/prefs/browser_prefs.cc View 2 chunks +2 lines, -0 lines 0 comments Download
M chrome/browser/profiles/profile_io_data.h View 2 chunks +4 lines, -0 lines 0 comments Download
M chrome/browser/profiles/profile_io_data.cc View 1 2 3 4 5 6 7 8 5 chunks +14 lines, -0 lines 0 comments Download
M chrome/test/data/policy/policy_test_cases.json View 1 2 3 4 5 6 7 8 1 chunk +8 lines, -0 lines 0 comments Download
M components/certificate_transparency.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +7 lines, -0 lines 0 comments Download
M components/certificate_transparency/BUILD.gn View 1 2 4 chunks +9 lines, -0 lines 0 comments Download
M components/certificate_transparency/DEPS View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
A components/certificate_transparency/ct_policy_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +86 lines, -0 lines 0 comments Download
A components/certificate_transparency/ct_policy_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +271 lines, -0 lines 0 comments Download
A components/certificate_transparency/ct_policy_manager_unittest.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +271 lines, -0 lines 0 comments Download
A components/certificate_transparency/pref_names.h View 1 chunk +23 lines, -0 lines 0 comments Download
A components/certificate_transparency/pref_names.cc View 1 chunk +15 lines, -0 lines 0 comments Download
M components/components_tests.gyp View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M components/policy/resources/policy_templates.json View 1 2 3 4 5 6 7 8 2 chunks +29 lines, -1 line 0 comments Download
M net/http/transport_security_state.h View 1 2 3 1 chunk +5 lines, -0 lines 0 comments Download
M net/http/transport_security_state.cc View 1 2 3 4 5 6 7 3 chunks +19 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 56 (23 generated)
Ryan Sleevi
Dominic, Matt: Would you two do the high-level review first? Matt: To make sure I've ...
4 years, 5 months ago (2016-06-27 21:52:15 UTC) #2
mmenke
Lifetime looks reasonable (To the extent that anything in ProfileIOData looks reasonable) https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.h File components/certificate_transparency/ct_policy_manager.h ...
4 years, 5 months ago (2016-06-27 22:11:57 UTC) #3
mmenke
https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.cc#newcode67 components/certificate_transparency/ct_policy_manager.cc:67: url_matcher::URLMatcherConditionSet::ID id_; Should this be called something like next_id_? ...
4 years, 5 months ago (2016-06-27 22:14:53 UTC) #4
Ryan Sleevi
https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.h File components/certificate_transparency/ct_policy_manager.h (right): https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.h#newcode17 components/certificate_transparency/ct_policy_manager.h:17: class SequencedTaskRunner; On 2016/06/27 22:11:57, mmenke wrote: > Should ...
4 years, 5 months ago (2016-06-27 22:49:19 UTC) #5
Ryan Sleevi
Adding Drew now that I have unittests; still curious for the design feedback from Dominic, ...
4 years, 5 months ago (2016-06-28 04:24:47 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102783003/120001
4 years, 5 months ago (2016-06-28 04:48:05 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/27625) ios-device-gn on ...
4 years, 5 months ago (2016-06-28 04:49:49 UTC) #13
battre
https://codereview.chromium.org/2102783003/diff/120001/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/120001/components/certificate_transparency/ct_policy_manager.cc#newcode38 components/certificate_transparency/ct_policy_manager.cc:38: // RequireCTDelegate implementation add: to be called on the ...
4 years, 5 months ago (2016-06-28 08:33:14 UTC) #14
mmenke
profiles/ LGTM https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.h File components/certificate_transparency/ct_policy_manager.h (right): https://codereview.chromium.org/2102783003/diff/1/components/certificate_transparency/ct_policy_manager.h#newcode37 components/certificate_transparency/ct_policy_manager.h:37: void Shutdown(); On 2016/06/27 22:49:19, Ryan Sleevi ...
4 years, 5 months ago (2016-06-28 12:38:00 UTC) #15
Ryan Sleevi
https://codereview.chromium.org/2102783003/diff/120001/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/120001/components/certificate_transparency/ct_policy_manager.cc#newcode112 components/certificate_transparency/ct_policy_manager.cc:112: } On 2016/06/28 08:33:13, battre wrote: > Do you ...
4 years, 5 months ago (2016-06-28 16:41:28 UTC) #16
battre
lgtm https://codereview.chromium.org/2102783003/diff/120001/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/120001/components/certificate_transparency/ct_policy_manager.cc#newcode112 components/certificate_transparency/ct_policy_manager.cc:112: } On 2016/06/28 16:41:27, Ryan Sleevi wrote: > ...
4 years, 5 months ago (2016-06-29 09:14:43 UTC) #17
Ryan Sleevi
pkasting: Need your OWNERS approval for the DEPS addition to url_formatter (for segmenting user-entered URL ...
4 years, 5 months ago (2016-06-30 00:17:24 UTC) #19
Ilya Sherman
histograms.xml lgtm
4 years, 5 months ago (2016-06-30 00:20:07 UTC) #20
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102783003/140001
4 years, 5 months ago (2016-06-30 00:21:16 UTC) #22
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/29121) ios-device-gn on ...
4 years, 5 months ago (2016-06-30 00:25:09 UTC) #24
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102783003/160001
4 years, 5 months ago (2016-06-30 00:35:24 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/194451)
4 years, 5 months ago (2016-06-30 01:05:27 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102783003/220001
4 years, 5 months ago (2016-06-30 01:33:22 UTC) #30
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/194496)
4 years, 5 months ago (2016-06-30 02:03:36 UTC) #33
eroman
https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc#newcode85 components/certificate_transparency/ct_policy_manager.cc:85: base::Owned(required_hosts->CreateDeepCopy().release()), How about: base::Passed(required_hosts->CreateDeepCopy()) https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc#newcode86 components/certificate_transparency/ct_policy_manager.cc:86: base::Owned(excluded_hosts->CreateDeepCopy().release()))); ditto https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc#newcode102 ...
4 years, 5 months ago (2016-06-30 02:24:36 UTC) #34
eroman
https://codereview.chromium.org/2102783003/diff/240001/components/policy/resources/policy_templates.json File components/policy/resources/policy_templates.json (right): https://codereview.chromium.org/2102783003/diff/240001/components/policy/resources/policy_templates.json#newcode7932 components/policy/resources/policy_templates.json:7932: 'name': 'CertificateTransparencyEnforcementDisabledForUrls', Why name this "Urls" rather than "Hosts" ...
4 years, 5 months ago (2016-06-30 02:31:56 UTC) #35
Ryan Sleevi
https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc#newcode86 components/certificate_transparency/ct_policy_manager.cc:86: base::Owned(excluded_hosts->CreateDeepCopy().release()))); On 2016/06/30 02:24:36, eroman wrote: > ditto Unfortunately, ...
4 years, 5 months ago (2016-06-30 02:39:44 UTC) #36
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102783003/260001
4 years, 5 months ago (2016-06-30 02:57:56 UTC) #38
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: chromeos_daisy_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_daisy_chromium_compile_only_ng/builds/161263)
4 years, 5 months ago (2016-06-30 03:13:47 UTC) #40
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102783003/280001
4 years, 5 months ago (2016-06-30 03:45:28 UTC) #42
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios-simulator-gn on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-gn/builds/29482)
4 years, 5 months ago (2016-06-30 04:49:59 UTC) #44
Peter Kasting
RS LGTM
4 years, 5 months ago (2016-06-30 06:19:51 UTC) #45
Ryan Sleevi
Missed Eric's remark about additional tests. https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc File components/certificate_transparency/ct_policy_manager.cc (right): https://codereview.chromium.org/2102783003/diff/140001/components/certificate_transparency/ct_policy_manager.cc#newcode196 components/certificate_transparency/ct_policy_manager.cc:196: conditions->push_back( On 2016/06/30 ...
4 years, 5 months ago (2016-06-30 07:42:33 UTC) #46
Ryan Sleevi
TBRing atwilson, since the files he owned he previously LGTM'd on https://codereview.chromium.org/2087743002/ (combined into this ...
4 years, 5 months ago (2016-06-30 07:46:47 UTC) #48
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/2102783003/300001
4 years, 5 months ago (2016-06-30 07:50:09 UTC) #51
commit-bot: I haz the power
Failed to apply the patch.
4 years, 5 months ago (2016-06-30 09:03:24 UTC) #53
commit-bot: I haz the power
Patchset 16 (id:??) landed as https://crrev.com/96356f8d5e565b402c85b3a4c4a58d58fb594dbd Cr-Commit-Position: refs/heads/master@{#403125}
4 years, 5 months ago (2016-06-30 09:03:33 UTC) #55
eroman
4 years, 5 months ago (2016-06-30 20:14:42 UTC) #56
Message was sent while issue was closed.
lgtm

Powered by Google App Engine
This is Rietveld 408576698