SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Vít zslav ížekě Č
vcizek@suse.com
Introduction to TLS 1.3
About me
● Open Source Developer
● Software Engineer at SUSE
– Mostly C programming
– Member of Emergency Update Team
– Maintainer of OpenSSL, GnuTLS and mod_nss
Agenda
● What’s TLS
● What’s different in TLS 1.3
● TLS 1.3 adoption
What is TLS
What is Transport Layer Security
● cryptographic protocol providing a secure connection over
computer networks
● Widely used on the Internet
– HTTP, Email, VPN, VoIP, etc
● Client-Server architecture
● Utilizes Public Key Infrastructure
Properties of the Secure Connection
● Authentication
– Public Key Cryptography
– Mandatory for the server
● Confidentiality
– Transmitted data is private to the peers
● Integrity
– Sent data cannot be modified
TLS Components
● Handshake protocol (interesting)
– Establish shared keys
– Negotiate parameters
– Authenticate peers
● Record protocol (boring)
– Data transmission
Handshake (TLS 1.2)
● Shared secret exchanged
using DHE
● Random nonces and
shared secret mixed into a
master secret
● All keys are derived from
master secret
TLS Security Issues
Brief history of TLS
● SSL 2.0: *1995, †2011 (RFC 6176)
● SSL 3.0: *1996, †2015 (RFC 7568)
● TLS 1.0: *1999 (RFC 2246)
● TLS 1.1: *2006 (RFC 4346)
● TLS 1.2: *2008 (RFC 5246)
● TLS 1.3: *2018 (Proposed Standard)
SSL 2.0 deficiencies
● Sessions terminated by the end of TCP connection
– Injected TCP FIN is indistinguishable from a legimate end of the session
● Handshake messages are not protected
– MitM can trick the client into picking a weaker cipher suite
● Weak MAC (MD5)
● MAC and encryption use the same key
– Problem with a weak encryption algorithm
● Missing functionality (PFS, Extensions, etc)
SSL 3.0
● Killed by a dog!
● Do you know which one?
POODLE Attack (CVE­-2014­-3566)
● Padding Oracle on Downgraded Legacy Encryption
● Exploits CBC encryption mode
– Padding is non-deterministic and not covered by MAC
● No more secure ciphers in SSL 3.0
SSL 3.0 Issues
● No suitable ciphers
– AES CBC broken (POODLE)
– RC4 is weak and biased
● MAC-then-encrypt used in CBC mode
● Key Exchange vulnerable to MitM
– Renegotiation attack
– Triple Handshake (session resumption)
● Weak hash functions SHA-1 and
MD5
● Custom Cryptographic Primitives
(risky)
● Missing functionality
– TLS Extensions are used to
address the issues on the left
Some attacks agains TLS
● CBC
– BEAST, POODLE, Lucky
Microseconds
● Mac-Then-Encrypt
– Lucky 13
● Compression
– CRIME, TIME, BREACH
● RSA
– Bleichenbacher, Klíma, ROBOT,
BERserk, FREAK
● RC4
– RC4 No More, Bar-Mitzvah
● MD5/SHA1
– SLOTH
● Renegotiation
– Triple Handshake, CVE-2009-3555
Other Security Issues
● Implementation bugs
– Heartbleed, BERserk, SMACK
– Hundreds of CVEs
● Weak cryptography
– LOGJAM, (FREAK, Curveswap)
More information about TLS security
● RFC 7457: Summarizing Known Attacks on TLS and DTLS
● RFC 7525: Recommendations for Secure Use of TLS and
DTLS
TLS 1.3
TLS 1.3 Standard Development
● Lead by IETF
● Initiated in Spring 2014
● GitHub: https://github.com/tlswg/tls13-spec
● Mailing List: tls@ietf.org
TLS 1.3 development
● More open to the community
● Several independent implementations
● Formal verification
TLS 1.3 Design Goals (by Eric Rescorla)
● Clean-up
– Remove unused and
obsolete stuff
● Security
– Use modern cryptography
● Privacy
– Encrypt more of the protocol
● Performance
– Speed up the handshake
● Continuity
– Maintain existing use
cases
Half of the presentation
● Still awake? Good!
● More interesting stuff coming :-)
Clean-Up
Clean-up Victims
● Custom DHE groups
– Servers guessing
acceptable client size
– Unused for ECDHE
● Point formats negotiation
– Mostly uncompressed
formats used
● DSA
● “Obscure” ciphers
(Camellia)
● Renegotiation
Protocol Simplification
● Simplified handshake state machine
● Session resumption merged with PSK
● Renegotiation removed and replaced
Renegotiation
● Complicated, source of several vulnerabilities
(3Handshake)
● Key Update
– Simple post-handshake message
– New keys derived from the old keys by HKDF
● Post-Handshake Authentication
– Server prompts client for a certificate
Better Security
Security Victims
● Compression
● Export Ciphers
● Static RSA Key Exchange
– Slow, not PFS
● RSA-PKCS15
● Non-AEAD ciphers
● Static DH removed
– Not PFS
Compression
● CBC
– BEAST, POODLE, Lucky
Microseconds
● Mac-Then-Encrypt
– Lucky 13
● Compression
– CRIME, TIME, BREACH
● RSA
– Bleichenbacher, Klíma, ROBOT,
BERserk, FREAK
● RC4
– RC4 No More, Bar-Mitzvah
● MD5/SHA1
– SLOTH
● Renegotiation
– Triple Handshake, CVE-2009-3555
Non-AEAD ciphers
● CBC
– BEAST, POODLE, Lucky
Microseconds
● Mac-Then-Encrypt
– Lucky 13
● Compression
– CRIME, TIME, BREACH
● RSA
– Bleichenbacher, Klíma, ROBOT,
BERserk, FREAK
● RC4
– RC4 No More, Bar-Mitzvah
● MD5/SHA1
– SLOTH
● Renegotiation
– Triple Handshake, CVE-2009-3555
RSA
● CBC
– BEAST, POODLE, Lucky
Microseconds
● Mac-Then-Encrypt
– Lucky 13
● Compression
– CRIME, TIME, BREACH
● RSA
– Bleichenbacher, Klíma, ROBOT,
BERserk, FREAK
● RC4
– RC4 No More, Bar-Mitzvah
● MD5/SHA1
– SLOTH
● Renegotiation
– Triple Handshake, CVE-2009-3555
Overall
● CBC
– BEAST, POODLE, Lucky
Microseconds
● Mac-Then-Encrypt
– Lucky 13
● Compression
– CRIME, TIME, BREACH
● RSA
– Bleichenbacher, Klíma, ROBOT,
BERserk, FREAK
● RC4
– RC4 No More, Bar-Mitzvah
● MD5/SHA1
– SLOTH
● Renegotiation
– Triple Handshake, CVE-2009-3555
TLS 1.3 cipher suites
● Authentication and key exchange separated from cipher
negotiation
● Authentication
– Certificate/PSK
● Key exchange
– ECDHE/DHE
TLS 1.2 and 1.3 ciphers
● Key exchange, Authentication, Encryption, MAC
● TLS 1.2
– TLS_ECDHE_ECDSA_AES_256_GCM_SHA384
● TLS 1.3
– TLS_AES_256_GCM_SHA384
The short TLS 1.3 ciphers list
● TLS13-AES-256-GCM-SHA384
● TLS13-CHACHA20-POLY1305-SHA256
● TLS13-AES-128-GCM-SHA256
● TLS13-AES-128-CCM-8-SHA256
● TLS13-AES-128-CCM-SHA256
TLS 1.3 Crypto overview
● Key Exchange
– Elliptic Curves: P-256, P-384, P-521, x25519, x448
– Finite Field (DHE)
● Authentication
– RSA, ECDSA, EdDSA
● Encryption
– AEAD only (AES-GCM, ChaCha20/Poly1305)
– Cipher TLS_AES_128_GCM_SHA256 mandatory
TLS 1.3 Crypto Summary
● A few, but good choices
● Just 5 ciphersuites (1 mandatory)
● One EC point format
Speed-up
Handshake Speed-up
● 1 round trip “lighter” than TLS 1.2 in most cases
● Full Handshake (1-RTT)
● Resumption (0-RTT)
Full Handshake (1.2 vs 1.3)
TLS 1.3
● Tries to be optimistic
– Goes hand in hand with the reduced list of options
● Client guesses server parameters and sends a key_share
on first flight
● key_share can contain more groups
● What happens when the speculation goes wrong?
TLS 1.3 – Worst Case
● Server didn’t like the
client’s key_share
● Sends its own key_share
based on supported client
groups
Resumed Handshake (1.2 vs 1.3)
Perfect Forward Secrecy
● TLS 1.2
– Server certificate
● DHE ciphers: YES
● Other ciphers: NO
– Pre-Shared Key
● NO
● TLS 1.3
– Server certificate
● YES (all ciphers are
DHE)
– Pre-Shared Key
● PSK-ECDHE: YES
(except EarlyData)
● PSK-only: NO
1-RTT: Can we do better?
● 0-RTT Early Data!
TLS 1.3 with 0-RTT
● Early data encrypted with
the PSK
● Not forward secret
● Needs application support
O-RTT: EarlyData
● Upon receiving 0-RTT EarlyData a server can:
– Ignore it and return 1-RTT response
– Request a new CH by HRR and skip all Application Data
– Send early_data in encrypted extensions, signalling that it'll process it
● TLS implementations shouldn't resend early data, and mustn't
● resend them if ALPN differs in negotiated connection
● After server's Finished, EndOfEarlyData indicates key change
Replay Attack!
● Attacker can replay the Early Data
EarlyData Anti-Replay Protection
● Mitigation: saving state and allow the 0-RTT data accepted
once
● Problem sharing the state when the servers are
geographically spread
– No globally consistent server state
● Servers should ensure that any server accepts 0-RTT for
the same 0-RTT handshake at most once
EarlyData Replay Attacks
● The Replays can’t be avoided, only limited
– Attacker could be fast enough
– No consistent state across all the servers
● Applications have to count with it
– Allow only idempotent requests (HTTP Get)
More Privacy
Traffic analysis countermeasures
● More parts of the Handshake are encrypted
– Server certificate
● Record content type encrypted
– 23 (application data)
– True content type hidden encrypted
● Arbitrary padding
● SNI
– Proposal using Front/Hidden via 0-RTT data
Compatibility
Middleboxes
● Machines that examine TLS traffic
– MitM the TLS connection
● Middleboxes don’t like new versions
– version 0x0304 means disconnect
● Solution: Make TLS 1.3 look like TLS 1.2 resumption
TLS 1.3 Camouflage
● KeyShare, supported_versions, PSK are extensions
● HRR looks like ServerHello, distinguished by Random field
– Random set to SHA-256 of "HelloRetryRequest"
● Real protocol version in supported_version extension
● session_id and compression restored back in ServerHello
● Dummy Change Cipher Spec (CCS)
● GREASE mechanism
TLS 1.3 pitfalls
● TLS 1.3 ciphers incompatible with TLS 1.2
– OpenSSL cipher string "ECDHE" won't match any TLS 1.3
ciphersuites
● Sessions are established after the handshake
● DSA certificate aren't allowed any more
● Renegotiation results in a terminated connection
● Compression also not allowed
TLS 1.3 Adoption
TLS 1.3 status
● Draft 28 approved as Proposed Standard by IETF
● Will become an RFC soon
TLS Libraries
● OpenSSL: will be in 1.1.1
● GnuTLS: will be in 3.6.3
● NSS: yes
● SChannel (Microsoft): not yet
● Secure Transport (Apple): yes
Web Browsers
● Chrome: yes, enabled since 65
● Firefox: yes, gradually being enabled
– check your security.tls.version.max
● Safari: yes, off by default
● Edge: no, in development
Web servers
● Apache
– mod_ssl: no
– mod_nss: yes, since 1.0.17
● Nginx: yes, 1.13
● IIS: no
Other Applications
● Wireshark
close_notify
● Questions?
Links
● TLS 1.3 Draft 28: https://tools.ietf.org/html/draft-ietf-tls-tls13-28
● Summarizing Known Attacks on TLS: https://tools.ietf.org/html/rfc7457
● Recommendations for Secure Use of Transport Layer Security (TLS)
● https://tools.ietf.org/html/rfc7525
● https://tools.ietf.org/html/rfc7525
● https://tools.ietf.org/html/rfc7525
License
This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International
license.
It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and
any derivative work is distributed under the same license.
Details can be found at https://creativecommons.org/licenses/by-sa/4.0/
General Disclaimer
This document is not to be construed as a promise by any participating organisation to develop,
deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and
should not be relied upon in making purchasing decisions. openSUSE makes no representations or
warranties with respect to the contents of this document, and specifically disclaims any express or
implied warranties of merchantability or fitness for any particular purpose. The development, release,
and timing of features or functionality described for openSUSE products remains at the sole discretion
of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to
its content, at any time, without obligation to notify any person or entity of such revisions or changes.
All openSUSE marks referenced in this presentation are trademarks or registered trademarks of
SUSE LLC, in the United States and other countries. All third-party trademarks are the property of
their respective owners.
Credits
Template
Richard Brown
rbrown@opensuse.org
Design & Inspiration
openSUSE Design Team
http://opensuse.github.io/branding-
guidelines/

Weitere ähnliche Inhalte

Was ist angesagt?

Recover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecyRecover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecy
Priyanka Aash
 
Transport Layer Security
Transport Layer SecurityTransport Layer Security
Transport Layer Security
Chhatra Thapa
 
Sniffing SSL Traffic
Sniffing SSL TrafficSniffing SSL Traffic
Sniffing SSL Traffic
dkaya
 

Was ist angesagt? (20)

Intro to Packet Analysis - pfSense Hangout May 2014
Intro to Packet Analysis - pfSense Hangout May 2014Intro to Packet Analysis - pfSense Hangout May 2014
Intro to Packet Analysis - pfSense Hangout May 2014
 
TLS/SSL Protocol Design 201006
TLS/SSL Protocol Design 201006TLS/SSL Protocol Design 201006
TLS/SSL Protocol Design 201006
 
CNIT 1417. Keyed Hashing
CNIT 1417. Keyed HashingCNIT 1417. Keyed Hashing
CNIT 1417. Keyed Hashing
 
Site-to-Site VPNs - pfSense Hangout November 2015
Site-to-Site VPNs - pfSense Hangout November 2015Site-to-Site VPNs - pfSense Hangout November 2015
Site-to-Site VPNs - pfSense Hangout November 2015
 
Recover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecyRecover A RSA Private key from a TLS session with perfect forward secrecy
Recover A RSA Private key from a TLS session with perfect forward secrecy
 
TLS/SSL Internet Security Talk
TLS/SSL Internet Security TalkTLS/SSL Internet Security Talk
TLS/SSL Internet Security Talk
 
CNIT 141: 6. Hash Functions
CNIT 141: 6. Hash FunctionsCNIT 141: 6. Hash Functions
CNIT 141: 6. Hash Functions
 
Traffic Shaping Basics with PRIQ - pfSense Hangout February 2016
Traffic Shaping Basics with PRIQ - pfSense Hangout February 2016Traffic Shaping Basics with PRIQ - pfSense Hangout February 2016
Traffic Shaping Basics with PRIQ - pfSense Hangout February 2016
 
Transport Layer Security
Transport Layer SecurityTransport Layer Security
Transport Layer Security
 
Geographically dispersed perconaxtra db cluster deployment
Geographically dispersed perconaxtra db cluster deploymentGeographically dispersed perconaxtra db cluster deployment
Geographically dispersed perconaxtra db cluster deployment
 
security in transport layer ssl
 security in transport layer ssl security in transport layer ssl
security in transport layer ssl
 
Transport layer security
Transport layer securityTransport layer security
Transport layer security
 
SSL Secure Socket Layer
SSL Secure Socket LayerSSL Secure Socket Layer
SSL Secure Socket Layer
 
SSL/TLS
SSL/TLSSSL/TLS
SSL/TLS
 
Sniffing SSL Traffic
Sniffing SSL TrafficSniffing SSL Traffic
Sniffing SSL Traffic
 
Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)Ssl (Secure Sockets Layer)
Ssl (Secure Sockets Layer)
 
Connectivity Troubleshooting - pfSense Hangout June 2016
Connectivity Troubleshooting - pfSense Hangout June 2016Connectivity Troubleshooting - pfSense Hangout June 2016
Connectivity Troubleshooting - pfSense Hangout June 2016
 
Advanced OpenVPN Concepts on pfSense 2.4 & 2.3.3 - pfSense Hangout February 2017
Advanced OpenVPN Concepts on pfSense 2.4 & 2.3.3 - pfSense Hangout February 2017Advanced OpenVPN Concepts on pfSense 2.4 & 2.3.3 - pfSense Hangout February 2017
Advanced OpenVPN Concepts on pfSense 2.4 & 2.3.3 - pfSense Hangout February 2017
 
Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...
Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...
Configuring Netgate Appliance Integrated Switches on pfSense 2.4.4 - pfSense ...
 
NAT on pfSense 2.3 - pfSense Hangout May 2016
NAT on pfSense 2.3 - pfSense Hangout May 2016NAT on pfSense 2.3 - pfSense Hangout May 2016
NAT on pfSense 2.3 - pfSense Hangout May 2016
 

Ähnlich wie Tls 13final13

SSL, X.509, HTTPS - How to configure your HTTPS server
SSL, X.509, HTTPS - How to configure your HTTPS serverSSL, X.509, HTTPS - How to configure your HTTPS server
SSL, X.509, HTTPS - How to configure your HTTPS server
hannob
 
SECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdf
SECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdfSECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdf
SECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdf
NiharikaDubey17
 

Ähnlich wie Tls 13final13 (20)

Rootconf2019
Rootconf2019Rootconf2019
Rootconf2019
 
SSL, X.509, HTTPS - How to configure your HTTPS server
SSL, X.509, HTTPS - How to configure your HTTPS serverSSL, X.509, HTTPS - How to configure your HTTPS server
SSL, X.509, HTTPS - How to configure your HTTPS server
 
Tls 1.3
Tls 1.3Tls 1.3
Tls 1.3
 
Cours4.pptx
Cours4.pptxCours4.pptx
Cours4.pptx
 
Pentesting custom TLS stacks
Pentesting custom TLS stacksPentesting custom TLS stacks
Pentesting custom TLS stacks
 
Why Many Websites are still Insecure (and How to Fix Them)
Why Many Websites are still Insecure (and How to Fix Them)Why Many Websites are still Insecure (and How to Fix Them)
Why Many Websites are still Insecure (and How to Fix Them)
 
SECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdf
SECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdfSECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdf
SECURE SOCKET LAYER(SSL)_LECTURE SLIDES.pdf
 
CNIT 141: 13. TLS
CNIT 141: 13. TLSCNIT 141: 13. TLS
CNIT 141: 13. TLS
 
CNIT 141: 13. TLS
CNIT 141: 13. TLSCNIT 141: 13. TLS
CNIT 141: 13. TLS
 
Egor Podmokov - TLS from security point of view
Egor Podmokov - TLS from security point of viewEgor Podmokov - TLS from security point of view
Egor Podmokov - TLS from security point of view
 
CNIT 141 13. TLS
CNIT 141 13. TLSCNIT 141 13. TLS
CNIT 141 13. TLS
 
SSL overview
SSL overviewSSL overview
SSL overview
 
ssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptxssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptx
 
Go paranoid
Go paranoidGo paranoid
Go paranoid
 
TLS 1.3: Everything You Need to Know - CheapSSLsecurity
TLS 1.3: Everything You Need to Know - CheapSSLsecurityTLS 1.3: Everything You Need to Know - CheapSSLsecurity
TLS 1.3: Everything You Need to Know - CheapSSLsecurity
 
TLS Perf: from three to zero in one spec
TLS Perf:  from three to zero in one specTLS Perf:  from three to zero in one spec
TLS Perf: from three to zero in one spec
 
Ssl (Secure Socket Layer)
Ssl (Secure Socket Layer)Ssl (Secure Socket Layer)
Ssl (Secure Socket Layer)
 
DANE/DNSSEC/TLS Testing in the go6Lab - ION Cape Town
DANE/DNSSEC/TLS Testing in the go6Lab - ION Cape TownDANE/DNSSEC/TLS Testing in the go6Lab - ION Cape Town
DANE/DNSSEC/TLS Testing in the go6Lab - ION Cape Town
 
SSL Checklist for Pentesters (BSides MCR 2014)
SSL Checklist for Pentesters (BSides MCR 2014)SSL Checklist for Pentesters (BSides MCR 2014)
SSL Checklist for Pentesters (BSides MCR 2014)
 
Using SCTP with Scamper and Netty
Using SCTP with Scamper and NettyUsing SCTP with Scamper and Netty
Using SCTP with Scamper and Netty
 

Kürzlich hochgeladen

Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
nilamkumrai
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
nirzagarg
 

Kürzlich hochgeladen (20)

(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
 
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
 
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Prashant Vihar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls 🎗️ 9352988975 Sizzling | Escorts | Girls Are Re...
 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
 
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men  🔝mehsana🔝   Escorts...
➥🔝 7737669865 🔝▻ mehsana Call-girls in Women Seeking Men 🔝mehsana🔝 Escorts...
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
Wagholi & High Class Call Girls Pune Neha 8005736733 | 100% Gennuine High Cla...
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 

Tls 13final13

  • 1. Vít zslav ížekě Č vcizek@suse.com Introduction to TLS 1.3
  • 2. About me ● Open Source Developer ● Software Engineer at SUSE – Mostly C programming – Member of Emergency Update Team – Maintainer of OpenSSL, GnuTLS and mod_nss
  • 3. Agenda ● What’s TLS ● What’s different in TLS 1.3 ● TLS 1.3 adoption
  • 5. What is Transport Layer Security ● cryptographic protocol providing a secure connection over computer networks ● Widely used on the Internet – HTTP, Email, VPN, VoIP, etc ● Client-Server architecture ● Utilizes Public Key Infrastructure
  • 6. Properties of the Secure Connection ● Authentication – Public Key Cryptography – Mandatory for the server ● Confidentiality – Transmitted data is private to the peers ● Integrity – Sent data cannot be modified
  • 7. TLS Components ● Handshake protocol (interesting) – Establish shared keys – Negotiate parameters – Authenticate peers ● Record protocol (boring) – Data transmission
  • 8. Handshake (TLS 1.2) ● Shared secret exchanged using DHE ● Random nonces and shared secret mixed into a master secret ● All keys are derived from master secret
  • 10. Brief history of TLS ● SSL 2.0: *1995, †2011 (RFC 6176) ● SSL 3.0: *1996, †2015 (RFC 7568) ● TLS 1.0: *1999 (RFC 2246) ● TLS 1.1: *2006 (RFC 4346) ● TLS 1.2: *2008 (RFC 5246) ● TLS 1.3: *2018 (Proposed Standard)
  • 11. SSL 2.0 deficiencies ● Sessions terminated by the end of TCP connection – Injected TCP FIN is indistinguishable from a legimate end of the session ● Handshake messages are not protected – MitM can trick the client into picking a weaker cipher suite ● Weak MAC (MD5) ● MAC and encryption use the same key – Problem with a weak encryption algorithm ● Missing functionality (PFS, Extensions, etc)
  • 12. SSL 3.0 ● Killed by a dog! ● Do you know which one?
  • 13. POODLE Attack (CVE­-2014­-3566) ● Padding Oracle on Downgraded Legacy Encryption ● Exploits CBC encryption mode – Padding is non-deterministic and not covered by MAC ● No more secure ciphers in SSL 3.0
  • 14. SSL 3.0 Issues ● No suitable ciphers – AES CBC broken (POODLE) – RC4 is weak and biased ● MAC-then-encrypt used in CBC mode ● Key Exchange vulnerable to MitM – Renegotiation attack – Triple Handshake (session resumption) ● Weak hash functions SHA-1 and MD5 ● Custom Cryptographic Primitives (risky) ● Missing functionality – TLS Extensions are used to address the issues on the left
  • 15. Some attacks agains TLS ● CBC – BEAST, POODLE, Lucky Microseconds ● Mac-Then-Encrypt – Lucky 13 ● Compression – CRIME, TIME, BREACH ● RSA – Bleichenbacher, Klíma, ROBOT, BERserk, FREAK ● RC4 – RC4 No More, Bar-Mitzvah ● MD5/SHA1 – SLOTH ● Renegotiation – Triple Handshake, CVE-2009-3555
  • 16. Other Security Issues ● Implementation bugs – Heartbleed, BERserk, SMACK – Hundreds of CVEs ● Weak cryptography – LOGJAM, (FREAK, Curveswap)
  • 17. More information about TLS security ● RFC 7457: Summarizing Known Attacks on TLS and DTLS ● RFC 7525: Recommendations for Secure Use of TLS and DTLS
  • 19. TLS 1.3 Standard Development ● Lead by IETF ● Initiated in Spring 2014 ● GitHub: https://github.com/tlswg/tls13-spec ● Mailing List: tls@ietf.org
  • 20. TLS 1.3 development ● More open to the community ● Several independent implementations ● Formal verification
  • 21. TLS 1.3 Design Goals (by Eric Rescorla) ● Clean-up – Remove unused and obsolete stuff ● Security – Use modern cryptography ● Privacy – Encrypt more of the protocol ● Performance – Speed up the handshake ● Continuity – Maintain existing use cases
  • 22. Half of the presentation ● Still awake? Good! ● More interesting stuff coming :-)
  • 24. Clean-up Victims ● Custom DHE groups – Servers guessing acceptable client size – Unused for ECDHE ● Point formats negotiation – Mostly uncompressed formats used ● DSA ● “Obscure” ciphers (Camellia) ● Renegotiation
  • 25. Protocol Simplification ● Simplified handshake state machine ● Session resumption merged with PSK ● Renegotiation removed and replaced
  • 26. Renegotiation ● Complicated, source of several vulnerabilities (3Handshake) ● Key Update – Simple post-handshake message – New keys derived from the old keys by HKDF ● Post-Handshake Authentication – Server prompts client for a certificate
  • 28. Security Victims ● Compression ● Export Ciphers ● Static RSA Key Exchange – Slow, not PFS ● RSA-PKCS15 ● Non-AEAD ciphers ● Static DH removed – Not PFS
  • 29. Compression ● CBC – BEAST, POODLE, Lucky Microseconds ● Mac-Then-Encrypt – Lucky 13 ● Compression – CRIME, TIME, BREACH ● RSA – Bleichenbacher, Klíma, ROBOT, BERserk, FREAK ● RC4 – RC4 No More, Bar-Mitzvah ● MD5/SHA1 – SLOTH ● Renegotiation – Triple Handshake, CVE-2009-3555
  • 30. Non-AEAD ciphers ● CBC – BEAST, POODLE, Lucky Microseconds ● Mac-Then-Encrypt – Lucky 13 ● Compression – CRIME, TIME, BREACH ● RSA – Bleichenbacher, Klíma, ROBOT, BERserk, FREAK ● RC4 – RC4 No More, Bar-Mitzvah ● MD5/SHA1 – SLOTH ● Renegotiation – Triple Handshake, CVE-2009-3555
  • 31. RSA ● CBC – BEAST, POODLE, Lucky Microseconds ● Mac-Then-Encrypt – Lucky 13 ● Compression – CRIME, TIME, BREACH ● RSA – Bleichenbacher, Klíma, ROBOT, BERserk, FREAK ● RC4 – RC4 No More, Bar-Mitzvah ● MD5/SHA1 – SLOTH ● Renegotiation – Triple Handshake, CVE-2009-3555
  • 32. Overall ● CBC – BEAST, POODLE, Lucky Microseconds ● Mac-Then-Encrypt – Lucky 13 ● Compression – CRIME, TIME, BREACH ● RSA – Bleichenbacher, Klíma, ROBOT, BERserk, FREAK ● RC4 – RC4 No More, Bar-Mitzvah ● MD5/SHA1 – SLOTH ● Renegotiation – Triple Handshake, CVE-2009-3555
  • 33. TLS 1.3 cipher suites ● Authentication and key exchange separated from cipher negotiation ● Authentication – Certificate/PSK ● Key exchange – ECDHE/DHE
  • 34. TLS 1.2 and 1.3 ciphers ● Key exchange, Authentication, Encryption, MAC ● TLS 1.2 – TLS_ECDHE_ECDSA_AES_256_GCM_SHA384 ● TLS 1.3 – TLS_AES_256_GCM_SHA384
  • 35. The short TLS 1.3 ciphers list ● TLS13-AES-256-GCM-SHA384 ● TLS13-CHACHA20-POLY1305-SHA256 ● TLS13-AES-128-GCM-SHA256 ● TLS13-AES-128-CCM-8-SHA256 ● TLS13-AES-128-CCM-SHA256
  • 36. TLS 1.3 Crypto overview ● Key Exchange – Elliptic Curves: P-256, P-384, P-521, x25519, x448 – Finite Field (DHE) ● Authentication – RSA, ECDSA, EdDSA ● Encryption – AEAD only (AES-GCM, ChaCha20/Poly1305) – Cipher TLS_AES_128_GCM_SHA256 mandatory
  • 37. TLS 1.3 Crypto Summary ● A few, but good choices ● Just 5 ciphersuites (1 mandatory) ● One EC point format
  • 39. Handshake Speed-up ● 1 round trip “lighter” than TLS 1.2 in most cases ● Full Handshake (1-RTT) ● Resumption (0-RTT)
  • 41. TLS 1.3 ● Tries to be optimistic – Goes hand in hand with the reduced list of options ● Client guesses server parameters and sends a key_share on first flight ● key_share can contain more groups ● What happens when the speculation goes wrong?
  • 42. TLS 1.3 – Worst Case ● Server didn’t like the client’s key_share ● Sends its own key_share based on supported client groups
  • 44. Perfect Forward Secrecy ● TLS 1.2 – Server certificate ● DHE ciphers: YES ● Other ciphers: NO – Pre-Shared Key ● NO ● TLS 1.3 – Server certificate ● YES (all ciphers are DHE) – Pre-Shared Key ● PSK-ECDHE: YES (except EarlyData) ● PSK-only: NO
  • 45. 1-RTT: Can we do better? ● 0-RTT Early Data!
  • 46. TLS 1.3 with 0-RTT ● Early data encrypted with the PSK ● Not forward secret ● Needs application support
  • 47. O-RTT: EarlyData ● Upon receiving 0-RTT EarlyData a server can: – Ignore it and return 1-RTT response – Request a new CH by HRR and skip all Application Data – Send early_data in encrypted extensions, signalling that it'll process it ● TLS implementations shouldn't resend early data, and mustn't ● resend them if ALPN differs in negotiated connection ● After server's Finished, EndOfEarlyData indicates key change
  • 48. Replay Attack! ● Attacker can replay the Early Data
  • 49. EarlyData Anti-Replay Protection ● Mitigation: saving state and allow the 0-RTT data accepted once ● Problem sharing the state when the servers are geographically spread – No globally consistent server state ● Servers should ensure that any server accepts 0-RTT for the same 0-RTT handshake at most once
  • 50. EarlyData Replay Attacks ● The Replays can’t be avoided, only limited – Attacker could be fast enough – No consistent state across all the servers ● Applications have to count with it – Allow only idempotent requests (HTTP Get)
  • 52. Traffic analysis countermeasures ● More parts of the Handshake are encrypted – Server certificate ● Record content type encrypted – 23 (application data) – True content type hidden encrypted ● Arbitrary padding ● SNI – Proposal using Front/Hidden via 0-RTT data
  • 54. Middleboxes ● Machines that examine TLS traffic – MitM the TLS connection ● Middleboxes don’t like new versions – version 0x0304 means disconnect ● Solution: Make TLS 1.3 look like TLS 1.2 resumption
  • 55. TLS 1.3 Camouflage ● KeyShare, supported_versions, PSK are extensions ● HRR looks like ServerHello, distinguished by Random field – Random set to SHA-256 of "HelloRetryRequest" ● Real protocol version in supported_version extension ● session_id and compression restored back in ServerHello ● Dummy Change Cipher Spec (CCS) ● GREASE mechanism
  • 56. TLS 1.3 pitfalls ● TLS 1.3 ciphers incompatible with TLS 1.2 – OpenSSL cipher string "ECDHE" won't match any TLS 1.3 ciphersuites ● Sessions are established after the handshake ● DSA certificate aren't allowed any more ● Renegotiation results in a terminated connection ● Compression also not allowed
  • 58. TLS 1.3 status ● Draft 28 approved as Proposed Standard by IETF ● Will become an RFC soon
  • 59. TLS Libraries ● OpenSSL: will be in 1.1.1 ● GnuTLS: will be in 3.6.3 ● NSS: yes ● SChannel (Microsoft): not yet ● Secure Transport (Apple): yes
  • 60. Web Browsers ● Chrome: yes, enabled since 65 ● Firefox: yes, gradually being enabled – check your security.tls.version.max ● Safari: yes, off by default ● Edge: no, in development
  • 61. Web servers ● Apache – mod_ssl: no – mod_nss: yes, since 1.0.17 ● Nginx: yes, 1.13 ● IIS: no
  • 64. Links ● TLS 1.3 Draft 28: https://tools.ietf.org/html/draft-ietf-tls-tls13-28 ● Summarizing Known Attacks on TLS: https://tools.ietf.org/html/rfc7457 ● Recommendations for Secure Use of Transport Layer Security (TLS) ● https://tools.ietf.org/html/rfc7525 ● https://tools.ietf.org/html/rfc7525 ● https://tools.ietf.org/html/rfc7525
  • 65. License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at https://creativecommons.org/licenses/by-sa/4.0/ General Disclaimer This document is not to be construed as a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. Credits Template Richard Brown rbrown@opensuse.org Design & Inspiration openSUSE Design Team http://opensuse.github.io/branding- guidelines/