64
November 12, 2014 | Las Vegas, NV Colm MacCárthaigh, Amazon Web Services

(SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Embed Size (px)

DESCRIPTION

The SSL and TLS protocols are critical to online security and performance. This session discusses how the SSL and TLS protocols work and how they are integrated with many AWS services such as Amazon CloudFront, Elastic Load Balancing, and Amazon S3. Learn how technologies such as Perfect Forward Secrecy and HSTS can be used to protect end-user data, and why browsers and servers are now removing support for version 3 of the SSL protocol, SHA-1 signatures and some encryption algorithms such as RC4. By the end of the session you'll be able to understand each of these technologies and how to adapt to the changing security landscape.

Citation preview

Page 1: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

November 12, 2014 | Las Vegas, NV

Colm MacCárthaigh, Amazon Web Services

Page 2: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Secrecy Tamper proofAuthentication

Page 3: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

1991 1994 1996 1999 2006 2008 2015

Page 4: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Bleichenbacher

1998

Vaudenay

2002

Pizza

2008Reneg

2009

BEAST

2011 Alert

2012

CRIME

2012

POODLE

2014

2012

RSA-1024

2013

RC42004

MD5

SSLv2

1995

SHA1

2011

2013

Lucky13

2014

3SHAKE

Page 5: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

1991 1994 1996 1999 2006 2008 2015

Page 6: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

1991 1994 1996 1999 2006 2008 2015

Legacy

Clients

Page 7: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 8: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Public/Private

key

encryption

Shared key

encryption

SignaturesHashes/Check

sums

Page 9: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

colmmacc% ls -la /usr/bin/gcc

-rwxr-xr-x 1 root wheel 14160 Sep 26 19:06 /usr/bin/gcc

colmmacc% cat /usr/bin/gcc | shasum -a 256

24858b1cfa6ca73fd07ba4d5ea9df0e8f123930fbecff1541b13ca9522a34837

Hashes/Checksums

Page 10: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

colmmacc% openssl speed rsa escdsa aes-128-cbc

67k/sec133k/sec

747k/sec

Page 11: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Public/Private

key

encryptionSignatures

Hashes/Check

sums

Page 12: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Internet Protocol

Transmission Control Protocol

TLS

Application Protocol (HTTP, SMTP, SQL … )

Page 13: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

2Use public/private

keys to authenticate

and to establish a

shared secret

3Use the shared

secret to encrypt

and decrypt data

1Say hello and agree

on the algorithms to

use

Page 14: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Client

Hello

Page 15: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

2 31

Page 16: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

1 3

Page 17: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 18: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client protocol version, client time, 28 bytes of randomly generated data,

Client choice of Cipher Suites (in order of preference)

Server Name Indicator field

Cached Session ID / Cached Session Ticket

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 19: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

2 3

Page 20: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Public/

Private

Algorithm

Perfect

Forward

Secrecy

Shared

Secret

Algorithm

Record

Auth

Algorithm

Page 21: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Protocol version to use, server time, 28 bytes of randomly generated data,

The Cipher Suite to use

Session ID / Session Ticket

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 22: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 23: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

# Generate a 2048-bit RSA private keyopenssl genrsa –out privkey.pem 2048

# Generate a certificate signing requestopenssl req -new -key privkey.pem -out cert.csr

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 24: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

# Generate an Elliptic Curve keyopenssl ecparam –out privkey.pem –name prime256v1 –genkey

# Generate a certificate signing requestopenssl req -new -key privkey.pem -out cert.csr

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 25: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

2012

RSA-10242004

MD5

SHA1

2011

Page 26: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Nov 2014 Jan 2015 Jan 2015

31

Dec 2015

Page 27: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 28: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

O C S P

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 29: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Used for Perfect Forward Secrecy

A Diffie-Hellman public parameter is generated and sent to the client

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 30: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Perfect forward secrecy version:

Client sends another Diffie-Hellman parameter, encrypted using the server’s

public key

Legacy version:

Client sends a secret, encrypted using the server’s public key

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 31: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

We’re finished and ready to send encrypted data.

There’s also a “Change cipher suite” message to initiate encryption.

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 32: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

GET / HTTP/1.1Host: aws.amazon.comAccept-Encoding: gzip,deflate,sdchAccept-Language: en-US,en;q=0.8

Client

Hello

Server

Hello

Server

Cert

Server

Key

Client

Key

Client

Finished

Server

Finished

App

Data

App

Data

Page 33: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Reneg

2009

2014

3SHAKE

Pizza

2008

Page 34: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Public/

Private

Algorithm

Perfect

Forward

Secrecy

Shared

Secret

Algorithm

Record

Auth

Algorithm

Page 35: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Message

Type

Protocol

Version

Record

LengthEncrypted

Message

Type

Protocol

Version

Record

LengthEncrypted Encrypted Encrypted

Page 36: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Message

Type

Protocol

Version

Record

LengthEncrypted

Message

Type

Protocol

Version

Record

LengthEncrypted Encrypted Encrypted

Message

Type

Protocol

Version

Record

LengthHMACData

Message

Type

Protocol

Version

Record

LengthHMACData

P

A

D

Page 37: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Bleichenbacher

1998

Vaudenay

2002BEAST

2011

POODLE

2014

2013

RC42004

MD5

SHA1

2011

2013

Lucky13

Page 38: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Message

Type

Protocol

Version

Record

Length

Message

Type

Protocol

Version

Record

Length

Message

Type

Protocol

Version

Record

LengthHMACData

Message

Type

Protocol

Version

Record

Length

Encrypted

Initialization

VectorEncrypted Encrypted

TAG

Data

P

A

D

Nonce

Page 39: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

POODLE

2014

Page 40: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Message

Type

Protocol

Version

Record

LengthEncrypted Encrypted Encrypted

Message

Type

Protocol

Version

Record

LengthHMACData PAD

Page 41: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Message

Type

Protocol

Version

Record

LengthEncrypted Encrypted

Message

Type

Protocol

Version

Record

LengthHMACData PAD

Encrypted

Page 42: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

Message

Type

Protocol

Version

Record

LengthEncrypted Encrypted Encrypted

Message

Type

Protocol

Version

Record

LengthHMAC PAD

Page 43: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

BEAST

2011

POODLE

2014

Pizza

2008

CRIME

2012

Page 44: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

GET / HTTP/1.1\r\nCookie:1 1 2

Page 45: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

GET /a HTTP/1.1\r\nCookie: 1 2 1

Page 46: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHE

DHE

No Perfect

Forward

Secrecy

AES-128

AES-256

3DES

RC4

ECDSA

RSA

GCM

SHA128

SHA256

SHA1

MD5

Page 47: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHE AES-128ECDSA GCM

Page 48: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHE AES-128ECDSA

SHA128

Page 49: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHE AES-128ECDSA

SHA256

Page 50: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHE AES-128ECDSA

SHA1

Page 51: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHE AES-128ECDSA

MD5

Page 52: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

ECDHEAES-256

ECDSA GCM

Page 53: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

No Perfect

Forward

Secrecy

RC4

RSA

SHA1

Page 54: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

11NOV

12NOV

Page 55: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 56: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 57: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 58: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

H S T SStrict-Transport-Security: mag-age=15768000, includeSubdomains

Page 59: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

http://mozilla.github.io/server-side-tls/ssl-config-generator/

Page 60: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 61: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 62: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014
Page 63: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

http://aws.amazon.com/security

SDD423 – Elastic Load Balancing Deep Dive

PFC303 – Milliseconds Matter

Page 64: (SEC316) SSL with Amazon Web Services | AWS re:Invent 2014

http://bit.ly/awsevals