PΚΙ : Το κλειδί της επιτυχίας για την ασφαλή μετάβαση πληροφοριών
Προκειμένου να εδραιωθεί το αίσθημα ασφάλειας διακίνησης των πληροφοριών μέσω Internet, άλλα και να αρθεί η διστακτικότητα απέναντι στις υπηρεσίες ηλεκτρονικών συναλλαγών, απαιτείται σε πρώτη φάση η κατανόηση των μεθόδων κρυπτογράφησης που χρησιμοποιούνται.
Αγοράζουμε αγαθά μέσω Internet, δίνοντας τα στοιχεία της πιστωτικής μας κάρτας στη δικτυακή σελίδα του καταστήματος. Μεταφέρουμε χρήματα στους τραπεζικούς μας λογαριασμούς και εξοφλούμε τις υποχρεώσεις μας, χρησιμοποιώντας τα κουμπιά του ποντικιού μας.
Κάποιοι από εμάς υπογράφουν ήδη ψηφιακά, ενώ ακόμα και τα κυκλοφορούντα σενάρια για εκλογές μέσω Internet και ηλεκτρονική ψηφοφορία δεν μας φαίνονται πια εξωπραγματικά. Τι κρύβεται πίσω από όλα αυτά; Πού βασιζόμαστε και αφήνουμε με τόση ευκολία πολύτιμες πληροφορίες να ταξιδεύουν σε ένα κοινόχρηστο μέσο, όπως το Internet;
Συμμετρική κρυπτογράφηση
Η απάντηση είναι απλή και βρίσκεται στην κρυπτογράφηση, μια παλιά τεχνική, οικεία ακόμη και στον Ιούλιο Καίσαρα, που μας επιτρέπει την τροποποίηση ενός μηνύματος με τέτοιο τρόπο, που να μην είναι αναγνώσιμο από κανέναν, εκτός από αυτούς που έχουν το κλειδί αποκρυπτογράφησης. Η μέθοδος κρυπτογράφησης που χρησιμοποιούσε ο Καίσαρας αποτελεί ένα πολύ καλό εκπαιδευτικό παράδειγμα:
Ας υποθέσουμε ότι έχουμε τη φράση: «AΡΝΑΚΙ ΑΣΠΡΟ ΚΑΙ ΠΑΧΥ». Μπορούμε να συμφωνήσουμε ότι για να μην είναι άμεσα κατανοητή, θα την κρυπτογραφήσουμε, αντικαθιστώντας κάθε γράμμα με κάποιο άλλο που βρίσκεται 2 θέσεις μπροστά του στο αλφάβητο. . Στην περίπτωση αυτή, ο «αλγόριθμος κρυπτογράφησης» είναι η «μετάθεση κάθε γράμματος κατά x θέσεις» και το «κλειδί κρυπτογράφησης» είναι το 2 (x=2). Στη συνέχεια, δεν έχουμε παρά να αποστείλουμε το μήνυμά μας στον παραλήπτη, ο οποίος για να το διαβάσει δεν έχει παρά να το αποκρυπτογραφήσει, αρκεί να του στείλουμε και το κλειδί κρυπτογράφησης.
Αυτή η μέθοδος που χρησιμοποιεί το ίδιο κλειδί για την κρυπτογράφηση και την αποκρυπτογράφηση, ονομάζεται «συμμετρική» κρυπτογράφηση και είναι ταχύτατη αλλά έχει κάποια μειονεκτήματα. Αν π.χ. έχουμε τρόπο να στείλουμε το κλειδί κρυπτογράφησης έτσι ώστε να μην το υποκλέψει κανείς, τι μας εμποδίζει να κάνουμε το ίδιο και με το μήνυμα; Χρειαζόμαστε δηλαδή, έτσι κι αλλιώς, ένα ασφαλές κανάλι επικοινωνίας για να δουλέψουμε με συμμετρική κρυπτογράφηση, αλλά δεν είναι σίγουρο ότι το έχουμε πάντα. Από την άλλη μεριά, αν δεν είμαστε δύο αλλά n χρειαζόμαστε ένα κλειδί για κάθε ζεύγος συνομιλητών και άρα n(n-1)/2 κλειδιά για τον καθένα μας. Μεγάλος μπελάς.
Μη συμμετρική κρυπτογράφηση
Η απάντηση στα προβλήματα αυτά είναι η μη συμμετρική κρυπτογράφηση. Για να καταλάβουμε πώς λειτουργεί, ας σκεφτούμε ότι ο καθένας από εμάς έχει στα χέρια του πολλά λουκέτα και ένα κλειδί που τα ανοίγει όλα. Φυλάσσει πολύ καλά το κλειδί του, ενώ μοιράζει τα λουκέτα του ανοικτά σε όλους τους υπόλοιπους. Αν τώρα κάποιος θέλει να στείλει ένα μήνυμα σε κάποιον άλλον, το βάζει σε ένα κουτί, το κλείνει με το λουκέτο του παραλήπτη και στέλνει το κουτί. Μόνο ο παραλήπτης μπορεί να το δει, γιατί μόνο αυτός έχει το κλειδί που ανοίγει τα λουκέτα του. Από την άλλη μεριά, μας είναι παντελώς αδιάφορο αν τα ανοικτά λουκέτα διαρρεύσουν και πέσουν στα χέρια κάποιου άλλου, αφού το μόνο που θα μπορεί να κάνει είναι να μας στείλει κάποιο μήνυμα.
Όλα τα παραπάνω γίνονται με μαθηματικό τρόπο. Κάθε χρήστης στη μη συμμετρική κρυπτογράφηση, έχει ένα ζεύγος κλειδιών, το ιδιωτικό και το δημόσιο. Είναι έτσι κατασκευασμένα, που από το ιδιωτικό μπορεί να παραχθεί το δημόσιο, αλλά όχι το αντίστροφο. Το δημόσιο κλειδί του (το λέει και η λέξη) το δίνει σε όλους, ενώ φυλάει το ιδιωτικό ως κόρη οφθαλμού. Για να στείλει τώρα κάποιος ένα μήνυμα, χρησιμοποιεί το δημόσιο κλειδί του παραλήπτη για να το κρυπτογραφήσει και αυτός το ιδιωτικό του για να το αποκρυπτογραφήσει.
Υβριδική κρυπτογράφηση
Η μη συμμετρική κρυπτογράφηση αντιμετωπίζει μεν τα βασικά προβλήματα της συμμετρικής, αλλά έχει κι εκείνη κάποια, το βασικότερο από τα οποία είναι ότι είναι πολύ αργή. Για το λόγο αυτό, λειτουργεί πάντα σε συνδυασμό με τη συμμετρική, φτιάχνοντας μια μέθοδο που λέγεται «υβριδική» κρυπτογράφηση και χρησιμοποιείται πλέον στην πράξη. Η κεντρική ιδέα εδώ είναι ότι κατά τη φάση της κρυπτογράφησης δημιουργείται ένα τυχαίο κλειδί, με το οποίο κρυπτογραφείται συμμετρικά το μήνυμα. Κερδίζουμε λοιπόν εδώ την ταχύτητα της συμμετρικής κρυπτογράφησης. Στη συνέχεια κρυπτογραφείται μη συμμετρικά το τυχαίο κλειδί, με το δημόσιο κλειδί του παραλήπτη. Εδώ, δεν μας ενοχλεί η βραδύτητα της μη συμμετρικής κρυπτογράφησης, διότι το τυχαίο κλειδί είναι μικρό σε μέγεθος σε σχέση με το μήνυμα. Το σύνολο (κρυπτογραφημένο μήνυμα και κρυπτογραφημένο τυχαίο κλειδί) αποστέλλεται στον παραλήπτη. Προφανώς δεν χρειαζόμαστε ασφαλές κανάλι, διότι όλα ταξιδεύουν κρυπτογραφημένα. Ο παραλήπτης, χρησιμοποιώντας το ιδιωτικό του κλειδί, αποκρυπτογραφεί το τυχαίο κλειδί και με αυτό στη συνέχεια το μήνυμα.
Ψηφιακή υπογραφή
Ας ξαναγυρίσουμε λίγο στο παράδειγμα με τα κλειδιά και τα λουκέτα. Τι θα γινόταν αν ο αποστολέας μας βούταγε το κλειδί του σε μελάνι και με αυτό σφράγιζε το χαρτί πριν το κλείσει στο χαρτί και το κλειδώσει με το λουκέτο του παραλήπτη; Πολύ απλά, ο παραλήπτης θα ήταν σίγουρος ότι το μήνυμα ήρθε από το συγκεκριμένο αποστολέα, αφού κανείς άλλος δεν έχει το κλειδί του. Από την άλλη μεριά, δεν υπάρχει κανένας κίνδυνος διαρροής, αφού το μόνο που ταξιδεύει είναι το είδωλο του κλειδιού επάνω στο χαρτί και όχι το ίδιο το κλειδί. Η μέθοδος της σφραγίδας άλλωστε, χρησιμοποιήθηκε από βασιλείς και ευγενείς, για εκατοντάδες χρόνια.
Αυτή η διαδικασία γίνεται και στον ηλεκτρονικό κόσμο, ως εξής: Ο αποστολέας υπολογίζει ένα ηλεκτρονικό «αποτύπωμα» του μηνύματος που θέλει να στείλει, με μια μαθηματική συνάρτηση (hash function), που έχει τις εξής ιδιότητες: Δεν αντιστρέφεται και δίνει εντελώς διαφορετικό αποτύπωμα αν αλλάξουμε έστω και μια τελεία στο μήνυμα. Το αποτύπωμα είναι πολύ μικρό σε μέγεθος (32 χαρακτήρες π.χ.) και στη συνέχεια, χωρίς χρονικό κόστος, ο αποστολέας το κρυπτογραφεί με το ιδιωτικό του κλειδί. Το σύνολο (μήνυμα και κρυπτογραφημένο αποτύπωμα) το στέλνει στον παραλήπτη, ο οποίος και ακολουθεί τη διαδικασία επαλήθευσης: Υπολογίζει το αποτύπωμα του μηνύματος με το ίδιο hash function και στη συνέχεια αποκρυπτογραφεί το αποτύπωμα που παρέλαβε με το δημόσιο κλειδί του παραλήπτη, που έχει στην κατοχή του. Αν τα δύο αποτυπώματα είναι ίδια, η υπογραφή επαληθεύεται και το μήνυμα έχει όντως αποσταλεί από τον κάτοχο του δημόσιου κλειδιού, που έχει στα χέρια του ο παραλήπτης, δηλαδή τον αποστολέα.
Αρχή Πιστοποίησης
Όλα καλά μέχρι εδώ, αλλά υπάρχει ένα πρόβλημα, το μοναδικό ίσως της μη συμμετρικής κρυπτογράφησης. Όλες οι διαδικασίες που περιγράψαμε βασίζονται στην παραδοχή ότι το δημόσιο κλειδί κάποιου, ανήκει όντως σε αυτόν. Γι’ αυτό όμως, δεν είμαστε καθόλου σίγουροι. Αν κάποιος μεσάζων πάρει το λουκέτο του παραλήπτη και, αντί να δώσει αυτό στον αποστολέα, του δώσει το δικό του και κολλήσει επάνω την ετικέτα του παραλήπτη, τι γίνεται; Προφανώς, ο αποστολέας δεν θα καταλάβει τη διαφορά και θα στέλνει μηνύματα κλειδώνοντάς τα με το λάθος λουκέτο. Ο μεσάζων θα τα διαβάζει με το κλειδί του και θα τα ξανακλειδώνει με το πραγματικό λουκέτο του παραλήπτη, ο οποίος με τη σειρά του θα τα διαβάζει ανυποψίαστος. Το μήνυμα θα έχει διαρρεύσει και κανείς δεν θα έχει καταλάβει τίποτα.
Η ασφάλεια λοιπόν όλων όσων είπαμε μέχρι τώρα, στηρίζεται σε ένα και μόνο πράγμα: Την εγκυρότητα του δημοσίου κλειδιού. Πώς μπορούμε να είμαστε σίγουροι ότι ένα δημόσιο κλειδί ανήκει σε αυτόν που γράφει επάνω; Δεν μπορούμε- και για το λόγο αυτό μεταφέρουμε την απόφαση (και άρα την ευθύνη) σε κάποιον άλλον. Χρησιμοποιούμε μια Αρχή Πιστοποίησης (Certification Authority), η οποία αναλαμβάνει να ελέγξει την εγκυρότητα του κλειδιού. Ας δούμε ποια ακριβώς είναι η δουλειά της:
Κάθε χρήστης του συστήματος υποχρεούται να υποβάλει το δημόσιο κλειδί του στην Αρχή Πιστοποίησης. Αυτή με τη σειρά της, κάνει ό,τι νομίζει αναγκαίο για να ελέγξει την εγκυρότητα αυτού του κλειδιού, ζητώντας π.χ. από το χρήστη νομιμοποιητικά έγγραφα ή υποχρεώνοντάς τον να δώσει το κλειδί του αυτοπροσώπως. Αφού η Αρχή βεβαιωθεί, ότι το δημόσιο κλειδί είναι όντως του χρήστη, το υπογράφει ψηφιακά με το δικό της ιδιωτικό κλειδί και του το δίνει. Το υπογεγραμμένο από την Αρχή Πιστοποίησης δημόσιο κλειδί ενός χρήστη, ονομάζεται «ψηφιακό πιστοποιητικό» και μπορεί πλέον να χρησιμοποιείται από το χρήστη ελεύθερα.
Γιατί τα παραπάνω μας εξασφαλίζουν; Διότι κάθε άλλος χρήστης του συστήματος έχει ήδη το δημόσιο κλειδί της Αρχής που το έχει αποκτήσει με ασφαλή και αδιάβλητο τρόπο. Μόλις λοιπόν λάβει το ψηφιακό πιστοποιητικό κάποιου άλλου χρήστη, ελέγχει την εγκυρότητά του, επαληθεύοντας την υπογραφή της Αρχής με το δημόσιο κλειδί της. Έτσι, στο βαθμό που εμπιστεύεται τη σωστή λειτουργία και την τιμιότητα της Αρχής Πιστοποίησης, είναι σίγουρος για την εγκυρότητα του δημόσιου κλειδιού που έχει στα χέρια του και μπορεί να στείλει κρυπτογραφημένο μήνυμα στον κάτοχό του ή να επαληθεύσει την υπογραφή του όπου χρειάζεται.
Η θεωρία στην πράξη
Ελάτε τώρα να δούμε στην πράξη και να καταλάβουμε όλα όσα αναπτύξαμε θεωρητικά παραπάνω. Ανοίξτε τον αγαπημένο σας Internet browser και πηγαίνετε στη σελίδα ενός ηλεκτρονικού καταστήματος. Διαλέξτε τα ψώνια σας και φτάστε στο σημείο που το κατάστημα σας ζητά τα στοιχεία της πιστωτικής σας κάρτας, προκειμένου να σας χρεώσει. Το σημείο αυτό, είναι αυτό στο οποίο ζητούμε τη μέγιστη ασφάλεια, διότι πρέπει να ξέρουμε ότι βλέπουμε όντως τη σελίδα του καταστήματος (και όχι κάποια που της μοιάζει) και ότι τα στοιχεία που θα γράψουμε θα ταξιδέψουν με ασφάλεια, όντας ορατά μόνο στο κατάστημα που θα μας στείλει τα προϊόντα.
Παρατηρήστε το παράθυρο του browser και θα προσέξετε ότι στο κάτω μέρος του εμφανίζει ένα λουκέτο ή μια ανάλογη ένδειξη. Τι σημαίνει αυτό; Πολύ απλά, το κατάστημα έχει ζητήσει ένα ψηφιακό πιστοποιητικό από μια αναγνωρισμένη αρχή πιστοποίησης. Το λουκέτο στην οθόνη σημαίνει ότι ο browser που χρησιμοποιείτε, ξέρει το δημόσιο κλειδί της αρχής πιστοποίησης και επαλήθευσε την υπογραφή της στο πιστοποιητικό του καταστήματος. Το δημόσιο κλειδί του καταστήματος, λοιπόν, βρίσκεται ήδη σε εσάς και άρα ό,τι στείλετε θα ταξιδέψει κρυπτογραφημένο και ορατό μόνο από το κατάστημα.
Καλώς ήρθατε στην Υποδομή Δημοσίου Κλειδιού (Public Key Infrastructure).