New issue
Advanced search Search tips

Issue 620179 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug

Blocking:
issue 620178



Sign in to add a comment

Require Certificate Transparency status always be considered when establishing a socket

Project Member Reported by rsleevi@chromium.org, Jun 15 2016

Issue description

In order to support  Issue 620178 , all //net consumers establishing sockets should be required to affirmatively consider the CT status, by ensuring a CTVerifier and CTPolicyEvaluator are provided.

Downstream consumers of Chromium that intentionally do not intend to apply the mitigations described in  Issue 620178  can supply custom implementations that ignore CT information. By requiring (and enforcing with DCHECK) that all implementations consider CT, we can ensure consistent handling and application of policies.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 21 2016

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

commit d6de830088694ffab3218b77fa070084e88160ac
Author: rsleevi <rsleevi@chromium.org>
Date: Tue Jun 21 01:33:20 2016

Require a CTVerifier and CTPolicyEnforcer for TLS/QUIC sockets

In order to determine the trustworthiness of the connection, it's
necessary for sockets to consider policies regarding CT - both what
logs to trust and what policies to enforce. As this is critical to
security, make CTVerifier* and CTPolicyEnforcer* necessary, rather
than optional, for sockets. For normal URLRequestContexts, this
should be a no-op, while for those created via the
URLReqestContextBuilder, sane defaults will be provided.

BUG= 620179 

Review-Url: https://codereview.chromium.org/2067843003
Cr-Commit-Position: refs/heads/master@{#400870}

[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/chrome/browser/io_thread.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/chrome/browser/profiles/off_the_record_profile_io_data.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/chrome/browser/profiles/profile_impl_io_data.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/chrome/browser/profiles/profile_io_data.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/chromecast/browser/url_request_context_factory.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/chromecast/browser/url_request_context_factory.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/content/browser/renderer_host/pepper/pepper_tcp_socket_message_filter.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/content/browser/renderer_host/pepper/ssl_context_helper.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/content/browser/renderer_host/pepper/ssl_context_helper.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/content/shell/browser/shell_url_request_context_getter.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/extensions/browser/api/socket/socket_api.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/extensions/browser/api/socket/tls_socket.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/extensions/browser/api/socket/tls_socket.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/extensions/browser/api/sockets_tcp/sockets_tcp_api.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/google_apis/gcm/tools/mcs_probe.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/ios/crnet/crnet_environment.mm
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/ios/web/shell/shell_url_request_context_getter.mm
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/jingle/glue/proxy_resolving_client_socket.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/cert/ct_verifier.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/cert_net/cert_net_fetcher_impl_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/http/http_network_layer_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/http/http_network_session.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/http/http_network_session.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/http/http_network_transaction_ssl_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/http/http_response_body_drainer_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/http/http_stream_factory_impl_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/proxy/proxy_script_fetcher_impl_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/quic/crypto/proof_verifier_chromium.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/quic/crypto/proof_verifier_chromium_test.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/quic/quic_end_to_end_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/quic/quic_network_transaction_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/quic/quic_stream_factory_test.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/quic/test_tools/crypto_test_utils_chromium.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/socket/ssl_client_socket.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/socket/ssl_client_socket_impl.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/socket/ssl_client_socket_pool_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/socket/ssl_client_socket_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/socket/ssl_server_socket_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/spdy/spdy_test_util_common.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_context.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_context.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_context_builder.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_context_storage.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_context_storage.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_test_util.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_test_util.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/net/url_request/url_request_unittest.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/remoting/protocol/ssl_hmac_channel_authenticator.cc
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/remoting/protocol/ssl_hmac_channel_authenticator.h
[modify] https://crrev.com/d6de830088694ffab3218b77fa070084e88160ac/remoting/signaling/xmpp_signal_strategy.cc

Status: Verified (was: Started)
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 21 2016

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

commit 5e6deacd502aea944eaaa37ad51936ad877462af
Author: sdefresne <sdefresne@chromium.org>
Date: Tue Jun 21 11:53:37 2016

[iOS] Fix initialisation of net::URLRequestContext.

After https://codereview.chromium.org/2067843003, the factory method
net::URLRequestContextBuilder::SetHttpNetworkSessionComponents checks
that ct_policy_enforcer and cert_transparency_verifier are set but
did not fix all code path on iOS (as some of them are only excercised
by downstream tests).

So this CL move the ownership of net::CTPolicyVerifier to the globals
variable of IOSChromeIOThread (instead of leaking it) and correctly
pass this to the net::URLRequestContext created.

BUG= 620179 

Review-Url: https://codereview.chromium.org/2084723003
Cr-Commit-Position: refs/heads/master@{#400957}

[modify] https://crrev.com/5e6deacd502aea944eaaa37ad51936ad877462af/ios/chrome/browser/browser_state/chrome_browser_state_io_data.cc
[modify] https://crrev.com/5e6deacd502aea944eaaa37ad51936ad877462af/ios/chrome/browser/ios_chrome_io_thread.h
[modify] https://crrev.com/5e6deacd502aea944eaaa37ad51936ad877462af/ios/chrome/browser/ios_chrome_io_thread.mm

Sign in to add a comment