Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 6: SSL Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Αυτή η ενότητα πραγματεύεται ζητήματα σχετικά με το SSL. 4
Περιεχόμενα ενότητας (1/2) Θέματα Ασφάλειας Ιστού. Το πρωτόκολλο SSL. Δύο σημαντικές έννοιες για το SSL. Λειτουργία SSL. Υπηρεσίες Διαπραγμάτευσης SSL. Χειραψία SSL. Επιβάρυνση από την χρήση SSL. Ενεργοποίηση SSL. 5
Περιεχόμενα ενότητας (2/2) Ασφαλής ηλεκτρονική συναλλαγή. Υπηρεσίες SET. Επισκόπηση του SET. Απαιτήσεις SET. Συμμετέχοντες στο SET. Βήματα συναλλαγής. Χρήση SET σε άλλες ηλεκτρονικές συναλλαγές. Βιβλιογραφία. 6
SSL
Θέματα Ασφάλειας Ιστού (1/2) Ο Παγκόσμιος Ιστός παρουσιάζει προκλήσεις που δεν υπάρχουν στον χώρο των υπολογιστών και της ασφάλειας των δικτύων: Ορατή τοποθέτηση πληροφοριών εταιρειών σε servers κίνδυνος υπονόμευσης server (χρηματικές απώλειες, συνέπειες στη φήμη). Web browsers: Εύκολη διαμόρφωση, διαχείριση αλλά πολύπλοκο λογισμικό με ελαττώματα στην ασφάλεια. Servers: Επίδοξος στόχος με σκοπό την πρόσβαση σε συστήματα συνδεδεμένα με αυτούς. Ανεκπαίδευτοι πελάτες που αγνοούν θέματα ασφάλειας. 8
Θέματα Ασφάλειας Ιστού (2/2) Τεχνικές ασφάλειας πληροφοριών Διαδικτύου: Εφαρμογές κρυπτογράφησης για αυθεντικοποίησης χρηστών. Κρυπτογραφημένη μεταφορά δεδομένων. Έλεγχος πρόσβασης. Ασφαλή δικτυακά πρωτόκολλα. 9
Το πρωτόκολλο SSL (1/2) Secure Socket Layer. Πρωτόκολλο ασφάλειας. Δημιουργήθηκε από τη Netscape για ασφάλεια δεδομένων με βάση το TCP/IP. Παρέχει υπηρεσίες. Κρυπτογράφησης δεδομένων. Αυθεντικοποίησης εξυπηρετητή και πελάτη. Ακεραιότητας (integrity) των μηνυμάτων που μεταδίδονται στο διαδίκτυο. 10
Το πρωτόκολλο SSL (2/2) Secure Socket Layer (Συνέχεια). Ανεξάρτητο από την εφαρμογή που χρησιμοποιείται από τον τελικό χρήστη. Γι αυτό παρέχει υπηρεσίες ασφάλειας σε πρωτόκολλα υψηλού επιπέδου, π.χ. telnet, ftp, http. Εκδόσεις: SSL 2.0 server authentication, SSL 3.0 client/server authentication. 11
Δύο σημαντικές έννοιες για το Σύνδεση (Connection). SSL (1/2) Μεταφορά που παρέχει κατάλληλο τύπο υπηρεσιών. Για το SSL είναι ομότιμη σχέση (P2P). Προσωρινή. Σχετίζεται με ένα Session. Δυνατότητα ύπαρξης πολλών, ταυτόχρονων συνδέσεων για ένα ζευγάρι συμμετεχόντων. 12
Δύο σημαντικές έννοιες για το Σύνοδος (Session). SSL (2/2) Συσχέτιση μεταξύ client-server. Δημιουργείται με το Πρωτόκολλο Χειραψίας. Ορίζει κρυπτογραφικές παραμέτρους ασφάλειας. Χρησιμοποιείται για την αποφυγή «δαπανηρών» διαπραγματεύσεων νέων παραμέτρων ασφάλειας για κάθε νέα σύνδεση. 13
Λειτουργία SSL Χρησιμοποιεί RSA κρυπτογράφηση δημόσιου κλειδιού. Χρήση δημόσιου και ιδιωτικού κλειδιού για κρυπτογράφηση και αποκρυπτογράφηση. Χρησιμοποιεί session key για κάθε σύνοδο client-server. 24 ώρες ζωής. Ανταλλάσσεται με κρυπτογραφία δημόσιου κλειδιού. Χρησιμοποιεί κρυπτογραφία δημόσιου κλειδιού για την αμοιβαία ταυτοποίηση των συμμετεχόντων. Χρησιμοποιεί συμμετρική κρυπτογραφία για την κρυπτογράφηση της συνόδου SSL. Σαφώς γρηγορότερη. 14
Λειτουργία SSL - Βήματα (1/2) Ο client επιχειρεί σύνδεση με SSL-προστατευμένη σελίδα. O SSL-server στέλνει αίτηση για έναρξη SSLσυνόδου. Ο client ενημερώνει τον server αν υποστηρίζει το SSL και πιο συγκεκριμένα για. Την ταυτότητα της συνόδου (session id). Τους αλγόριθμους κρυπτογράφησης που υποστηρίζει. Τις μεθόδους συμπίεσης που υποστηρίζει. 15
Λειτουργία SSL - Βήματα (2/2) Ο server κάνει τις αντίστοιχες επιλογές και αρχίζει η επικοινωνία. Ο client καθορίζει ένα session key κατάλληλο για τον αλγόριθμο κρυπτογράφησης που επιλέχθηκε. O client κρυπτογραφεί το session key με το δημόσιο κλειδί του server. O server ανακτά το session key με το ιδιωτικό του κλειδί. 16
Υπηρεσίες Διαπραγμάτευσης SSL Χειραψία (handshake). Αυθεντικοποίηση client, server. Καθορισμός αλγόριθμων κρυπτογράφησης. Καθορισμός συμμετρικών κλειδιών. Μεταφορά δεδομένων. Κρυπτογράφηση. Έλεγχος ακεραιότητας. 17
Χειραψία SSL Client Hello. Server Hello. Client Master Key. Client Finished. Server Verify. Request Certificate (Προαιρετικά). Client Certificate (Προαιρετικά). Server Finished. 18
Χειραψία SSL Client Hello Η σύνοδος ξεκινά με αίτηση του πελάτη. Π.χ. ο browser κάνει μια HTTPs αίτηση. Client Hello είναι μη κρυπτογραφημένο μήνυμα με: Έκδοση του SSL. Δυνατότητες κρυπτογράφησης του πελάτη (αλγόριθμοι, μήκη κλειδιών). Ταυτότητα συνόδου (Session ID). Είναι δυνατό να χρησιμοποιηθεί προηγούμενη σύνοδος που υπήρχε ανάμεσα σε client και server. Μια τυχαία δημιουργημένη ακολουθία χαρακτήρων (Client Challenge). 19
Χειραψία SSL Server Hello Εάν δημιουργηθεί νέα σύνοδος το Server Hello είναι μη κρυπτογραφημένο μήνυμα με: Δυνατότητες κρυπτογράφησης του server. Ταυτότητα σύνδεσης (Connection ID). Ψηφιακό πιστοποιητικό server. 20
Χειραψία SSL Client Master Key Μετά την εγκατάσταση της νέας συνόδου: Ο client εξετάζει την εγκυρότητα του πιστοποιητικού του server. Δημιουργεί το κλειδί συνόδου (Session key). Συμμετρικό κλειδί για την κρυπτογράφηση δεδομένων εφαρμογής. Κρυπτογραφεί το κλειδί συνόδου με το δημόσιο κλειδί του server. 21
Χειραψία SSL Client Finished Σηματοδοτεί την ετοιμότητα του client να στείλει/λάβει δεδομένα. Κρυπτογράφηση του Session ID με χρήση του session key και αποστολή του στον server. Σε κάθε σύνδεση δημιουργείται διαφορετικό session key. Χρησιμοποιείται κρυπτογραφία δημόσιου κλειδιού για ανταλλαγή του session key και αυθεντικοποίηση. Χρησιμοποιείται συμμετρική κρυπτογραφία (ταχύτητα) για την κρυπτογράφηση της συνόδου. 22
Χειραψία SSL Server Verify O server κρυπτογραφεί το client challenge με το session key και το στέλνει στον client. Εφόσον το session key είχε σταλεί προηγουμένως από τον client κρυπτογραφημένο με το δημόσιο κλειδί του server με αυτό το μήνυμα αποδεικνύεται η αυθεντικότητα του server. 23
Χειραψία SSL Request Certificate Αίτηση server για αυθεντικοποίηση του client: Ζητά να χρησιμοποιήσει ο client το ιδιωτικό του κλειδί για να υπογράψει ψηφιακά τα: Κλειδί συνόδου. Μια τυχαία ακολουθία χαρακτήρων (Certificate Challenge Data). Το πιστοποιητικό του server. Ζητά μια λίστα των αποδεκτών CA. 24
Χειραψία SSL Client Certificate O client αποστέλλει: Το ψηφιακό πιστοποιητικό του. Ψηφιακά υπογεγραμμένα τα Challenge Data. Αν το πιστοποιητικό του δεν έχει εκδοθεί από αποδεκτή CA, η σύνοδος τερματίζεται. 25
Χειραψία SSL Server Finished O server αποστέλλει κρυπτογραφημένο μήνυμα με το Session ID. Το μήνυμα σηματοδοτεί την ετοιμότητα του server να στείλει λάβει δεδομένα. Όλα τα δεδομένα επιπέδου εφαρμογής κρυπτογραφούνται με το session key. 26
Επιβάρυνση από την χρήση SSL Το SSL αυξάνει την ποσότητα δεδομένων που διακινούνται καθυστερώντας την μετάδοση πληροφοριών. Αιτίες καθυστέρησης: Αρχική σύνδεση (Χειραψία). Διαδικασία κρυπτογράφησης δεδομένων. Τα κρυπτογραφημένα δεδομένα είναι μεγαλύτερα σε μέγεθος. Μεγαλύτερος χρόνος μεταφοράς στο δίκτυο. Γι αυτό πρέπει να χρησιμοποιείται μόνο όταν πραγματικά απαιτείται μυστικότητα. Π.χ σε συγκεκριμένες ιστοσελίδες και όχι σε ολόκληρο το website. 27
Ενεργοποίηση SSL (1/3) Εικόνα 1. Ενεργοποίηση SSL. Πηγή: Διδάσκων (2015). 28
Ενεργοποίηση SSL (2/3) Εικόνα 2. Ενεργοποίηση SSL (Συνέχεια). Πηγή: Διδάσκων (2015). 29
Ενεργοποίηση SSL (3/3) Απαίτηση: Να διαθέτει ο server πιστοποιητικό (server certificate). Ταυτοποιεί τον server σε κάθε ενδιαφερόμενο client. Παρέχει τον μηχανισμό για να ξεκινήσει μια ασφαλής σύνοδος. Βήματα ενεργοποίησης. Δημιουργία ζεύγους κλειδιών του server. Αίτηση για πιστοποιητικό σε κάποια Αρχή Πιστοποίησης (CA). Εγκατάσταση του πιστοποιητικού. Ενεργοποίηση του SSL για τον server. 30
Ασφαλής ηλεκτρονική συναλλαγή Secure Electronic Transaction - SET. Ανοιχτή προδιαγραφή κρυπτογράφησης και ασφάλειας. Προστατεύει τις συναλλαγές στο Διαδίκτυο με πιστωτικές κάρτες. Συσχετιζόμενες εταιρείες. Mastercard, Visa, IBM, Microsoft, Netscape, RSA, Terisa and Verisign. Επιπλέον έχει γίνει αποδεκτό και από American Express, Diners, JCB και Europay. Δεν αποτελεί από μόνο του σύστημα πληρωμής. Σύνολο από πρωτόκολλα ασφαλείας και μορφές συναλλαγών. 31
Υπηρεσίες SET Παρέχει ασφαλές κανάλι επικοινωνίας μεταξύ όλων των μερών που συμμετέχουν στη συναλλαγή. Παρέχει εξασφάλιση εμπιστοσύνης με χρήση ψηφιακών πιστοποιητικών Χ.509v3. Εξασφαλίζει το απόρρητο, καθώς οι πληροφορίες είναι διαθέσιμες μόνο στα συναλλασσόμενα μέρη όταν και όπου είναι απαραίτητο. 32
Επισκόπηση του SET (1/2) Βασικά χαρακτηριστικά: Εμπιστευτικότητα πληροφοριών. Κρυπτογράφηση με DES. Ακεραιότητα δεδομένων. Π.χ. πληροφορίες παραγγελίας, προσωπικά δεδομένα, οδηγίες πληρωμής. Ψηφιακές υπογραφές, RSA, χρήση κωδικών κατακερματισμού με SHA-1. 33
Επισκόπηση του SET (2/2) Βασικά χαρακτηριστικά (Συνέχεια). Πιστοποίηση λογαριασμού κατόχου πιστωτικής κάρτας. Επαλήθευση ότι ο κάτοχος είναι νόμιμος χρήστης έγκυρου λογαριασμού κάρτας. Ψηφιακά πιστοποιητικά X.509v3. Πιστοποίηση εμπόρου. Επαλήθευση ότι ο έμπορος έχει σχέση με τον χρηματοοικονομικό οργανισμό και ότι του επιτρέπεται να δέχεται πληρωμές με κάρτες. Ψηφιακά πιστοποιητικά X.509v3. 34
Απαιτήσεις SET (1/2) Το SET ανταποκρίνεται στις ακόλουθες απαιτήσεις: Παρέχει εμπιστευτικότητα των πληροφοριών των συναλλαγών. Διασφαλίζει την ακεραιότητα όλων των μεταδιδόμενων δεδομένων. Παρέχει αυθεντικοποίηση για τη νόμιμη χρήση του λογαριασμού της πιστωτικής κάρτας. Παρέχει αυθεντικοποίηση ότι ο έμπορος μπορεί να γίνει αποδέκτης συναλλαγών με πιστωτική κάρτα. 35
Απαιτήσεις SET (2/2) Διασφαλίζει ότι γίνεται χρήση των καλύτερων πρακτικών ασφάλειας και τεχνικών σχεδιασμού συστημάτων για την προστασία όλων των νόμιμων μερών της συναλλαγής. Δημιουργεί πρωτόκολλο ανεξάρτητο από τους μηχανισμούς ασφάλειας που, όμως, δεν εμποδίζει την χρήση τους. Διευκολύνει την διαλειτουργικότητα μεταξύ των προμηθευτών λογισμικού και δικτυακού εξοπλισμού. 36
Συμμετέχοντες στο SET (1/4) Κάτοχος κάρτας (Cardholder). Έμπορος (Merchant). Εκδότης (Issuer). Μεσολαβητής συναλλαγών (Acquirer). Πύλη πληρωμών (Payment Gateway). Αρχή Πιστοποίησης (Certificate Authority - CA). 37
Συμμετέχοντες στο SET (2/4) Κάτοχος κάρτας (Cardholder). Ο εξουσιοδοτημένος κάτοχος κάρτας πληρωμών που εκδόθηκε από κάποιον Issuer. Έμπορος (Merchant). Άτομο ή οργανισμός που πουλάει αγαθά ή υπηρεσίες. Η πώληση γίνεται μέσω Web sites ή email. Θα πρέπει να έχει σχέση με κάποιον Issuer. Εκδότης (Issuer). Χρηματοοικονομικός οργανισμός (π.χ. τράπεζα) που παρέχει στον κάτοχο την κάρτα πληρωμής. Είναι υπεύθυνος για την πληρωμή των οφειλών του κάτοχου της κάρτας. 38
Συμμετέχοντες στο SET (3/4) Μεσολαβητής συναλλαγών (Acquirer). Χρηματοοικονομικός οργανισμός που: Εγκαθιδρύει λογαριασμό για τον έμπορο. Επεξεργάζεται εγκρίσεις και πληρωμές. Παρέχει πιστοποίηση ότι κάποιος λογαριασμός είναι ενεργός. Παρέχει πιστοποίηση ότι η αγορά δεν ξεπερνά το πιστωτικό όριο. Παρέχει ηλεκτρονική μεταφορά των πληρωμών στον λογαριασμό του εμπόρου. Εξοφλείται από τον εκδότη μέσω δικτύου πληρωμής για ηλεκτρονικές μεταφορές χρημάτων. 39
Συμμετέχοντες στο SET (4/4) Πύλη πληρωμών (Payment Gateway). Λειτουργία που εκτελεί ο Acquirer ή κάποιο τρίτο μέρος. Διασύνδεση μεταξύ SET και υπάρχοντος δικτύου πληρωμών. Ο έμπορος ανταλλάσσει μηνύματα SET με την πύλη πληρωμών μέσω Διαδικτύου. Η πύλη πληρωμών έχει απευθείας ή δικτυακή σύνδεση με το χρηματοοικονομικό σύστημα επεξεργασίας του Acquirer. Αρχή Πιστοποίησης (Certificate Authority - CA). Οντότητα που θεωρείται έμπιστη για την έκδοση πιστοποιητικών δημόσιου κλειδιού. Ιεραρχία SET. Οι συμμετέχοντες δεν χρειάζεται να πιστοποιούνται άμεσα από την CA. 40
Βήματα συναλλαγής (1/4) Ο πελάτης ανοίγει λογαριασμό πιστωτικής κάρτας. Π.χ. Mastercard ή Visa. Η τράπεζα θα πρέπει να υποστηρίζει ηλεκτρονικές πληρωμές. Ο πελάτης λαμβάνει πιστοποιητικό. Επαληθεύεται η ταυτότητά του. Λαμβάνει πιστοποιητικό υπογεγραμμένο από την τράπεζα. Το πιστοποιητικό επικυρώνει το δημόσιο κλειδί του και την ημερομηνία λήξης του. 41
Βήματα συναλλαγής (2/4) Οι έμποροι έχουν τα δικά τους πιστοποιητικά. 2 πιστοποιητικά: 1 για την υπογραφή των μηνυμάτων, 1 για την ανταλλαγή κλειδιών. Ο πελάτης κάνει την παραγγελία του. Επισκέπτεται την ιστοσελίδα και επιλέγει τα προϊόντα. Στέλνει στον έμπορο λίστα με τα προϊόντα που θα αγοράσει. Του επιστρέφεται φόρμα με τα στοιχεία της παραγγελίας. Γίνεται επαλήθευση του εμπόρου. Ο έμπορος στέλνει αντίγραφο του πιστοποιητικού του ώστε να πιστοποιήσει ότι το κατάστημα είναι έγκυρο. 42
Βήματα συναλλαγής (3/4) Γίνεται αποστολή της παραγγελίας και πληρωμή. Ο πελάτης στέλνει την παραγγελία με το πιστοποιητικό του. Οι πληροφορίες της πληρωμής περιέχουν τις λεπτομέρειες της πιστωτικής. Οι πληροφορίες πληρωμής κρυπτογραφούνται. Ο έμπορος επαληθεύει την ταυτότητα του πελάτη από το πιστοποιητικό του. Ο έμπορος απαιτεί έγκριση πληρωμής. Στέλνει τις πληροφορίες πληρωμής στην πύλη πληρωμών. Ζητάει έγκριση σχετικά το πιστωτικό όριο του πελάτη. 43
Βήματα συναλλαγής (4/4) Ο έμπορος επικυρώνει την παραγγελία. Στέλνει επικύρωση της παραγγελίας. Ο έμπορος προμηθεύει τα αγαθά ή τις υπηρεσίες. Ο έμπορος ζητά την πληρωμή. Στέλνει αίτηση στην πύλη πληρωμών. 44
Χρήση SET σε άλλες ηλεκτρονικές συναλλαγές E-banking. Electronic wallets. Επαγγελματικές συναλλαγές επιχειρήσεων. Ηλεκτρονικές προσφορές (electronic tenders). Εταιρικές πληρωμές (corporate payments). Ηλεκτρονικά συμβόλαια (electronic contracts) κ.α. 45
Σημείωμα Αναφοράς Copyright ΤΕΙ Δυτικής Μακεδονίας, Νικολάου Σπύρος. «Ασφάλεια Υπολογιστικών Συστημάτων». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: 46
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο. που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο. που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο. Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 47
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς. το Σημείωμα Αδειοδότησης. τη δήλωση Διατήρησης Σημειωμάτων. το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει). μαζί με τους συνοδευόμενους υπερσυνδέσμους. 48
Βιβλιογραφία 1. Κρυπτογραφία για Ασφάλεια Δικτύων Αρχές και Εφαρμογές, Stallings. 2. Βασικές Αρχές Ασφάλειας Δικτύων: Εφαρμογές και Πρότυπα, William Stallings. 3. Ασφάλεια δικτύων 6η Έκδοση, McClure Stuart, Scambray Joel, Kurtz George. 4. Ασφάλεια Πληροφοριακών συστημάτων, Παγκαλος Γ., Μαυριδης Ι. 49
Τέλος Ενότητας