Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion...

42
Introduction tcpcrypt Performance Conclusion 1/25 The case for ubiquitous transport-level encryption Andrea Bittau, Michael Hamburg, Mark Handley, David Mazi` eres, and Dan Boneh Stanford and UCL August 13, 2010

Transcript of Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion...

Page 1: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

1/25

The case for ubiquitous transport-level encryption

Andrea Bittau, Michael Hamburg, Mark Handley,David Mazieres, and Dan Boneh

Stanford and UCL

August 13, 2010

Page 2: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

2/25

Goals

What would it take to encrypt the vast majority of TCP traffic?

1 Performance.

Fast enough to enable by default on almost all servers.

2 End-point authentication.

Leverage certificates, cookies, passwords, etc., to achieve bestpossible security for any given setting.

3 Compatibility.

Works in existing networks.Works with legacy apps.

Page 3: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

3/25

Performance today can be pretty bad

0

10000

20000

30000

40000

50000

60000

70000

TCPserver

SSLserver

Con

nect

ions

/s

60,156

737

Biggest problem: cost of public key cryptography.

Worst case: SSL can be 82x slower than TCP. . .

Worst case: tcpcrypt only 3x slower than TCP!

Page 4: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

3/25

Performance today can be pretty bad

0

10000

20000

30000

40000

50000

60000

70000

TCPserver

tcpcryptserver

SSLserver

Con

nect

ions

/s

60,156

19,153

737

Biggest problem: cost of public key cryptography.

Worst case: SSL can be 82x slower than TCP. . .

Worst case: tcpcrypt only 3x slower than TCP!

Page 5: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

4/25

Problem today:app-level auth divorced from transport

1 SSL encrypts + server auth.

SSL.Authenticate server

using certificates

2 App auths client.

SSL.Authenticate server

using certificates

Username: AndreaPassword: w00t

If step 1 fails, step 2 doesn’t help—in fact, it harms.

Page 6: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

4/25

Problem today:app-level auth divorced from transport

1 SSL encrypts + server auth.

SSL.Authenticate server

using certificates

2 App auths client.

SSL.Authenticate server

using certificates

Username: AndreaPassword: w00t

If step 1 fails, step 2 doesn’t help—in fact, it harms.

Page 7: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

5/25

What’s the best we can do?

Level of security against a network attacker depends on scenario.

Preconfiguration Use case Today’s security Possible security

None NoneNo passiveeavesdropping

Server certificate Server auth Server auth

Shared secret(cookie) no SSL

NoneMutual auth

Shared secretand SSL

Mutual auth ifcert and pass OK

Mutual auth ifpassword OK

goal with tcpcrypt

Page 8: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

5/25

What’s the best we can do?

Level of security against a network attacker depends on scenario.

Preconfiguration Use case Today’s security Possible security

None NoneNo passiveeavesdropping

Server certificate Server auth Server auth

Shared secret(cookie) no SSL

NoneMutual auth

Shared secretand SSL

Mutual auth ifcert and pass OK

Mutual auth ifpassword OK

goal with tcpcrypt

Page 9: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

5/25

What’s the best we can do?

Level of security against a network attacker depends on scenario.

Preconfiguration Use case Today’s security Possible security

None NoneNo passiveeavesdropping

Server certificate Server auth Server auth

Shared secret(cookie) no SSL

NoneMutual auth

Shared secretand SSL

Mutual auth ifcert and pass OK

Mutual auth ifpassword OK

goal with tcpcrypt

Page 10: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

5/25

What’s the best we can do?

Level of security against a network attacker depends on scenario.

Preconfiguration Use case Today’s security Possible security

None NoneNo passiveeavesdropping

Server certificate Server auth Server auth

Shared secret(cookie) no SSL

NoneMutual auth

Shared secretand SSL

Mutual auth ifcert and pass OK

Mutual auth ifpassword OK

goal with tcpcrypt

Page 11: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

5/25

What’s the best we can do?

Level of security against a network attacker depends on scenario.

Preconfiguration Use case Today’s security Possible security

None NoneNo passiveeavesdropping

Server certificate Server auth Server auth

Shared secret(cookie) no SSL

NoneMutual auth

Shared secretand SSL

Mutual auth ifcert and pass OK

Mutual auth ifpassword OK

goal with tcpcrypt

Page 12: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

5/25

What’s the best we can do?

Level of security against a network attacker depends on scenario.

Preconfiguration Use case Today’s security Possible security

None NoneNo passiveeavesdropping

Server certificate Server auth Server auth

Shared secret(cookie) no SSL

NoneMutual auth

Shared secretand SSL

Mutual auth ifcert and pass OK

Mutual auth ifpassword OK

goal with tcpcrypt

Page 13: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

6/25

Backwards compatibility issues

Two prevalent ways of encrypting network traffic:

1 At application layer (e.g., SSL).√

Works over almost all networks.× Need to modify applications.× Application protocol may not allow incremental deployment.

2 At network layer (e.g., IPSec).√

Works with all applications.× Breaks NAT.× Can’t leverage user authentication.

Ubiquitous encryption requires best of both worlds.

Page 14: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

7/25

tcpcrypt: transport-layer encryption

tcpcrypt: a TCP option for encryption.

1 High server performance: push complexity to clients.

2 Allow applications to authenticate end points.

3 Backwards compatibility: all TCP apps, all networks, allauthentication settings.

Page 15: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

8/25

tcpcrypt overview

Extend TCP in a compatible way using TCP options.

Applications use standard BSD socket API.

New getsockopt for authentication.

Encryption automatically enabled if both end points supporttcpcrypt.

Page 16: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

9/25

Push expensive operations to clients

Public key operations expensive, but not all equally expensive.

RSA-exp3-2048 performance:

Operation Latency (ms)

Decrypt 10.42Encrypt 0.26

Have client do decrypt

client server

Generate ephemeral key pairpublic key

Generate random master keyencpubk(master key)

Without server authentication, have client decrypt.Lets servers accept connections at 36x rate of SSL.

Page 17: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

10/25

Link app auth to transport auth

Session ID: hook linking tcpcrypt to app-level authentication.

New getsockopt returns non-secret Session ID value.

Unique for every connection (if one endpoint honest).

If same on both ends, no man-in-the-middle.

tcpcrypt

Password based Authentication of

user & sess ID

Session IDSession ID

Authenticating the Session ID authenticates the end point.

Page 18: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

11/25

Auth example: batch signing

Tcpcrypt: server signs multiple session IDs at once to amortizeRSA cost.

SID A

“A”Signed by amazon.com

RSA op.

SSL servers must RSA decrypt each client’s secret.

enc(secret A)

enc(secret B)

enc(secret C)

enc(secret D)

RSA op.

RSA op.RSA op.

RSA op.

Page 19: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

11/25

Auth example: batch signing

Tcpcrypt: server signs multiple session IDs at once to amortizeRSA cost.

SID B

SID A

“A”Signed by amazon.com

RSA op.

“B”Signed by amazon.comRSA op.

SSL servers must RSA decrypt each client’s secret.

enc(secret A)

enc(secret B)

enc(secret C)

enc(secret D)

RSA op.

RSA op.RSA op.

RSA op.

Page 20: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

11/25

Auth example: batch signing

Tcpcrypt: server signs multiple session IDs at once to amortizeRSA cost.

SID B

SID A SID C

SID D

“A, B, C, D”

Signed by amazon.com

RSA op.

SSL servers must RSA decrypt each client’s secret.

enc(secret A)

enc(secret B)

enc(secret C)

enc(secret D)

RSA op.

RSA op.RSA op.

RSA op.

Page 21: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

11/25

Auth example: batch signing

Tcpcrypt: server signs multiple session IDs at once to amortizeRSA cost.

SID B

SID A SID C

SID D

“A, B, C, D”

Signed by amazon.com

RSA op.

SSL servers must RSA decrypt each client’s secret.

enc(secret A)

enc(secret B)

enc(secret C)

enc(secret D)

RSA op.

RSA op.RSA op.

RSA op.

Page 22: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

12/25

Key exchange overview

Do you support tcpcrypt?

Yes, and I support RSA

RSA public key

encpubk(master key) Generate random master key

client server

Clients periodically generate ephemeral public keys.

Page 23: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

13/25

tcpcrypt key exchange

SYN

SYN ACK

ACK

tcpcrypt negotiation encoded in TCP options.

INIT1 and INIT2 too long: sent as data invisible to apps.

Page 24: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

13/25

tcpcrypt key exchange

SYN - CRYPT(HELLO)

SYN ACK

ACK

probe tcpcrypt

tcpcrypt negotiation encoded in TCP options.

INIT1 and INIT2 too long: sent as data invisible to apps.

Page 25: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

13/25

tcpcrypt key exchange

SYN - CRYPT(HELLO)

SYN ACK - CRYPT(PKCONF)

ACK - CRYPT(INIT1)

ACK - CRYPT(INIT2)

crypto on

probe tcpcrypt

public key ciphers and key sizes list

symmetric ciphers and MACs list, nonce, public key

encrypted client and server nonce (master key)

tcpcrypt negotiation encoded in TCP options.

INIT1 and INIT2 too long: sent as data invisible to apps.

Page 26: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

14/25

Key scheduling

Master key is hash of:

Server and client nonces.

Public key used and negotiated parameters.

Master key

RX MAC key

TX MAC key

RX enc. key

TX enc. key

Session ID

hash(HMAC)

Session caching, like in SSL: on reconnect, establish new keyswithout explicit key exchange.

Page 27: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

14/25

Key scheduling

Master key is hash of:

Server and client nonces.

Public key used and negotiated parameters.

Master key

RX MAC key

TX MAC key

RX enc. key

TX enc. key

Session ID

hash(HMAC)

Next master key

MAC enc SID

Session caching, like in SSL: on reconnect, establish new keyswithout explicit key exchange.

Page 28: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

15/25

Session caching

SYN - NEXTK1

SYN ACK - NEXTK2

crypto on

ack

New session based on session with ID X

OK!

Low latency: completes within TCP handshake.

Page 29: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

16/25

TCP MAC and encryption

src port dst port

seq no. (64-bit seq)

ack no. (64-bit ack)

d.off. flags window checksum urg. ptr.

options (e.g., SACK) MAC option

data TCP length

MACed

Encrypted

Allow NATs: do not MAC ports.

Prevent replay: MAC extended (implicit) seq. no.

Prevent truncation / extension: MAC length.

Page 30: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

17/25

Implementation

1 Linux kernel implementation: 4,500 LoC.

2 Portable userspace divert socket implementation: 7,000 LoC.

Tested on Windows (required implementing divert sockets),Mac OS, Linux and FreeBSD.

Packet flow in divert socket implementation.

Network Kernel

tcpcryptd

application

1

2

3 4

3 Binary compatible OpenSSL library that attempts tcpcryptwith batch-signing or falls back to SSL.

Page 31: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

18/25

Performance overview

Performance considerations when turning encryption on:

1 Does encryption sacrifice request handling throughput? E.g.,how many web requests / second can a server handle?

2 Is request latency harmed? E.g., How long does a client needto wait before a web page is displayed?

3 Is data throughput high? What’s the bitrate whendownloading?

Hardware: 8-core, 2.66GHz Xeon (2008-era).Software: Linux kernel implementation.

Page 32: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

19/25

High connection rate on servers

0

20000

40000

60000

80000

100000

120000

TCP tcpcryptserver

SSLserver

Con

nect

ions

/s

98,434

27,070

754

No sessions cached

Page 33: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

19/25

High connection rate on servers

0

20000

40000

60000

80000

100000

120000

TCP tcpcryptserver

SSLserver

Con

nect

ions

/s

98,434

27,070

754

70,044

39,785

No sessions cachedAll sessions cached

Page 34: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

20/25

Low authentication cost

0

5000

10000

15000

20000

25000

30000

35000

noauth

shared secret certificates weak password SSL

Con

nect

ions

/s

27,070 26,395

18,790

1,418 754

25x faster than SSL when batch signing

Page 35: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

21/25

Web-serve up to 25x faster than SSL

0

10000

20000

30000

40000

50000

60000

70000

TCP tcpcryptserver

SSL

Con

nect

ion

rate

(co

nn/s

) 60,156

19,153

737

42,440

19,787

No sessions cachedAll sessions cached

Apache serving a 44 byte static file.

No server authentication with tcpcrypt: fair comparison wouldmake tcpcrypt slower.

Page 36: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

22/25

Lower connect latency than SSL

Protocol LAN connect time (ms)

TCP 0.2

tcpcrypt cached 0.3tcpcrypt not cached 11.3

SSL cached 0.7SSL not cached 11.6

tcpcrypt batch sign 11.2tcpcrypt CMAC 11.4tcpcrypt PAKE 15.2

Batch signing does not add latency

SYN - HELLO

SYN ACK - PKCONF

ACK - INIT1

ACK - INIT2RSA sign start

RSA decrypt startSignature

connection ready

Page 37: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

22/25

Lower connect latency than SSL

Protocol LAN connect time (ms)

TCP 0.2

tcpcrypt cached 0.3tcpcrypt not cached 11.3

SSL cached 0.7SSL not cached 11.6

tcpcrypt batch sign 11.2tcpcrypt CMAC 11.4tcpcrypt PAKE 15.2

Batch signing does not add latency

SYN - HELLO

SYN ACK - PKCONF

ACK - INIT1

ACK - INIT2RSA sign start

RSA decrypt startSignature

connection ready

Page 38: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

22/25

Lower connect latency than SSL

Protocol LAN connect time (ms)

TCP 0.2

tcpcrypt cached 0.3tcpcrypt not cached 11.3

SSL cached 0.7SSL not cached 11.6

tcpcrypt batch sign 11.2tcpcrypt CMAC 11.4tcpcrypt PAKE 15.2

Batch signing does not add latency

SYN - HELLO

SYN ACK - PKCONF

ACK - INIT1

ACK - INIT2RSA sign start

RSA decrypt startSignature

connection ready

Page 39: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

23/25

Gigabit encryption possible

0

2000

4000

6000

8000

10000

12000

14000

TCP tcpcryptAES

SHA1

SSLAES

SHA1

Tra

nsfe

r ra

te (

Mbi

t/s)

12,954

3,968 3,692

New CPUs (Westmere) with special AES instructions can saturate9 Gbit/s networks while encrypting.

Page 40: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

23/25

Gigabit encryption possible

0

2000

4000

6000

8000

10000

12000

14000

TCP tcpcryptAESNIUMAC

tcpcryptAES

SHA1

SSLAES

SHA1

Tra

nsfe

r ra

te (

Mbi

t/s)

12,954

3,968 3,692

8,835

AES-NI 3.33GHz i5

New CPUs (Westmere) with special AES instructions can saturate9 Gbit/s networks while encrypting.

Page 41: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

24/25

Related work

1 Network layer solutions: IPSec, Better Than Nothing Security.

Hard to integrate with application-level authentication.Network compatibility issues: NATs.

2 Application layer solutions: SSL, Opportunistic encryption[Langley].

Poor server-side performance.Requires changes to apps and possibly protocol.

3 SSL performance improvements:

SSL batching [Shacham & Boneh]: requires different publickeys.SSL rebalancing [Castelluccia, Mykletun & Tsudik]: does notleverage app-level authentication.

Page 42: Introduction tcpcrypt Performance Conclusion 1/25 · Introduction tcpcrypt Performance Conclusion 3/25 Performance today can be pretty bad 0 10000 20000 30000 40000 50000 60000 70000

Introductiontcpcrypt

PerformanceConclusion

25/25

Conclusion

1 High server performance makes encryption a realistic default.

2 Let applications leverage tcpcrypt to maximizecommunication security in every setting.

3 Incrementally deployable, compatible with legacy apps, TCPand NATs.

Install tcpcrypt and help encrypt the Internet!

http://tcpcrypt.org