Index | FO152 |
---|---|
Title | TLS 1.0 and 1.1 are disabled by default |
Status | Approved |
Authors | Adrien Nader |
Type | Standard |
Created | 2024-01-12 |
Abstract
TLS 1.0 and 1.1 have been deprecated in 2021 by RFC 8996. This is about disabling them by default in Ubuntu across the full range of supported software.
Rationale
TLS 1.0 and 1.1 are now deprecated. There are several issues with these TLS versions and TLS 1.2 has been around since 2008. Many standards bodies, governmental agencies and non-governmental entities advise against using these deprecated versions.
Users do not typically change such settings. These versions are also not sensible default settings anymore. They can still be available but there is no point in enabling them by default.
In 2020, Ubuntu started disabling TLS 1.0 and 1.1 by default for these reasons. Coverage was partial however since full coverage is an arduous task.
Specification
A number of related protocols must not be enabled anymore for both server and client roles, unless users take extra steps to re-enable them. While this would ideally apply to every package in main and universe, we can only realistically guarantee this for packages in main.
This specification does not mandate patching out the code for these protocols.
Protocols
For the purpose of this specification, a forbidden protocol is:
- any SSL version,
- a TLS version before TLS 1.2 (i.e. TLS 1.0 and 1.1),
- a DTLS version before DTLS 1.2 (i.e. gnutls’ DTLS “0.9” and standard DTLS 1.0),
- any protocol based on TLS before TLS version 1.2
Servers
Using its default configuration or when users “enable TLS”, a service must not offer to use a forbidden protocol.
Clients
A client must not use a forbidden protocol without explicit additional user instructions.
Libraries
Since libraries are often where the forbidden protocols are implemented and handled, they should be configured to disable these protocols.
Annexes
Software this is relevant to
The lists below are best-effort because some software or packages have already been modified due to TLS 1.0 and 1.1 being deprecated for almost six years already.
Done
Openssl
Uses SECLEVEL=2 which disables the forbidden protocols (definition of SECLEVELs changes over openssl releases).
Gnutls
Forbids TLS 1.0, TLS 1.1, DTLS 0.9, DTLS 1.0.
In progress
Rabbitmq-server
Still enables TLS 1.0 and 1.1. Change of defaults is being worked on.
Future
No package identified yet.
Others
The list of packages that will have to be changed is not completely known and is probably provably impossible to know statically. It is however certainly very large and creating a full list is equivalent to implementing this specification: creating the list would therefore defeat the purpose of writing specifications before implementations. There are however a number of heuristics.
Software exposing or using TLS often uses openssl, gnutls or other libraries, either completely or partially. Moreover, server software often provides systemd service units. Apparmor profiles can also provide hints at the purpose of some packages based on access to paths such as /etc/ssl.
References
Security agencies and standards organizations
- NSA Cybersecurity Information - Eliminating Obsolete Transport Layer Security (TLS) Protocol Configurations
- NIST Guidelines for the Selection, Configuration, and Use of Transport Layer Security (TLS) Implementations
Other entities
Quoting https://en.wikipedia.org/wiki/Transport_Layer_Security :
« Support for TLS versions 1.0 and 1.1 was widely deprecated by web sites around 2020, disabling access to Firefox versions before 24 and Chromium-based browsers before 29.[39][40][41] »
This includes Mozilla, Google, Apple, Microsoft, Twitter, …
- Windows: TLS 1.0 and TLS 1.1 soon to be disabled in Windows
- macOS, iOS: TLS 1.0 and 1.1 deprecation update
Browser support
Quoting https://caniuse.com/?search=tls
-
While supported in older browsers, support for TLS 1.0 & 1.1 was removed in Chrome 84, Edge 84, Firefox 78, & Safari 14.
-
Firefox 78+ displays a full page dismissable warning the first time it connects over TLS 1.1
-
Chrome 85+ displays a full page dismissable warning every time a new site connects over TLS 1.1
NB: 98.45% of browsers support TLS 1.2 and the same share of browsers support TLS 1.1, indicating there is probably a complete overlap between the two, therefore no negative consequence to disabling TLS 1.1 in favor of TLS 1.2
Web server support
https://www.ssllabs.com/ssl-pulse/
99.9% of surveyed web servers support TLS 1.2
Spec History and Changelog
Please be thorough when recording changes and progress with the spec itself and the work resulting from it. Record every meeting, attendees and conclusions from the meeting.
Date | Status | Author(s) | Comment |
---|---|---|---|
2024-04-16 | Approved | Adrien Nader | |
2024-01-12 | Pending Review | Adrien Nader |