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

Issue 3845005: Add support for restricting the cipher suites that SSLClientSocket(Mac,NSS) use (Closed)

Created:
10 years, 2 months ago by Ryan Sleevi
Modified:
9 years, 7 months ago
Reviewers:
agl, wtc
CC:
chromium-reviews, pam+watch_chromium.org, cbentzel+watch_chromium.org, darin-cc_chromium.org, Paweł Hajdan Jr.
Visibility:
Public.

Description

Add support for restricting the cipher suites that SSLClientSocket(Mac,NSS) use. Restricting SSLClientSocketWin is handled by the existing Windows system policy (which deals in algorithms, not cipher suites). R=wtc BUG=58831 TEST=SSLClientSocketTest.CipherSuiteDisables Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=65773

Patch Set 1 #

Total comments: 9

Patch Set 2 : Address feedback #

Total comments: 20

Patch Set 3 : Address wtc feedback #

Total comments: 4

Patch Set 4 : Rebase to trunk #

Patch Set 5 : Address wtc feedback #

Total comments: 2

Patch Set 6 : Upload before commit #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+242 lines, -53 lines) Patch
M net/base/ssl_config_service.h View 1 2 3 4 5 2 chunks +19 lines, -0 lines 2 comments Download
M net/base/ssl_config_service_mac.cc View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M net/base/ssl_config_service_win.cc View 1 2 3 1 chunk +7 lines, -0 lines 0 comments Download
M net/net.gyp View 3 1 chunk +2 lines, -0 lines 0 comments Download
M net/socket/ssl_client_socket_mac.cc View 1 2 3 4 8 chunks +76 lines, -31 lines 0 comments Download
M net/socket/ssl_client_socket_nss.cc View 1 2 3 4 3 chunks +9 lines, -22 lines 0 comments Download
M net/socket/ssl_client_socket_unittest.cc View 1 2 3 4 5 1 chunk +75 lines, -0 lines 0 comments Download
A net/socket/ssl_error_params.h View 1 chunk +28 lines, -0 lines 0 comments Download
A net/socket/ssl_error_params.cc View 3 4 5 1 chunk +24 lines, -0 lines 0 comments Download

Messages

Total messages: 12 (0 generated)
Ryan Sleevi
@wtc: Would you mind taking a look? I've implemented cipher suite selection as an opt-out, ...
10 years, 2 months ago (2010-10-17 19:37:15 UTC) #1
agl
http://codereview.chromium.org/3845005/diff/1/2 File net/base/ssl_config_service.h (right): http://codereview.chromium.org/3845005/diff/1/2#newcode37 net/base/ssl_config_service.h:37: std::set<uint16> disabled_cipher_suites; std::set is usually a RB tree, which ...
10 years, 2 months ago (2010-10-18 20:40:17 UTC) #2
wtc
http://codereview.chromium.org/3845005/diff/1/2 File net/base/ssl_config_service.h (right): http://codereview.chromium.org/3845005/diff/1/2#newcode37 net/base/ssl_config_service.h:37: std::set<uint16> disabled_cipher_suites; We should think about whether we should ...
10 years, 2 months ago (2010-10-19 01:04:24 UTC) #3
Ryan Sleevi
Thanks for the comments. I've tried to address everything in this CL. Also, apologies that ...
10 years, 2 months ago (2010-10-20 13:22:04 UTC) #4
wtc
LGTM. Please upload a new Patch Set before you check this in. I want to ...
10 years, 2 months ago (2010-10-25 23:45:04 UTC) #5
wtc
One minor question. http://codereview.chromium.org/3845005/diff/1/5 File net/socket/ssl_client_socket_mac.cc (right): http://codereview.chromium.org/3845005/diff/1/5#newcode204 net/socket/ssl_client_socket_mac.cc:204: case errSSLNegotiation: On 2010/10/17 19:37:16, rsleevi ...
10 years, 2 months ago (2010-10-25 23:48:13 UTC) #6
Ryan Sleevi
Thanks for reviewing. I've addressed all your feedback in the latest CL. As it depends ...
10 years, 2 months ago (2010-10-26 03:33:52 UTC) #7
wtc
LGTM. I suggest some changes. http://codereview.chromium.org/3845005/diff/20001/21005 File net/socket/ssl_client_socket_mac.cc (right): http://codereview.chromium.org/3845005/diff/20001/21005#newcode17 net/socket/ssl_client_socket_mac.cc:17: #include "base/values.h" You can ...
10 years, 1 month ago (2010-10-26 23:09:32 UTC) #8
Ryan Sleevi
wtc: I know you expressed concern separately as to the sorted list, I was hoping ...
10 years, 1 month ago (2010-11-07 23:16:18 UTC) #9
wtc
LGTM. I have a hard time reviewing this CL again in detail, so please check ...
10 years, 1 month ago (2010-11-10 00:43:37 UTC) #10
wtc
http://codereview.chromium.org/3845005/diff/53001/net/base/ssl_config_service.h File net/base/ssl_config_service.h (right): http://codereview.chromium.org/3845005/diff/53001/net/base/ssl_config_service.h#newcode51 net/base/ssl_config_service.h:51: std::vector<uint16> disabled_cipher_suites; I wonder if we should specify enabled_cipher_suites ...
10 years, 1 month ago (2010-11-11 22:04:42 UTC) #11
Ryan Sleevi
10 years, 1 month ago (2010-11-12 17:05:23 UTC) #12
http://codereview.chromium.org/3845005/diff/53001/net/base/ssl_config_service.h
File net/base/ssl_config_service.h (right):

http://codereview.chromium.org/3845005/diff/53001/net/base/ssl_config_service...
net/base/ssl_config_service.h:51: std::vector<uint16> disabled_cipher_suites;
Right, this is what I was trying to address in that first message.

With opt-in, if any new suite is introduced, it will be hampered by admins who
have it in their enable list. Further, it introduces confusion if/when an
algorithm is decided insecure, but it appears in the enable list - does the
overall Chromium-dictated policy of minimum security win, and it's disabled, or
does it's presence in the enable list really mean that they want to use it
(perhaps a legacy app?)

On the positive side, with opt-in, you can also easily express ordering
preferences (which is where the disconnect for Mac comes from - the API
expresses both enabled + cipher preference order)

With opt-out, it's less clear what will actually be enabled, because it's the
intersection of [NSS supported] - [Chromium disabled] - [policy disabled]. Both
[NSS supported] and [Chromium disabled] may change between releases, so there
isn't a good measure there. It also makes it complicated to express ordering
preferences for those ciphers that remain available.

On the positive side, with opt-out, you can be very surgical with what you're
disabling, rather than having to enumerate the dozens and dozens of cipher
suites that "may" be supported.

I was planning on implementing the policy next, but it sounds like there is
still some lingering concern about the design/implementation. I just want to
confirm you're comfortable enough with this design to continue with the opt-out,
with the possibility of changing it/adding an opt-in later (whitelist +
blacklist approach) if needed.

Powered by Google App Engine
This is Rietveld 408576698