Download SSL and IPSec

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Distributed firewall wikipedia , lookup

Wake-on-LAN wikipedia , lookup

Deep packet inspection wikipedia , lookup

AppleTalk wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Wireless security wikipedia , lookup

Server Message Block wikipedia , lookup

Internet protocol suite wikipedia , lookup

Cracking of wireless networks wikipedia , lookup

Dynamic Host Configuration Protocol wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Extensible Authentication Protocol wikipedia , lookup

SIP extensions for the IP Multimedia Subsystem wikipedia , lookup

Transport Layer Security wikipedia , lookup

UniPro protocol stack wikipedia , lookup

Remote Desktop Services wikipedia , lookup

Hypertext Transfer Protocol wikipedia , lookup

Lag wikipedia , lookup

Real-Time Messaging Protocol wikipedia , lookup

Transcript
SSL and IPSec
CS461/ECE422
Spring 2012
Reading
• Chapter 22 of text
• Look at relevant IETF standards
SSL
• Transport layer security
– Provides confidentiality, integrity,
authentication of endpoints
– Developed by Netscape for WWW browsers
and servers
• Internet protocol version: TLS
– Compatible with SSL
– Standard rfc2712
Working at Transport Level
• Data link, Network, and Transport headers sent
unchanged
• Original transport header can be protected if
tunneling
Ethernet
Frame
Header
IP
Header
TCP
Header
TCP data stream
Encrypted/authenticated
Regardless of application
SSL Sessions and Connections
• SSL Sessions
– Association between client and server
– Created by Handshake protocol
– Defines set of cryptographic security parameters
• SSL Connections
– A transport-level connection
– Potentially many connections per session
– Share cryptographic parameters of session
SSL Protocol Stack
SSL Record Protocol Operation
Record Protocol Overview
• Lowest layer, taking messages from higher
– Max block size 16,384 bytes
– Bigger messages fragmented into multiple blocks
– Construction
– Block b compressed; call it bc
– MAC computed for bc
•If MAC key not selected, no MAC computed
– bc, MAC enciphered
•If enciphering key not selected, no enciphering done
– SSL record header prepended
Slide #11-8
SSL Handshake Protocol
• Used to initiate connection
– Sets up parameters for record protocol
– 4 rounds
• Upper layer protocol
– Invokes Record Protocol
• Note: what follows assumes client, server
using RSA as interchange cryptosystem
Handshake Protocol: Phase 1 and 2
Handshake Round 1
{ vC || r1 || s1 || ciphers || comps }
Client
Server
{v || r2 || s1 || cipher || comp }
Client
vC
v
r1, r2
s1
ciphers
comps
cipher
comp
Server
Client’s version of SSL
Highest version of SSL that Client, Server both understand
nonces (timestamp and 28 random bytes)
Current session id (0 if new session)
Ciphers that client understands
Compression algorithms that client understand
Cipher to be used
Compression algorithm to be used
Handshake Round 2
Client
Client
Client
Client
{certificate }
{mod || exp || SigS(h(r1 || r2 || mod || exp)) }
{ctype || gca }
{er2 }
Server
Server
Server
Server
Note: if Server not to authenticate itself, only last message sent; third
step omitted if Server does not need Client certificate
kS Server’s private key
ctype
Certificate type requested (by cryptosystem)
gca Acceptable certification authorities
er2 End round 2 message
Handshake Protocols: Phases 3 and 4
Handshake Round 3
Client
Client
{ client_cert }
{ pre }PubS
Server
Server
Both Client, Server compute master secret master:
master = MD5(pre || SHA(‘A’ || pre || r1 || r2) ||
MD5(pre || SHA(‘BB’ || pre || r1 || r2) ||
MD5(pre || SHA(‘CCC’ || pre || r1 || r2)
{ h(master || opad || h(msgs || master | ipad)) }
Client
Server
msgs
Concatenation of previous messages sent/received this handshake
opad, ipad As above
Handshake Round 4
Client sends “change cipher spec” message using that protocol
Client
Server
{ h(master || opad || h(msgs || 0x434C4E54 || master || ipad )) }
Client
Server
Server sends “change cipher spec” message using that protocol
Client
Server
{ h(master || opad || h(msgs || 0x53525652 || master | ipad)) }
Client
Server
msgs
Concatenation of messages sent/received this handshake in
previous rounds (does notinclude these messages)
opad, ipad, master As above
Supporting Crypto Algorithms
• The standard dictates algorithms that must be
supported
– Classical ciphers ensure confidentiality, cryptographic
– checksums added for integrity
• Only certain combinations allowed
– Won’t allow really weak confidentiality algorithm with
really strong authentication algorithm
• Standard is augmented over time
– E.g., AES added in 2002 by rfc3268
RSA: Cipher, MAC Algorithms
MITM Attacks
• Classic attack foiled by certificates
• Assuming certificates can be verified correctly
• Not necessarily the case if the root certificates
cannot be trusted
• More subtle attacks appear over time
– TLS Authentication Gap
• Interaction of TLS and HTTP
• http://www.phonefactor.com/sslgap
• Application above SSL/TLS tends to be HTTP
but does not have to be
IPsec
• Network layer security
– Provides confidentiality, integrity,
authentication of endpoints, replay detection
• Protects all messages sent along a path
IP+IPsec
IP
dest
gw2
IP
gw1
security gateway
src
Standards
•
•
•
•
Original RFC’s 2401-2412
Mandatory portion of IPv6
Bolted onto IPv4
Newer standards
– IKE: Standardized Key Management Protocol
RFC 2409
– NAT-T: UDP encapsulation for traversing
address translation RFC 3948
Network Level Encryption
• Data link header and network header is
unchanged
• With tunneling original IP header can be
protected
Ethernet
Frame
Header
IP
Header
IP packet
Encrypted/authenticated
Regardless of application
IPsec Transport Mode
IP
header
encapsulated
data body
• Encapsulate IP packet data area
• Use IP to send IPsec-wrapped data packet
• Note: IP header not protected
IPsec Tunnel Mode
IP
header
encapsulated
IP header and data body
• Encapsulate IP packet (IP header and IP data)
• Use IP to send IPsec-wrapped packet
• Note: IP header protected
IPsec Protocols
• Authentication Header (AH)
– Integrity of payload
– Integrity of outer header
– Anti-replay
• Encapsulating Security Payload (ESP)
– Confidentiality of payload and inner header
– Integrity of payload (and now header)
ESP and integrity
• Originally design, use AH to add integrity if
needed.
• Bellovin showed integrity is always needed
– So added directly to ESP
– http://www.cs.columbia.edu/~smb/pape
rs/badesp.pdf
IPsec Architecture
• Security Association (SA)
– Association between peers for security services
• Identified uniquely by dest address, security
protocol (AH or ESP), unique 32-bit number
(security parameter index, or SPI)
– Unidirectional
• Can apply different services in either direction
– SA uses either ESP or AH; if both required, 2
SAs needed
SA Database Entries
•
•
•
•
Sequence number counter
Sequence counter overflow
Anti-replay window
AH or ESP information: algorithms, keys, key
lifetimes
• Lifetime of SA
• IPSec mode: Tunnel or transport
• PathMTU
ESP Header
Key Points
• Separation of negotiation phase and operational
phase
• Standardized elements for algorithm support
• Similar functionality between SSL and IPSec
• Difference in network stack level
Slide #11-29