Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram...

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

Transcript of Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram...

Page 1: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

Dr Douglas Stebila

Secure, insecure, secure, insecure:

The ongoing saga of the SSL/TLS protocol

Page 2: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ Introduction to SSL/TLS ¡ Technical details ¡ Attacks! ¡ The future of SSL/TLS

Page 3: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

A brief introduction to SSL/TLS

Page 4: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  TLS? What’s that? ¡  SSL? Huh? ¡  HTTPS? That’s the lock icon, right?

What is SSL/TLS?

Page 5: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  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

Terminology

Page 6: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Page 7: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Page 8: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

¡  But only protects confidentiality if authentication is correct.

Page 9: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  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.

Certificates

Page 10: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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) paid us some money.”

Page 11: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Italics mean event happens once, before any connections.

Page 12: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

A bit more technical

Page 13: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

In reality: ¡  5 protocol versions ¡  vast array of standards ¡  many implementations! ¡  300+ combinations of

cryptographic primitives ¡  dif ferent levels of security ¡  dif ferent 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!

Page 14: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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?

Page 15: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

L ist of all 314 TLS ciphersuites

Page 16: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Page 17: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

HAN

DSH

AKE

PRO

TOCO

L R

ECO

RD

LA

YER

ALERT PROTOCOL

Page 18: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

Cryptographic details

ClientHello --------> ServerHello Certificate* ServerKeyExchange* CertificateRequest* <-------- ServerHelloDone Certificate* ClientKeyExchange CertificateVerify* [ChangeCipherSpec] Finished --------> [ChangeCipherSpec] <-------- Finished

Bi-direction authenticated encryption Optional compression

HAN

DSH

AKE

PRO

TOCO

L R

ECO

RD

LA

YER

TLS version

random nonce session identifier

preferred ciphersuites preferred compression method

extensions

RSA, DSA, or ECDSA RSA key transport

static Diffie–Hellman

ephemeral Diffie–Hellman

static / ephemeral ECDH

SRP HMAC with

MD5 SHA-1

SHA-256 SHA-384 SHA-512

Session key derivation: HMAC with (MD-5‖SHA-1) or SHA-256

DES/3DES CBC RC4

AES CBC/GCM/CCM others

Page 19: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

The security of TLS

Page 20: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

Is TLS secure?

Page 21: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Is TLS secure?

Page 22: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  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)

Mathematically…

Page 23: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Page 24: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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

Page 25: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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

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

Page 26: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  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

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

Page 27: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  DigiNotar in Jul . 2011 §  security breach, malicious certificates

for many domains issued §  went out of business

¡  TURKTRUST 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

Certificate authority breaches and errors

Page 28: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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://crypto.stanford.edu/~dabo/

pubs/abstracts/ssl -c l ient -bugs.html

Certificate validation in SDKs

Page 29: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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

Page 30: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

Looking to the future…

Page 31: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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.

Improving TLS

Page 32: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡  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 now!

Page 33: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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 Coming soon?

Page 34: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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

¡  SSLCipherSuite ECDHE-RSA-RC4-SHA:HIGH:…

Ephemeral Diffie–Hellman Do this now!

Page 35: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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

Key size, SHA-2, SHA-3 & NIST Suite B

Page 36: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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 now!

Page 37: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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 Coming soon?

Page 38: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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 Coming soon?

Page 39: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

¡ 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 Coming later?

Page 40: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

Summary

Page 41: Secure, insecure, secure, insecure: The ongoing saga of the …€¦ · RFC 4347: “Datagram Transport Layer Security” specifies a TLS variant that works over datagram protocols

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 D r D o u g l a s S t e b i l a • Q u e e n s l a n d U n i v e r s i t y o f Te c h n o l o g y , B r i s b a n e