Post on 26-Apr-2023
IPsec Objectives
• Why do we need IPsec?
– IP V4 has no authentication
• IP spoofing
• Payload could be changed without detection.
– IP V4 has no confidentiality mechanism
• Eavesdropping
– Denial of service (DOS) attacks
• Cannot hold the attacker accountable due to the lack of authentication.
2
IPsec Objectives (Cont’d)
• IP layer security mechanism for IPv4 and IPv6
– Not all applications need to be security aware
– Can be transparent to users
– Provide authentication and confidentiality mechanisms.
3
IPsec Architecture
4
IPsec module 1 IPsec module 2
SPD
IKE
SAD IPsec
SPD
IKE
SAD IPsec SA
SPD: Security Policy Database; IKE: Internet Key Exchange;
SA: Security Association; SAD: Security Association Database.
IPsec Architecture (Cont’d)
• Two Protocols (Mechanisms)
– Authentication Header (AH)
– Encapsulating Security Payload (ESP)
• IKE Protocol
– Internet Key Management
5
IPsec Architecture (Cont’d)
• Can be implemented in
– Host or gateway
• Can work in two Modes
– Tunnel mode
– Transport mode
6
Hosts & Gateways
• Hosts can implement IPsec to connect to:
– Other hosts in transport or tunnel mode
– Or Gateways in tunnel mode
• Gateways to gateways
– Tunnel mode
7
Tunnel Mode
8
A B
Encrypted Tunnel
Gateway Gateway
New IP
Header
AH or ESP
Header
TCP
Data
Orig IP
Header
Encrypted
Tunnel Mode (Cont’d)
• ESP applies only to the tunneled packet
• AH can be applied to portions of the outer header
9
Outer IP
header
Inner IP
header
IPsec
header
Higher
layer protocol
ESP
AH
Real IP destination Destination
IPsec
entity
Transport Mode (Cont’d)
• ESP protects higher layer payload only • AH can protect IP headers as well as higher layer
payload
11
IP
header
IP
options
IPsec
header
Higher
layer protocol
ESP
AH
Real IP
destination
Security Association (SA)
• An association between a sender and a receiver
– Consists of a set of security related parameters
– E.g., sequence number, encryption key
• Determine IPsec processing for senders
• Determine IPsec decoding for destination
• SAs are not fixed! Generated and customized per traffic flows
12
Security Parameters Index (SPI)
• A bit string assigned to an SA.
• Carried in AH and ESP headers to enable the receiving system to select the SA under which the packet will be processed.
• 32 bits
• SPI + Dest IP address + IPsec Protocol
– Uniquely identifies each SA in SA Database (SAD)
13
SA Database (SAD)
• Holds parameters for each SA
– Sequence number counter
– Lifetime of this SA
– AH and ESP information
– Tunnel or transport mode
• Every host or gateway participating in IPsec has their own SA database
14
SA Bundle
• More than 1 SA can apply to a packet
• Example: ESP does not authenticate new IP header. How to authenticate?
– Use SA to apply ESP w/out authentication to original packet
– Use 2nd SA to apply AH
15
Security Policy Database (SPD)
• Policy entries define which SA or SA Bundles to use on IP traffic
• Each host or gateway has their own SPD
• Index into SPD by Selector fields – Selectors: IP and upper-layer protocol field values.
– Examples: Dest IP, Source IP, Transport Protocol, IPSec Protocol, Source & Dest Ports, …
16
SPD Entry Actions
• Discard
– Do not let in or out
• Bypass
– Outbound: do not apply IPSec
– Inbound: do not expect IPSec
• Protect – will point to an SA or SA bundle
– Outbound: apply security
– Inbound: security must have been applied
17
SPD Protect Action
• If the SA does not exist…
– Outbound processing
• Trigger key management protocols to generate SA dynamically, or
• Request manual specification, or
• Other methods
– Inbound processing
• Drop packet
18
Outbound Processing
19
Is it for IPsec?
If so, which policy
entry to select?
…
SPD
(Policy)
…
SA
Database
IP Packet
Outbound packet (on A)
A B
SPI & IPsec
Packet
Send to B
Determine the SA
and its SPI
IPSec processing
Inbound Processing
20
Use SPI to
index the SAD
…
SA Database
Original IP Packet
SPI & Packet
Inbound packet (on B)
A B
From A
…
SPD
(Policy)
Was packet properly
secured?
“un-process”
Authentication Header (AH)
• Data integrity
– Entire packet has not been tampered with
• Authentication
– Can “trust” IP address source
– Use MAC to authenticate
• Anti-replay feature
• Integrity check value
21
Integrity Check Value - ICV
• Message authentication code (MAC) calculated over – IP header fields that do not change or are
predictable
– IP header fields that are unpredictable are set to zero.
– IPsec AH header with the ICV field set to zero.
– Upper-level data
• Code may be truncated to first 96 bits
22
IPsec Authentication Header
23
…
SAD
SPI
Sequence Number
ICV
Next Header
(TCP/UDP)
Payload Length
6-2=4 Reserved
Encapsulated Security Protocol (ESP)
• Confidentiality for upper layer protocol
• Partial traffic flow confidentiality (Tunnel mode only)
• Data origin authentication
24
Outbound Packet Processing
• Form ESP payload
• Pad as necessary
• Encrypt result [payload, padding, pad length, next header]
• Apply authentication
25
Outbound Packet Processing...
• Sequence number generation – Increment then use – With anti-replay enabled, check for rollover and send only
if no rollover – With anti-replay disabled, still needs to increment and use
but no rollover checking
• ICV calculation – ICV includes whole ESP packet except for authentication
data field. – Implicit padding of ‘0’s between next header and
authentication data is used to satisfy block size requirement for ICV algorithm
– Not include the IP header.
26
27
ESP
Tra
nsp
ort
Exa
mp
le
SPI
Sequence Number
Original IP Header
Integrity Check Value
Au
then
ticati
on
co
vera
ge
En
cry
pte
d Payload (TCP Header and Data)
Variable Length
Pad
Length
Padding (0-255 bytes)
Next
Header
Inbound Packet Processing
• Sequence number checking
– Anti-replay is used only if authentication is selected
– Sequence number should be the first ESP check on a packet upon looking up an SA
– Duplicates are rejected!
28
0 Sliding Window
size >= 32
reject Check bitmap, verify if new
verify
Anti-replay Feature
• Optional
• Sequence number counter - 32 bit for outgoing IPsec packets
• Anti-replay window
– 32-bit
– Bit-map for detecting replayed packets
29
Anti-replay Sliding Window
• Window should not be advanced until the packet has been authenticated
• Without authentication, malicious packets with large sequence numbers can advance window unnecessarily
– Valid packets would be dropped!
30
Inbound Packet Processing...
• Packet decryption
– Decrypt quantity [ESP payload,padding,pad length,next header] per SA specification
– Processing (stripping) padding per encryption algorithm; In case of default padding scheme, the padding field SHOULD be inspected
– Reconstruct the original IP datagram
• Authentication verification (option)
31
ESP Processing - Header Location...
• Transport mode IPv4 and IPv6
32
Orig
IP hdr TCP Data
ESP
trailer
ESP
Auth
ESP
hdr
TCP Data ESP
trailer
ESP
Auth
Orig
IP hdr
ESP
hdr
Orig
ext hdr
IPv4
IPv6