Skip to content

[ Breaking Change Request ] Switch to TLS 1.2 as minimum requirement #46875

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
a-siva opened this issue Aug 10, 2021 · 11 comments
Closed

[ Breaking Change Request ] Switch to TLS 1.2 as minimum requirement #46875

a-siva opened this issue Aug 10, 2021 · 11 comments
Labels
area-core-library SDK core library issues (core, async, ...); use area-vm or area-web for platform specific libraries. breaking-change-request This tracks requests for feedback on breaking changes library-io

Comments

@a-siva
Copy link
Contributor

a-siva commented Aug 10, 2021

Intended Behavior Change

Update the SecurityContext class in dart:io to set the minimum TLS protocol version to TLS1_2_VERSION instead of
TLS1_VERSION.

Motivation for this change : 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. 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.

Pull request: #41135
Code review: https://dart-review.googlesource.com/c/sdk/+/140481

Current Behavior

Currently, the dart:io library sets the minimum required TLS protocol version to TLS1_VERSION

Expected Impact

If there are servers that only support TLS 1.0 or TLS 1.1 and do not speak TLS 1.2 then existing client code that was able to communicate with these servers would get impacted.
Chrome has removed support for TLS 1.0 in Chrome 84 and we expect that most servers wouid have migrated away from TLS 1.0.

Mitigation

Code that only support TLS 1.0 would have to be migrated to support TLS 1.2

cc for review: @mit-mit @vsmenon @kevmoo @Hixie
FYI: @mraleph @mkustermann @rmacnak-google @sortie @aam @athomas

@a-siva a-siva added area-core-library SDK core library issues (core, async, ...); use area-vm or area-web for platform specific libraries. library-io breaking-change-request This tracks requests for feedback on breaking changes labels Aug 10, 2021
@mraleph
Copy link
Member

mraleph commented Aug 31, 2021

@mit-mit @vsmenon @kevmoo @Hixie ping for approval.

@mit-mit
Copy link
Member

mit-mit commented Aug 31, 2021

SGTM

@vsmenon
Copy link
Member

vsmenon commented Aug 31, 2021

lgtm

@vsmenon
Copy link
Member

vsmenon commented Aug 31, 2021

@devoncarew - how should we track these?

@devoncarew
Copy link
Member

I just reviewed our breaking change policy https://github.com/dart-lang/sdk/blob/master/docs/process/breaking-changes.md :)

It sounds like we're close to approval, although it would be good to get someone from Flutter to weigh in (@tvolkert, @Hixie, perhaps @goderbauer). It sounds this is a platform health thing.

We can start an email to [email protected] now I think (Siva?).

Once we have approval and it's landed, we should update the changelog. I think it would also be good to keep this issue open and in the milestone for the stable release, so we remember closer to the release date to prepare any necessary docs / faqs.

@devoncarew
Copy link
Member

Speculatively adding to the next stable milestone so we don't lose track.

@Hixie
Copy link
Contributor

Hixie commented Sep 1, 2021

lgtm though i'm sure i'm going to personally discover i have some server somewhere using TLS 1.0 and get really confused about why suddenly things stop working when i next update dart...

@tvolkert
Copy link
Contributor

tvolkert commented Sep 1, 2021

Given that I just had to rebuild an old server because Java client code stopped supporting TLS 1.0, this seems reasonable to me.

@devoncarew
Copy link
Member

Great! @a-siva, sounds like this is approved.

@mit-mit
Copy link
Member

mit-mit commented Oct 4, 2021

This has landed, and will be going out in Dart 2.15.

@mit-mit mit-mit closed this as completed Oct 4, 2021
@mit-mit
Copy link
Member

mit-mit commented Oct 4, 2021

Changelog update in https://dart-review.googlesource.com/c/sdk/+/215404

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-core-library SDK core library issues (core, async, ...); use area-vm or area-web for platform specific libraries. breaking-change-request This tracks requests for feedback on breaking changes library-io
Projects
None yet
Development

No branches or pull requests

7 participants