Το TLS (Transport Layer Security) είναι ένα πρωτόκολλο κρυπτογράφησης που εξασφαλίζει την ασφαλή μεταφορά δεδομένων στο διαδίκτυο. Αποτελεί τον διάδοχο του ξεπερασμένου πρωτοκόλλου SSL και σήμερα χρησιμοποιείται σχεδόν αποκλειστικά στην έκδοση TLS 1.3.

Τι είναι το TLS;

Στα πρώτα χρόνια του Διαδικτύου, η ασφάλεια των δεδομένων δεν ήταν τόσο σημαντική όσο είναι σήμερα. Όλες οι επικοινωνίες μεταδίδονταν ανοιχτά και χωρίς κρυπτογράφηση από τον έναν υπολογιστή στον άλλο. Μπορείτε να το φανταστείτε σαν μια ταχυδρομική κάρτα: κάθε ταχυδρόμος μπορούσε να τη διαβάσει.

Το πρωτόκολλο TLS —γνωστό και ως SSL/TLS— εισήγαγε την κρυπτογράφηση του μεταδιδόμενου περιεχομένου. Για να συνεχίσουμε την αναλογία, αυτή η κρυπτογράφηση είναι σαν ένας σφραγισμένος φάκελος που μόνο ο νόμιμος παραλήπτης μπορεί να ανοίξει.

Η συντομογραφία TLS σημαίνει Transport Layer Security. Ο όρος αυτός αναφέρεται στο επίπεδο μεταφοράς του μοντέλου TCP/IP. Το TLS είναι μια μέθοδος που κρυπτογραφεί τις ροές δεδομένων στο διαδίκτυο, επιτρέποντας μόνο στους εξουσιοδοτημένους παραλήπτες να τις διαβάσουν.

Note

Η παλαιότερη ονομασία του πρωτοκόλλου κρυπτογράφησης ήταν SSL (Secure Socket Layer). Δεδομένου ότι αυτή η συντομογραφία εξακολουθεί να είναι πιο γνωστή από το TLS, το TLS αναφέρεται συχνά με τη διπλή ονομασία «SSL/TLS».

Πώς λειτουργεί το TLS;

Το TLS κρυπτογραφεί τα δεδομένα που αποστέλλονται μέσω του διαδικτύου και συνήθως εφαρμόζεται πάνω στο πρωτόκολλο TCP χρησιμοποιώντας συμμετρική κρυπτογραφία.

Αυτό που ακούγεται απλό στη θεωρία είναι πιο περίπλοκο στην πράξη. Το βασικό πρόβλημα είναι ότι ο διακομιστής πρέπει να κοινοποιήσει το κλειδί στον πελάτη —πριν η επικοινωνία ασφαλιστεί με TLS. Όποιος στέλνει κρυπτογραφημένα συνημμένα σε email γνωρίζει αυτό το πρόβλημα: κρυπτογραφείς ένα αρχείο και πρέπει να μοιραστείς τον μυστικό κωδικό πρόσβασης με τον παραλήπτη, π.χ. μέσω τηλεφώνου.

Το πρωτόκολλο TLS, του οποίου το ισχύον πρότυπο είναι η έκδοση 1.3 από το 2018, χρησιμοποιεί την ακόλουθη διαδικασία για την επίλυση αυτού του προβλήματος:

  1. ClientHello: Ο πελάτης (π.χ. ένας φυλλομετρητής) στέλνει ένα αρχικό μήνυμα στον διακομιστή με πληροφορίες σχετικά με τις υποστηριζόμενες μεθόδους κρυπτογράφησης. Αυτές περιλαμβάνουν σειρές αλγορίθμων κρυπτογράφησης, εκδόσεις πρωτοκόλλου, μια τυχαία τιμή και τη δική του τιμή ανταλλαγής κλειδιών Elliptic-Curve-Diffie-Hellman (τιμή ECDHE). Προαιρετικά, μπορεί να έχει ήδη σταλεί το πρώτο κρυπτογραφημένο μπλοκ δεδομένων.
  2. ServerHello: Ο διακομιστής επιλέγει τις κατάλληλες παραμέτρους και στέλνει την απάντησή του — συμπεριλαμβανομένης της τιμής ECDHE και του ψηφιακού πιστοποιητικού του. Αυτό το πιστοποιητικό SSL αποδεικνύει ότι ο διακομιστής είναι αυθεντικός και δεν προσποιείται ότι είναι κάποιος άλλος. Ταυτόχρονα, ξεκινά ο υπολογισμός του κλειδιού συνεδρίας.
  3. Υπολογισμός κλειδιού: Και οι δύο πλευρές υπολογίζουν τώρα ανεξάρτητα το ίδιο κλειδί συνεδρίας με βάση το κλειδί που συμφωνήθηκε από κοινού.
  4. Ο διακομιστής ολοκληρώνει τη διαδικασία χειραψίας και ξεκινά την κρυπτογραφημένη επικοινωνία. Ο πελάτης κάνει το ίδιο· η σύνδεση είναι πλέον πλήρως ασφαλής.
Note

Σε σύγκριση με τις προηγούμενες εκδόσεις, η διαδικασία χειραψίας TLS στο TLS 1.3 είναι σημαντικά πιο απλοποιημένη και πιο ασφαλής. Η όλη διαδικασία που περιγράφεται εδώ απαιτεί πλέον μόνο έναν κύκλο ανταπόκρισης (1 RTT), επιταχύνοντας αισθητά τη σύνδεση.

Ο λόγος για τον οποίο η ασύμμετρη κρυπτογράφηση με το πρωτόκολλο Diffie-Hellman χρησιμοποιείται μόνο για τη μετάδοση του κλειδιού συνεδρίας (και όχι για την κρυπτογράφηση των ίδιων των ροών δεδομένων) είναι το πλεονέκτημα της ταχύτητας· η ασύμμετρη κρυπτογράφηση είναι σχετικά αργή και θα καθυστερούσε την επικοινωνία δεδομένων.

Τα πλεονεκτήματα και τα μειονεκτήματα του TLS

Το TLS αποτελεί μια κομψή λύση για την ενίσχυση της ασφάλειας της διαδικτυακής κίνησης. Δεν απαιτεί από τα δύο μέρη να κρυπτογραφούν οι ίδιοι το περιεχόμενο, όπως τα δεδομένα των φορμών. Αντίθετα, αρκεί η κίνηση να δρομολογείται μέσω του πρωτοκόλλου TLS, ανεξάρτητα από τα λειτουργικά συστήματα και τις εφαρμογές λογισμικού των συμμετεχόντων. Όλες οι ροές δεδομένων κρυπτογραφούνται τότε αυτόματα κατά τη διάρκεια της μετάδοσης.

Το τίμημα για την ασφάλεια είναι μια ελαφρώς πιο αργή διαδικασία σύνδεσης, καθώς τα στάδια της διαδικασίας που αναφέρθηκαν παραπάνω —πιστοποιητικό, τυχαίος αριθμός, ανταλλαγή κλειδιών— απαιτούν μεγάλη υπολογιστική ισχύ.

Χρήσεις του TLS

Όπως αναφέρθηκε, το TLS μπορεί να χρησιμοποιηθεί καθολικά, καθώς είναι ανεξάρτητο από τις εφαρμογές και τα λειτουργικά συστήματα. Συνεπώς, υπάρχει μια έκδοση που προστατεύεται από TLS για μια ποικιλία πρωτοκόλλων εφαρμογών. Το σύστημα ονοματολογίας είναι αρκετά απλό στις περισσότερες περιπτώσεις: το γράμμα «S» προστίθεται στο όνομα του πρωτοκόλλου όταν αυτό επικοινωνεί μέσω TLS.

Ο σημαντικότερος τομέας εφαρμογής του TLS είναι ο Παγκόσμιος Ιστός, και συγκεκριμένα το πρωτόκολλο HTTP. Η κρυπτογραφημένη εκδοχή του ονομάζεται HTTPS.

Εκτός από αυτά, αξίζει να αναφερθούν και οι ακόλουθες συνήθεις περιπτώσεις χρήσης:

  • POP3S: Λήψη μηνυμάτων ηλεκτρονικού ταχυδρομείου από τον διακομιστή μέσω του πρωτοκόλλου POP3
  • IMAPS: Συγχρονισμός του φακέλου εισερχομένων με τον διακομιστή χρησιμοποιώντας το πρωτόκολλο IMAP
  • SMTPS: Αποστολή email
  • FTPS: Μεταφορά αρχείων μέσω του πρωτοκόλλου FTP
  • SIPS: Τηλεφωνία Voice-over-IP μέσω του πρωτοκόλλου SIP
  • IRCS: Κρυπτογραφημένες συνομιλίες
  • QUIC: Το πρωτόκολλο μεταφοράς της Google που ενσωματώνει άμεσα το TLS 1.3· μια εναλλακτική λύση του TCP για ταχύτερες και ασφαλέστερες συνδέσεις στο διαδίκτυο (π.χ. με HTTP/3)

Το OpenVPN, ένα δωρεάν λογισμικό για τη δημιουργία ενός εικονικού ιδιωτικού δικτύου (VPN), χρησιμοποιεί επίσης το πρωτόκολλο TLS.

Σημαντικές υλοποιήσεις TLS

Μερικές από τις πιο διαδεδομένες εφαρμογές του TLS περιλαμβάνουν:

  • OpenSSL – μακράν η πιο διαδεδομένη υλοποίηση που χρησιμοποιείται από τους περισσότερους ιστότοπους HTTPS
  • GnuTLS (Ίδρυμα Ελεύθερου Λογισμικού)
  • LibreSSL (OpenBSD)
  • NSS (Υπηρεσίες Ασφάλειας Δικτύου)
  • BoringSSL (Google)
  • Rustls (Joe Birr-Pixton, Dirkjan Ochtman, Daniel McCarney, Josh Aas και η κοινότητα ανοιχτού κώδικα)
  • Botan (Άδεια BSD, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Ο κατάλογος αυτός δεν είναι εξαντλητικός. Λεπτομερείς πληροφορίες σχετικά με τις υλοποιήσεις TLS μπορείτε να βρείτε στη Βικιπαίδεια.

Γνωστές επιθέσεις TLS

Αν και το TLS έχει σχεδιαστεί για ασφαλή επικοινωνία, εξακολουθεί να παρουσιάζει γνωστά σημεία αδυναμίας. Αυτά περιλαμβάνουν:

  • Λάθη προγραμματισμού: Το Heartbleed Bug έγινε γνωστό ως ένα κρίσιμο λάθος προγραμματισμού σε παλαιότερες εκδόσεις του OpenSSL. Διορθώθηκε το 2014.
  • Αδύναμες κρυπτογραφίες: Ως αποτέλεσμα των περιορισμών εξαγωγής κρυπτογραφίας των ΗΠΑ, αναπτύχθηκαν εκδόσεις «εξαγωγικού επιπέδου» που ήταν ευκολότερο να παραβιαστούν από τις αρχικές.
  • Επιθέσεις συμπίεσης: Όταν χρησιμοποιείται συμπίεση HTTP αντί για συμπίεση TLS, οι χάκερ μπορούν να μαντέψουν το περιεχόμενο που είναι κρυπτογραφημένο με TLS μέσω συγκεκριμένων μεθόδων.
  • Η επίθεση BEAST επηρέασε την έκδοση TLS 1.0 και περιγράφηκε ήδη από το 2014. Οι τρέχουσες εκδόσεις TLS είναι ασφαλείς έναντι αυτής.
  • Η επίθεση Padding Oracle ανακαλύφθηκε το 2002 και ήταν δυνατή μέχρι την έκδοση SSL 3.0. Η τρέχουσα έκδοση TLS 1.3 δεν επηρεάζεται.
  • Η επίθεση ALPACA του 2021 δείχνει πώς τα πιστοποιητικά TLS σε διακομιστές με λανθασμένη διαμόρφωση μπορούν να αξιοποιηθούν για την ανακατεύθυνση των χρηστών σε άλλες υπηρεσίες, με σκοπό την υποκλοπή ή τον χειρισμό δεδομένων.

Έχουν επίσης καταβληθεί προσπάθειες για την αποτροπή της πλήρως ασφαλούς κρυπτογράφησης TLS, προκειμένου να επιτραπεί στις αρχές η πρόσβαση σε κρυπτογραφημένες επικοινωνίες — για παράδειγμα, σε σχέση με χρηματοοικονομικές συναλλαγές και εγκληματικές δραστηριότητες. Ένας από τους οργανισμούς που υποστήριξε μια τέτοια «σκόπιμη ευπάθεια» στο TLS ήταν το ETSI (Ευρωπαϊκό Ινστιτούτο Τηλεπικοινωνιακών Προτύπων).

Go to Main Menu