You are on page 1of 21

SSL/TLS Protocols

Γεώργιος Χριστόπουλος
SSL, TLS ή και τα δύο;
• Δύο διαφορετικά πρωτόκολλα:
SSL (Secure Sockets Layer)
TLS (Transport Layer Security)

• Στόχος: Ασφαλής από άκρο σε άκρο επικοινωνία


μεταξύ δύο οντοτήτων (end-to-end encryption)

• Client - Server μοντέλο εφαρμογής (HTTPS, Mail)

• Χρησιμοποιεί το πρωτόκολλο TCP -> Reliability

• Επιτυγχάνεται:
Integrity
Confidentiality
Authentication
Ιστορική Αναδρομή
• SSL 1.0
Δεν δημοσιεύτηκε ποτέ
• SSL 2.0
Published: 1995, Deprecated: 2011
• SSL 3.0
Published: 1996, Deprecated: 2015
• TLS 1.0
Published: 1999, Deprecated: 2020
• TLS 1.1
Published: 2006, Deprecated: 2020
• TLS 1.2
Published: 2008 (RFC 5246)
• TLS 1.3
Published: 2018 (RFC 8446)
Public Key Infrastructure (PKI)
• SSL Certificate: Τύπος ψηφιακού πιστοποιητικού,
το οποίο επιβεβαιώνει την ταυτότητα του κατόχου -
Χρήση στο SSL/TLS.
• Certificate Authority (CA): Ανεξάρτητος φορέας
έκδοσης πιστοποιητικών, έπειτα από ταυτοποίηση
Public Key Infrastructure (PKI)
SSL/TLS Overview
1) TLS Handshake Layer: Προετοιμασία ασφαλούς
σύνδεσης, μέσω παραγωγής (συμμετρικού) κλειδιού
κρυπτογράφησης

2) TLS Record Layer: Κρυπτογράφηση,


αποκρυπτογράφηση και μεταφορά δεδομένων μεταξύ
Client - Server
TLS (1.2) Handshake Layer
1) Client Hello
Ο Client προτείνει - αναφέρει στον Server τις παραμέτρους
που υποστηρίζει, σχετικά με:
- Υψηλότερο TLS Version
- Cipher Suites
- Client Random

2) Server Hello
Ο Server επιλέγει τις τελικές παραμέτρους που θα
χρησιμοποιηθούν (Version, Cipher Suite). παράγει έναν
Server Random και ενημερώνει τον client.

3) Server Certificate
Ο Server αποστέλλει το SSL Certificate του στον Client

4) Authentication
Ο Client ελέγχει την εγκυρότητα του πιστοποιητικού
(Date, Issuing CA, Digital Signature, Domain Name, ...)
TLS (1.2) Handshake Layer
5) Server Key Exchange (Προαιρετικά)
Ο Server αποστέλλει στον Client επιπλέον παραμέτρους,
χρήσιμες για την παραγωγή του συμμετρικού κλειδιού
(session key)

6) Server Hello Done


Ο Server δηλώνει ότι έχει ολοκληρώσει την αποστολή
πληροφοριών

7) Client Key Exchange


Ο Client παράγει έναν κωδικό (pre-master key) και τον
αποστέλλει (κρυπτογραφημένο) στον Server

8) Υπολογισμός Session Key


Ο Server αποκρυπτογραφεί το μήνυμα (7) και μαθαίνει το
pre-master key. Και οι δύο πλευρές υπολογίζουν το
συμμετρικό κλειδί - session key (συνδυασμός Client
Random + Server Random + Pre-Master Key)
TLS (1.2) Handshake Layer
9) Client ChangeCipherSpec
Ο Client δηλώνει ότι είναι έτοιμος να ξεκινήσει την
κρυπτογραφημένη επικοινωνία με τον Server

10) Client Finished


Κρυπτογραφημένη περίληψη της έως τώρα χειραψίας

11) Server ChangeCipherSpec


Ο Server δηλώνει ότι είναι έτοιμος να ξεκινήσει την
κρυπτογραφημένη επικοινωνία με τον Client

12) Server Finished


Κρυπτογραφημένη περίληψη της έως τώρα χειραψίας
TLS Record Layer
● Ερμηνεία διαφορετικού τύπου TLS μηνυμάτων
(Handshake, Alert, Data)

● Δέχεται δεδομένα από το επίπεδο εφαρμογής,


τμηματοποιεί (σε Records), κρυπτογραφεί και προωθεί
στο χαμηλότερο επίπεδο

● Συνθέτει τα επιμέρους Records, αποκρυπτογραφεί και


προωθεί στο υψηλότερο επίπεδο

● Προστίθεται ένα ψηφιακό αποτύπωμα (hash) στα


μηνύματα (MAC Function)
Summary (TLS 1.2)
Wireshark
(Client Hello)

Web Server

Client Random
Wireshark
(Server Hello)

Chosen Version

Server Random

Chosen Cipher Suite


Wireshark
(Server Certificate)

SSL Certificate - Web Server SSL Certificate - Intermediate CA 1

SSL Certificate - Intermediate CA 2


Wireshark
(Certificates Chain)
Root CA

ICA 2
ICA 1
Web Server
Wireshark
(Certificate Status)
Wireshark
(Server Key Exchange + Hello Done)
Wireshark
(Client Key Exchange + Done + Fin)

Session Key (Encrypted)


Wireshark
(Server ChangeCipherSpec + Fin)
Ερωτήσεις;

You might also like