Σάββατο, Μαρτίου 14, 2015

Για τον φίλο απλό χρήστη: SSL certificates και HTTPS

- Καλημέρα, είμαι απλός χρήστης του Ίντερνετ. Τι πρέπει να ξέρω για το HTTPS και τα πιστοποιητικά SSL για την απλή χρήση που κάνω στο Ίντερνετ;

Καλημέρα φίλτατε απλέ χρήστη του Ίντερνετ και καλώς ήρθες στην παρέα μας.
Το HTTPS και τα πιστοποιητικά SSL είναι δύο αλληλένδετες τεχνολογίες που εξασφαλίζουν ότι οι πληροφορίες που στέλνεις σε ένα site θα φτάσουν ασφαλείς και μόνο στον παραλήπτη για τις οποίες προορίζονταν.

Θα το εξηγήσω με ένα παράδειγμα για να γίνει πιο κατανοητό.

Άνοιξε τον αγαπημένο σου browser, Firefox, Chrome, Safari, Internet Explorer, Opera, όποιον θες. Γράψε facebook.com, πάτα enter και θα αντικρύσεις αυτή την οθόνη:

Η μπάρα της διεύθυνσης σου δύο πολύ χρήσιμες πληροφορίες.
  1.  Η διεύθυνση στην αρχή λέει https αντί για http.
    Το έξτρα S σημαίνει Secure (ασφαλές). Για εσένα φίλε χρήστη αυτό σημαίνει ότι η επικοινωνία του υπολογιστή σου με το facebook είναι ασφαλής - το password σου θα το διαβάσει μόνο το facebook και όχι ο κάθε τυχάρπαστος που τυγχάνει να παρακολουθεί την σύνδεση σου στο internet. Δηλαδή είναι αυτό που λέμε ότι η σύνδεση σου στο Facebook είναι κρυπτογραφημένη.
  2.  Υπάρχει μια κλειδαριά μπροστά από την διεύθυνση.
    Η κλειδαριά σημαίνει ότι το Facebook έχει πιστοποιητικό SSL για να δείχνει ότι όντως είναι το Facebook και όχι κάποιος άλλος - κάτι σαν ψηφιακό δελτίο αστυνομικής ταυτότητας. Δεν θέλεις να δώσεις τον κωδικό σου και άλλες ευαίσθητες πληροφορίες σε κάποιον που παριστάνει το Facebook αλλά δεν είναι, έτσι; Το πιστοποιητικό SSL ταυτοποιεί ότι το site είναι αυτό που λέει ότι είναι.
 Για το https δεν μπορείς να κάνεις πολλά πράγματα. Είτε υποστηρίζεται από το site είτε όχι.

Για το πιστοποιητικό SSL όμως μπορείς να κάνεις και μόνος σου επαλήθευση ότι όντως το site είναι αυτό που λέει ότι είναι. Κάνε απλά κλικ στην κλειδαριά και θα δεις αυτό:
Ο Firefox έχει κάνει κάποια δουλειά στα γρήγορα και έχει επαληθεύσει το πιστοποιητικό SSL για σένα και τώρα σου το κάνει λιανά:

"Είσαι συνδεμένος στο: facebook.com"
Έτσι ξέρεις ότι όντως είσαι στο σωστό site.

"Πιστοποιημένο από: DigiCert Inc"
Όπως όλα τα πιστοποιητικά στον κόσμο, έτσι κι αυτό έχει μια "αρχή έκδοσης". Στην προκειμένη περίπτωση, το πιστοποιητικό έχει εκδοθεί από την DigiCert, μια εταιρεία που ο Firefox εμπιστεύεται.

"Η σύνδεση σε αυτή την σελίδα είναι ασφαλής"
Το τελικό συμπέρασμα :)

Αν θες να δεις περισσότερες πληροφορίες, πάτα στο More Information.
Ανάλογα με τον browser θα δεις και διαφορετικό πακέτο πληροφοριών (όπως πχ τελευταία φορά που τσέκαρες αυτό το site), αλλά κυρίως μπορείς να δεις όλα τα στοιχεία του πιστοποιητικού.

Μην αγχώνεσαι, δεν κάνεις χακεριές, ούτε υποκλέπτεις δεδομένα. Κάνεις χειροκίνητα αυτό που έκανε ο Firefox αυτοματοποιημένα για να μην χρειάζεται να παιδεύεσαι. Το πιστοποιητικό ούτως ή άλλως είναι δημοσίως διαθέσιμο. To Facebook δεν σου κάνει χάρη να δημοσιεύσει το πιστοποιητικό του - είναι υποχρεωμένο να το δείχνει δημόσια αν θέλει:
  1. να δουλεύει το https 
  2. να το εμπιστευόμαστε

Είναι καλό να κάνεις και μόνος σου αυτά τα βήματα όταν έχεις να κάνεις χρηματικές συναλλαγές στο Internet. Είδες ότι είναι πολύ απλό να τσεκάρεις ότι το site είναι ασφαλές - ένα απλό κλικ στην κλειδαριά. Θα δεις και μόνος σου ότι όταν το πιστοποιητικό δεν είναι σωστό, ο browser θα σε ενημερώσει με εύκολο τρόπο - η μπάρα διεύθυνσης θα γεμίσει κόκκινα σημάδια ή δεν θα σου επιτρέψει καν να μπεις στο προβληματικό site.

Δεν χρειάζεται να κάθεσαι να διαβάσεις φυσικά όλα τα αναλυτικά πεδία (το κάνει ο Firefox για σένα) αλλά μερικές φορές είναι χρήσιμο.

Για παράδειγμα, πριν κάποιο καιρό ένας φίλος μου είπε ότι το site της ΤραινΟΣΕ είχε πρόβλημα στο πιστοποιητικό τους και ο Firefox έριχνε προειδοποιητικές φωτοβολίδες. Μια ματιά στις αναλυτικές πληροφορίες του πιστοποιητικού (βλέπε τελευταία εικόνα) έδειξε ότι το πιστοποιητικό μόλις είχε λήξει την προηγούμενη μέρα και οι τεχνικοί δεν είχαν προλάβει να το ανανεώσουν. Συμβαίνει. Τα υπόλοιπα πεδία ήταν όλα μια χαρά, στείλαμε ένα email στην ΤραινΟΣΕ να τους ειδοποιήσουμε και αποφασίσαμε ότι μπορούμε να αγοράσουμε εισιτήρια χωρίς πρόβλημα.

Να πούμε εδώ ότι η ΤραινΟΣΕ ήταν ευγενικότατη στην απάντηση τους, μας ευχαρίστησαν, επιβεβαίωσαν το πρόβλημα και ανανέωσαν το πιστοποιητικό άμεσα - και χαίρουν της εμπιστοσύνης μας για αυτό :)

Άλλο παράδειγμα προβλήματος με πιστοποιητικά: κάποια δημόσια ασύρματα δίκτυα, ειδικά σε αεροδρόμια, προκαλούν μηνύματα λάθος του στυλ "το πιστοποιητικό για το mail.google.com είναι λάθος".
Σε τέτοιες περιπτώσεις, δεν κάνουμε άμεση αποδοχή του πιστοποιητικού! Αυτό που γίνεται είναι ότι το ασύρματο δίκτυο έχει ένα δικό του σέρβερ ανάμεσα σε σένα και το Ίντερνετ. Τα πάντα περνάνε μέσα από αυτόν τον σέρβερ, ο οποίος έχει ένα δικό του πιστοποιητικό και παριστάνει το Facebook, το Google κλπ. Αυτό γίνεται για διάφορους τεχνικούς λόγους, το αποτέλεσμα όμως είναι ότι κάποιος σέρβερ παριστάνει κάτι που δεν είναι και το μήνυμα λάθος για το πιστοποιητικό σε προειδοποιεί για αυτό.

Θα εμπιστευόσουν αυτό το δίκτυο για να κάνεις τραπεζικές συναλλαγές; Φυσικά όχι.

Το μόνο που χρειάζεται είναι να έχεις τον νου σου.

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

  • Ο τρόπος με τον οποίο εξασφαλίζεται ότι το πιστοποητικό του facebook το έχει ΜΟΝΟ το Facebook και όχι κάποιος άλλος είναι ότι υπάρχει και ένα κρυφό κλειδί (ένα ειδικό αρχείο) το οποίο είναι συνδεδεμένο άρρηκτα με το πιστοποιητικό. Ο σέρβερ του Facebook και οποιοσδήποτε άλλος σέρβερ δεν μπορεί να δουλέψει μόνο με το ένα - χρειάζεται να έχει και τα δύο, και το πιστοποιητικό και το κλειδί.
    Ο πιο απλός τρόπος να το εξηγήσω είναι με την αναλογία του γραμματοκιβωτίου: όλοι ξέρουν που είναι το γραμματοκιβώτιο σου, είναι δημόσια πληροφορία (την δημοσιεύεις για να σου στέλνουν γράμματα), αλλά ο ιδιοκτήτης του γραμματοκιβωτίου είναι αυτός που έχει το κλειδί, δηλαδή εσύ.
  • Πως επαληθεύει η DigiCert ότι το Facebook είναι αυτό που λέει και του δίνει το πιστοποιητικό;
    Μέσα από μια σειρά ελέγχων που κυμαίνονται από απλή τηλεφωνική επιβεβαίωση, μέχρι και πλήρη εταιρικό έλεγχο παρουσία νομικών εκπροσώπων και δικηγόρων.
  •  Διαφορετικές εταιρίες κάνουν διαφορετική διαδικασία. Ως εκ τούτου κάποια πιστοποιητικά είναι πιο ακριβά αλλά έχουν κάνει και πιο αυστηρούς ελέγχους.
  • Γιατί εμπιστευόμαστε εμείς την κάθε DigiCert για να κάνει αυτή την δουλειά;
    Γιατί την εμπιστεύεται ο Firefox!
    Ένα από τα αρχεία που εγκαθιστά ο  Firefox στον υπολογιστή σου είναι και ένα πιστοποιητικό (από τον Firefox) που λέει ότι η DigiCert έχει ελεγχθεί και ως εκ τούτου τα πιστοποιητικά SSL που είναι υπογεγραμμένα από την DigiCert είναι ασφαλή.
    Η λογική αυτή ονομάζεται Αλυσίδα Εμπιστοσύνης (Chain of Trust).
  • Φυσικά δεν υπάρχει μόνο η Digicert. Υπάρχουν πολλές εταιρίες και δημόσιοι φορείς που έχουν πιστοποιηθεί από τον Firefox και θεωρούνται ασφαλείς.
  • Το ίδιο κάνουν και όλοι οι υπόλοιποι browsers (Internet Explorer, Chrome, Opera, Safari)
  • Αυτός είναι και ο λόγος που χρησιμοποιούμε ΜΟΝΟ γνωστούς και "επίσημους" browsers. Κάποιος "ύποπτος" browser μπορεί κάλλιστα να θεωρεί ασφαλή τα πιστοποιητικά που εκδίδει η Apateonas Ltd. - και τότε αυτόματα χάνεται η εμπιστοσύνη που μπορείς να έχεις στο σηματάκι της κλειδαριάς...
Ελπίζω κάποια πράγματα να ξεκαθαρίστηκαν και να έγιναν κατανοητά από όλους. Δυστυχώς είναι πράγματα που θα πρέπει όλοι να ξέρουν (έστω τα πιο βασικά), καθώς οι online συναλλαγές είναι καθημερινότητα για πολλούς.

Η αφορμή για αυτό το κείμενο είναι η δημοσίευση του ebalaskas.

Το "έγκλημα" που έκανε ο ebalakas είναι να έχει πολύ αυστηρά μέτρα ασφαλείας στον Firefox του. Ο Firefox παραπονέθηκε για κάποια μικρο-ατοπήματα στα πιστοποιητικά SSL δύο ελληνικών τραπεζών και όταν επικοινώνησε μαζί τους για να τους ειδοποιήσει, η μία τράπεζα τον απείλησε με νομικές ενέργειες.

Έχοντας εξηγήσει το τι είναι τα πιστοποιητικά SSL και πως περίπου δουλεύουν ελπίζω να καταλαβαίνετε ότι το να στέλνετε screenshots των ειδοποιήσεων που βγάζει ο firefox δεν είναι λόγος νομικών απειλών αλλά ευκαιρία από την πλευρά του τεχνικού τμήματος της τράπεζας για διορθώσεις. Αν μη τι άλλο, σαν πελάτες της τράπεζας η ασφάλεια του e-banking είναι κάτι που μας αφορά άμεσα.

Είμαι σίγουρος ότι το τεχνικό τμήμα της τράπεζας δεν φταίει για τις νομικές κινήσεις - πρόκειται για νευρική αντίδραση μάνατζερς και δικηγόρων που προφανώς και δεν έχουν συμβουλευτεί τεχνικούς για το ζήτημα και απλά έτρεξαν να "προστατεύσουν" την τράπεζα με τον χειρότερο δυνατό τρόπο.

Ξανατονίζω ότι προσπάθησα το κείμενο μου να είναι όσο πιο απλό και κατανοητό γίνεται. Αν κάτι λείπει ή είναι πολύ μπερδεμένο, αφήστε σχόλιο να το διορθώσω (χωρίς νομικές ενέργειες ;) )