• 6930418488
  • Δευτέρα - Σάββατο: 9:00 - 21:00

Τι είναι ψηφιακά πιστοποιητικά ασφαλείας και γιατί τα χρειάζεστε

Πιστοποιητικά ασφαλείας για websites
Κάθε μη ασφαλής σύνδεση μπορεί να υποκλαπεί, να παραποιηθεί, να πλαστογραφηθεί και γενικά να αποτελεί εύκολο στόχο για επίθεση που θα προκαλέσει μικρή ή μεγάλη ζημιά, στα μέλη που επικοινωνούν μεταξύ τους. Ο παράγοντας που καθορίζει το ύψος της ζημιάς, είναι η αξία της πληροφορίας που μεταδίδεται και οι επιπτώσεις από την απώλεια αυτής.

Κατά την περιήγησή μας στο internet, όλοι έχουμε κάνει χρήση ασφαλών συνδέσεων, είτε γνωρίζοντάς το είτε όχι. Είναι εκείνες οι περιπτώσεις όπου εμφανίζεται ένα μικρό λουκέτο στον browser, συνήθως κάτω στην μπάρα κατάστασης (status bar) ή δίπλα στην μπάρα της διεύθυνσης (address bar), ενώ ταυτόχρονα η διεύθυνση της ιστοσελίδας στην οποία βρισκόμαστε ξεκινά με https:// αντί για http://, με το s να αναφέρεται φυσικά στην χρήση ασφαλείας. Οι νεότεροι browsers, για να τονίσουν ακόμα περισσότερο την χρήση ασφαλούς σύνδεσης, χρωματίζουν και τμήματα της διεύθυνσης, ενώ, αν το site με το οποίο συνδεόμαστε κάνει χρήση πιστοποιητικού εκτεταμένης πιστοποίησης (EV Certificate), τότε οι χρωματισμοί είναι εντονότεροι και επιπλέον δίπλα στην διεύθυνση προβάλλεται το όνομα της εταιρείας (ή ιδιώτη, ή οργανισμού) στην οποία ανήκει το site.

Παρακάτω, θα δούμε τι είναι τα ψηφιακά πιστοποιητικά και θα αναλύσουμε τον τρόπο που χρησιμοποιούνται για την δημιουργία μιας ασφαλούς σύνδεσης, με έναν εξυπηρετητή ιστοσελίδων (web server), κάνοντας χρήση του πρωτοκόλλου TLS το οποίο είναι ο αντικαταστάτης του γνωστού SSL.

Πιστοποιητικά ασφαλείας

Τα ψηφιακά πιστοποιητικά ασφαλείας είναι αρχεία, συνήθως κειμένου, που περιέχουν ψηφιακές υπογραφές. Λαμβάνουν μέρος σε μία διαδικασία κρυπτογράφησης δημόσιου-ιδιωτικού κλειδιού PKI, ενώ χρησιμοποιούνται διάφοροι αλγόριθμοι, κρυπτογραφικής ισχύος, για την δημιουργία τους. Στόχος τους είναι η πιστοποίηση ενός website στους επισκέπτες του, για την ασφαλή ανταλλαγή ευαίσθητων/απόρρητων/προσωπικών πληροφοριών.

Παρέχουν στοιχεία για το site το οποίο πιστοποιούν, όπως:

  • η διεύθυνση του site (ή το domain σε άλλες περιπτωσεις),
  • το όνομα της εταιρείας (ή ιδιώτη, ή οργανισμού) στην οποία ανήκει,
  • το όνομα της αρχής έκδοσης (CA) του πιστοποιητικού,
  • η περίοδος ισχύος του πιστοποιητικού,
  • ο σειριακός αριθμός του πιστοποιητικού (serial number),
  • το αποτύπωμά του (fingerprint),
  • ο αλγόριθμος και το μήκος του κλειδιού κρυπτογράφησης.

Για να γίνει έκδοση ενός πιστοποιητικού για χρήση σε ένα website, θα πρέπει να αποδείξει ο ενδιαφερόμενος, πως έχει τον έλεγχο του domain, για το οποίο ζητά το πιστοποιητικό. Αυτό γίνεται επιβεβαιώνοντας ότι η διεύθυνση e-mail του ιδιοκτήτη του domain του ανήκει. Δηλαδή, το μόνο που επιβεβαιώνεται όταν είμαστε συνδεδεμένοι σε μία ασφαλή ιστοσελίδα, είναι πως ο διαχειριστής του domain αγόρασε το ψηφιακό πιστοποιητικό του domain και ότι η σύνδεσή μας (αν είναι ήδη ασφαλής) δεν μπορεί να υποκλαπεί από κάποιον ενδιάμεσο, τίποτα παραπάνω. Δεν υπάρχουν εγγυήσεις για το αν αυτός που διαχειρίζεται τον ιστοχώρο είναι ο ιδιοκτήτης, για παράδειγμα, του καταστήματος που παρουσιάζεται στις σελίδες του, δεν επιβεβαιώνεται το όνομα της εταιρείας (ή ιδιώτη, ή οργανισμού) και δεν επιβεβαιώνεται η ύπαρξη νόμιμης εταιρείας πίσω από το site.

Για να καλυφθεί το παραπάνω κενό, έχουν εμφανιστεί στην αγορά των πιστοποιητικών, τα πιστοποιητικά εκτεταμένης πιστοποίησης/επικύρωσης (EV Certificates). Για την έκδοση αυτών, οι αρχές έκδοσης, αναλαμβάνουν να ερευνήσουν και να επιβεβαιώσουν περισσότερα στοιχεία για την εταιρεία/οργανισμό/ιδιώτη που ενδιαφέρεται να αποκτήσει ένα τέτοιο. Εκτός από την επιβεβαίωση της ιδιοκτησίας του domain name, ελέγχεται η λειτουργία και φυσική παρουσία της εταιρείας του ιδιοκτήτη του website, η νόμιμη υπόσταση της εταιρείας αυτής, ενώ μπορεί να απαιτηθεί και η επικοινωνία του δικηγόρου ή λογιστή της εταιρείας, με την αρχή έκδοσης. Να σημειωθεί, πως τα πιστοποιητικά αυτά κοστίζουν πολύ παραπάνω από τα απλά, λόγω των επιπλέον διαδικασιών και ελέγχων που απαιτούνται για την αυξημένη διασφάλιση που προσφέρουν στους επισκέπτες/πελάτες ενός νόμιμου site.


Root Certificates and Certificate Authorities

Τα ριζικά πιστοποιητικά (Root Certificates) είναι τα δημόσια κλειδιά των ριζικών αρχών έκδοσης πιστοποιητικών ασφαλείας (Root Certificate Authorities), που βρίσκονται εγκατεστημένα στους web browsers (Firefox, Opera, Safari, Chrome, Internet Explorer, Konqueror ...), στις mobile εκδόσεις τους, σε προγράμματα αλληλογραφίας (e-mail), αλλά και σε κάθε άλλο πρόγραμμα που χρειάζεται και χρησιμοποιεί ψηφιακά πιστοποιητικά για την πραγματοποίηση ασφαλών συνδέσεων (κοιτάξτε τα δεκάδες προεγκατεστημένα πιστοποιητικά στον browser σας). Αυτά χρησιμοποιούνται για την αναγνώριση του πιστοποιητικού που έχει εκδοθεί και υπογραφεί από κάποια ριζική αρχή έκδοσης. Βεβαίως, η αρχή έκδοσης μπορεί να μην είναι ριζική, αλλά ενδιάμεση/συνεργαζόμενη (Intermediary CA) με μία ριζική. Η διαφορά είναι πως στην περίπτωση αυτή, μεταξύ του ριζικού και του πιστοποιητικού του site, παρεμβάλλονται ένα ή παραπάνω πιστοποιητικά της ενδιάμεσης αρχής έκδοσης. Δηλαδή, η ριζική αρχή έκδοσης έχει υπογράψει τα πιστοποιητικά της ενδιάμεσης αρχής και αυτή με την σειρά της το πιστοποιητικό του ιδιοκτήτη του site.

Certificate Revocation Lists

Λίστες ανάκλησης πιστοποιητικών (CRL) χρησιμοποιούνται στις περιπτώσεις που κάποια πιστοποιητικά πρέπει να οριστούν μη αξιόπιστα και να ακυρωθούν, πριν την ημερομηνία λήξης τους. Αυτό μπορεί να συμβεί για λόγους όπως η απώλεια ελέγχου του ιδιωτικού πιστοποιητικού, η απώλεια ελέγχου της αρχής έκδοσης (ή των πιστοποιητικών της), η αντικατάσταση από νεότερο, κ.α. Οπότε κατά τη διαδικασία ελέγχου ενός πιστοποιητικού και ανάλογα το σύστημα που το χρησιμοποιεί, γίνονται παράλληλα έλεγχοι στις λίστες ανάκλησης, για τυχόν αναφορά του πιστοποιητικού αυτού, και με αυτό τον τρόπο επιβεβαιώνεται η εγκυρότητά του, για τη δεδομένη χρονική στιγμή. Συνήθως, οι λίστες ανάκλησης εκδίδονται από τις αρχές έκδοσης που ευθύνονται (έχουν εκδώσει) για τα συγκεκριμένα πιστοποιητικά.

Αυτόματη επιβεβαίωση πιστοποιητικού

Τα ψηφιακά πιστοποιητικά επιβεβαιώνονται από τον browser (ή κάποιο άλλο πρόγραμμα), ακολουθώντας την διαδρομή των υπογραφών (chain of trust), ξεκινώντας από το ριζικό πιστοποιητικό, μέχρι το πιστοποιητικό του site. Αν υπάρχει κάποιο πρόβλημα με το πιστοποιητικό (αν είναι ληγμένο, αν έχει εκδοθεί για διαφορετική διεύθυνση απ' αυτήν που είμαστε, αν δεν είναι υπογεγραμμένο από κάποια γνωστή στον browser αρχή έκδοσης, αν δεν είναι έγκυρο), θα ειδοποιηθεί ο χρήστης. Πόσοι χρήστες δίνουν όμως σημασία σε τέτοιες ειδοποιήσεις; Συνήθως, το μόνο που νοιάζει ένα χρήστη, είναι να διώξει από την οθόνη του κάθε μήνυμα που τον εμποδίζει, άσχετα με το τι ανακοινώνει το μήνυμα αυτό ή τι συνέπειες έχει η πράξη του!

Οι περισσότερες εφαρμογές, δέχονται ότι τα ριζικά πιστοποιητικά τους, είναι απολύτως έμπιστα, ενώ η διαδικασία επιβεβαίωσης πραγματοποιείται χωρίς καμία συμμετοχή του χρήστη, στο παρασκήνιο. Όμως, αυτό συνεπάγεται πως σε τελική φάση, ο χρήστης εμπιστεύεται πλήρως τον δημιουργό του προγράμματος, τις αρχές έκδοσης πιστοποιητικών που εμπιστεύεται το πρόγραμμα (Root CAs), τις αρχές έκδοσης που συνεργάζονται με τις ριζικές (Intermediary CA), και όλους όσους διαθέτουν ένα πιστοποιητικό που έχουν εκδώσει οι ριζικές αρχές έκδοσης ή οι ενδιάμεσες αρχές έκδοσης. Στο τέλος, ο αριθμός αυτών που ο χρήστης εμπιστεύεται είναι πάρα πολύ μεγάλος, και ενώ υπάρχουν αυστηροί κανόνες/διαδικασίες που πρέπει να τηρούνται από τις αρχές έκδοσης, σε κάποιες περιπτώσεις δημιουργείται χώρος για να δράσουν απατεώνες.

Παραδείγματα εξαπάτησης

Η πιο απλή και επιτυχής επίθεση σε μία ασφαλή σύνδεση, είναι αυτή του ενδιάμεσου (Man-in-the-middle attack). Σε αυτού του τύπου την επίθεση, αντί ο χρήστης να πραγματοποιήσει την ασφαλή σύνδεση απ' ευθείας με τον web server, κάποιος ενδιάμεσος, παρακάμπτει την σύνδεση (εν αγνοία, φυσικά του χρήστη) και δημιουργεί μία ασφαλή σύνδεση με τον χρήστη και μία άλλη ασφαλή σύνδεση με τον web server, στέλνοντας στον χρήστη ένα πιστοποιητικό που έχει υπογραφεί κανονικά ή κατορθώνοντας να εγκαταστήσει στον browser του ένα ιδιο-υπογεγραμμένο (self-signed) πιστοποιητικό, ώστε να μην υποψιαστεί ο χρήστης. Δηλαδή, τα λουκέτα θα φανούν κανονικά σαν να μην συμβαίνει κάτι ύποπτο, αυτός ήταν άλλωστε ο σκοπός. Αποτέλεσμα, τόσο ο χρήστης όσο και ο web server νομίζουν ότι μιλούν απευθείας ο ένας στον άλλο και η επίθεση θεωρείται επιτυχημένη. Σε εταιρικά περιβάλλοντα, όταν υπάρχει proxy server, και είναι ρυθμισμένος ώστε να κάνει proxying και τις https συνδέσεις, ενώ ένα self-signed (ή και κανονικό) εταιρικό πιστοποιητικό έχει εγκατασταθεί σε κάθε υπολογιστή, έχουμε το ίδιο αποτέλεσμα, με τον proxy να είναι ο man-in-the-middle. Προφανώς, αν εξετάσει ο χρήστης το πιστοποιητικό, δεν θα δει το domain/site με το οποίο συνδέεται αλλά κάποιο άλλο και θα πρέπει να αναγνωρίσει πως πρόκειται για απόπειρα εξαπάτησής του (phishing). Να τονιστεί πως η επίθεση αυτή, στοχεύει την άγνοια/αδυναμία/αμέλεια του χρήστη να ελέγξει το ψηφιακό πιστοποιητικό και δεν παρακάμπτει το σύστημα κρυπτογράφησης ή κάποιον αλγόριθμο.

Μία ασφαλής σύνδεση, με 128bit τουλάχιστον κωδικοποίηση, σωστά ψηφιακά πιστοποιητικά, υπογεγραμμένα από μια αξιόπιστη αρχή πιστοποίησης και σύγχρονο αλγόριθμο κρυπτογράφησης, θεωρείται πως δεν μπορεί να υποκλαπεί, σήμερα!

Στο τέλος του 2008, ανακοινώθηκε η επιτυχής δημιουργία (forgery) πλαστού ψηφιακού πιστοποιητικού (Rogue Certificate) το οποίο μπορεί να λειτουργήσει σε όλους τους browsers, χωρίς φυσικά κάποια ένδειξη ή ειδοποίηση ότι είναι πλαστό! Αυτό κατέστη δυνατό με την κατασκευή μιας πλαστής ενδιάμεσης αρχής πιστοποίησης (Rogue Intermediary CA), η οποία φαίνεται να είναι υπογεγραμμένη από μια ριζική αρχή πιστοποίησης (Root CA). Οι αδυναμίες του αλγορίθμου MD5, έκαναν ικανή αυτήν την επίθεση. Οι αρχές πιστοποίησης που χρησιμοποιούν ακόμα αυτόν τον αδύναμο αλγόριθμο στα πιστοποιητικά τους, ανακοίνωσαν πως θα σταματήσουν τη χρήση του και θα προχωρήσουν σε πιο ισχυρούς αλγορίθμους όπως ο SHA1. Οπότε όλα τα πιστοποιητικά που έχουν δημιουργηθεί με MD5 και κρυπτογράφηση RSA, αντί για SHA1 και κρυπτογράφηση RSA, είναι ευάλωτα!

Πώς θα κάνουμε επιβεβαίωση του πιστοποιητικού

Κάθε φορά που συνδεόμαστε με ένα site με ασφαλή σύνδεση, πρέπει να εξετάζουμε το πιστοποιητικό ασφαλείας του και να βεβαιωνόμαστε πως υπάρχει σε αυτό, το ακριβές domain ή η διεύθυνση του ιστοτόπου (FQDN), και στη συνέχεια να κάνουμε έλεγχο της διαδρομής των υπογραφών (chain of trust) του πιστοποιητικού, για το ποιές αρχές πιστοποίησης εγγυώνται την αξιοπιστία του. Αν πρόκειται για site που διαθέτει πιστοποιητικό εκτεταμένης πιστοποίησης/επικύρωσης (EV Certificate), τότε η αρχή πιστοποίησης εγγυάται επιπλέον τη νόμιμη λειτουργία και τα στοιχεία της εταιρείας (ή οργανισμού, ή ιδιώτη) στην οποία ανήκει το site.

Εφαρμογές των ψηφιακών πιστοποιητικών

Σε κάθε περίπτωση που ο ιδιοκτήτης ενός site θέλει να προστατέψει τους επισκέπτες/πελάτες του από αδιάκριτα βλέμματα, να περιορίσει την περίπτωση εξαπάτησης, και να εξασφαλίσει αριθμούς πιστωτικών καρτών, θα πρέπει να προχωρήσει στη διαδικασία χρήσης ασφαλών συνδέσεων. Τις συναντάμε σε κατασκευή eshop και γενικά σε e-commerce sites, σε εφαρμογές e-banking, σε πολλά web-mail, σε διαδικασίες εισόδου σε λογαριασμούς (account login), και διαδικασίες καταχώρισης/εγγραφής στοιχείων (registration). Η κρυπτογράφηση που διαθέτουν προσφέρει επαρκή προστασία για τις καθημερινές συναλλαγές μας, και με λίγη προσοχή κατά την εξέταση των πιστοποιητικών, μπορούμε να διασφαλίσουμε ότι τα προσωπικά δεδομένα και τα χρήματά μας θα χρησιμοποιηθούν μονάχα από το site με το οποίο είμαστε συνδεδεμένοι.

Pin It