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

Security at the Transport Layer
CS 352, Lecture 21
Srinivas Narayana
(heavily adapted from slides by Prof. Badri Nath and the textbook authors)
http://www.cs.rutgers.edu/~sn624/352-S19
1
Transport Layer Security
TLS/SSL
TLS/SSL: A Secure Sockets Layer
widely deployed security
protocol
supported by almost all browsers,
web servers
https
billions $/year over TLS/SSL
Origins: [Woo 1994]
implementation by Netscape
provides
confidentiality
integrity
authentication
 
original goals:
Web e-commerce
transactions
encryption (especially
credit-card numbers)
Web-server authentication
optional client
authentication
minimum hassle in doing
business with new
merchant
available to all TCP
applications
secure socket interface
3
TLS/SSL and the rest of the protocol stack
TLS/SSL provides application programming interface (API) to
applications
C and Java libraries/classes readily available
Ex: OpenSSL
4
Could do something like PGP
 
but want to send byte streams & interactive data
want set of secret keys for entire connection
want certificate exchange as part of protocol: handshake phase
m
m
K
S
Internet
K
S
5
TLS/SSL protocol: Constituents
handshake:
 
Alice and Bob use their certificates, private keys to
authenticate each other and exchange shared secret
key derivation
:
 Alice and Bob use shared secret to derive set of
keys
data transfer:
 
data to be transferred is broken up into series of
records
connection closure
:
 special messages to securely close
connection
6
Step (1): a simple handshake
MS: 
master secret
EMS: 
encrypted master secret
Q: What all might the “master secret” be used for?
hello
public key certificate
K
B
+
(MS) = EMS
7
Step (2): key derivation
considered bad to use same key for more than one
cryptographic operation
use different keys for message authentication code (MAC)
and encryption
four keys:
K
c
 = encryption key for data sent from client to server
M
c
 = MAC key for data sent from client to server
K
s
 = encryption key for data sent from server to client
M
s
 = MAC key for data sent from server to client
keys derived from key derivation function (KDF)
Takes master secret and (possibly) some additional
random data and creates the keys
8
Step (3): Data records
 
why not encrypt data in constant stream as we write it to TCP?
where would we put the MAC? If at end, no message integrity until all data
processed.
e.g., with instant messaging, how can we do integrity check over all bytes sent
before displaying?
instead, break stream in series of records
each record carries a MAC
receiver can act on each record as it arrives
How does receiver distinguish MAC from data within a record?
want to use variable-length records
length
data
MAC
9
Defending against replay attacks?
 
Problem: 
What if attacker could record and replay all or some
records?
 
Solution:
Use nonce (ex: cipher block chaining)
Handles both record replay and 
connection 
replay
Defending against reordering?
 
Problem: 
What if attacker re-orders the records?
Issue: per-record MAC provides only record-level integrity
But record-level integrity is not the same as 
stream-level 
integrity
 
Solution:
Put sequence number in MAC:
MAC = MAC(M
x
, sequence-number || data)
 
Note: no sequence number field on record
Instead, sender and receiver implicitly keep seq numbers on records
Defending against truncation?
 
problem: 
truncation attack
attacker forges TCP connection close segment
one or both sides thinks there is less data than there actually is
A stream of records in order so far != stream being 
complete
solution: 
record types, with one type for closure
type 0 for data; type 1 for closure
MAC = MAC(M
x
, sequence || type || data)
 
length
 
type
 
data
 
MAC
12
TLS/SSL: summary so far
hello
certificate, nonce
Nonce, K
B
+
(MS) = EMS
 
type 0, seq 1, data
 
type 0, seq 2, data
 
type 0, seq 1, data
 
type 0, seq 3, data
 
type 1, seq 4, close
 
type 1, seq 2, close
 
Encrypted
data transfer
bob.com
13
 
Key derivation
 
Key derivation
Handshake
 
Special record type for
connection close
But our TLS/SSL description isn’
t complete yet
how long are fields?
which encryption protocols?
Could we implement 
negotiation
?
allow client and server to support different encryption algorithms
allow client and server to choose together specific algorithm before
data transfer
14
TLS/SSL “Cipher Suite”
Cipher suite
public-key algorithm
symmetric encryption algorithm
MAC algorithm
TLS/SSL supports several cipher suites
Negotiation
: client, server agree on
cipher suite
client offers choices
server picks one
Common symmetric
ciphers
AES – Advanced Encryption
Standard
DES – Data Encryption
Standard: block
3DES – Triple strength: block
ChaCha: stream
RC4 – Rivest Cipher 4: stream
SSL Public key encryption
RSA with DH
Message authentication
code
HMAC-MD5 and others
15
Improved Handshake with Negotiation (1/5)
Purpose
1.
server authentication
2.
negotiation: agree on crypto algorithms
3.
establish keys
4.
client authentication (optional)
16
Improved Handshake with Negotiation (2/5)
 
1.
client sends list of algorithms it supports, along with client nonce
2.
server chooses algorithms from list; sends back: choice +
certificate + server nonce
3.
client verifies certificate, extracts server
s public key, generates
pre_master_secret, encrypts with server
s public key, sends to
server
4.
client and server independently compute encryption and MAC keys
from pre_master_secret and nonces
5.
client sends a MAC of all the handshake messages
6.
server sends a MAC of all the handshake messages
 
17
Improved Handshake with Negotiation (3/5)
 
Why steps (5) and (6)?
(MAC of all handshake messages)
client typically offers range of algorithms, some strong, some
weak
man-in-the middle could delete stronger algorithms from list
last 2 steps prevent this
Note that the last two messages are encrypted
18
Improved Handshake with Negotiation (4/5)
 
Why two nonces?
suppose Trudy sniffs all messages between Alice & Bob
next day, Trudy sets up TCP connection with Bob, sends
exact same sequence of records
Bob (Amazon) thinks Alice made two separate orders for the same
thing
solution: Bob sends different random nonce for each connection.
This causes encryption keys to be different for each connection.
Trudy
s messages will fail Bob
s integrity check
19
Key derivation as part of handshake (5/5)
client nonce, server nonce, and pre-master secret are fed into a pseudo
random-number generator
produces 
master secret
master secret and nonces are fed into another random-number
generator to get a 
key block
key block sliced and diced:
client MAC key
server MAC key
client encryption key
server encryption key
client initialization vector (for CBC)
server initialization vector (for CBC)
20
TLS/SSL protocol messages
record header:  
content type; version; length 
MAC:  
includes sequence number, MAC key M
x
fragment:  
each SSL fragment 2
14
 bytes (~16 Kbytes)
21
TLS/SSL record format
data and MAC encrypted (symmetric key algorithm)
22
Real TLS/SSL
connection
TCP FIN follows
everything
henceforth
is encrypted
23
TLS/SSL: the big picture
A protocol to agree on a set of ciphers for security properties
Not a cipher itself
Can be used by any application at the app layer
Customized for security properties at the record-level and
stream-level, to work with real applications
Latest standard: TLS v1.3 (Aug 2018)
Activity
Look at the certificate for a website on your browser
badssl.com
https://www.selfsignedcertificate.com
openssl x509 -in test-self-signed-cert-cert.cert -text
-noout
Security: The Big Picture
Cryptography: building block for security on the Internet today
Symmetric key (ex: AES) and public key (ex: RSA)
Provide confidentiality, but need more work for other properties
Message integrity through MAC
Digital signatures: authenticity, integrity, non-repudiation
Certificate authorities
Real applications and protocols: PGP and TLS/SSL
Many real benefits from the tools and techniques in this field
Many real problems remain
Slide Note
Embed
Share

This content delves into the concepts of Transport Layer Security (TLS) and Secure Sockets Layer (SSL), exploring their origins, application in web security, and protocol stack integration. It covers the TLS/SSL handshake process, key derivation, data transfer mechanisms, and the significance of the master secret in a secure connection.

  • Transport Layer Security
  • Secure Sockets Layer
  • TLS/SSL Protocol
  • Encryption
  • Web Security

Uploaded on Sep 22, 2024 | 1 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Security at the Transport Layer CS 352, Lecture 21 http://www.cs.rutgers.edu/~sn624/352-S19 Srinivas Narayana (heavily adapted from slides by Prof. Badri Nath and the textbook authors) 1

  2. Transport Layer Security TLS/SSL

  3. TLS/SSL: A Secure Sockets Layer widely deployed security protocol supported by almost all browsers, web servers https billions $/year over TLS/SSL Origins: [Woo 1994] implementation by Netscape provides confidentiality integrity authentication original goals: Web e-commerce transactions encryption (especially credit-card numbers) Web-server authentication optional client authentication minimum hassle in doing business with new merchant available to all TCP applications secure socket interface 3

  4. TLS/SSL and the rest of the protocol stack Application Application TLS/SSL TCP TCP IP IP normal application application with TLS/SSL TLS/SSL provides application programming interface (API) to applications C and Java libraries/classes readily available Ex: OpenSSL 4

  5. Could do something like PGP KA- - KA( ) . H( ) . KA(H(m)) - KS m KS( ) . + + m Internet KB( ) . + + KS + KB(KS ) KB but want to send byte streams & interactive data want set of secret keys for entire connection want certificate exchange as part of protocol: handshake phase 5

  6. TLS/SSL protocol: Constituents handshake: Alice and Bob use their certificates, private keys to authenticate each other and exchange shared secret key derivation: Alice and Bob use shared secret to derive set of keys data transfer: data to be transferred is broken up into series of records connection closure: special messages to securely close connection 6

  7. Step (1): a simple handshake MS: master secret EMS: encrypted master secret Q: What all might the master secret be used for? 7

  8. Step (2): key derivation considered bad to use same key for more than one cryptographic operation use different keys for message authentication code (MAC) and encryption four keys: Kc = encryption key for data sent from client to server Mc = MAC key for data sent from client to server Ks = encryption key for data sent from server to client Ms = MAC key for data sent from server to client keys derived from key derivation function (KDF) Takes master secret and (possibly) some additional random data and creates the keys 8

  9. Step (3): Data records why not encrypt data in constant stream as we write it to TCP? where would we put the MAC? If at end, no message integrity until all data processed. e.g., with instant messaging, how can we do integrity check over all bytes sent before displaying? instead, break stream in series of records each record carries a MAC receiver can act on each record as it arrives How does receiver distinguish MAC from data within a record? want to use variable-length records length data MAC 9

  10. Defending against replay attacks? Problem: What if attacker could record and replay all or some records? Solution: Use nonce (ex: cipher block chaining) Handles both record replay and connection replay

  11. Defending against reordering? Problem: What if attacker re-orders the records? Issue: per-record MAC provides only record-level integrity But record-level integrity is not the same as stream-level integrity Solution: Put sequence number in MAC: MAC = MAC(Mx, sequence-number || data) Note: no sequence number field on record Instead, sender and receiver implicitly keep seq numbers on records

  12. Defending against truncation? problem: truncation attack attacker forges TCP connection close segment one or both sides thinks there is less data than there actually is A stream of records in order so far != stream being complete solution: record types, with one type for closure type 0 for data; type 1 for closure MAC = MAC(Mx, sequence || type || data) data length type MAC 12

  13. TLS/SSL: summary so far Handshake bob.com Key derivation Key derivation data transfer Encrypted Special record type for connection close 13

  14. But our TLS/SSL description isnt complete yet how long are fields? which encryption protocols? Could we implement negotiation? allow client and server to support different encryption algorithms allow client and server to choose together specific algorithm before data transfer 14

  15. TLS/SSL Cipher Suite Common symmetric ciphers AES Advanced Encryption Standard DES Data Encryption Standard: block 3DES Triple strength: block ChaCha: stream RC4 Rivest Cipher 4: stream SSL Public key encryption RSA with DH Message authentication code HMAC-MD5 and others Cipher suite public-key algorithm symmetric encryption algorithm MAC algorithm TLS/SSL supports several cipher suites Negotiation: client, server agree on cipher suite client offers choices server picks one 15

  16. Improved Handshake with Negotiation (1/5) Purpose 1. server authentication 2. negotiation: agree on crypto algorithms 3. establish keys 4. client authentication (optional) 16

  17. Improved Handshake with Negotiation (2/5) 1. client sends list of algorithms it supports, along with client nonce 2. server chooses algorithms from list; sends back: choice + certificate + server nonce 3. client verifies certificate, extracts server s public key, generates pre_master_secret, encrypts with server s public key, sends to server 4. client and server independently compute encryption and MAC keys from pre_master_secret and nonces 5. client sends a MAC of all the handshake messages 6. server sends a MAC of all the handshake messages 17

  18. Improved Handshake with Negotiation (3/5) Why steps (5) and (6)? (MAC of all handshake messages) client typically offers range of algorithms, some strong, some weak man-in-the middle could delete stronger algorithms from list last 2 steps prevent this Note that the last two messages are encrypted 18

  19. Improved Handshake with Negotiation (4/5) Why two nonces? suppose Trudy sniffs all messages between Alice & Bob next day, Trudy sets up TCP connection with Bob, sends exact same sequence of records Bob (Amazon) thinks Alice made two separate orders for the same thing solution: Bob sends different random nonce for each connection. This causes encryption keys to be different for each connection. Trudy s messages will fail Bob s integrity check 19

  20. Key derivation as part of handshake (5/5) client nonce, server nonce, and pre-master secret are fed into a pseudo random-number generator produces master secret master secret and nonces are fed into another random-number generator to get a key block key block sliced and diced: client MAC key server MAC key client encryption key server encryption key client initialization vector (for CBC) server initialization vector (for CBC) 20

  21. TLS/SSL protocol messages TLS/SSL payload data fragment data fragment MAC MAC encrypted data and MAC encrypted data and MAC record header record header record header: content type; version; length MAC: includes sequence number, MAC key Mx fragment: each SSL fragment 214 bytes (~16 Kbytes) 21

  22. TLS/SSL record format 1 byte 2 bytes 3 bytes content type length SSL version data MAC data and MAC encrypted (symmetric key algorithm) 22

  23. Real TLS/SSL connection everything henceforth is encrypted TCP FIN follows 23

  24. TLS/SSL: the big picture A protocol to agree on a set of ciphers for security properties Not a cipher itself Can be used by any application at the app layer Customized for security properties at the record-level and stream-level, to work with real applications Latest standard: TLS v1.3 (Aug 2018)

  25. Activity Look at the certificate for a website on your browser badssl.com https://www.selfsignedcertificate.com openssl x509 -in test-self-signed-cert-cert.cert -text -noout

  26. Security: The Big Picture Cryptography: building block for security on the Internet today Symmetric key (ex: AES) and public key (ex: RSA) Provide confidentiality, but need more work for other properties Message integrity through MAC Digital signatures: authenticity, integrity, non-repudiation Certificate authorities Real applications and protocols: PGP and TLS/SSL Many real benefits from the tools and techniques in this field Many real problems remain

More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#giItT1WQy@!-/#