@@ -99,8 +99,9 @@ The handshake protocol needs to be resistant to man-in-the-middle
9999(MITM) attacks, which we discussed in Chapter 4. At one point in its
100100history, TLS version negotiation could be subverted by a MITM in such
101101a way that the client and server settled on a lower version than
102- necessary, opening up the risk that old vulnerabilities in the lower
103- version could be exploited.
102+ necessary. Such a "downgrade attack" opens up the risk that old
103+ vulnerabilities in the lower version, such as weak cryptographic
104+ protocols, could be exploited.
104105
105106TLS takes multiple precautions to increase its resistance against MITM
106107attacks. TLS 1.3 encrypts most of the handshake protocol, as early in
@@ -171,22 +172,17 @@ does not know who the client is because there has been no client
171172authentication. TLS does support client authentication using client
172173certificates, but it is not the norm in today's Internet for clients
173174to authenticate in this way.
174-
175175
176- .. 0RTT needs coverage somewhere
177- Something about compatibility with 1.2 middleboxes
176+ .. Something about compatibility with 1.2 middleboxes
178177
179178 Recall that public key cryptography is computationally more expensive
180179than symmetric key cryptography, so we limit the use of public key
181180operations to the handshake protocol. And when we said above that all
182181the messages after the first two are encrypted, this is done using
183- symmetric keys. The role of public keys in TLS are (a) the
182+ symmetric keys. The roles of public keys in TLS are (a) the
184183Diffie-Hellman key exchange (b) the use of certificates to
185184authenticate servers and, optionally, clients. All of that is limited
186185to the handshake protocol.
187-
188-
189-
190186
191187:numref: `Figure %s <fig-tls-hand >` shows the handshake protocol at a
192188high level. When the client and server have each received a
@@ -209,10 +205,8 @@ application data. We discuss the details of the record protocol below.
2092056.2 Record Protocol
210206--------------------
211207
212- .. WIP
213-
214208The task of the record protocol is to protect the data that is sent
215- over a TLS connection with both encryption and authentication.
209+ over a TLS connection with both encryption and authentication.
216210While TLS supports a wide range of encryption and authentication
217211methods, the set of options has actually become narrower in version
2182121.3 as weaknesses of older methods became clear and new cryptographic
@@ -258,7 +252,7 @@ When all the keys and IVs are available to client and server, the record
258252layer can now protect the underlying data with encryption and
259253authentication. The record layer also handles fragmentation and
260254reassembly–breaking the incoming stream of plaintext into chunks of up
261- to 2\ :sup: `14` bytes.
255+ to 2\ :sup: `14` bytes.
262256
263257To encrypt one block for transmission, the record layer takes as input
264258the encryption key, a nonce (which we explain below), the plaintext to
@@ -276,8 +270,7 @@ the appropriate key, nonce, ciphertext and additional data (headers)
276270being passed to the AEAD decryption function. If authentication is
277271successful, the plaintext is recovered and can be passed up to the
278272application. If authentication does not succeed, the connection is
279- terminated and an alert is generated.
280-
273+ terminated and an alert is generated.
281274
282275
2832766.3 Session Resumption and Zero RTT Operation
@@ -296,7 +289,7 @@ is referred to as "0-RTT Data" because it is possible to start sending
296289application data along with the handshake material without waiting for
297290the round trip time of the handshake to elapse. This is an important
298291step in improving the latency of HTTPS connection establishment and
299- thus the user experience when browsing the Web.
292+ thus the user experience when browsing the Web.
300293
301294The idea of session resumption predates TLS 1.3 but it has evolved
302295somewhat to become more secure. In TLS 1.3, the server may create a
@@ -377,9 +370,7 @@ efforts to reduce the latency since the most simple approaches just
377370layered one handshake on top of another. The next step in the process
378371of reducing the latency of TLS session establishment involves
379372rethinking the choice of TCP as the underlying transport, as we
380- discuss below.
381-
382-
373+ discuss below.
383374
3843756.4 QUIC, HTTP/3 and TLS
385376------------------------
0 commit comments