TCP, UDP, and TLS
CS 161 Fall 2021 - Lecture 29
Computer Science 161
Popa and Weaver
Announcements
2
Computer Science 161
Popa and Weaver
Transmission Control Protocol (TCP)
Textbook Chapter 30
3
Computer Science 161
Popa and Weaver
TCP: 3-Way Handshake
4
Client
Server
SYN. Seq = x
SYN-ACK. Seq = y, Ack = x+1
ACK. Seq = x+1, Ack = y+1
Data
Computer Science 161
Popa and Weaver
TCP: Retransmission
5
Computer Science 161
Popa and Weaver
TCP: Ending/Aborting a Connection
6
Computer Science 161
Popa and Weaver
TCP Flags
7
Computer Science 161
Popa and Weaver
TCP Packet Structure
8
Source Port (16 bits) | Destination Port (16 bits) | ||||||
Sequence Number (32 bits) | |||||||
Acknowledgement Number (32 bits) | |||||||
Data Offset (4 bits) | Flags (12 bits) | Window Size (16 bits) | |||||
Checksum (16 bits) | Urgent Pointer (16 bits) | ||||||
Options (variable length) | |||||||
Data (variable length) | |||||||
Computer Science 161
Popa and Weaver
TCP Attacks
9
Computer Science 161
Popa and Weaver
TCP Data Injection
10
Client
Server
ACK. Seq = x+1, Ack = y+1. Data, length A
ACK. Seq = y+1, Ack = x+1+A. Real data, length B
This packet will be ignored by the client since the client already processed the malicious packet!
Seq = y+1. Evil data, length B
Computer Science 161
Popa and Weaver
TCP Attacks
11
Computer Science 161
Popa and Weaver
TCP Spoofing
12
Client
Server
RST. Seq = x+1
SYN-ACK. Seq = y, Ack = x+1
SYN. Seq = x
ACK. Seq = x+1, Ack = y+1. Evil data
An on-path attacker must send the evil data before the server receives the real client’s RST!
A MITM attack could just drop the client’s packets, however
Computer Science 161
Popa and Weaver
TCP Attacks
13
Computer Science 161
Popa and Weaver
User Datagram Protocol (UDP)
Textbook Chapter 30
14
Computer Science 161
Popa and Weaver
User Datagram Protocol (UDP)
15
Computer Science 161
Popa and Weaver
UDP Attacks
16
Computer Science 161
Popa and Weaver
UDP Packet Structure
UDP datagram header (not blue because this is so simple!)
17
Source Port (16 bits) | Destination Port (16 bits) |
Length (16 bits) | Checksum (16 bits) |
Data (variable length) | |
Computer Science 161
Popa and Weaver
Summary
18
Computer Science 161
Popa and Weaver
TLS
Textbook Chapter 31
19
Computer Science 161
Popa and Weaver
TLS
20
TLS
Transport
(Inter) Network
Link
Physical
1
2
3
4
4.5
Application
7
Computer Science 161
Popa and Weaver
Today: Secure Internet Communication with TLS
21
Computer Science 161
Popa and Weaver
TLS Handshake
Textbook Chapter 31.1
22
Computer Science 161
Popa and Weaver
TLS Handshake Step 1: Exchange Hellos
23
Client
Server
ServerHello
ClientHello
Computer Science 161
Popa and Weaver
TLS Handshake Step 2: Certificate
24
Client
Server
ServerHello
ClientHello
Certificate
Computer Science 161
Popa and Weaver
TLS Handshake Step 3: Premaster Secret
25
ServerHello
ClientHello
Client
Server
Certificate
Computer Science 161
Popa and Weaver
TLS Handshake Step 3: Premaster Secret (RSA)
26
ServerHello
ClientHello
Client
Server
Certificate
{PS}Kserver
Computer Science 161
Popa and Weaver
TLS Handshake Step 3: Premaster Secret (DHE)
27
ServerHello
ClientHello
Client
Server
Certificate
{ga mod p}K-1server
gb mod p
Computer Science 161
Popa and Weaver
TLS Handshake Step 4: Derive Symmetric Keys
28
Client
Server
{ga mod p}K-1server
gb mod p
{PS}Kserver
or
Compute keys
Compute keys
Computer Science 161
Popa and Weaver
TLS Handshake Step 5: Exchange MACs
29
Client
Server
Compute keys
Compute keys
MAC(IB, steps 1-4)
MAC(IS, steps 1-4)
Computer Science 161
Popa and Weaver
TLS Handshake Step 6: Send Messages
30
Client
Server
Compute keys
Compute keys
MAC(IB, steps 1-4)
MAC(IS, steps 1-4)
{M, MAC(IB, M)}CB
{M, MAC(IS, M)}CS
Computer Science 161
Popa and Weaver
TLS: Talking to the Legitimate Server
31
Client
Server
ClientHello
ServerHello
Certificate
{ga mod p}K-1server
gb mod p
{M, MAC(IB, M)}CB
{M, MAC(IS, M)}CS
Or RSA exchange
Computer Science 161
Popa and Weaver
TLS: Securing Messages
32
Client
Server
ClientHello
ServerHello
Certificate
{ga mod p}K-1server
gb mod p
{M, MAC(IB, M)}CB
{M, MAC(IS, M)}CS
Or RSA exchange
Computer Science 161
Popa and Weaver
TLS: Replay Attacks
33
Client
Server
ClientHello
ServerHello
Certificate
{ga mod p}K-1server
gb mod p
{M, MAC(IB, M)}CB
{M, MAC(IS, M)}CS
Or RSA exchange
Computer Science 161
Popa and Weaver
TLS: Replay Attacks
34
Client
Server
ClientHello
ServerHello
Certificate
{ga mod p}K-1server
gb mod p
{M, MAC(IB, M)}CB
{M, MAC(IS, M)}CS
Or RSA exchange
Computer Science 161
Popa and Weaver
Forward Secrecy
Textbook Chapter 31.1
35
Computer Science 161
Popa and Weaver
Forward Secrecy
36
Computer Science 161
Popa and Weaver
TLS 1.3 Changes
37
Computer Science 161
Popa and Weaver