Log handshake messages from in NetLog |
|||
Issue descriptionIn TLS 1.3, most of the handshake is encrypted, which is great. But this means, once TLS 1.3 is widespread and we start needing to debug problems with it, net-internals logs will be pretty much opaque. There's SSLKEYLOGFILE, but asking users for that sounds absurd. Instead, register the message callback in BoringSSL and put them in NetLog when logging is enabled. This will only contain the handshake transcript, not any private key material. Even for TLS 1.2, it means we won't have to ask for tcpdumps or net logs with raw byte data for the cases where we just care about the handshake messages. (What extensions were negotiated, etc.) The one caveat here is client certificates, which we currently do not log. We may wish to redact the client Certificate message. (This would be easy enough to do. Though it does mean we can't check the CertificateVerify signature which I've done on occasion.) battre: Same question as with issue #674377, but I figure I ought to ask separately about this scenario. For people following the instructions at [0] and attaching logs for us in bug reports, should the client certificate message be included at the default level (where we do not redact URLs but do redact cookies and HTTP credentials)? Background info: This does not include the private key (needed to impersonate), but does contain the user's public key and also often things like a name, email, organization, etc. In TLS 1.2 this was, despite this, transmitted in plaintext anyway (sigh). TLS 1.3 fixes this and encrypts it. [0] https://dev.chromium.org/for-testers/providing-network-details
,
Dec 23 2016
Sounds good. That should be straightforward to do.
,
Feb 17 2017
https://codereview.chromium.org/2704623002/
,
Mar 22 2017
,
Apr 17 2017
,
Apr 19 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cef9e211832bf2d1f01f750296238fed28e416f0 commit cef9e211832bf2d1f01f750296238fed28e416f0 Author: davidben <davidben@chromium.org> Date: Wed Apr 19 15:00:10 2017 Add non-application-data SSL messages to NetLog. Right now we usually ask the reporter to give us a full byte-level log, but this unnecessarily leaks a lot of information. In TLS 1.2, these messages are all (save the Finished, which is not interesting) sent in the clear anyway. This also doesn't work for renegotiation which we've usually been blind for. In TLS 1.3, these messages are now encrypted, which means even our prior strategy wouldn't work. It's also somewhat silly to ask users for full byte logging when we're only interested in protocol-level information. Per the bug, Certificate messages we send (client certs) are filtered out unless full byte logging is enabled. BUG= 676353 Review-Url: https://codereview.chromium.org/2704623002 Cr-Commit-Position: refs/heads/master@{#465603} [modify] https://crrev.com/cef9e211832bf2d1f01f750296238fed28e416f0/net/log/net_log_event_type_list.h [modify] https://crrev.com/cef9e211832bf2d1f01f750296238fed28e416f0/net/socket/ssl_client_socket_impl.cc [modify] https://crrev.com/cef9e211832bf2d1f01f750296238fed28e416f0/net/socket/ssl_client_socket_impl.h
,
Apr 19 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by battre@chromium.org
, Dec 23 2016