IT Security Guidelines TLS
IT Security Guidelines TLS
Contents
Appendix D – Glossary 26
References29
5 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Introduction
These guidelines are intended as advice during procurement, To aid in the choice of a configuration, the settings for the options
set-up or review of configurations of the Transport Layer Security available in TLS are divided in four security levels.
protocol (TLS) on servers. TLS is the most popular protocol to - A setting that is Insufficient should not be chosen. TLS
secure connections on the Internet. configurations that contain these settings are not secure.
- A Phase out setting is known to be fragile with respect to
evolving attack techniques and merely provides a slim security
Purpose margin. This places them at risk of becoming Insufficient in the
near future. For some applications, Phase out settings are (still)
These guidelines do not contain step-by-step instructions for the needed to support very old clients. The use of these settings
configuration of TLS.1 Nevertheless, they are technical in nature. should be subject to written deprecation conditions that
This publication helps an organisation choose between all possible schedule their removal.
configurations of TLS to arrive at a secure configuration. An - If a setting is Sufficient, it ‘does the job’ for the time being. It is
administrator or supplier then applies this configuration. possible to use such a setting in a secure TLS configuration.
Many Sufficient settings are required for compatibility with
older client systems.
Use for procurement - The most secure and future-proof settings are Good. If you have
the freedom to choose which settings you support, then only
Organisations that procure IT systems can refer to this publication use Good settings.
when stating their requirements. A supplier is thus asked to supply
and maintain a secure TLS configuration by conforming to the New or improved attack techniques periodically appear for TLS.
guidelines in this publication. These attack techniques usually concern Phase out or Sufficient
settings. A setting rendered insecure by an attack technique will
lose its status as Phase out, Sufficient or Good. If that happens an
Level of security addendum to these guidelines will be published. For further
details, see the appendix Changes to the guidelines.
Deciding on the right TLS configuration is ultimately each
organisation’s prerogative. It is a complex job. Each option requires Good settings are likely to be more future-proof than Sufficient
a choice between the available alternatives, where often many settings. Even so, there are no guarantees. Moreover, no single TLS
exist. Security plays a role here, but so does compatibility with configuration remains secure forever. Even TLS configurations
software of customers or end users. The guidelines in this consisting only of Good settings will need updates at some point.
publication help navigate this effort. This is the case when Good settings become Insufficient.
The words ‘insufficient’, ‘phase out’, ‘sufficient’ and ‘good’ have a
meaning in regular use. To distinguish these uses, they are
displayed in a different font throughout this publication when
referring to a security level.
1 The book ‘Bulletproof SSL and TLS’ by Ivan Ristic (ISBN 978-
1907117046) offers step-by-step instructions on the configuration of various
software for the secure use of TLS, in addition to extensive background
information. Mozilla offers configuration examples for popular web server
software on its wiki https://wiki.mozilla.org/Security/Server_Side_TLS. The
website https://bettercrypto.org/ also offers step-by-step instructions. Note
that these resources may not yet be up to date with the introduction of TLS
1.3 and that the advice in these publications differs slightly from the advice in
this document.
6 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Outline References
The core of these guidelines consists of the chapters Usage guidance, This publication makes use of multiple styles of references:
Guidelines and Versions, algorithms and options. The chapter Usage - Guidelines are numbered, say B2-1, and are found in the chapter
guidance is aimed at people that need to create their own secure TLS Guidelines.
configuration. It offers guidance to arrive at a secure configura- - Technical terms are not always introduced upon first use. If a
tion. The chapter Guidelines is meant for people who judge TLS term is marked in this way, then it can be found in the Glossary at
configurations, such as auditors. This may include configurations the back.
on paper or in practice. The chapter Versions, algorithms and options - To supply background information, footnotes2 are used.
lists relevant TLS options. It describes secure settings for every - The support for the advice provided is based on the References
option listed. Other chapters regularly refer to the chapter Versions, that can be found in the back. If a particular reference supports
algorithms and options for details. an advice, it is shown in the following manner: (1)
2 In this manner.
7 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Transport Layer Security (TLS) is a protocol for the establishment In every example, use of TLS ensures that the data sent cannot be
and use of a cryptographically secured connection between two seen or modified by others in transit. Because sensitivity is
computer systems, a client and a server. After establishing a secure user-dependent, encrypted communication (and TLS) have
connection with the TLS protocol, applications can use the become the norm, rather than the exception in many contexts.
connection to exchange data between the client and the server.
TLS is applied in a large number of contexts. Well known examples TLS only protects the contents of the communication. Information
include web traffic (https), e-mail traffic (IMAP and SMTP after about the data transport is not protected. In this aspect, TLS differs
STARTTLS) and certain types of virtual private networks (VPN). from IPsec. TLS works on the transport layer. IPsec works on the
internet layer.7
Why TLS?
There are currently seven different versions of TLS. Three carry its
TLS protects the communication between client and server. old name: Secure Sockets Layer (SSL) 1.0, 2.0 and 3.0. These were
The protection of communication is important when sensitive developed by Netscape. Then came TLS 1.0, 1.1, 1.2 and 1.3. These
information is sent over a connection. Information can be were standardized by the Internet Engineering Task Force (IETF).
sensitive due to confidentiality (say login credentials) and due to The IETF maintains TLS as an open standard. The most recent
integrity (say a financial transaction). version of TLS is 1.3.8
In some cases, the use of encrypted connections is obligatory.
This obligation can flow from an organization’s policy, but also A client or server can support multiple versions of TLS.
from law or regulation: The individual versions are not compatible. Every version has its
• The Dutch Standards Forum’s “comply or explain” regime own options, for example in bulk encryption, authentication and
requires use of TLS for communication between parts of the key exchange.
Dutch government, such as the secure exchange of e-mail.3 Use
of HTTPS will become mandatory for all government websites.4
• The PCI Data Security Standard (PCI DSS) is a payment industry How TLS works
policy that requires the use of encrypted transmission of
cardholder data over open, public networks.5 A connection between a client and server secured by TLS is called a
• The Dutch Data Protection Authority (Autoriteit Persoons TLS session. A TLS session consists of two phases: the handshake
gegevens) requires the use of HTTPS on websites that collect phase and the application phase. During the handshake, the client
personal data.6 This requirement flows from the General Data and server agree on the way the TLS session is established. The
Protection Regulation. following are examples of matters that need to be agreed upon
during the handshake:
3 (Dutch) https://www.forumstandaardisatie.nl/standaard/tls. - What version of TLS will be used?
4 (Dutch) https://www.rijksoverheid.nl/ministeries/ - What key will be used to exchange further data and how will it
ministerie-van-binnenlandse-zaken-en-koninkrijksrelaties/
documenten/kamerstukken/2018/10/16/ 7 The transport layer and the internet layer are part of the internet
kamerbrief-over-verhogen-informatieveiligheid-bij-de-overheid protocol suite, a model to describe network traffic. This model is
5 PCI-DSS v3.2.1, Req. 4, see https://www.pcisecuritystandards.org described in RFC 1122, available at https://datatracker.ietf.org/doc/
6 (Dutch) https://autoriteitpersoonsgegevens.nl/nl/onderwerpen/ rfc1122/.
beveiliging/beveiliging-van-persoonsgegevens#moet-ik-altijd-https- 8 The specification of TLS 1.3 is documented in RFC 8446, available at
gebruiken-voor-mijn-website-6069 https://datatracker.ietf.org/doc/rfc8446/.
8 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
be chosen (key exchange)? Ask the supplier of your chosen TLS library (or the vendor that
- Which certificate will the server use to prove its identity to the embeds it) about the following topics to get a rough understanding
client? of its dependability. Does your chosen TLS software library:
- Will the client present a certificate? If so, which? - document how to report security vulnerabilities?
- What cipher suite will be used to encrypt data during the - have developers that have access to enough resources to provide
application phase? (security) support?
- have a good track record of responding to past attacks on TLS or
The handshake is started by the client. During the handshake, the vulnerabilities in its implementation in the library?
client and server negotiate four cryptographic algorithms, one - make their security-updates known to their users and distinct
algorithm for key exchange, one algorithm for digital signatures, from feature updates?
one algorithm for bulk encryption and an algorithm for hashing. - get audited or independently reviewed?
In these guidelines, this set of four algorithms is called an - use constant time implementations to harden against attacks
algorithm selection. 9 Then, the client verifies the authenticity of based on timing side channels?
the certificate that the server provides. If the client offers a
certificate to the server, its authenticity is verified by the server.10 The NCSC advises to make conscious choices on the use of TLS
libraries:
After the handshake phase completes, the application phase starts. - Always use the most recent version of your chosen TLS library.
During the application phase, the TLS session is available as a This gives its creators the most time to fix vulnerabilities.
secure tunnel for data transfer. Applications can use this tunnel to - Choose only settings that are necessary to meet business
send their traffic between client and server. Applications do not requirements. This way, bugs in non-necessary functionality
have to concern themselves with the inner working of this tunnel: will not lead to system vulnerabilities. The chapter Usage
they can trust it as an abstract communications channel that guidance helps with this selection.
guarantees confidentiality and integrity of information.
9 See the callout Changed meaning of cipher suite in TLS 1.3 in the chapter
Guidelines for the reason behind this naming convention.
10 Note that TLS versions prior to TLS 1.3 do not fully encrypt the
information exchanged during the handshake. This affects client
certificates, which are sent unencrypted.
11 https://www.openssl.org/
12 https://docs.microsoft.com/en-us/windows/desktop/secauthn/
secure-channel
13 https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
14 https://tls.mbed.org/
9 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
2 Usage guidance
5. Does the server lack support for a Good setting that clients Step by step
support? You have three options: 1. Make an inventory of the types of clients that (need to) make
a. Replace the clients by a type that does support Good settings connections to the server.17 This is a requirement that is usually
for this option. determined in consultation with the business owner.
b. Replace the server by a type that does support Good settings a. Make the trade-off visible: the value of compatibility versus
for this option. the risk and associated support cost of increasingly fragile
c. Choose a Sufficient setting for this option that is supported configurations.Make an inventory of the available TLS
by both clients and server. options that are available on the server.
6. Does the server lack support for a Good and Sufficient setting 2. Choose Good and Sufficient TLS-versions for the server.
that clients support? You have three options: 3. Choose Good and Sufficient algorithms for the server. Support
a. Replace the clients by a type that does support (other) Good a broad range of Sufficient algorithms. These are often required
or Sufficient settings for this option. for compatibility with older clients. Do not support more
b. Replace the server by a type that does support Good or Sufficient algorithms than required for compatibility.
Sufficient settings for this option. 4. Choose Sufficient lengths of keys. Choose Good lengths
c. Choose a Phase out setting for this option that is supported instead if you are sure that all clients support these.
by both clients and server. This option is least preferred, 5. Choose Good elliptic curves for the server. Do you have reasons
because it comes with additional risk and is the least to assume that not every client supports these? Then also
future-proof of all available configurations. choose Sufficient elliptic curves. Do not support more curves
7. Configure the server with the chosen configurations. The TLS than required for compatibility.
configuration is part of the software that uses the TLS connec- 6. Some old clients do not support elliptic curves. Do you need to
tion. For example, if you want to offer HTTPS then TLS is support these clients? Then select Sufficient finite field groups.
configured as part of the web server software. Do not support more finite field groups than necessary for
8. Test to establish that this configuration works for all types of compatibility.
clients. Do you run into any compatibility issues? Then go back 7. Configure the server with the chosen configurations. The
to step 5. TLS configuration is part of the software that uses the TLS
9. Document the selected settings. Spend time on at least the connection. For example, if you want to offer HTTPS then
following: TLS is configured as part of the web server software.
a. Choose and document conditions for scheduled removal of 8. Think about the software that clients will use to connect.
any Phase out settings that have been chosen. See Scheduling Test whether clients using this software can connect.
removal of phase out configurations in the chapter Guidelines for 9. Are you having compatibility problems?18 Track down which
examples of clear conditions. options cause these problems.
b. Document the reasons for choosing Sufficient instead of a. Usually these problems can be solved by exchanging or
Good settings. supplementing Good settings with Sufficient settings.
b. If the inventory created in steps 1 and 9 includes very old
client software, you may need to temporarily include Phase
Scenario 2: out settings in your configuration. Phase out settingss are
known to be fragile with respect to evolving attack
Only control over the server techniques and merely provide a slim security margin.
Do not support more Phase out algorithms than required for
In other situations, the entity with control over the configuration compatibility.
of the server does not control the configuration of (all) clients that 11. Choose and document clear criteria for the scheduled removal
connect to the server.16 An example is a web server serving a public of any Phase out settings that have been chosen. See Scheduling
website. The NCSC advises to use Good settings and to complement removal of phase out configurations in the chapter Guidelines for
these with Sufficient settings in this scenario. In some deploy- examples of clear conditions. If removal impacts the require-
ments, it may be necessary to include Phase out settings while ment defined in step 1, this will usually involve consultation
clients transition away from these less secure configurations. In with the business owner.
the chapter Versions, algorithms and options you can find which
settings that are respectively Good, Sufficient and Phase out.
3 Guidelines
In the guidelines, repeated references are made to configurations Examples of these algorithms include:
that are Good, Sufficient or Phase out. All configurations refer- - Certificate verification: RSA, ECDSA, etc.
enced can be found in the chapter Versions, Algorithms and Options. - Key exchange: ECDHE, DHE, RSA, etc.
- Bulk encryption: AES-GCM, ChaCha20-Poly1305, etc.
- Hashing: SHA-1, SHA-256, etc.
Versions
Changed meaning of cipher suite in TLS 1.3
Recent versions of TLS are more secure than older versions. The
older versions of TLS contain vulnerabilities that cannot be The first version of these guidelines used the term cipher suite
repaired. These must therefore be avoided. A TLS configuration can instead of algorithm selection. We changed our use of terminol-
support more than one version. ogy to stay in step with a change in TLS 1.3.
Number Guideline A cipher suite up until TLS 1.2 included the algorithms for key
exchange and digital signatures. Most of the resulting hundreds of
B1-1 All supported versions of TLS are Good, Sufficient or
combinations are listed in the protocol registry.
Phase out
See Chapter 4 – Versions, algorithms and options, Table 1 – Versions To avoid this naming explosion, cipher suites in TLS 1.3 only
contain the algorithms used for bulk encryption and hashing.
Algorithm selections Figure 1 shows the changed cipher suite notation in TLS 1.2 and
TLS 1.3.
For each connection, the client and server negotiate the use of four
cryptographic algorithms. One algorithm for key exchange, one
algorithm for digital signatures in certificate verification, one To set up a connection, TLS negotiates the use of an algorithm for
algorithm for bulk encryption and one algorithm for hashing. We each of these purposes. There are hundreds of valid combinations
will refer to a set of four selected cryptographic algorithms as an available. A TLS configuration can support multiple algorithm
algorithm selection. The pair of cryptographic algorithms for bulk selections.
encryption and hashing are known as a cipher suite and are used
for record protection.
Figure 1 – Cipher suite notation in TLS 1.2 and TLS 1.3. The colours indicate the different algorithms and their purpose.
In TLS 1.3, the cryptographic algorithms for key exchange and certificate verification are no longer considered part of the cipher suite.
13 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
B2-1 All supported algorithm selections contain a Good, B3-4 If the supplied certificate is not directly signed by a root CA,
Sufficient or Phase out algorithm for certificate verifica- the server offers intermediate CA certificates that
tion. authenticate the path between the root CA and the supplied
certificate.
See Chapter 4 – Versions, algorithms and options,
Table 2 – Algorithms for certificate verification.
TLS allows the server to prove its identity using an X.509 certificate.
The client can only establish through a certificate that it communi-
cates with the server and not a third party intending to listen in or Elliptic curves
manipulate its communication. Acquiring and managing certifi-
cates is not part of these guidelines. See the section Management of Computations with elliptic curves are said to happen ‘on’ an elliptic
certificates in the appendix Further considerations for pointers. curve. The curve is the context for the computation. For secure
communication, the choice of a suitable curve is necessary. Not
Number Guideline every curve offers the same security.
B9-1 The settings for 0-RTT are Good, Sufficient or Phase out.
Computations with finite fields are said to happen ‘in’ a finite field.
The finite field is the context for the computation. For secure See Chapter 4 – Versions, algorithms and options, Table 14 – 0-RTT.
computation, the choice of a suitable finite field is necessary.
Not every finite field offers the same security, interoperability or
efficiency. Scheduling removal of Phase out
Number Guideline
configurations
B6-1 All finite fields used are Good, Sufficient or Phase out.
Phase out settings are known to be fragile with respect to evolving
See Chapter 4 – Versions, algorithms and options, attack techniques. They provide a slim security margin relative to
Table 10 – Supported finite field groups. their Sufficient or Good counterparts. They are at a higher risk of
becoming Insufficient in the near future.
The use of Phase out settings should be subject to written
deprecation conditions.
Other options
Number Guideline
TLS has a plethora of options beyond those discussed. We only
B10-1 Any supported configuration that is Phase out has a
discuss options that influence the security of TLS and that are
documented condition that schedules its removal.
sometimes not secure by default.
B10-2 Any configuration that is Phase out is not used past the
Compression documented condition that schedules its removal.
The use of compression can give an attacker information about the
secret parts of encrypted communication. Because data is first There is value in removing Phase out configurations when no
compressed and then encrypted, the effect of compression can longer required, because removed configurations can no longer be
yield information on the data that is sent. attacked or be used to attack other parts of TLS. At the same time,
compatibility requirements for some applications may require
Number Guideline their support until client support improves.
This chapter treats TLS versions, algorithms, key size & choice of The first three domains are covered in their own section. Hashing is
groups and options. The security of a configuration depends on the used as building block and covered within the other domains.
selections in each of these categories.
Figure 2 summarizes algorithm selections and their security level
The numbers in parentheses refer to the references on the last page and shows the correspondence between algorithm selection and
of this document. cipher suite notation in TLS 1.2 and TLS 1.3. The security levels
apply to algorithm selections as follows.
Figure 2 – Cipher suite notation in TLS 1.2 and TLS 1.3. The table summarizes algorithm selections and their security level.
Not included in the (old) cipher suite notation are: versions; hash functions for certificate verification; hash functions for key exchange; key sizes & choice of groups; and options.
These can be found in their respective sections. For ordering, refer to the section Prefer faster and safer algorithms.
When the server only supports Good algorithm selections, it may Hash functions for certificate verification
honor the client's preference and does not need to enforce its own The digital signatures on certificates use hash functions. The
ordering. security of the chosen hash function is important for this purpose.
NULL
Table 2 – Algorithms for certificate verification
The algorithm EdDSA is Good, but not (yet) permitted for use by
suppliers of certificates (1) and therefore not added to the table.
25 Confidentiality under static RSA, ECDH and DH relies on keeping long
term keys secret. An attacker can steal this long term key in the future
24 The algorithm DSS has been uncommon for a long time. It is Insufficient and break confidentiality of past traffic. Under ECDHE and DHE, keys are
because rarely used code sees less testing and has a higher chance to kept for a very short term and are then destroyed, which leaves nothing
contain undiscovered vulnerabilities. to be stolen.
17 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
DH 27
Insufficient
Changes to RSA for digital signatures
ECDH27
The digital signature scheme to prove possession of an RSA
KRB5
secret key has been replaced in TLS 1.3. A modern padding scheme
NULL (RSA-PSS) replaces the previous RSA-PKCS#1 v1.5 padding
PSK scheme. This improvement applies retroactively: it is required for
servers that support both TLS 1.2 and TLS 1.3. Use the latest
SRP available version of your TLS software library to make use of these
Table 4 – Algorithms for key exchange improvements.
Note: The following table differs from the others in this chapter by
the reversed effect of Phase Out. It encourages support of modern
hash functions instead of prohibiting weaker alternatives, because
these are required in TLS 1.2.
26 DHE is classified Sufficient and not Good because it is very slow when
secure parameters are used.
27 Static (EC)DH requires special certificates and is seldom used in TLS.
Their use is Insufficient because rarely used code sees less testing and 30 Note that SHA2 support for signatures is generally a property of a TLS
has a higher chance to contain undiscovered vulnerabilities. software library, not a configuration. An update to your library may be
28 This section covers the use of hash functions for key confirmation and required if you do not support the use of SHA2 for key exchange.
handshake integrity. The use of hash functions for key derivation is 31 These are the most common algorithms for bulk encryption. Other Good
covered under Hash functions for bulk encryption and the generation of random algorithms are AES-{256,128}-CCM. CAMELLIA is Sufficient. Other
numbers. Phase out algorithms include SEED and ARIA. These algorithms are
29 These are the most common algorithms for hashing. SHA-224 is also rarely used. If a system supports these algorithms it is worth checking if
Sufficient but not used much. this is necessary.
18 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Algorithm Status Caution: SHA-1 is only Sufficient for bulk encryption and as a
AES-256-GCM Good (3) component in the generation of random numbers. It is Insufficient
for use in digital signatures on certificates, as stated in the section
ChaCha20-Poly1305 Hash functions for certificate verification. Its use as part of the key
AES-128-GCM exchange without supporting newer alternatives is also
Insufficient, as stated in the section Hash functions for key exchange.
AES-256-CBC Sufficient (4)
AES-128-CBC
AES-128-CCM_8 32
RSA key size
The security of RSA for encryption and digital signatures is tied to
IDEA
the key length of the public key.37
DES
On Good
0-RTT Status
Off Sufficient
Off (or N/A prior to TLS 1.3) Good
Table 15 – OCSP stapling
On Insufficient
Table 14 – 0-RTT
21 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Appendix A –
Further considerations
With Session IDs, both client and server save session state referenced
by an ID. The client presents that ID when resuming a connection. 43 Drew Springall, Zakir Durumeric, and J. Alex Halderman. “Measuring the
security harm of TLS crypto shortcuts.” Proceedings of the 2016 Internet
Using this Session ID both client and server retrieve the correspond- Measurement Conference. ACM, 2016. https://jhalderm.com/pub/papers/
ing state and proceed directly to the application phase. forward-secrecy-imc16.pdf
22 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Generating sufficient entropy may be a bottleneck if a TLS server is - Files on the server The administrator of the server needs to
under heavy load. The addition of a hardware module (hardware include intermediate CA’s between the root CA and the issued
random number generator) to the server ensures the availability of certificate on the server. The server offers these during TLS
sufficient entropy. Many modern processors integrate a hardware connections. The secret key needs to be adequately protected.
module to harvest randomness. An attacker that can obtain the secret key can read or manipu-
late intercepted traffic. A secret key can be stored in an HSM. An
Most operating systems and TLS software libraries contain a good HSM is designed to offer physical protection against extraction
random number generator. You can ask the supplier of your chosen of the secret key.
TLS library (or the vendor that embeds it) about the random - Administration Keep an administration of all certificates that
number generator that is used and its source of entropy. are in use within the organisation. If a certificate needs to be
replaced, this will make it easier to determine where it is in use.
It is known that the following random number generator is Include the expiration time for all certificates, to ensure timely
insecure: replacement. Expired certificates should never be used. Some
- Dual EC DRBG44, 45 certificate issuers support mechanisms for automated renewal
and deployment of certificates, which may reduce the potential
It is advisable to check that your TLS software library does not use for human error.
this insecure random number generator.
44 https://csrc.nist.gov/publications/nistbul/itlbul2013_09_supplemental.
pdf
45 https://projectbullrun.org/dual-ec/
46 https://www.ncsc.nl/documenten/factsheets/2019/juni/01/ 47 See the following as an example of a method to achieve this: https://
factsheet-veilig-beheer-van-digitale-certificaten blog.cloudflare.com/keyless-ssl-the-nitty-gritty-technical-details/
23 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Authenticating clients with Are you in control over software of both client and server? Then,
certificate pinning enables you to pin just the certificate(s) that the
certificates client should accept. The client no longer has to check the chain of
signatures: it recognizes the certificate or it does not. A compromised
TLS supports mutual authentication with certificates. In mutual certificate authority is no longer a risk for the connection.
authentication, the client uses a certificate to authenticate itself to Alternatively, use of certificates supplied by one particular CA can
the server in addition to the server using a certificate to authenti- be whitelisted by pinning the intermediate or root certificate that
cate itself to the client. are used to issue them. This way, the compromise of other CAs is no
longer a risk. The connection between an app on a mobile platform
Client certificates often contain sensitive information, such as and a server is a scenario where certificate pinning can be effective.
personal data. An example is the name of the user. Before TLS 1.3, Account for the propagation delay of changes in certificate
certificates were transmitted unencrypted as part of the handshake. pinning. Clients will refuse to connect to your server after a (rapid)
If you use certificates that contain sensitive data for authentication change of certificate(s) if a pin cannot be updated in time.
and rely on TLS to provide confidentiality, it is recommended to use
TLS 1.3. DNS-based Authentication of Named Entities (DANE) is a technique
to enable clients to authenticate a certificate based on the Domain
Name System (DNS). The administrator of the certificate publishes
information about that certificate in a special DNS record, a TLSA
record. This allows clients to verify the authenticity of the certificate
using the PKI, but also using the TLSA record. Note that the
traditional DNS system is not trustworthy enough to use DANE.
The use of DNSSEC is necessary. An example of the use of DANE is to
authenticate TLS connections between e-mail servers.50
Appendix B –
Changes to these guidelines
These guidelines will be updated for new versions of TLS and new
insights into the (in)security of certain configurations. The security
of TLS is the continuous subject of research. The coming years will
bring the discovery of additional vulnerabilities. In addition,
additional versions or configurations of TLS will be standardized.
Validity
The latest version of these guidelines can always be found on the
website of the NCSC. The NCSC periodically evaluates the validity of
its advice. These guidelines are valid unless updated and do not
expire.
Critical changes
If an immediate change of these guidelines is required, it will be
published as an addendum to the most recent version of the
guidelines. This may occur if research shows that certain TLS
configurations have become insecure.
An addendum will be published on the website of the NCSC and
communicated to NCSC partners. A publication of an addendum
will also be announced using the Twitter account of the
NCSC (@ncsc_nl) or a then suitable medium.
New versions
Larger changes will be implemented in newer versions of these
guidelines. A new version of the guidelines includes information
that was part of earlier addenda. New versions will be distributed in
the same manner as addenda: published on the website of the
NCSC, sent to NCSC partners and using the NCSC Twitter account.
25 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Appendix C –
List of cipher suites
Using TLS the client and server agree on an algorithm selection to TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA25652
use in subsequent encrypted communication. TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA38452
An algorithm selection is a set with four elements, one crypto- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA25652
graphic algorithm for key exchange, one cryptographic algorithm TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA25652
for digital signatures, one cryptographic algorithm for bulk TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
encryption and one cryptographic algorithm for hashing. In TLS TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
1.3, the set containing only these last two elements is known as a TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
cipher suite. Prior to TLS 1.3, a cipher suite referred to what these TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
guidelines call an algorithm selection. TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
This appendix provides an overview of cipher suites and their TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
security level. This notation can be useful when configuring TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
software. Refer to Figure 1 in the chapter Guidelines illustrates the TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
cipher suite notation in TLS prior to TLS 1.3. TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
Not included in the cipher suite notation are: versions; hash functions TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
for certificate verification; hash functions for key exchange; key sizes & choice TLS_DHE_RSA_WITH_AES_256_CBC_SHA
of groups; and options. These can be found in their respective TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
sections in the chapter Versions, algorithms and options. For ordering, TLS_DHE_RSA_WITH_AES_128_CBC_SHA
refer to the section Prefer faster and safer algorithms in the same
chapter.
Phase out
Good TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_AES_256_GCM_SHA38451 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_CHACHA20_POLY1305_SHA25651 TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_AES_128_GCM_SHA25651 TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
Sufficient TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA38452 TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA25652
51 When used in combination with Good algorithms for key exchange and
certificate verification. See Figure 2 in chapter Versions, algorithms and
options for an example that results in a lower security level.
52 These algorithm selections, combined with TLS 1.3 are Good. However,
the (old) ciper suite notation used here will frequently result in the use of
at most TLS 1.2 in software, which is Sufficient.
26 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Appendix D –
Glossary
Glossary
AEAD Algorithms for Bulk encryption that provide Authenticated Encryption with Associated
Data (AEAD) tightly integrate authentication and encryption. Popular AEAD algorithms
for Bulk encryption include AES-GCM and ChaCha20-Poly1305.
Algorithm selection An algorithm selection is a set with four elements, one cryptographic algorithm for key
exchange, one cryptographic algorithm for digital signatures, one cryptographic
algorithm for bulk encryption and one cryptographic algorithm for hashing. In TLS 1.3,
the set containing only these last two elements is known as a cipher suite. Prior to TLS
1.3, a cipher suite referred to what these guidelines call an algorithm selection.
Using TLS the client and server agree on an algorithm selection to use in subsequent
encrypted communication. See key exchange, digital signature, bulk encryption, hash
function and cipher suite.
Bulk encryption Bulk encryption is the process during the application phase whereby data is enciphered
using the key established during key exchange. Encipherment uses an algorithm for
symmetric encryption. Well-known examples of such algorithms are AES-GCM,
ChaCha20 and 3DES-CBC.
Certificate verifica- The server offers a certificate to the client during a TLS session. This certificate is digitally
tion signed by a certificate authority (CA). The certificate authority is a trusted entity for the
client. The client verifies the digital signature by the certificate authority. This establishes
whether the certificate has been issued by the certificate authority. The algorithm for
certificate validation is the algorithm the certificate authority uses for its digital
signature. Well-known examples are RSA and ECDSA.
Cipher suite A cipher suite contains an algorithm for bulk encryption and an algorithm for hashing.
Cipher suites before TLS 1.3 also include the algorithms for key exchange and digital
signatures. These guidelines follow the new narrow TLS 1.3 definition for cipher suite.
See algorithm selection.
27 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Glossary
(D)DoS attack A Denial of Service (DoS) attack is an attack whereby a computer is made unavailable, for
example by means of a flood of requests. The requests originate from a single computer
system. In a Distributed Denial of Service (DDoS) attack, requests originate not from a
single but from a large number of computer systems.
DNS The Domain Name System (DNS) is a distributed system to answer queries for informa-
tion on domain names. A typical query may concern the IP-address of a computer
corresponding to a domain name, or the computer that handles the e-mail for a
particular domain name. DNS Security Extensions (DNSSEC) can improve the trustworthi-
ness of information in DNS. DNSSEC also enables the use of DNS for new purposes, such
as DANE.
Forward Secrecy Forward secrecy is a mechanism to maintain the confidentiality of past TLS communicati-
ons in the event the secret key of a certificate is stolen. Cipher suites that employ key
exchanges based on ECDHE or DHE offer forward secrecy.
Handshake The handshake is the phase of the TLS protocol where client and server agree on the way
data is to be exchanged. The handshake phase is followed by the application phase where
client and server exchange enciphered data.
Hash function A hash function is a mathematical function that maps input data into a digital fingerprint.
In general, the input is no longer retrievable from the result. Hash functions are used in
TLS as a component in digital signatures, the generation of random numbers (PRF) and
for bulk encryption (MAC). Examples of hash functions include MD5, SHA-1 and SHA-256.
https HTTP Secure (https) is a protocol that consists of the establishment of a TLS session that
is then used to exchange HTTP traffic. This way communication with a webserver is
protected against eavesdropping and manipulation in transit.
IETF The Internet Engineering Task Force (IETF) is an organization that designs open standards
for the internet. The standards are documented in so-called Requests for Comments
(RFC’s). The IETF does not have authority to enforce the use of standards that they design.
Key A key is some secret data used for cryptographic computations. Encrypted data can be
decrypted using the corresponding key. In symmetric algorithms for encipherment, the
entire key is secret. In asymmetric algorithms for encipherment, the key consists of two
parts: a public part and a secret part. The public part of the key is called the public key.
This part is not kept secret. The secret part is called the secret key.
28 | ncsc | IT Security Guidelines for Transport Layer Security (TLS)
Glossary
Key exchange The client and server in a TLS session need a key to start bulk encryption of data.
Exchanging a key happens using an algorithm for key exchange. A special algorithm is
necessary because the connection is not yet encrypted during the handshake. Examples
of algorithms for key exchange are DHE, ECDHE and RSA.
Mathematical Elliptic Curves and Finite fields are mathematical structures useable for computation.
structure Another example of such a mathematical structure is the set of integers. Elliptic curves
can be used for cryptography, so called Elliptic Curve Cryptography (ECC). EdDSA, ECDSA
and ECDHE are algorithms based on ECC. Finite fields can also be used for cryptography.
DHE is an algorithm based on finite field cryptography.
Mode of operation An algorithm for bulk encryption can act on blocks of data (block cipher) or on a stream of
data (stream cipher). When using a block cipher, the enciphered blocks need to be safely
joined together. The mode of operation is the way these blocks are joined. Examples of
modes of operations are CBC and GCM.
Public Key Infra- A Public Key Infrastructure (PKI) is a hierarchical ordering of certificates where the higher
structure certificates vouch for the authenticity of lower certificates using a digital signature. If a
client trusts the highest certificates in the PKI, then it can also trust the lower certificates
by checking the signatures on the intermediate certificates. The certificates that a
certificate authority issues together with the root certificate together form a PKI.
RSA RSA is an algorithm for key exchange and certificate verification. See both topics.
Security equivalent The security equivalent is a measure to compare the cryptographic strength of crypto-
graphic systems. Security equivalents are expressed in bits. The strength of a cryptograp-
hic system depends on the algorithm used, the key length and the state of art of attacks
on the algorithm. For example: ECDSA used with a key length of 256 bit and AES with a
key length of 128 bit both have a security equivalent of 128 bit, based on the current
understanding of cryptologic attacks on these algorithms.
Software library A software library is software that provides functionality for use by programmers of
other software. By using a software library, a programmer can build upon the work of
others. This way, she does not have to build all functionality by herself. TLS use in
software generally relies on a software library.
SSL Secure Sockets Layer (SSL) is the old name for Transport Layer Security (TLS). Though no
longer called SSL following the release of TLS 1.0 (1999), the acronym SSL remains
popular.
References
Publication
National Cyber Security Centre (NCSC)
P.O. Box 117, 2501 CC The Hague
Turfmarkt 147, 2511 DP The Hague
+31 (70) 751 55 55
More information
www.ncsc.nl
[email protected]
@ncsc_nl