• No results found

Secure, insecure, secure, insecure: The ongoing saga of the SSL/TLS protocol. Dr Douglas Stebila

N/A
N/A
Protected

Academic year: 2021

Share "Secure, insecure, secure, insecure: The ongoing saga of the SSL/TLS protocol. Dr Douglas Stebila"

Copied!
41
0
0

Loading.... (view fulltext now)

Full text

(1)

Dr Douglas

Stebila

Secure, insecure, secure, insecure:

The ongoing saga of

the SSL/TLS protocol

(2)

¡

Introduction to SSL/TLS

¡

Technical details

¡

Attacks!

(3)

A brief introduction to

SSL/TLS

(4)

¡

TLS? What’s that?

¡

SSL? Huh?

¡

HTTPS? That’s the lock icon, right?

(5)

¡

SSL: Secure Sockets Layer

¡

Proposed by Netscape

§

SSLv2: 1995

§

SSLv3: 1996

¡

TLS: Transport Layer

Security

¡

IETF Standardization of SSL

§

TLSv1.0 = SSLv3: 1999

§

TLSv1.1: 2006

§

TLSv1.2: 2008

¡

HTTPS: HTTP (Hypertext

Transport Protocol) over SSL

(6)

OSI

Network

Protocol

Stack

• 

Application to handle data

• 

HTTP, FTP, SSH, SMTP, SNMP, …

Application

• 

Data representation, encryption

• 

TLS (Transport Layer Security) / SSL (Secure Sockets Layer)

Presentation

• 

Managing sessions

Session

• 

End-to-end connections, reliability, flow control

• 

TCP (Transport Control Protocol), UDP (User Datagram Protocol)

Transport

• 

Logical addressing

• 

IPv4, IPv6

Network

• 

Physical addressing

• 

802.3 (Ethernet)

Data Link

• 

Media, signal, and binary transmission

• 

802.3 (Ethernet), 802.11 (Wireless)

Physical

(7)

Web applications

Web browsers

Web servers

forms, JavaScript, …

HTML

cookies

HTTP

TLS

TCP

(IPsec)

IP

Ethernet

• 

static files or CGI programs (PHP, Java, C#)

• 

databases, XML web services

HTML

cookies

HTTP

TLS

TCP

(IPsec)

IP

Ethernet

(8)

Security goals of TLS

¡

Provides authentication based on public key certificates

§

server-to-client (always)

§

client-to-server (optional)

¡

Provides confidentiality and integrity of message transmission

(9)

¡

Digital signatures:

§

A user signs a message

using her private key.

§

Anyone holding a copy of her

public key can verify her

message.

¡

X.509 certificates

are used

to certify that a public key

belongs to a particular entity.

¡

Certificate authorities (CAs)

sign users’ public keys.

(10)

Certificates

Certificate:

Data:

Version: 3 (0x2)

Serial Number:

17:58:c3:a6:00:01:00:00:86:50

Signature Algorithm: sha1WithRSAEncryption

Issuer: C=US, O=Google Inc, CN=Google Internet Authority

Validity

Not Before: May 8 11:42:20 2013 GMT

Not After : Dec 30 11:42:20 2013 GMT

Subject: C=US, ST=California, L=Mountain View, O=Google Inc, CN=*.google.com

Subject Public Key Info:

Public Key Algorithm: id-ecPublicKey

EC Public Key:

pub:

04:20:b9:2f:3c:9b:45:46:fc:94:13:01:a0:60:aa:

09:76:1b:ea:5d:87:e4:c6:bf:52:fb:ae:fd:95:8c:

9e:a6:77:f2:99:2d:e2:84:80:5e:f5:bd:f1:cf:25:

a2:1d:2e:da:42:da:f1:99:59:d5:0c:10:34:d2:57:

b1:b2:92:2b:d0

ASN1 OID: prime256v1

X509v3 extensions:

X509v3 Extended Key Usage:

TLS Web Server Authentication, TLS Web Client Authentication

X509v3 Key Usage:

Digital Signature

X509v3 Subject Key Identifier:

C8:D7:9C:D7:51:2F:DB:D6:E4:4B:29:64:C3:0E:02:5F:1D:D8:D9:E3

X509v3 Authority Key Identifier:

keyid:BF:C0:30:EB:F5:43:11:3E:67:BA:9E:91:FB:FC:6A:DA:E3:6B:12:24

X509v3 CRL Distribution Points:

URI:http://www.gstatic.com/GoogleInternetAuthority/GoogleInternetAuthority.crl

“One of 650+ organizations trusted by

your browser claims this public key

belongs to yoursite.com and (probably)

(11)

TLS authentication using certificates

Server creates

public key / private

key pair

Certificate authority

(CA) creates

certificate for

server’s public key

Server sends

certificate in TLS

handshake

Server uses private

key to sign

messages in TLS

handshake

Client installs

CA’s public key

in browser

Client receives

server’s

certificate

Client verifies

server

certificate using

CA certificate

Client

authenticates

server’s TLS

handshake

(12)
(13)

In reality:

¡

5 protocol versions

¡

vast array of standards

¡

many implementations!

¡

300+ combinations of

cryptographic primitives

¡

different levels of security

¡

different modes of

authentication

¡

additional functionality:

§ 

alerts & errors

§ 

session resumption

§ 

renegotiation

§ 

compression

What is TLS?

https://www.trustworthyinternet.org/ssl-pulse/ May 7, 2013

1995

!

1996

!

1999

!

2006

!

2008

!

(14)

The current approved version of TLS is version 1.2, which is specified in:

¡

RFC 5246: “The Transport Layer Security (TLS) Protocol Version 1.2”.

The current standard replaces these former versions, which are now considered obsolete:

¡

RFC 2246: “The TLS Protocol Version 1.0”.

¡

RFC 4346: “The Transport Layer Security (TLS) Protocol Version 1.1”.

as well as the never standardized SSL 3.0:

¡

RFC 6101: “The Secure Sockets Layer (SSL) Protocol Version 3.0”.

Other RFCs subsequently extended TLS.

Extensions to TLS 1.0 include:

¡

RFC 2595: “Using TLS with IMAP, POP3 and ACAP”. Specifies an extension to the IMAP, POP3 and ACAP services that allow the server and client to use transport-layer

security to provide private, authenticated communication over the Internet.

¡

RFC 2712: “Addition of Kerberos Cipher Suites to Transport Layer Security (TLS)”. The 40-bit cipher suites defined in this memo appear only for the purpose of

documenting the fact that those cipher suite codes have already been assigned.

¡

RFC 2817: “Upgrading to TLS Within HTTP/1.1”, explains how to use the Upgrade mechanism in HTTP/1.1 to initiate Transport Layer Security (TLS) over an existing

TCP connection. This allows unsecured and secured HTTP traffic to share the same well known port (in this case, http: at 80 rather than https: at 443).

¡

RFC 2818: “HTTP Over TLS”, distinguishes secured traffic from insecure traffic by the use of a different 'server port'.

¡

RFC 3207: “SMTP Service Extension for Secure SMTP over Transport Layer Security”. Specifies an extension to the SMTP service that allows an SMTP server and client

to use transport-layer security to provide private, authenticated communication over the Internet.

¡

RFC 3268: “AES Ciphersuites for TLS”. Adds Advanced Encryption Standard (AES) cipher suites to the previously existing symmetric ciphers.

¡

RFC 3546: “Transport Layer Security (TLS) Extensions”, adds a mechanism for negotiating protocol extensions during session initialisation and defines some

extensions. Made obsolete by RFC 4366.

¡

RFC 3749: “Transport Layer Security Protocol Compression Methods”, specifies the framework for compression methods and the DEFLATE compression method.

¡

RFC 3943: “Transport Layer Security (TLS) Protocol Compression Using Lempel-Ziv-Stac (LZS)”.

¡

RFC 4132: “Addition of Camellia Cipher Suites to Transport Layer Security (TLS)”.

¡

RFC 4162: “Addition of SEED Cipher Suites to Transport Layer Security (TLS)”.

¡

RFC 4217: “Securing FTP with TLS”.

¡

RFC 4279: “Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)”, adds three sets of new cipher suites for the TLS protocol to support authentication based

on pre-shared keys.

Extensions to TLS 1.1 include:

¡

RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols (such as UDP).

¡

RFC 4366: “Transport Layer Security (TLS) Extensions” describes both a set of specific extensions and a generic extension mechanism.

¡

RFC 4492: “Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)”.

¡

RFC 4507: “Transport Layer Security (TLS) Session Resumption without Server-Side State”.

¡

RFC 4680: “TLS Handshake Message for Supplemental Data”.

¡

RFC 4681: “TLS User Mapping Extension”.

¡

RFC 4785: “Pre-Shared Key (PSK) Ciphersuites with NULL Encryption for Transport Layer Security (TLS)”.

¡

RFC 5054: “Using the Secure Remote Password (SRP) Protocol for TLS Authentication”. Defines the TLS-SRP ciphersuites.

¡

RFC 5081: “Using OpenPGP Keys for Transport Layer Security (TLS) Authentication”, obsoleted by RFC 6091.

Extensions to TLS 1.2 include:

¡

RFC 5746: “Transport Layer Security (TLS) Renegotiation Indication Extension”.

¡

RFC 5878: “Transport Layer Security (TLS) Authorization Extensions”.

¡

RFC 6091: “Using OpenPGP Keys for Transport Layer Security (TLS) Authentication“.

¡

RFC 6176: “Prohibiting Secure Sockets Layer (SSL) Version 2.0”.

¡

RFC 6209: “Addition of the ARIA Cipher Suites to Transport Layer Security (TLS)”.

http://en.wikipedia.org/wiki/

Transport_Layer_Security

What is

TLS?

(15)

TLS_NULL_WITH_NULL_NULL TLS_RSA_WITH_NULL_MD5 TLS_RSA_WITH_NULL_SHA TLS_RSA_EXPORT_WITH_RC4_40_MD5 TLS_RSA_WITH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_SHA TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 TLS_RSA_WITH_IDEA_CBC_SHA TLS_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_RSA_WITH_DES_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA TLS_DH_DSS_WITH_DES_CBC_SHA TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DH_RSA_WITH_DES_CBC_SHA TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA TLS_DHE_DSS_WITH_DES_CBC_SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA TLS_DHE_RSA_WITH_DES_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA

TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 TLS_DH_anon_WITH_RC4_128_MD5 TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA TLS_DH_anon_WITH_DES_CBC_SHA TLS_DH_anon_WITH_3DES_EDE_CBC_SHA TLS_KRB5_WITH_DES_CBC_SHA TLS_KRB5_WITH_3DES_EDE_CBC_SHA TLS_KRB5_WITH_RC4_128_SHA TLS_KRB5_WITH_IDEA_CBC_SHA TLS_KRB5_WITH_DES_CBC_MD5 TLS_KRB5_WITH_3DES_EDE_CBC_MD5 TLS_KRB5_WITH_RC4_128_MD5

TLS_KRB5_WITH_IDEA_CBC_MD5 TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA TLS_KRB5_EXPORT_WITH_RC4_40_SHA TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 TLS_KRB5_EXPORT_WITH_RC4_40_MD5 TLS_PSK_WITH_NULL_SHA TLS_DHE_PSK_WITH_NULL_SHA TLS_RSA_PSK_WITH_NULL_SHA TLS_RSA_WITH_AES_128_CBC_SHA

TLS_DH_DSS_WITH_AES_128_CBC_SHA TLS_DH_RSA_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DH_anon_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_DH_DSS_WITH_AES_256_CBC_SHA TLS_DH_RSA_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_DH_anon_WITH_AES_256_CBC_SHA TLS_RSA_WITH_NULL_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_DH_DSS_WITH_AES_128_CBC_SHA256 TLS_DH_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256

TLS_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 TLS_DH_DSS_WITH_AES_256_CBC_SHA256 TLS_DH_RSA_WITH_AES_256_CBC_SHA256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 TLS_DH_anon_WITH_AES_128_CBC_SHA256 TLS_DH_anon_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA TLS_PSK_WITH_RC4_128_SHA TLS_PSK_WITH_3DES_EDE_CBC_SHA TLS_PSK_WITH_AES_128_CBC_SHA TLS_PSK_WITH_AES_256_CBC_SHA TLS_DHE_PSK_WITH_RC4_128_SHA TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA TLS_DHE_PSK_WITH_AES_128_CBC_SHA TLS_DHE_PSK_WITH_AES_256_CBC_SHA TLS_RSA_PSK_WITH_RC4_128_SHA TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA TLS_RSA_PSK_WITH_AES_128_CBC_SHA TLS_RSA_PSK_WITH_AES_256_CBC_SHA TLS_RSA_WITH_SEED_CBC_SHA TLS_DH_DSS_WITH_SEED_CBC_SHA TLS_DH_RSA_WITH_SEED_CBC_SHA TLS_DHE_DSS_WITH_SEED_CBC_SHA TLS_DHE_RSA_WITH_SEED_CBC_SHA TLS_DH_anon_WITH_SEED_CBC_SHA TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 TLS_DH_RSA_WITH_AES_128_GCM_SHA256 TLS_DH_RSA_WITH_AES_256_GCM_SHA384 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 TLS_DH_DSS_WITH_AES_128_GCM_SHA256 TLS_DH_DSS_WITH_AES_256_GCM_SHA384 TLS_DH_anon_WITH_AES_128_GCM_SHA256 TLS_DH_anon_WITH_AES_256_GCM_SHA384 TLS_PSK_WITH_AES_128_GCM_SHA256 TLS_PSK_WITH_AES_256_GCM_SHA384 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 TLS_PSK_WITH_AES_128_CBC_SHA256 TLS_PSK_WITH_AES_256_CBC_SHA384 TLS_PSK_WITH_NULL_SHA256 TLS_PSK_WITH_NULL_SHA384 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 TLS_DHE_PSK_WITH_NULL_SHA256 TLS_DHE_PSK_WITH_NULL_SHA384 TLS_RSA_PSK_WITH_AES_128_CBC_SHA256

TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 TLS_RSA_PSK_WITH_NULL_SHA256 TLS_RSA_PSK_WITH_NULL_SHA384 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256

TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 TLS_EMPTY_RENEGOTIATION_INFO_SCSV TLS_ECDH_ECDSA_WITH_NULL_SHA TLS_ECDH_ECDSA_WITH_RC4_128_SHA TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_NULL_SHA TLS_ECDHE_ECDSA_WITH_RC4_128_SHA TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDH_RSA_WITH_NULL_SHA TLS_ECDH_RSA_WITH_RC4_128_SHA TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA TLS_ECDH_RSA_WITH_AES_128_CBC_SHA TLS_ECDH_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_NULL_SHA TLS_ECDHE_RSA_WITH_RC4_128_SHA TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDH_anon_WITH_NULL_SHA TLS_ECDH_anon_WITH_RC4_128_SHA

TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA TLS_ECDH_anon_WITH_AES_128_CBC_SHA TLS_ECDH_anon_WITH_AES_256_CBC_SHA TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA TLS_SRP_SHA_WITH_AES_128_CBC_SHA TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA TLS_SRP_SHA_WITH_AES_256_CBC_SHA TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256

TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256

TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_PSK_WITH_RC4_128_SHA TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 TLS_ECDHE_PSK_WITH_NULL_SHA TLS_ECDHE_PSK_WITH_NULL_SHA256 TLS_ECDHE_PSK_WITH_NULL_SHA384 TLS_RSA_WITH_ARIA_128_CBC_SHA256 TLS_RSA_WITH_ARIA_256_CBC_SHA384 TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384

TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384

TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 TLS_RSA_WITH_ARIA_128_GCM_SHA256 TLS_RSA_WITH_ARIA_256_GCM_SHA384 TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256

TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 TLS_PSK_WITH_ARIA_128_CBC_SHA256 TLS_PSK_WITH_ARIA_256_CBC_SHA384 TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 TLS_PSK_WITH_ARIA_128_GCM_SHA256 TLS_PSK_WITH_ARIA_256_GCM_SHA384 TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384

TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384

TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384

TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384

TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 TLS_RSA_WITH_AES_128_CCM TLS_RSA_WITH_AES_256_CCM TLS_DHE_RSA_WITH_AES_128_CCM TLS_DHE_RSA_WITH_AES_256_CCM TLS_RSA_WITH_AES_128_CCM_8 TLS_RSA_WITH_AES_256_CCM_8 TLS_DHE_RSA_WITH_AES_128_CCM_8 TLS_DHE_RSA_WITH_AES_256_CCM_8 TLS_PSK_WITH_AES_128_CCM TLS_PSK_WITH_AES_256_CCM TLS_DHE_PSK_WITH_AES_128_CCM TLS_DHE_PSK_WITH_AES_256_CCM TLS_PSK_WITH_AES_128_CCM_8 TLS_PSK_WITH_AES_256_CCM_8 TLS_PSK_DHE_WITH_AES_128_CCM_8 TLS_PSK_DHE_WITH_AES_256_CCM_8

List of all

314 TLS

(16)

Components of TLS

Crypto

primitives

RSA, DSA,

ECDSA

Diffie–Hellman,

ECDH

HMAC

MD5, SHA1,

SHA-2

DES, 3DES, RC4,

AES

Ciphersuite

details

Data structures

Key derivation

Encryption

modes, IVs

Padding

Compression

Protocol

“framework”

Alerts & errors

Certification /

revocation

Negotiation

Renegotiation

Session

resumption

Libraries

OpenSSL

GnuTLS

SChannel

Java JSSE

Applications

Web browsers:

Chrome, Firefox,

IE, Safari

Web servers:

Apache, IIS, …

Application

SDKs

Certificates

(17)

TLS protocol overview

Negotiation of cryptographic parameters

Authentication (one-way or mutual) using public key certificates

Establishment of a master secret key

Derivation of encryption and authentication keys

Key confirmation

Bi-direction authenticated encryption

Optional compression

H

AN

D

S

H

AK

E

PR

O

TO

CO

L

REC

ORD

LA

YER

ALERT

PROTOCOL

(18)

Cryptographic details

ClientHello --->

ServerHello

Certificate*

ServerKeyExchange*

CertificateRequest*

<--- ServerHelloDone

Certificate*

ClientKeyExchange

CertificateVerify*

[ChangeCipherSpec]

Finished --->

[ChangeCipherSpec]

<--- Finished

Bi-direction authenticated encryption

Optional compression

H

AN

D

S

H

AK

E

PR

O

TO

CO

L

REC

ORD

LA

YER

TLS version

random nonce

session identifier

preferred ciphersuites

preferred compression method

extensions

RSA, D

SA, or

ECDS

A

RSA ke

y transp

ort

static Dif

fie–Hel

lman

ephem

eral Dif

fie–Hel

lman

static / e

pheme

ral ECD

H

SRP

HMAC with

MD5

SHA-1

SHA-256

SHA-384

SHA-512

Session key derivation: H

(MD-5

MAC with

SHA-1) or SHA-256

DES/3DES CBC

RC4

AES CBC/GCM/CCM

others

(19)
(20)
(21)

What should TLS do?

¡

Server-to-client

authentication

¡

Client-to-server

authentication

(optional)

¡

Confidential

communication with

integrity protection

What doesn’t TLS do?

¡

(Trusted creation of

certificates)

¡

Password-based

authentication

¡

Stop denial of service

attacks

¡

Prevent web application

vulnerabilities

(22)

¡

After 10+ years of cryptographic research, we know that:

¡

TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA ciphersuite running

in TLSv1.2 is a secure authenticated and confidential channel

establishment protocol assuming

§

TLS PRF is secure

§

DSA is existentially unforgeable under chosen message attack

§

variant of oracle Diffie–Hellman assumption

§

record layer encryption is secure stateful length-hiding authenticated

encryption (sLHAE)

(23)

Components of TLS

Crypto

primitives

RSA, DSA,

ECDSA

Diffie–Hellman,

ECDH

HMAC

MD5, SHA1,

SHA-2

DES, 3DES, RC4,

AES

Ciphersuite

details

Data structures

Key derivation

Encryption

modes, IVs

Padding

Compression

Protocol

“framework”

Alerts & errors

Certification /

revocation

Negotiation

Renegotiation

Session

resumption

Libraries

OpenSSL

GnuTLS

SChannel

Java JSSE

Applications

Web browsers:

Chrome, Firefox,

IE, Safari

Web servers:

Apache, IIS, …

Application

SDKs

Certificates

(24)

The gap between theory & practice

Crypto

primitives

RSA, DSA,

ECDSA

Diffie–Hellman,

ECDH

HMAC

MD5

, SHA1,

SHA-2

DES

, 3DES,

RC4

,

AES

Ciphersuite

details

Data structures

Key derivation

Encryption

modes

, IVs

Padding

Compression

Protocol

“framework”

Alerts & errors

Certification /

revocation

Negotiation

Renegotiation

Session

resumption

Libraries

OpenSSL

GnuTLS

SChannel

Java JSSE

Applications

Web browsers:

Chrome, Firefox,

IE, Safari

Web servers:

Apache, IIS, …

Application

SDKs

Certificates

Bleichenbacher

RSA PKCSv1

Ray & Dispensa

renegotiation

attack

Rizzo & Duong

“CRIME” attack

Debian

OpenSSL

entropy bug

Lucky 13

Rizzo & Duong

“BEAST” attack

(25)

¡

Allows parties to update

an existing TLS session

to get a new key or

change authentication

¡

Attacker can inject a

packet before

legitimate traffic

¡

Nov. 2009

¡

Fix: disable

renegotiation or

upgrade

Esoteric features – renegotiation

(26)

¡

TLS supports optional

compression

¡

Message broken up into

chunks, each chunk

compressed then encrypted

¡

Size of ciphertext

=> amount of compression

=> leaks plaintext info

¡

“CRIME” attack, Sept. 2012

¡

Fix: disable compression

Esoteric features – compression

(27)

¡

DigiNotar in Jul. 2011

§

security breach, malicious certificates

for many domains issued

§

went out of business

¡

TURK TRUST in Aug. 2011

§

issued intermediate CA with wildcard

signing capabilities

§

later used for man-in-the-middle proxy

filtering/scanning

§

no evidence for use in attack

§

detected only in Jan 2013

¡

Digicer t Malaysia in Nov. 2011

§

22 certificates with weak private keys

or missing revocation details issued

¡

KPN/Getronics in Nov. 2011

§

suspended CA business after detecting

infection on its web server no evidence

of certificate malfeasance

¡

Web browsers trust

650+ certificate

authorities which can

issue certificates for

any domain on the

Internet

¡

Extended validation

certificates don’t solve

the problem

(28)

¡

Web service SDKs

need secure

communications

§

Amazon EC2 Java library

§

Amazon, PayPal

merchant SDK

¡

Rely on standard

crypto libraries…

¡

… but didn’t properly

use certificate

validation.

¡

=> Any valid

certificate would be

accepted as “valid” by

PayPal SDK (any many

others)

¡

Most fixed

¡

https://cr ypto.stanford.edu/~dabo/

pubs/abstracts/ssl-client-bugs.html

(29)

¡

Many weaknesses found in record layer symmetric encryption

algorithms.

¡

Usually require large amount of data to succeed.

¡

Not urgent to fix, but cryptographic attacks only get better,

never worse.

¡

Can be confusing as knowledge evolves:

§

BEAST attack 2011 => AES-CBC mode insecure, use RC4

§

Paterson et al. attack 2013 => RC4 insecure, use fixed AES-CBC

Cryptographic attacks

(30)
(31)

¡

Good server configurations can make TLS

more secure right now.

¡

Solutions for improving control over

certificates are coming soon.

¡

User authentication is not here yet.

(32)

¡

Upgrade to latest web server versions to fix:

§

BEAST, renegotiation attacks

¡

Turn off compression in SSL/TLS to fix CRIME attack

¡

Prefer AES-CBC mode or TLSv1.2

Deploy fixes against known attacks

Do this

(33)

¡

Offers the same

cryptographic security

with smaller keys and

better performance

¡

RSA 2048-bit:

200 signs/sec

¡

ECDSA 256-bit:

4500 signs/sec

¡

Browser: modern ones

¡

Servers: modern ones

¡

Few CAs support

elliptic curve public

keys

¡

Part of NIST Suite B

Elliptic curve cryptography

Comi

ng

soon?

(34)

¡

Provide

perfect

forward secrecy

in

TLS handshake key

agreement

¡

If your certificate’s

private key is every

compromised,

attackers can’t

decrypt past

communications

¡

Browsers: all

¡

Web servers: all

¡

Cost: slower server

performance

§

But with elliptic curves

not much slower:

§

+1-5ms/connection

§

Google now uses it as

default ciphersuite

¡

S S L C i p h e r S u i t e E C D H E R S A R C 4

-S H A : H I G H : …

Ephemeral Diffie–Hellman

Do this

(35)

¡

RSA: 1024-bit keys

shouldn’t be used any

more

¡

RSA: 2048-bit keys

good for a while

¡

SHA-2: Good choice

¡

SHA-3: Not needed for

the foreseeable future

¡

NIST Suite B: TLS 1.2 +

AES + SHA-2 + elliptic

curve public keys

¡

Required for US

national security

systems use after 2015

§

Few servers support TLS

1.2

§

Few CAs support elliptic

curve public keys

(36)

¡

Declare that your

website should

always

be accessed over

HTTPS

¡

Next time, supporting

browsers will always

request

https

://www.yoursite.com/

no matter what the

user types or the link

says

¡

Standardized:

RFC 6797

¡

Browser support:

Chrome, Firefox,

Opera

¡

Server support: easy,

just add a custom

HTTP header

§ 

LoadModule headers_module modules/

mod_headers.so

§ 

<VirtualHost 10.0.0.1:443>

§ 

Header always set Strict-Transport-Security

"max-age=31536000; includeSubDomains"

§ 

</VirtualHost>

HTTP Strict Transport Security

Do this

(37)

¡

Pinning: you can

declare that your site

will only use keys

signed by X for the

next Y time period

¡

E.g. used by Google

Chrome for a few

years, used to detect

DigiNotar breach

¡

Not standardized;

competing(?)

techniques

¡

Pinning: supported by

Chrome; easy to do on

a web server

¡

Tacking: no support

yet

Certificate pinning and tacking

Comi

ng

soon?

(38)

¡

Store sites’ public

keys in DNS records

¡

Retrieve

authentically via

DNSSEC

¡

Replaces X.509 CAs

entirely but now has

a single root of trust

¡

Standardized

¡

Browser support:

Chrome, Firefox

extension

¡

Requires DNSSEC

infrastructure and

support (not .au),

plus server setup

DANE: DNS-based Authentication of

Named Entities

Comi

ng

(39)

¡

TLS today only does

client-to-server

authentication based

on public-key

certificates.

¡

No native support for

single sign-on or

password-based

authentication.

¡

HTTP working

group looking for

secure password

authentication

protocols.

§

Possible to

cryptographically protect

password authentication

so it’s secure even in the

face of phishing.

User authentication

Comi

ng

later?

(40)
(41)

Transport Layer Security

¡

Essential for

server-to-client authentication and

confidential

communication on the

web and elsewhere.

¡

Relies heavily on public

key certificates.

¡

Complex cryptographic

protocol with many

options.

Staying secure

¡

Cryptographic security of

TLS constantly evolving.

¡

Update servers to get fixes

for recent attacks.

¡

Better certificate

management coming soon

(pinning, DANE).

¡

Visit webcryptography.org in

a few weeks’ time for a

clearinghouse on TLS and

web cryptography.

On the security of SSL/TLS

References

Related documents

15-O-1378 (1) - AN ORDINANCE BY THE PUBLIC SAFETY &amp; LEGAL ADMINISTRATION COMMITTEE AUTHORIZING THE MAYOR OR HIS DESIGNEE TO ACCEPT A GRANT FROM THE HOMELAND SECURITY

Professional Presentation Travel Award, Office of Graduate Studies, University of Missouri, 2015 Professional Presentation Travel Award, Truman School of Public Affairs, University

The Origin camera outputs 4K data in 16-bit linear format (Bayer data or 4:4:4 RGB), or 12-bit 4:4:4 RGB gamma encoded.. The 12-bit gamma data can be mapped internally in the

TLS: Protocol Stack TCP IP TLS Handshake Protocol TLS Record Protocol TLS Change Cipher Suite Protocol TLS Alert Protocol Application Protocol (HTTP)... L10: ComSec

The results of CFU recovery associated with those obtained from the cytokines and the IgG1 and IgG2a analysis suggested that mice submitted to one immunization developed a

McCormick Place is proud to provide industry-leading, high quality wired and wireless internet services to meet the information needs of show managers, exhibitors,

Y, por último, la relativa desvirtuación de las comedias de Miguel Mihura también se debe a la elección de una estre- lla mediática como Elsa Pataky, cuyos rasgos de una belleza

The City authorizes and permits the Qualified Institutions to allow the Authorized Signatories, on behalf of and as an authorized person of, the City, to exercise any