Exit Zen
1 ../../protocols/tls.rst:7
English
Transport Layer Security
2 ../../protocols/tls.rst:11
English
The Transport Layer Security family of protocols were initially proposed under the name Secure Socket Layer (SSL). The first deployments used this name and many researchers still refer to this security protocol as SSL [FKC1996]_. In this chapter, we use the official name that was standardized by the IETF: TLS for `Transport Layer Security`.
3 ../../protocols/tls.rst:17
English
The TLS protocol was designed to be usable by a wide range of applications that use the transport layer to reliably exchange information. TLS is mainly used over the TCP protocol. There are variants of TLS that operate over SCTP :rfc:`3436` or UDP :rfc:`6347`, but these are outside the scope of this chapter.
4 ../../protocols/tls.rst:23
English
A TLS session operates over a TCP connection. TLS is responsible for the encryption and the authentication of the SDUs exchanged by the application layer protocol while TCP provides the reliable delivery of this encrypted and authenticated bytestream. TLS is used by many different application layer protocols. The most frequent ones are HTTP (HTTP over TLS is called HTTPS), SMTP :rfc:`3207` or POP and IMAP :rfc:`2595`, but proprietary application-layer protocols also use TLS [AM2019]_.
5 ../../protocols/tls.rst:30
English
A TLS session can be initiated in two different ways. First, the application can use a dedicated TCP port number for application layer protocol x-over-TLS. This is the solution used by many HTTP servers that reserve port :math:`443` for HTTP over TLS. This solution works, but it requires to reserve two ports for each application : one where the application-layer protocol is used directly over TCP and another one where the application-layer protocol is used over TLS. Given the limited number of TCP ports that are available, this is not a scalable solution. The table below provides some of the reserved port numbers for application layer protocols on top of TLS.
6 ../../protocols/tls.rst:41
English
Application
7 ../../protocols/tls.rst:41
English
TCP port
8 ../../protocols/tls.rst:41
English
TLS port
9 ../../protocols/tls.rst:43
English
POP3
10 ../../protocols/tls.rst:43
English
110
11 ../../protocols/tls.rst:43
English
995
12 ../../protocols/tls.rst:44
English
IMAP
13 ../../protocols/tls.rst:44
English
143
14 ../../protocols/tls.rst:44
English
993
15 ../../protocols/tls.rst:45
English
NNTP
16 ../../protocols/tls.rst:45
English
119
17 ../../protocols/tls.rst:45
English
563
18 ../../protocols/tls.rst:46
English
HTTP
19 ../../protocols/tls.rst:46
English
80
20 ../../protocols/tls.rst:46
English
443