SSL Splitting
Christopher Lesniewski-Laas and M. Frans Kaashoek
{ctl,kaashoek}@mit.edu
MIT LCS
USENIX Security 2003 – p.
SSL Splitting Christopher Lesniewski-Laas and M. Frans Kaashoek { - - PowerPoint PPT Presentation
SSL Splitting Christopher Lesniewski-Laas and M. Frans Kaashoek { ctl,kaashoek } @mit.edu MIT LCS USENIX Security 2003 p. Bandwidth Offloading Server mypenguin.org (DSL) Mirror mirrors.kernel.org (OC12) Client Client GET
Christopher Lesniewski-Laas and M. Frans Kaashoek
{ctl,kaashoek}@mit.edu
MIT LCS
USENIX Security 2003 – p.
‘GET /tux.png’
Client Client Server Mirror
mirrors.kernel.org mypenguin.org
(DSL) (OC12)
USENIX Security 2003 – p.
‘GET /tux.png’
Client
daemonporn.com
Mirror Client Client Server Mirror
mirrors.kernel.org mypenguin.org
(DSL) (OC12)
USENIX Security 2003 – p.
‘GET /tux.png’
Client
daemonporn.com
Mirror Client Client Server Mirror
mirrors.kernel.org mypenguin.org
(DSL) (OC12)
USENIX Security 2003 – p.
‘GET /tux.png’
Client
daemonporn.com
Mirror Client Client Server Mirror
mirrors.kernel.org mypenguin.org
(DSL) (OC12)
USENIX Security 2003 – p.
, SFSRO, BitTorrent, RPM+PGP
USENIX Security 2003 – p.
Handshak Request File transf
X =MACk( ) X’=MACk( )
Check:X = X’?
Hello Certificate Negotiate shared secret Done
(knows shared secret k) (knows shared secret k)
G E T / t u x . p n g A
X Y
USENIX Security 2003 – p.
X X =MACk( ) X’=MACk( ) Check:X = X’?
USENIX Security 2003 – p.
‘tux.png(1/2)’ X X X =MACk( ) X’=MACk( ) Check:X = X’? = Cache(‘tux.png(1/2)’)
USENIX Security 2003 – p.
Connect
USENIX Security 2003 – p. 1
Connect Connect
USENIX Security 2003 – p. 1
(knows k) (knows k) (cannot learn k) Negotiate shared key k
USENIX Security 2003 – p. 1
GET /tux.png
USENIX Security 2003 – p. 1
ID=SHA−1(tux.png), ID X=MAC (tux.png)
k
USENIX Security 2003 – p. 1
, X Check MAC X
USENIX Security 2003 – p. 1
ID=SHA−1(tux.png), X=MAC (tux.png)
k
ID miss!
USENIX Security 2003 – p. 1
Get(ID) ID miss!
USENIX Security 2003 – p. 1
Get(ID) ID miss!
USENIX Security 2003 – p. 1
, X Check MAC X Insert Get(ID)
USENIX Security 2003 – p. 1
USENIX Security 2003 – p. 2
USENIX Security 2003 – p. 2
server-proxy link?
distributions?
USENIX Security 2003 – p. 2
r = wire bytes sent by server total size of files received by clients
USENIX Security 2003 – p. 2
USENIX Security 2003 – p. 2
10 B 100 B 1 KB 10 KB 100 KB 1 MB 10 MB
File size (bytes)
0.001 0.01 0.1 1 10 100
Rate
HTTP HTTPS Uncached
USENIX Security 2003 – p. 2
10 B 100 B 1 KB 10 KB 100 KB 1 MB 10 MB
File size (bytes)
0.001 0.01 0.1 1 10 100
Rate
Ideal SSL splitting performance HTTP HTTPS Uncached Cached
USENIX Security 2003 – p. 2
10 B 100 B 1 KB 10 KB 100 KB 1 MB 10 MB
File size (bytes)
0.001 0.01 0.1 1 10 100
Rate
Apache puts HTTP headers into separate record Apache bug: record size halved HTTP HTTPS Uncached Cached
USENIX Security 2003 – p. 2
USENIX Security 2003 – p. 2
splitting?
www.lcs.mit.edu and amsterdam.lcs.mit.edu
USENIX Security 2003 – p. 2
number of bytes sent by server
USENIX Security 2003 – p. 3
HTTP HTTPS Ideal cold cache SSL splitting cold cache SSL splittin 100% cache
0.0 0.5 1.0 1.5
Rate
1 . 6 1 . 1 3 . 4 4 . 5 6 . 1 1 . 6 1 . 1 3 . 5 2 . 1
Simulate Measure
USENIX Security 2003 – p. 3
HTTP HTTPS Ideal cold cache SSL splitting cold cache SSL splittin 100% cache
0.0 0.5 1.0 1.5
Rate
1 . 5 1 . 1 . 1 . 1 8 . 8
Simulate
USENIX Security 2003 – p. 3
and you’re not sure you trust your mirrors.
USENIX Security 2003 – p. 3
http://pdos.lcs.mit.edu/barnraising/
USENIX Security 2003 – p. 3