Τα SSL πιστοποιητικά επιτρέπουν την κρυπτογράφηση και αυθεντικοποίηση των επικοινωνιών μιας επιχείρησης με τους πελάτες και συνεργάτες της, αποτελώντας πυλώνα της απαιτούμενης εμπιστοσύνης μεταξύ τους, καθώς και ένα ισχυρό μέσο προστασίας των web εφαρμογών της.
Οι επιχειρήσεις και Οργανισμοί, αντιμετωπίζουν ένα διαρκώς αυξανόμενο μέτωπο επιθέσεων εναντίον των Web εφαρμογών τους, από την εισαγωγή κακόβουλου λογισμικού και τις εξελιγμένες επίμονες απειλές (APT = Advanced Persistent Threats), έως τους απρόσεκτους υπαλλήλους και τις διαρροές πληροφοριών. Τα πράγματα επιδεινώνονται με τις αλλαγές που υφίστανται οι υπηρεσίες και ο τρόπος που υλοποιούνται, με την αυξανόμενη χρήση των φορητών συσκευών και την υιοθέτηση του cloud και παράλληλα με τη διαρκή εξέλιξη των μεθόδων επίθεσης.
Αν και δεν υπάρχει μία μέθοδος προστασίας εναντίον όλου του φάσματος επιθέσεων, ορισμένες είναι καίριες και αναγκαίες. Μία από αυτές είναι η SSL κωδικοποίηση και αυθεντικοποίηση μέσω των ψηφιακών πιστοποιητικών. Η SSL κωδικοποίηση μπορεί να προστατέψει τη server – to – server επικοινωνία, τις συσκευές των πελατών, τους cloud πόρους κ.ά., ώστε να περιοριστεί ο κίνδυνος απώλειας δεδομένων.
Τι είναι το SSL;
Το SSL (Secure Sockets Layer) πρωτόκολλο επικοινωνίας αναπτύχθηκε από τη Netscape το 1995 και έγινε γρήγορα η προτιμώμενη μέθοδος διασφάλισης της διαδικτυακής επικοινωνίας, λαμβάνοντας θέση σε κάθε μεγάλο Web server και browser. Για να υλοποιηθεί μία SSL επικοινωνία, ο Web server πρέπει να διαθέτει ένα ψηφιακό πιστοποιητικό το οποίο φέρει το δημόσιο και ιδιωτικό κλειδί που απαιτούνται για την κωδικοποίηση. Το εκάστοτε ψηφιακό πιστοποιητικό είναι μοναδικό για κάθε κάτοχό του και είναι αυτό που επιβεβαιώνει την εγκυρότητα του φερόμενου.
Τυπικά, τα ψηφιακά πιστοποιητικά διανέμονται από μία τρίτη ανεξάρτητη αρχή, η οποία εξασφαλίζει την εγκυρότητά τους και την καθολική αποδοχή τους από τους ενδιαφερομένους. Οι Οργανισμοί αυτοί ονομάζονται Αρχές Πιστοποίησης (CA = Certification Authority).
Χαρακτηριστικά του SSL
Η SSL πιστοποίηση προσφέρει τέσσερα διακριτά χαρακτηριστικά που είναι κρίσιμα για την προστασία της ιδιωτικότητας και της ασφάλειας, αλλά και των απαιτήσεων των χρηστών, κατά τη διάρκεια μιας διαδικτυακής επικοινωνίας ή συναλλαγής:
1. Κωδικοποίηση: το πρωτόκολλο χρησιμοποιεί μαθηματικούς αλγόριθμους για να μετατρέψει τα δεδομένα σε τέτοια μορφή, ώστε να μπορούν να αναγνωσθούν μόνο από τους εξουσιοδοτημένους χρήστες. Τα ιδιωτικά και δημόσια κλειδιά που διατίθενται ως μέρος του ψηφιακού πιστοποιητικού του server, διαδραματίζουν σημαντικό ρόλο για την ασφάλεια των δεδομένων που λαμβάνονται ή αποστέλλονται από το browser.
2. Ακεραιότητα: η κωδικοποίηση των δεδομένων επίσης διασφαλίζει και την ακεραιότητά τους. Εφόσον μόνο ο εξουσιοδοτημένος χρήστης μπορεί να διαβάσει την πληροφορία, αυτή δεν γίνεται να αλλαχθεί κατά τη μετάδοση, μιας και η μεταβολή κωδικοποιημένων δεδομένων τα καθιστά άχρηστα κατά την αντίστροφη διαδικασία της αποκωδικοποίησης. Επιπρόσθετα, ο τελικός χρήστης που θα λάβει διαβρωμένα δεδομένα, θα γνωρίζει ότι έγινε προσπάθεια υποκλοπής κατά τη συγκεκριμένη επικοινωνία.
3. Αυθεντικοποίηση: μία από τις σημαντικότερες ευθύνες των CA κατά την παροχή ψηφιακών πιστοποιητικών, είναι να επικυρώσουν την αληθινή ταυτότητα του Οργανισμού ή του ατόμου που αιτείται για πιστοποιητικό. Τα SSL πιστοποιητικά βρίσκονται στο διαδίκτυο σε καθορισμένη περιοχή και εκεί υποδηλώνεται σε ποιον ανήκουν, ώστε ο τελικός χρήστης να γνωρίζει σε βασικό επίπεδο με ποιον συναλλάσσεται.
4. Μη- άρνησης ευθύνης: τα τρία προαναφερόμενα χαρακτηριστικά συνδυάζονται ώστε να εφαρμόζεται η λεγόμενη πολιτική μη-άρνησης ευθύνης, με την οποία κανένα μέλος μιας ασφαλούς συναλλαγής δεν μπορεί να ισχυριστεί εκ των υστέρων ότι δεν μετείχε σε αυτή. Έτσι δεσμεύονται τα μέλη μιας επικοινωνίας να μην αποποιηθούν τις πληροφορίες που επικοινώνησαν διαδικτυακά.
SSL εφαρμογές
Η SSL επικοινωνία χρησιμοποιείται ποικιλοτρόπως και εξυπηρετεί διαφορετικούς σκοπούς κάθε φορά:
. Επικοινωνία browser – to – server: χρησιμοποιείται όταν μεταδίδονται ευαίσθητες πληροφορίες μεταξύ browser και server, όπως συμβαίνει στις αγοραπωλησίες, στη μετάδοση ιατρικών δεδομένων κ.ά. Η SSL εξυπηρετεί το χρήστη, ώστε να επιβεβαιώσει σε ποιον στέλνει τις πληροφορίες αυτές και ότι μόνο οι εξουσιοδοτημένοι παραλήπτες θα έχουν πρόσβαση.
. Επικοινωνία server – to – server: αφορά συνήθως στην επικοινωνία μεταξύ επιχειρήσεων ή Οργανισμών, κατά την οποία και οι δύο servers φέρουν ψηφιακά πιστοποιητικά, αυθεντικοποιούνται αμοιβαία και διασφαλίζουν τις ανταλλασσόμενες πληροφορίες.
. Συμμόρφωση με τους κανονισμούς ασφαλείας: πολλές νομικές και βιομηχανικές απαιτήσεις και πρότυπα ασφαλείας όπως είναι το PCI DSS, απαιτούν υψηλά επίπεδα αυθεντικοποίησης και ιδιωτικότητας, κάτι που το SSL παρέχει.
Πώς λειτουργεί το SSL πιστοποιητικό και από τι αποτελείται;
Ουσιαστικά, το SSL πιστοποιητικό είναι ένα αρχείο το οποίο χρησιμοποιείται ως σημαντικό μέρος σε μία σειρά από πολύπλοκες μετατροπές και πρωτόκολλα, ώστε να παρέχονται εντέλει υπηρεσίες αυθεντικοποίησης και κωδικοποίησης. Η χρηστικότητα ενός αυθύπαρκτου SSL πιστοποιητικού είναι ελάχιστη, αν δεν συνδυαστεί με τις προαναφερόμενες μεθόδους, που θα αντλήσουν την αποθηκευμένη σε αυτό πληροφορία και θα παράγουν το επιθυμητό αποτέλεσμα.
Χρησιμοποιείται η δομή Χ.509, η οποία περιλαμβάνει πληροφορίες για τον κάτοχο, το domain που ανήκει και τον αλγόριθμο κωδικοποίησης. Διακρίνουμε τα εξής:
1. Version: ο αριθμός έκδοσης υποδηλώνει ποια έκδοση του Χ.509 χρησιμοποιήθηκε. Οι νεότερες εκδόσεις υποστηρίζουν επιπρόσθετες επεκτάσεις και μοναδικά αναγνωριστικά.
2. Serial Number: ο σειριακός αριθμός είναι ένας μοναδικός αριθμός που παρέχεται από τη CA, η οποία είναι υπεύθυνη ώστε για όλα τα πιστοποιητικά Χ.509 να μην υπάρχει άλλος τέτοιος συνδυασμός εκδότη και αριθμού.
3. Algorithm ID: το αναγνωριστικό του αλγορίθμου ή αλλιώς η υπογραφή του, χρησιμοποιείται για να υποδηλώσει με ποια μαθηματική σχέση παράχθηκε το πιστοποιητικό από τη CA.
4. Issuer: ως εκδότης ορίζεται η CA που εξέδωσε το πιστοποιητικό και εκτός από την επωνυμία της μπορεί να παρέχονται επιπρόσθετες πληροφορίες όπως είναι η τοποθεσία της, το παράρτημα που το εξέδωσε και η υπεύθυνη αρχή έκδοσης.
5. Validity: ο τομέας της εγκυρότητας περιλαμβάνει δύο ημερομηνίες, μία που ορίζει την περίοδο έναρξης, από την οποία το πιστοποιητικό είναι έγκυρο και μία που υποδηλώνει την ημερομηνία λήξης του.
6. Subject: ως «υποκείμενο» ορίζεται το όνομα της οντότητας στην οποία καταλήγει το πιστοποιητικό και είναι μοναδικό όσον αφορά στη CA. Παρόμοια, περιέχει πληροφορίες για τη διεύθυνση της οντότητας και τον Οργανισμό στον οποίο ανήκει.
7. Public Key info: ο τομέας του δημόσιου κλειδιού περιέχει μία συμβολοσειρά, που αποτελεί το δημόσιο κλειδί και το όνομα του αλγορίθμου με τον οποίο θα χρησιμοποιηθεί. Όταν κάποιος επιθυμεί να αποστείλει κρυπτογραφημένα δεδομένα προς μία κατεύθυνση, οφείλει να γνωρίζει το δημόσιο κλειδί του παραλήπτη και να τελέσει με αυτό την κρυπτογράφηση. Το δημόσιο κλειδί αντλείται από το ψηφιακό πιστοποιητικό του παραλήπτη με τη βοήθεια λογισμικού, καθώς και ο αλγόριθμος που θα χρησιμοποιηθεί. Το δημόσιο κλειδί χρησιμοποιείται μονόδρομα, δηλαδή βοηθά στην κρυπτογράφηση των δεδομένων αλλά όχι στην αποκρυπτογράφηση, μιας και γι’ αυτό απαιτείται το ιδιωτικό κλειδί.
8. Unique Identifier: το ιδιωτικό κλειδί δημιουργείται ταυτόχρονα με το δημόσιο. Ενώ το δημόσιο κλειδί διαμοιράζεται με όλους όσοι επιθυμούν να αποστείλουν κρυπτογραφημένα δεδομένα προς τον κάτοχο του πιστοποιητικού, το ιδιωτικό εξασφαλίζει ότι μόνο ο νόμιμος κάτοχος του πιστοποιητικού μπορεί να τα διαβάσει και όχι όλοι όσοι γνωρίζουν το δημόσιο κλειδί του.
Ουσιαστικά και με βάση τα προαναφερόμενα, το SSL πιστοποιητικό περιέχει τρεις διαφορετικούς τύπους δεδομένων:
i. Πληροφορίες για την οντότητα στην οποία ανήκει το πιστοποιητικό και το όνομα με το οποίο αναγνωρίζεται.
ii. Πληροφορίες για τη CA που το εξέδωσε.
iii. Πληροφορίες κρυπτογράφησης, όπως είναι το ιδιωτικό και δημόσιο κλειδί και ο αλγόριθμος κωδικοποίησης.
Πώς όμως χρησιμοποιούνται αυτές οι πληροφορίες;
SSL διασφάλιση επικοινωνίας
Μία επικοινωνία θεωρείται ασφαλής όταν και τα δύο μέλη που μετέχουν σε αυτήν είναι αξιόπιστα και κανένας άλλος εκτός των ενδιαφερομένων δεν μπορεί να παρεισφρήσει σε αυτήν. Τα SSL πιστοποιητικά εξασφαλίζουν αυτές τις απαιτήσεις, μιας και εγγυώνται για τους κατόχους τους και επιτρέπουν την κρυπτογράφηση της ανταλλασσόμενης πληροφορίας.
Κατά την πλοήγηση σε ένα server, χρησιμοποιώντας ένα πρωτόκολλο ασφαλείας όπως είναι το HTTPS, ο υπολογιστής του χρήστη ή αλλιώς ο client θα πραγματοποιήσει μία διαδικασία χειραψίας, ώστε να ορίσει ένα ασφαλές κανάλι επικοινωνίας. Τα βήματα που θα τελεστούν έχουν ως εξής: ο client ζητά ασφαλή επικοινωνία με το server και παρουσιάζει τη λίστα μηχανισμών ασφαλείας ή κρυπτογράφησης που υποστηρίζει. Από αυτή τη λίστα ο server επιλέγει την πιο ασφαλή μέθοδο και στέλνει στον client την επιλογή του. Ακολούθως ο server στέλνει το SSL πιστοποιητικό του στον client, ο οποίος με τη σειρά του μπορεί να αιτηθεί στη CA του πιστοποιητικού, για να επιβεβαιώσει ότι το πιστοποιητικό είναι ακόμα έγκυρο (προαιρετική διαδικασία). Η επιλογή αυτή διατίθεται μιας και μπορεί το πιστοποιητικό να έχει ανακληθεί, πριν την ημερομηνία λήξης του. Τα ανακληθέντα πιστοποιητικά αναρτώνται στο διαδίκτυο και ελέγχονται με τη χρήση του πρωτοκόλλου OCSP (Online Certificate Status Protocol) ή με τη χρήση λιστών ανάκλησης (CLR= Certificate Revocation List).
Σ’ αυτό το σημείο ο client έχει αυθεντικοποιήσει το server και έχει συμφωνηθεί η μέθοδος κρυπτογράφησης. Ο server προαιρετικά μπορεί να ζητήσει το ψηφιακό πιστοποιητικό του client για να επιτευχθεί αμοιβαία αυθεντικοποίηση. Κάτι τέτοιο είναι πιθανό σε περιπτώσεις όπου ο client πρέπει να αναγνωριστεί – όπως κατά τη χρήση VPN – και λιγότερο πιθανό όταν ο client επικοινωνεί με δημόσιους ιστότοπους γενικού εμπορίου (σχήμα 2).
Αφού δημιουργηθεί ένα ασφαλές κανάλι επικοινωνίας, οι πληροφορίες μπορούν να αποσταλούν με αποτελεσματικές και γρήγορες μεθόδους. Πιο αποτελεσματική θεωρείται η κρυπτογράφηση συμμετρικού κλειδιού, στην οποία όμως ο client και ο server πρέπει να διαμοιραστούν ένα κοινό κλειδί. Η ανταλλαγή ενός τέτοιου κλειδιού με ασφάλεια, προϋποθέτει τα ακόλουθα βήματα:
- Ο client παράγει έναν τυχαίο αριθμό και τον κρυπτογραφεί με τη βοήθεια του δημόσιου κλειδιού του server.
- Ο server αποκρυπτογραφεί τον αριθμό και το χρησιμοποιεί ως ιδιωτικό κλειδί.
- Η επικοινωνία client-server γίνεται με τη βοήθεια του κοινού τους κλειδιού και έτσι όλες οι κρυπτογραφημένες πληροφορίες απαιτούν ένα κλειδί για να μεταδοθούν και να αποκρυπτογραφηθούν. Έτσι, η ανταλλαγή της πληροφορίας τελείται με ασφάλεια αλλά και με ταχύτητα.
Αυθεντικοποίηση μέσω SSL πιστοποιητικών
Κατά την επικοινωνία με μία άγνωστη οντότητα, η εμπιστοσύνη είναι το πρώτο θέμα που εγείρεται μιας και εκ προοιμίου κανείς δεν εμπιστεύεται κάτι που δεν γνωρίζει. Οποιοσδήποτε μπορεί να εγκαταστήσει ένα server και να δημιουργήσει μια ιστοσελίδα και κατόπιν να ισχυριστεί ότι είναι μία τράπεζα. Πώς λοιπόν ο χρήστης γνωρίζει πραγματικά με ποιον συναλλάσσεται; Η πληροφορία προέρχεται από το γεγονός ότι η κάλπικη τράπεζα δεν θα διαθέτει ένα ψηφιακό πιστοποιητικό από μία έμπιστη CA που θα εγγυάται για την ταυτότητά της.
Στους διαδεδομένους browsers η μπάρα πλοήγησης αλλάζει τη μορφή της όταν ο χρήστης βρίσκεται σε ιστότοπο που διαθέτει SSL πιστοποιητικό. Το εικονίδιο της κλειδαριάς χρησιμοποιείται για να υποδηλώσει κρυπτογραφημένη επικοινωνία, ενώ η αλλαγή του χρώματος της μπάρας σε πράσινο δείχνει τη χρήση ειδικού τύπου SSL πιστοποιητικού με επιπρόσθετη επικύρωση (EV= Extended Validation). Αυτές οι αλλαγές αποτελούν ένα οπτικό ερέθισμα για το χρήστη, ώστε γρήγορα να διαπιστώνει ότι βρίσκεται σε ασφαλή ιστότοπο που έχει επιβεβαιωθεί από μία έμπιστη CA.
Η διαπίστωση είναι εφικτή μιας και οι browsers είναι προ-διαμορφωμένοι ώστε να περιέχουν μια λίστα από έμπιστες CA. Κατά τη σύνδεση με ένα server, ο browser λαμβάνει το SSL πιστοποιητικό του και πραγματοποιεί τους ακόλουθους ελέγχους:
- Επιβεβαιώνει ότι το όνομα του ιστότοπου ταυτίζεται με το όνομα που υπάρχει στο SSL πιστοποιητικό.
- Επιβεβαιώνει ότι το πιστοποιητικό δεν έχει λήξει.
- Ελέγχει ότι ο εκδότης ανήκει στη λίστα έμπιστων CA που διαθέτει.
- Αν οποιοσδήποτε έλεγχος αποτύχει, προβάλλεται ένα προειδοποιητικό μήνυμα στο χρήστη.
Εν κατακλείδι, τα SSL πιστοποιητικά επιτρέπουν την κρυπτογράφηση και την αυθεντικοποίηση. Οι δύο αυτές έννοιες είναι βασικές γα τη διασφάλιση των web εφαρμογών και για την προστασία των καταναλωτών και των δεδομένων τους. Επίσης είναι σημαντικές για τη σύναψη επικοινωνίας και την ανάπτυξη εμπιστοσύνης μεταξύ εταιρικών συνεργατών που δεν είχαν προγενέστερη σχέση, αλλά και μεταξύ καταναλωτών και επιχειρήσεων, μιας και οι πρώτοι δεν θα χρησιμοποιούσαν μία υπηρεσία που δεν θα εμπιστευόντουσαν, όσο δελεαστική και να παρουσιαζόταν.
Της Παναγιώτας Τσώνη