Sobes.tech
Junior

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

sobes.tech AI

Απάντηση από AI

Το HTTPS (Hypertext Transfer Protocol Secure) είναι ένα πρωτόκολλο που διασφαλίζει ασφαλή μεταφορά δεδομένων μεταξύ του πελάτη (π.χ., ενός προγράμματος περιήγησης) και του διακομιστή. Βασίζεται στο HTTP, αλλά χρησιμοποιεί κρυπτογράφηση για την προστασία των μεταδιδόμενων πληροφοριών.

Η λειτουργία του HTTPS βασίζεται στη χρήση του πρωτοκόλλου TLS (Transport Layer Security), που παλαιότερα ονομαζόταν SSL (Secure Sockets Layer). Το TLS/SSL παρέχει τρεις βασικές πτυχές ασφάλειας:

  1. Κρυπτογράφηση: Τα δεδομένα μεταξύ πελάτη και διακομιστή κρυπτογραφούνται, καθιστώντας τα ακατάληπτα για τρίτους.
  2. Ακεραιότητα δεδομένων: Ελέγχεται ότι τα δεδομένα δεν έχουν τροποποιηθεί κατά τη μεταφορά.
  3. Ταυτοποίηση: Ο διακομιστής επιβεβαιώνει την αυθεντικότητά του προς τον πελάτη.

Η διαδικασία εγκαθίδρυσης μιας σύνδεσης HTTPS περιλαμβάνει διάφορα στάδια, που ονομάζονται "TLS/SSL Handshake":

  1. Client Hello: Ο πελάτης στέλνει στον διακομιστή ένα "Client Hello" που περιέχει:
    • Τη συμβατή έκδοση TLS.
    • Τη λίστα των υποστηριζόμενων αλγορίθμων κρυπτογράφησης.
    • Ένα τυχαίο αριθμό.
  2. Server Hello: Ο διακομιστής απαντά με ένα "Server Hello", επιλέγοντας ανάμεσα στις προτάσεις του πελάτη:
    • Τη έκδοση TLS.
    • Έναν από τους αλγορίθμους κρυπτογράφησης.
    • Ένα τυχαίο αριθμό.
    • Το πιστοποιητικό του διακομιστή.
  3. Certificate: Ο πελάτης λαμβάνει και επαληθεύει την αυθεντικότητα του πιστοποιητικού του διακομιστή:
    • Ελέγχει την ψηφιακή υπογραφή του πιστοποιητικού χρησιμοποιώντας το δημόσιο κλειδί της αρχής πιστοποίησης (CA).
    • Ελέγχει την εγκυρότητα του πιστοποιητικού.
    • Ελέγχει ότι το όνομα τομέα στο πιστοποιητικό ταιριάζει με αυτό που ζητείται.
  4. Client Key Exchange: Ο πελάτης δημιουργεί ένα pre-master secret, το κρυπτογραφεί με το δημόσιο κλειδί του πιστοποιητικού του διακομιστή και το στέλνει στον διακομιστή.
  5. Change Cipher Spec (Client): Ο πελάτης ενημερώνει τον διακομιστή ότι είναι έτοιμος να ξεκινήσει την ανταλλαγή κρυπτογραφημένων δεδομένων.
  6. Finished (Client): Ο πελάτης στέλνει ένα κρυπτογραφημένο μήνυμα με ένα hash όλων των προηγούμενων μηνυμάτων του Handshake για την επαλήθευση της ακεραιότητας.
  7. Change Cipher Spec (Server): Ο διακομιστής αποκρυπτογραφεί το pre-master secret χρησιμοποιώντας το ιδιωτικό του κλειδί και δημιουργεί συμμετρικά κλειδιά για την κρυπτογράφηση της συνεδρίας. Στη συνέχεια, ενημερώνει τον πελάτη ότι είναι έτοιμος να ξεκινήσει την ανταλλαγή κρυπτογραφημένων δεδομένων.
  8. Finished (Server): Ο διακομιστής στέλνει ένα κρυπτογραφημένο μήνυμα με ένα hash όλων των προηγούμενων μηνυμάτων του Handshake.
  9. Κρυπτογραφημένη μεταφορά δεδομένων: Μετά την επιτυχή ολοκλήρωση του Handshake, ο πελάτης και ο διακομιστής χρησιμοποιούν τα δημιουργημένα συμμετρικά κλειδιά για την κρυπτογράφηση όλων των επόμενων δεδομένων.

Έτσι, το HTTPS παρέχει ένα ασφαλές κανάλι επικοινωνίας, καθιστώντας την περιήγηση στο διαδίκτυο πιο ασφαλή.