Deprecating TLS 1.0, TLS 1.1 and DTLS 1.0 in M81

1,251 views
Skip to first unread message

Benjamin Wright

unread,
Apr 9, 2019, 8:10:10 PM4/9/19
to discuss...@googlegroups.com


Chrome is planning to deprecate TLS 1.0 and TLS 1.1 in Chrome 81. To keep in line with this WebRTC will also be deprecating TLS 1.0, TLS 1.1 and DTLS 1.0 (based on TLS 1.1) in Chrome 81. This will impact users in the release channel in January 2020. You can keep up to date with the latest Chrome release timelines here.

We initially wanted to push this forward to Chrome 74, since by default WebRTC already uses (D)TLS 1.2. However, based on the feedback it is clear that some in the community need more time to update their systems, and so we have reverted this change from Chrome 74. You can track the WebRTC specific bug here.

Why are we doing this?
Modernizing Transport Security - TLS 1.2 was published ten years ago to address weaknesses in TLS 1.0 and 1.1 and has enjoyed wide adoption since then. Today only 0.5% of HTTPS connections made by Chrome use TLS 1.0 or 1.1. These old versions of TLS rely on MD5 and SHA-1, both now broken, and contain other flaws. TLS 1.0 is no longer PCI-DSS compliant and the TLS working group has adopted a document to deprecate TLS 1.0 and TLS 1.1”

In relation to DTLS 1.0, given that it is based on TLS 1.1, it makes sense to deprecate this at the same time. In addition, this article explains in greater detail the Lucky13 attack on CBC-mode encryption for TLS.  Removing DTLS 1.0 is also compliant with the ietf-rtcweb-security-arch RFC.

How will you be affected?
WebRTC in Chrome 81 will not allow downgrading to DTLS 1.0, TLS 1.0 or TLS 1.1. This means that a connection will not be able to be established and the connection will fail. Browser to browser communication will not be impacted, as all browsers are already using DTLS 1.2 by default. However, if you are using a MCU, SFU or any other media gateway, please validate that you support DTLS 1.2. If you are using BoringSSL/OpenSSL see SSL_CTX_set_max_proto_version and SSL_CTX_set_min_proto_version for more information.

How can you check if you are impacted?
This may vary based on how you implement your service but a good way to check is to verify that DTLS 1.2 shows up when you query for dtls in Wireshark. Lookout for a deprecation warning in a future release of Chrome.

Philipp Hancke

unread,
Apr 10, 2019, 3:35:25 AM4/10/19
to discuss...@googlegroups.com
is it still possible to force DTLS 1.2 through field trial command line flags? Thinking of Chrome instances running automated tests... where test failures would be good today.

--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CAJbOT%3DkYBzEkSCTuejX_Hs2PakTztpdapHD5xbgyLidvUOQohQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Benjamin Wright

unread,
Apr 10, 2019, 1:41:27 PM4/10/19
to discuss...@googlegroups.com
Hi Philipp, we can add in a WebRTC field trial that if present would specifically disable the soon to be deprecated cipher suites for testing purposes. I have filed a bug here:
https://bugs.chromium.org/p/webrtc/issues/detail?id=10539

Lennart Grahl

unread,
Apr 10, 2019, 1:59:54 PM4/10/19
to discuss-webrtc
Perhaps you also want to deprecate the 3DES cipher suite offered by Chrome in the list of DTLS cipher suites?

Benjamin Wright

unread,
Apr 10, 2019, 2:32:56 PM4/10/19
to discuss...@googlegroups.com
Hi Lennart. This is definitely on the radar but thanks for bringing it up.

I have added a comment directly to the master bug specifically regarding DTLS 1.2 cipher suites: https://bugs.chromium.org/p/webrtc/issues/detail?id=10261#c40 
I have filed a separate issue here to directly track the issue: https://bugs.chromium.org/p/webrtc/issues/detail?id=10540. Feel free to comment or cc yourself on that bug.

The webrtc-security-arch document is pretty specific about what support is required here:
"All Implementations MUST implement DTLS 1.2 with the TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 cipher suite and the P-256 curve [FIPS186]." So we will see what we can do.


--

---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.

Alexander Abagian

unread,
Apr 15, 2019, 9:40:17 PM4/15/19
to discuss-webrtc
Aren't you also going to remove SRTP/crypto support ?

Nils Ohlmeier

unread,
Nov 8, 2019, 11:48:10 AM11/8/19
to discuss-webrtc

On Tuesday, April 9, 2019 at 5:10:10 PM UTC-7, Benjamin Wright wrote:
How can you check if you are impacted?
This may vary based on how you implement your service but a good way to check is to verify that DTLS 1.2 shows up when you query for dtls in Wireshark. Lookout for a deprecation warning in a future release of Chrome.


Just as a warning as I spend some time to discover this: Wireshark will still show client hello with DTLS 1.0 in it. It's my current understanding that the client hello looks identical if a client only offers DTLS 1.2 (compared to an offer for DTLS 1.0 or 1.2). It's only when the server responds back with DTLS 1.0 only that the client side will bail.

Dubois, Sean

unread,
Nov 8, 2019, 1:11:23 PM11/8/19
to discuss...@googlegroups.com

It is annoying, I ran into this in the record layer as well (incorrectly set it to 1.2 and broke some things).

 

However in the handshake itself you can trust the Version field! Servers ‘should’ assert that it == 0xfefd

--


---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.

Harald Alvestrand

unread,
Nov 10, 2019, 9:21:58 AM11/10/19
to discuss...@googlegroups.com
I believe the story of the weird handshake is that SSL had the client propose a version, and the server would respond with that version or any lower version.
When the need was seen to stop using some versions, the client hello was extended to include a list of acceptable versions - but since the installed base didn't understand the new extension, the client had to send a single fixed value in the client hello - and that version is DTLS 1.0 (or TLS 1.0 for the TCP-based case).

A lot of protocols have weird stuff that can only be explained (or excused, or begged forgiveness for) by looking at the protocol's history.


Philipp Hancke

unread,
Jan 26, 2020, 2:10:22 PM1/26/20
to discuss...@googlegroups.com
Is M81 still the target? There was a note on blink-dev about doing so for TLS 1.0
Discord hadn't updated but since Mozilla knows how to talk to people that got fixed easily:

Philipp Hancke

unread,
Jul 30, 2020, 2:47:52 AM7/30/20
to discuss...@googlegroups.com
Reminder: while this hasn't happened yet, you can (and should) simulate this using
  "--force-fieldtrials="WebRTC-LegacyTlsProtocols/Disabled/"

gui...@webrtc.org

unread,
Oct 26, 2020, 7:36:43 AM10/26/20
to discuss-webrtc
Update: This is happening in M88.

Starting from M88, legacy TLS/DTLS versions will be disabled by default for WebRTC.
To enable these legacy protocols in Chrome 88 there are two choices:
1. Use   "--force-fieldtrials="WebRTC-LegacyTlsProtocols/Enabled/" from the command line.
2. Use the new WebRtcAllowLegacyTLSProtocols enterprise policy. Note that the policy is available since Chrome 87, but the legacy protocols will be disabled by default in Chrome 88.  

Reply all
Reply to author
Forward
0 new messages