Αλληλεπιδρούμε πολύ με το HTTP και το HTTPS στην καθημερινή μας ζωή, αλλά πολλοί από εμάς δεν γνωρίζουμε τη διαφορά. Οι περισσότεροι χρήστες υπολογιστών απλώς βλέπουν ότι το πρόγραμμα περιήγησης τους λέει ότι η εφαρμογή τους δεν είναι ασφαλής και ότι ένας χάκερ μπορεί να κλέψει σημαντικές πληροφορίες τους.
Αυτό όμως μπορεί να αποφευχθεί. Εκεί μπαίνει το HTTPS και αντικαθιστά το HTTP.
Τι είναι το HTTP;
Το Hyper Text Transfer Protocol, ή HTTP, είναι μια μέθοδος επικοινωνίας μεταξύ του προγράμματος περιήγησης και του ιστότοπου που θέλετε να επισκεφτείτε (διακομιστής Ιστού). Ένας καλός τρόπος για να κατανοήσετε το HTTP και το HTTPS είναι ο εξής: Γνωρίζουμε ότι τα προγράμματα περιήγησης και οι διακομιστές επικοινωνούν χρησιμοποιώντας HTTP. Η μορφή του HTTP είναι συνήθως σε απλό κείμενο. Πολλοί άνθρωποι σε όλο τον κόσμο μιλούν αγγλικά. Εάν ένας χάκερ που ξέρει αγγλικά εισβάλει στον υπολογιστή σας, μπορεί εύκολα να δει οποιονδήποτε κωδικό πρόσβασης εισάγετε. Εάν ζείτε, π.χ. στην Κένυα, όπου μιλούν μια ιδιαίτερη γλώσσα και δεν μιλάτε τη γλώσσα αυτή, σίγουρα δεν θα καταλάβετε μια συνομιλία. Αυτή είναι η ιδιαιτερότητα του HTTPS. Είναι κρυπτογραφημένο έτσι ώστε ο χάκερ να μην κατανοεί την επικοινωνία μεταξύ του προγράμματος περιήγησης και του διακομιστή.
Ο πελάτης, ο οποίος στις περισσότερες περιπτώσεις είναι το πρόγραμμα περιήγησης Ιστού, στέλνει ένα μήνυμα που με όρους υπολογιστή είναι ένα αίτημα. Στη συνέχεια, ο διακομιστής θα δώσει μια απάντηση.
Το HTTP είναι πολύ χρήσιμο για την αποστολή εγγράφων HTML καθώς και εικόνων και βίντεο στο πρόγραμμα περιήγησης ιστού για να τα δει ο χρήστης. Χρησιμοποιείται επίσης για την αποστολή δεδομένων στον διακομιστή σε φόρμες HTML.
Πώς λειτουργεί το HTTP
Το HTTP στέλνει δεδομένα μέσω απλού κειμένου. Για παράδειγμα, εάν επρόκειτο να αποκτήσετε πρόσβαση στην ιστοσελίδα της τράπεζάς σας που χρησιμοποιεί HTTP, ένας χάκερ μπορεί να έχει πρόσβαση σε αυτήν και να διαβάσει τυχόν πληροφορίες που στέλνετε. Εδώ μπαίνει το HTTPS. Πολλές εταιρείες έχουν εφαρμόσει το HTTPS για να μπορούν να επιτρέπουν στους χρήστες τους να στέλνουν δεδομένα με ασφάλεια. Θα το συζητήσουμε περαιτέρω παρακάτω.
Χαρακτηριστικά του HTTP
Απλό κείμενο. Αρχικά, όταν αναπτύχθηκε το HTTP, οι προγραμματιστές είχαν ένα πράγμα στο μυαλό τους: να εξυπηρετούν μόνο έγγραφα κειμένου. Τώρα, το HTTP χρησιμοποιείται με περισσότερους τρόπους από ό,τι είχε αρχικά προβλεφθεί.
Πρωτόκολλο επιπέδου 7. Το HTTP είναι ένα πρωτόκολλο επιπέδου 7 στο μοντέλο δικτύωσης OSI. Το επίπεδο 7 είναι το επίπεδο εφαρμογής. Αυτό το επίπεδο είναι το ανώτερο επίπεδο στο μοντέλο OSI. Τα άλλα επίπεδα περιλαμβάνουν το φυσικό επίπεδο, τη σύνδεση δεδομένων, το δίκτυο, τη μεταφορά, τη συνεδρία και το επίπεδο παρουσίασης. Για να μάθετε περισσότερα σχετικά με το μοντέλο OSI, μπορείτε να δείτε αυτό το βίντεο στο YouTube: https://www.youtube.com/watch?v=qiQR5rTSshw&t=27s&ab_channel=freeCodeCamp.org
Ανασφαλές. Όταν στέλνετε αιτήματα HTTP, αποστέλλονται μέσω απλού κειμένου. Επίσης, όταν λαμβάνετε απάντηση, τη λαμβάνετε μέσω απλού κειμένου. Αυτό σημαίνει ότι όποιος έχει πρόσβαση στα αιτήματα και τις απαντήσεις μπορεί να τα διαβάσει.
Ελαφρύ. Το πλεονέκτημα του HTTP είναι ότι είναι πολύ ελαφρύ. Ως εκ τούτου, είναι πολύ γρήγορο αφού δεν κάνει την κρυπτογράφηση για την ασφάλεια των δεδομένων, όπως κάνει το HTTPS. Το HTTP συνήθως ακούει στη θύρα 80.
Πώς θα δείτε ότι ένας ιστότοπος δεν είναι ασφαλής
Όταν ένας ιστότοπος δεν είναι ασφαλής, το Chrome συνήθως στέλνει μια προειδοποίηση που λέει Your connection is not private. Στο Chrome, η γραμμή URL εμφανίζει μία ετικέτα Μη ασφαλής με κόκκινο χρώμα, εάν ένας ιστότοπος δεν είναι ασφαλής.
Είναι όλοι οι ιστότοποι HTTP ανασφαλείς;
Ας δούμε ένα παράδειγμα. Φανταστείτε ότι περιηγείστε σε έναν ιστότοπο με ανέκδοτα. Εάν χρησιμοποιείται το πρωτοκόλλο HTTP, τότε δεν υπάρχει ιδιαίτερο πρόβλημα. Εάν, όμως, μεταβούμε στον ιστότοπο της τράπεζάς μας για να αποκτήσουμε πρόσβαση στον λογαριασμό μας, και ο ιστότοπος δεν χρησιμοποιεί HTTPS, ενδέχεται επίσης να παράσχετε τα στοιχεία του λογαριασμού σας σε έναν χάκερ! Επομένως, η ουσία είναι ότι, εάν περιηγείστε σε ασήμαντες πληροφορίες, το HTTP είναι εντάξει. Αλλά αν έχετε να κάνετε με ανασφαλείς πληροφορίες, το HTTP δεν είναι αρκετό.
Τι είναι το HTTPS;
Το Hyper Text Transfer Protocol Secure, ή το HTTPS, είναι ένας τρόπος με τον οποίο μπορεί να πραγματοποιηθεί με ασφάλεια η επικοινωνία μεταξύ του προγράμματος περιήγησης και του ιστότοπου που θέλετε να επισκεφτείτε (διακομιστής Ιστού).
Πώς λειτουργεί το HTTPS
Το HTTPS πραγματοποιεί μια ασφαλή σύνδεση χρησιμοποιώντας ένα ασφαλές πρωτόκολλο που κρυπτογραφεί τα δεδομένα σας. Για τους περισσότερους ιστότοπους, ο καλύτερος τρόπος για να έχετε HTTPS είναι να αποκτήσετε ένα πιστοποιητικό SSL (Secure Sockets Layer) ή ένα πιστοποιητικό TLS (Transport Layer Security).
Προς το παρόν, το SSL έχει εξελιχθεί αρκετά ώστε να υποστηρίζει TLS. Επομένως, δεν χρειάζεται να αποκτήσετε πιστοποιητικό TLS.
Χαρακτηριστικά του HTTPS
Κρυπτογραφεί δεδομένα. Η κρυπτογράφηση δεδομένων γίνεται μέσω του πρωτοκόλλου TLS/SSL.
Είναι ένα πρωτόκολλο επιπέδου 4 (Επίπεδο μεταφοράς).
Οι ανταλλαγές κλειδιών δημόσιων και ιδιωτικών κλειδιών πραγματοποιούνται στο HTTPS για την κρυπτογράφηση και την αποκρυπτογράφηση δεδομένων.
Σε σύγκριση με το HTTP, είναι πιο βαρύ. Όταν η κρυπτογράφηση και η αποκρυπτογράφηση συμβαίνουν στο HTTPS, γίνεται πιο βαριά.
Ακροάσεις HTTP στη θύρα 443.
Πώς λειτουργεί η κρυπτογράφηση;
Ας πούμε ότι πληκτρολογούμε τις λέξεις "Είμαι προγραμματιστής". Αυτό το κείμενο κρυπτογραφείται όταν το αποστείλουμε και στη συνέχεια, αποκρυπτογραφείται από την πλευρά του διακομιστή. Το ίδιο ισχύει και από την πλευρά του διακομιστή. Εάν λάβουμε απάντηση από τον διακομιστή, πρώτα θα κρυπτογραφηθεί και μετά θα αποκρυπτογραφηθεί από την πλευρά του πελάτη.
Πώς θα δείτε εάν ένας ιστότοπος είναι ασφαλής
Για να δείτε ότι ένας ιστότοπος είναι ασφαλής, συνήθως κοιτάτε τη γραμμή URL όπου μπορείτε να δείτε μια κλειδαριά. Εάν υπάρχει κλείδωμα, η σύνδεση από τον πελάτη στον διακομιστή είναι ασφαλής. Αν κάνουμε κλικ στο εικονίδιο κλειδώματος, αυτό μας δείνει περισσότερες πληροφορίες για την ασφαλή σύνδεση.
Τι είναι ένα πιστοποιητικό SSL;
Ένα πιστοποιητικό SSL είναι ένα μικρό αρχείο που λέει στα προγράμματα περιήγησης ότι ο ιστότοπός σας είναι αυτός που λέει ότι είναι και ότι είναι αξιόπιστος. Προκειμένου να γίνει έλεγχος ταυτότητας, το πιστοποιητικό μπορεί να επιβεβαιώσει στον πελάτη (χρήστη) ότι ο διακομιστής στον οποίο συνδέονται είναι αυτός που διαχειρίζεται αυτόν τον τομέα. Όλα αυτά είναι για να προστατεύεται ο χρήστης από ζητήματα ασφαλείας όπως η πλαστογράφηση τομέα. Περιέχει ένα δημόσιο κλειδί και σας λέει ποιος είναι ο κύριος του ιστότοπου με τον οποίο προσπαθείτε να συνδεθείτε. Εάν ένας ιστότοπος δεν διαθέτει πιστοποιητικό SSL, δεν μπορεί να κρυπτογραφηθεί με TLS.
Μπορείτε να δημιουργήσετε προσωπικά το δικό σας πιστοποιητικό SSL (γνωστό και ως αυτο-υπογεγραμμένο πιστοποιητικό), εάν είστε ο κάτοχος του ιστότοπου. Το πρόβλημα με αυτήν την προσέγγιση είναι ότι προγράμματα περιήγησης όπως το Chrome δεν εμπιστεύονται αυτά τα πιστοποιητικά. Προτιμούν να εμπιστεύονται πιστοποιητικά που εκδίδονται από μια αρχή έκδοσης πιστοποιητικών.
Πώς λειτουργεί η κρυπτογράφηση SSL;
Υπάρχουν δύο τύποι κρυπτογράφησης SSL, η ασύμμετρη και η συμμετρική. Ο συνδυασμός ασύμμετρου και συμμετρικού είναι αυτό που κάνει την κρυπτογράφηση SSL να λειτουργεί. Ας τα δούμε παρακάτω για να μάθουμε περισσότερα.
Τι είναι η ασύμμετρη κρυπτογράφηση;
Στην ασύμμετρη κρυπτογράφηση, έχουμε δύο κλειδιά. Αυτά είναι:
Το Δημόσιο κλειδί.
Το Ιδιωτικό κλειδί.
Ο πελάτης/χρήστης/πρόγραμμα περιήγησης δίνει το δημόσιο κλειδί στον διακομιστή με τον οποίο επικοινωνούν. Στη συνέχεια, η κρυπτογράφηση γίνεται με τη βοήθεια του δημόσιου κλειδιού και η αποκρυπτογράφηση με τη βοήθεια του ιδιωτικού κλειδιού του διακομιστή. Το ιδιωτικό κλειδί μπορεί να βρεθεί μόνο στον συγκεκριμένο διακομιστή. Κανείς άλλος δεν το έχει. Αυτό μας δείχνει το γιατί η ασύμμετρη κρυπτογράφηση είναι ισχυρότερη και πιο δύσκολη στο χακάρισμα, επειδή έχει δύο διαφορετικά κλειδιά, το ιδιωτικό και το δημόσιο κλειδί. Τα δύο κλειδιά συνεργάζονται για να διασφαλίσουν ότι τα δεδομένα είναι πιο ασφαλή. Το μέγεθος αυτής της κρυπτογράφησης είναι 1024/2048 bit.
Τι είναι η συμμετρική κρυπτογράφηση;
Στη συμμετρική κρυπτογράφηση, τα πράγματα είναι πιο απλά. Έχουμε ένα κλειδί. Ο πελάτης χρησιμοποιεί ένα κλειδί για κρυπτογράφηση και ο διακομιστής χρησιμοποιεί το ίδιο κλειδί για την αποκρυπτογράφηση των δεδομένων. Η συμμετρική κρυπτογράφηση έχει πολύ μικρό βάρος. Το μέγεθος είναι 128/256 bit. Αλλά είναι λίγο πιο εύκολο να χακάρεις σε σύγκριση με το ασύμμετρο. Αυτό δεν σημαίνει ότι δεν είναι χρήσιμο. Όταν χρησιμοποιούμε SSL, συνδυάζουμε Asymmetric και Symmetric για να μπορούμε να κάνουμε την επικοινωνία ασφαλέστερη και πιο ασφαλή.
Πώς λειτουργεί η ασύμμετρη και η συμμετρική κρυπτογράφηση
Ο συνδυασμός τόσο του ασύμμετρου όσο και του συμμετρικού είναι πλέον ο τοίχος διπλής όψης. Στο πρώτο βήμα, ο διακομιστής θα στείλει στο πρόγραμμα περιήγησης το ασύμμετρο δημόσιο κλειδί. Όπως γνωρίζουμε τώρα, το ασύμμετρο κλειδί έχει και το δημόσιο και το ιδιωτικό κλειδί. Επομένως, το πρόγραμμα περιήγησης θα λάβει το δημόσιο κλειδί. Μετά από αυτό, το πρόγραμμα περιήγησης δημιουργεί ένα κλειδί συνεδρίας.
Η συμμετρική κρυπτογράφηση χρησιμοποιεί μόνο ένα κλειδί τόσο για τον πελάτη όσο και για τον διακομιστή. Αυτό που θα συμβεί λοιπόν είναι ότι το πρόγραμμα περιήγησης θα δημιουργήσει ένα τοπικό κλειδί συνεδρίας. Αυτό είναι ένα συμμετρικό κλειδί κρυπτογράφησης. Στη συνέχεια θα το κρυπτογραφήσει, με τη χρήση του δημόσιου κλειδιού που είναι ασύμμετρο, που δίνεται στο πρώτο βήμα. Το κλειδί συνεδρίας που δημιουργείται τοπικά θα συνδυαστεί στη συνέχεια με το δημόσιο κλειδί και θα σταλεί στον διακομιστή. Στη συνέχεια, ο διακομιστής θα χρησιμοποιήσει ένα ιδιωτικό κλειδί για να αποκρυπτογραφήσει το κρυπτογραφημένο κλειδί συνεδρίας που έχει λάβει. Σε αυτό το συγκεκριμένο βήμα, ο διακομιστής θα χρησιμοποιήσει ασύμμετρο ιδιωτικό κλειδί για να αποκρυπτογραφήσει το κλειδί συνεδρίας που έχει λάβει.
Τώρα, μόλις γίνει η αποκρυπτογράφηση, ο διακομιστής και το πρόγραμμα περιήγησης θα χρησιμοποιήσουν το κλειδί συνεδρίας για επικοινωνία. Το κλειδί συνεδρίας θα χρησιμοποιηθεί μόνο για τη συγκεκριμένη περίοδο λειτουργίας.
Ας υποθέσουμε ότι κλείσατε το πρόγραμμα περιήγησής σας και ίσως συνδεθείτε την επόμενη μέρα – όλα ξεκινούν από την αρχή. Τα κλειδιά περιόδου λειτουργίας δημιουργούνται ξανά.
Πώς μπορώ να αποκτήσω SSL για τον ιστότοπό μου;
Εάν είστε κάτοχος ιστότοπου, μπορείτε να αποκτήσετε ένα πιστοποιητικό SSL από μια αρχή έκδοσης πιστοποιητικών. Στη συνέχεια, θα χρειαστεί να εγκαταστήσετε το πιστοποιητικό στον διακομιστή web όπου φιλοξενείται ο ιστότοπός σας. Τις περισσότερες φορές, η εταιρεία φιλοξενίας όπου φιλοξενείτε τον ιστότοπό σας χειρίζεται αυτήν τη διαδικασία για εσάς.
Πού μπορώ να πάρω ένα πιστοποιητικό SSL;
Υπάρχουν οργανισμοί που εκδίδουν πιστοποιητικά ασφαλείας. Αυτοί οι οργανισμοί ονομάζονται αρχές πιστοποιητικών. Ορισμένες από αυτές τις αρχές έκδοσης πιστοποιητικών περιλαμβάνουν: DigiCert, Comodo και πολλές άλλες. Πολλοί προγραμματιστές λαμβάνουν πιστοποιητικά από αυτούς τους οργανισμούς. Δεδομένου ότι είναι οι πιο ευρέως χρησιμοποιούμενοι εκδότες πιστοποιητικών, τα προγράμματα περιήγησης συνήθως εμπιστεύονται τα πιστοποιητικά από αυτούς τους οργανισμούς.
Μπορώ να αποκτήσω ένα πιστοποιητικό SSL δωρεάν;
Το Cloudflare προσφέρει πιστοποιητικά SSL δωρεάν. Είναι μια από τις πρώτες εταιρείες ασφάλειας Διαδικτύου που το έκανε.
Σε τι χρησιμοποιείται το HTTPS;
Το HTTPS βοηθάει πολύ στην ασφάλεια. Χωρίς αυτό, η μετάδοση ευαίσθητων πληροφοριών γίνεται μεγάλη πρόκληση, ειδικά εάν η επιχείρησή σας απαιτεί έναν ασφαλή τρόπο επικοινωνίας. Οι ιστότοποι που δέχονται πληρωμές στο διαδίκτυο, όπως οι ιστότοποι ηλεκτρονικού εμπορίου, συνήθως απαιτούν HTTPS. Αυτό γίνεται για να αποφευχθεί η κλοπή στοιχείων όπως τα στοιχεία της πιστωτικής κάρτας και τα στοιχεία σύνδεσης.
Οι κύριες διαφορές μεταξύ HTTPS και HTTP
Το επίπεδο κρυπτογράφησης είναι ενεργοποιημένο στο HTTPS ενώ δεν υπάρχει επίπεδο κρυπτογράφησης στο HTTP.
Τα δεδομένα σας προστατεύονται σε HTTPS ενώ στο HTTP όχι.
Η κατάταξή σας ενισχύεται στο Google όταν χρησιμοποιείτε HTTPS, ενώ με το HTTP, δεν λαμβάνετε καμία ενίσχυση κατάταξης.
Προστατεύεστε από ηλεκτρονικό ψάρεμα όταν χρησιμοποιείτε HTTPS ενώ δεν υπάρχει προστασία όταν χρησιμοποιείτε HTTP.
Συμμορφώνεστε με τους κανονισμούς του κλάδου πληρωμών όταν χρησιμοποιείτε HTTPS ενώ το HTTP δεν συμμορφώνεται.
Η φόρτωση του HTTPS στα πρώτα δευτερόλεπτα μπορεί να είναι πιο αργή από τη φόρτωση του HTTP.
Η λήψη πιστοποιητικών SSL μπορεί να κοστίσει χρήματα, ενώ δεν υπάρχει κόστος πιστοποίησης με το HTTP.
Όταν χρησιμοποιείτε το HTTPS, γίνεστε φίλοι με το Google Chrome. Στο Google Chrome δεν αρέσει το HTTP και επομένως θα λαμβάνετε πάντα ειδοποιήσεις μη ασφαλούς ιστότοπου.
συμπέρασμα
Το HTTP και το HTTPS είναι πολύ σημαντικά στην καθημερινή μας ζωή ως προγραμματιστές. Η επικοινωνία μεταξύ του προγράμματος περιήγησης και του διακομιστή είναι αυτή που τροφοδοτεί πολύ τη δουλειά που κάνουμε.