New issue
Advanced search Search tips

Issue 848277 link

Starred by 4 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task



Sign in to add a comment

Unify Certificate, OCSP, and CT verification

Project Member Reported by rsleevi@chromium.org, May 31 2018

Issue description

Currently, the process of establishing a connection to a server goes through a state machine that:

1) Gathers relevant information from the peer (e.g. certificates, OCSP responses, CT information)
2) Verifies the certificate
  a. Construct the possible certificate chain(s), which may involve one or more network requests
  b. Evaluate the chain, also considering application-level overrides (passed in as verify flags from the SSLConfig) and application-level blacklists (CRLSets)
  c. Returns the 'best' chain and error information
3) Verifies the OCSP response
4) Extracts the SCTs and verifies the signatures on those SCTs to match with known logs
5) Evaluates whether or not any policy overrides exist for CT policy
6) Evaluates the set of SCTs provided to determine compliance with CT policy

Along with several other related steps, which include HSTS, HPKP, Expect-CT, and Expect-Staple policies.

When pooling connections, we do something 'similar', in which presuming a valid certificate, we extract the set of hostnames, and make sure that the Expect-CT, Expect-Staple, and other policies are 'consistent' with the existing connection.

This means that there's some duplication of state machine (including reordering) between TLS and QUIC, there's duplication in the HTTP/2 pooling logic, and it's duplicative of work for Signed Exchanges. Further, the work for the pooling logic doesn't for some scenarios (e.g. Issue 622142)
 

Comment 1 by kinuko@chromium.org, May 31 2018

Cc: kinuko@chromium.org
Cc: ksakamoto@chromium.org
Blocking: 828447
Blocking: -828447
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90

commit 84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90
Author: Ryan Sleevi <rsleevi@chromium.org>
Date: Wed Aug 15 18:17:49 2018

Introduce explicit configuration to CertVerifier

Presently, CertVerifier::Verify() takes a series of per-verification
flags that express the ways in which certificate verification may be
configured. However, these flags represent overall verifier-wide
configuration, in that they are tied to user preferences or enterprise
policies. These flags are plumbed through the layers by virtue of
SSLConfig, but generally do not change between verifications.

As part of making the verification configuration opaque to callers,
move the flags from being something passed in each verifier-call to
something that is implicitly handled on the CertVerifier, via the
CertVerifier::Config. All verifications started will share the same
configuration, while allowing callers to focus on the per-verification
parameters that are unique (such as the hostname or certificate).
This sets the stage for moving the CRLSet in as explicit CertVerifier
configuration, rather than passed-per-call, as well as to having the
socket pools more intelligently respond to these configuration changes.

TBR: zea@chromium.org, pmarko@chromium.org
Bug: 848277,  854635 
Cq-Include-Trybots: luci.chromium.try:linux_mojo;master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I2098783f1c4100720438e2dea447a24789ebf8c9
Reviewed-on: https://chromium-review.googlesource.com/1122709
Commit-Queue: Ryan Sleevi <rsleevi@chromium.org>
Reviewed-by: Nicolas Zea <zea@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583329}
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/android_webview/DEPS
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/android_webview/browser/net/aw_url_request_context_getter.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/chromeos/policy/policy_cert_verifier.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/chromeos/policy/policy_cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/io_thread.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/net/trial_comparison_cert_verifier.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/net/trial_comparison_cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/net/trial_comparison_cert_verifier_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/ssl/certificate_error_report.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/ssl/certificate_error_report.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/ssl/common_name_mismatch_handler.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/ssl/ssl_config_service_manager_pref.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/components/captive_portal/captive_portal_detector.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/components/cast_channel/cast_socket.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/content/browser/web_package/signed_exchange_handler.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/content/browser/web_package/signed_exchange_handler_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/google_apis/gcm/tools/mcs_probe.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/BUILD.gn
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/base/load_flags_list.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/caching_cert_verifier.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/caching_cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verifier.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verifier_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc_builtin.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc_mac.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc_nss.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/cert_verify_proc_win.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/mock_cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/multi_threaded_cert_verifier.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/multi_threaded_cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/cert/multi_threaded_cert_verifier_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/data/ssl/certificates/README
[add] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/data/ssl/certificates/www.ahrn.com.pem
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/http/http_network_transaction.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/http/http_stream_factory_job.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/proxy_resolution/pac_file_fetcher_impl.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/quic/crypto/proof_verifier_chromium_test.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/ssl/ssl_config.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/ssl/ssl_config.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/ssl/ssl_config_service.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/ssl/ssl_config_service.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/ssl/ssl_config_service_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/ssl/ssl_config_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/net/url_request/url_request_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/remoting/protocol/ssl_hmac_channel_authenticator.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/BUILD.gn
[add] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/cert_verifier_config_type_converter.cc
[add] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/cert_verifier_config_type_converter.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/ignore_errors_cert_verifier.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/ignore_errors_cert_verifier.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/network_context.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/ssl_config_service_mojo.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/ssl_config_service_mojo.h
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/ssl_config_service_mojo_unittest.cc
[modify] https://crrev.com/84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90/services/network/ssl_config_type_converter.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/59b29ea781de1d90d967842d22c1c8ee616c121e

commit 59b29ea781de1d90d967842d22c1c8ee616c121e
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Thu Aug 16 00:35:12 2018

Revert "Introduce explicit configuration to CertVerifier"

This reverts commit 84083630b321a14f7f56ec3f9f4d2bfcaf3b7a90.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 583329 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzg0MDgzNjMwYjMyMWExNGY3ZjU2ZWMzZjlmNGQyYmZjYWYzYjdhOTAM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20MSan%20Tests/11204

Sample Failed Step: unit_tests

Original change's description:
> Introduce explicit configuration to CertVerifier
> 
> Presently, CertVerifier::Verify() takes a series of per-verification
> flags that express the ways in which certificate verification may be
> configured. However, these flags represent overall verifier-wide
> configuration, in that they are tied to user preferences or enterprise
> policies. These flags are plumbed through the layers by virtue of
> SSLConfig, but generally do not change between verifications.
> 
> As part of making the verification configuration opaque to callers,
> move the flags from being something passed in each verifier-call to
> something that is implicitly handled on the CertVerifier, via the
> CertVerifier::Config. All verifications started will share the same
> configuration, while allowing callers to focus on the per-verification
> parameters that are unique (such as the hostname or certificate).
> This sets the stage for moving the CRLSet in as explicit CertVerifier
> configuration, rather than passed-per-call, as well as to having the
> socket pools more intelligently respond to these configuration changes.
> 
> TBR: zea@chromium.org, pmarko@chromium.org
> Bug: 848277,  854635 
> Cq-Include-Trybots: luci.chromium.try:linux_mojo;master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
> Change-Id: I2098783f1c4100720438e2dea447a24789ebf8c9
> Reviewed-on: https://chromium-review.googlesource.com/1122709
> Commit-Queue: Ryan Sleevi <rsleevi@chromium.org>
> Reviewed-by: Nicolas Zea <zea@chromium.org>
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Matt Menke <mmenke@chromium.org>
> Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
> Reviewed-by: Richard Coles <torne@chromium.org>
> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
> Reviewed-by: Eric Roman <eroman@chromium.org>
> Reviewed-by: Helen Li <xunjieli@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#583329}

Change-Id: I66ddbb6fa85d604bc1fa177f5657008a5e8f0fe5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 848277,  854635 
Cq-Include-Trybots: luci.chromium.try:linux_mojo;master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Reviewed-on: https://chromium-review.googlesource.com/1176763
Cr-Commit-Position: refs/heads/master@{#583463}
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/android_webview/DEPS
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/android_webview/browser/net/aw_url_request_context_getter.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/chromeos/policy/policy_cert_verifier.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/chromeos/policy/policy_cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/io_thread.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/net/trial_comparison_cert_verifier.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/net/trial_comparison_cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/net/trial_comparison_cert_verifier_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/ssl/certificate_error_report.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/ssl/certificate_error_report.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/ssl/common_name_mismatch_handler.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/ssl/ssl_config_service_manager_pref.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/components/captive_portal/captive_portal_detector.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/components/cast_channel/cast_socket.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/content/browser/web_package/signed_exchange_handler.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/content/browser/web_package/signed_exchange_handler_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/google_apis/gcm/tools/mcs_probe.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/BUILD.gn
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/base/load_flags_list.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/caching_cert_verifier.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/caching_cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verifier.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verifier_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc_builtin.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc_mac.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc_nss.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/cert_verify_proc_win.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/mock_cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/multi_threaded_cert_verifier.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/multi_threaded_cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/cert/multi_threaded_cert_verifier_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/data/ssl/certificates/README
[delete] https://crrev.com/2fcd0208b3f849c13d52a89ec357eb25793032cc/net/data/ssl/certificates/www.ahrn.com.pem
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/http/http_network_transaction.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/http/http_stream_factory_job.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/proxy_resolution/pac_file_fetcher_impl.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/quic/crypto/proof_verifier_chromium_test.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/ssl/ssl_config.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/ssl/ssl_config.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/ssl/ssl_config_service.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/ssl/ssl_config_service.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/ssl/ssl_config_service_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/ssl/ssl_config_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/net/url_request/url_request_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/remoting/protocol/ssl_hmac_channel_authenticator.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/BUILD.gn
[delete] https://crrev.com/2fcd0208b3f849c13d52a89ec357eb25793032cc/services/network/cert_verifier_config_type_converter.cc
[delete] https://crrev.com/2fcd0208b3f849c13d52a89ec357eb25793032cc/services/network/cert_verifier_config_type_converter.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/ignore_errors_cert_verifier.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/ignore_errors_cert_verifier.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/network_context.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/ssl_config_service_mojo.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/ssl_config_service_mojo.h
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/ssl_config_service_mojo_unittest.cc
[modify] https://crrev.com/59b29ea781de1d90d967842d22c1c8ee616c121e/services/network/ssl_config_type_converter.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24fe268fd13ed59f189c7cd688e472adb7489fe9

commit 24fe268fd13ed59f189c7cd688e472adb7489fe9
Author: Ryan Sleevi <rsleevi@chromium.org>
Date: Thu Aug 16 21:33:46 2018

Introduce explicit configuration to CertVerifier

Presently, CertVerifier::Verify() takes a series of per-verification
flags that express the ways in which certificate verification may be
configured. However, these flags represent overall verifier-wide
configuration, in that they are tied to user preferences or enterprise
policies. These flags are plumbed through the layers by virtue of
SSLConfig, but generally do not change between verifications.

As part of making the verification configuration opaque to callers,
move the flags from being something passed in each verifier-call to
something that is implicitly handled on the CertVerifier, via the
CertVerifier::Config. All verifications started will share the same
configuration, while allowing callers to focus on the per-verification
parameters that are unique (such as the hostname or certificate).
This sets the stage for moving the CRLSet in as explicit CertVerifier
configuration, rather than passed-per-call, as well as to having the
socket pools more intelligently respond to these configuration changes.

Originally landed in https://chromium-review.googlesource.com/c/chromium/src/+/1122709

TBR: zea@chromium.org, kinuko@chromium.org, torne@chromium.org, mfoltz@chromium.org, sergeyu@chromium.org, xunjieli@chromium.org, pmarko@chromium.org
Bug: 848277,  854635 
Change-Id: Ie113be88c88d86a5abbff200aa623b97bca461a3
Cq-Include-Trybots: luci.chromium.try:linux_mojo;master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.mac:ios-simulator-cronet
Reviewed-on: https://chromium-review.googlesource.com/1177801
Commit-Queue: Ryan Sleevi <rsleevi@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583823}
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/android_webview/DEPS
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/android_webview/browser/net/aw_url_request_context_getter.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/chromeos/policy/policy_cert_verifier.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/chromeos/policy/policy_cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/io_thread.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/net/trial_comparison_cert_verifier.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/net/trial_comparison_cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/net/trial_comparison_cert_verifier_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/ssl/certificate_error_report.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/ssl/certificate_error_report.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/ssl/common_name_mismatch_handler.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/ssl/ssl_config_service_manager_pref.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/components/captive_portal/captive_portal_detector.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/components/cast_channel/cast_socket.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/components/cronet/ios/Cronet.mm
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/content/browser/web_package/signed_exchange_handler.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/content/browser/web_package/signed_exchange_handler_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/google_apis/gcm/tools/mcs_probe.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/BUILD.gn
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/base/load_flags_list.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/caching_cert_verifier.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/caching_cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verifier.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verifier_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc_builtin.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc_mac.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc_nss.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/cert_verify_proc_win.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/mock_cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/multi_threaded_cert_verifier.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/multi_threaded_cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/cert/multi_threaded_cert_verifier_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/data/ssl/certificates/README
[add] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/data/ssl/certificates/www.ahrn.com.pem
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/http/http_network_transaction.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/http/http_stream_factory_job.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/proxy_resolution/pac_file_fetcher_impl.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/quic/crypto/proof_verifier_chromium_test.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/ssl/ssl_config.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/ssl/ssl_config.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/ssl/ssl_config_service.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/ssl/ssl_config_service.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/ssl/ssl_config_service_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/ssl/ssl_config_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/net/url_request/url_request_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/remoting/protocol/ssl_hmac_channel_authenticator.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/BUILD.gn
[add] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/cert_verifier_config_type_converter.cc
[add] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/cert_verifier_config_type_converter.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/ignore_errors_cert_verifier.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/ignore_errors_cert_verifier.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/network_context.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/ssl_config_service_mojo.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/ssl_config_service_mojo.h
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/ssl_config_service_mojo_unittest.cc
[modify] https://crrev.com/24fe268fd13ed59f189c7cd688e472adb7489fe9/services/network/ssl_config_type_converter.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/73bdca66c203a89fbffb99c85e632184375071f1

commit 73bdca66c203a89fbffb99c85e632184375071f1
Author: Ryan Sleevi <rsleevi@chromium.org>
Date: Wed Aug 22 16:34:23 2018

Move additional_trust_anchors to CertVerifier::Config

The set of additional trust anchors (read: Enterprise-configured
trust) presently is passed as a parameter to the
CertVerifier::Verify() call, except it is logically part of the
system configuration. As it does not vary between calls, move it
to the CertVerifier::Config and update the PolicyCertVerifier to
pass this as part of the config.

Bug: 848277,  862043 
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: Ibeb084cf05411a1055f0fcfc5e6e987a96eb03e9
Reviewed-on: https://chromium-review.googlesource.com/1167472
Commit-Queue: Ryan Sleevi <rsleevi@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Pavol Marko <pmarko@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Reviewed-by: Maksim Ivanov <emaxx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#585058}
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/chromeos/login/users/multi_profile_user_controller_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/chromeos/policy/policy_cert_verifier.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/chromeos/policy/policy_cert_verifier.h
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/chromeos/policy/policy_cert_verifier_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/chromeos/policy/user_network_configuration_updater_factory_browsertest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/extensions/api/platform_keys/verify_trust_api.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/net/trial_comparison_cert_verifier.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/chrome/browser/net/trial_comparison_cert_verifier_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/content/browser/web_package/signed_exchange_handler.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert/caching_cert_verifier_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert/cert_verifier.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert/cert_verifier.h
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert/cert_verifier_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert/multi_threaded_cert_verifier.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert/multi_threaded_cert_verifier_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/cert_net/nss_ocsp_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/quic/crypto/proof_verifier_chromium.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/net/socket/ssl_client_socket_impl.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/services/network/ignore_errors_cert_verifier_unittest.cc
[modify] https://crrev.com/73bdca66c203a89fbffb99c85e632184375071f1/services/network/ssl_config_service_mojo_unittest.cc

Sign in to add a comment