H Υποδομή Πιστοποίησης Δημόσιου Κλειδιού (Public Key Infrastructure – PKI) είναι μια σειρά από έγγραφες και συγκροτημένες πολιτικές και διαδικασίες, οι οποίες υλοποιούνται με τη βοήθεια τεχνολογικών προϊόντων εξειδικευμένου λογισμικού και hardware, που είναι απαραίτητες για τη σχεδίαση, έκδοση, διαμοίραση και διαχείριση ψηφιακών πιστοποιητικών (digital certificates).
Ψηφιακά πιστοποιητικά και μέθοδοι κρυπτογράφησης
Τα ψηφιακά πιστοποιητικά είναι ο ακρογωνιαίος λίθος των Υποδομών Πιστοποίησης. Μπορούν να θεωρηθούν ως η ψηφιακή αντιστοιχία της αστυνομικής ταυτότητας ενός χρήστη (ή δευτερευόντως ενός υπολογιστή ή μιας υπηρεσίας). Με τον ίδιο τρόπο που ένας δημόσιος φορέας (αστυνομία) πιστοποιεί την ύπαρξή μας αλλά και την ακρίβεια των στοιχείων μας εκδίδοντάς μας μια αστυνομική ταυτότητα για το σκοπό αυτό, έτσι κι μια Υποδομή Πιστοποίησης μέσω της χρήσης των Αρχών Πιστοποίησης (στις οποίες θα αναφερθούμε αργότερα) πιστοποιεί την ύπαρξή μας και μας εκδίδει κάτι αντίστοιχο – μια ψηφιακή «ταυτότητα», το ψηφιακό πιστοποιητικό. Αυτό είναι το «διαβατήριό» μας σε πολλές υπηρεσίες που βασίζονται στην τεχνολογία της κρυπτογραφίας , όπως η ασφαλής μετάδοση δεδομένων (πχ, στοιχείων πιστωτικών καρτών) μέσω ανασφαλών δικτύων (με έμφαση στο internet), η ψηφιακή υπογραφή και κρυπτογράφηση των δεδομένων ενός ηλεκτρονικού μηνύματος (e-mail) και πολλών άλλων υπηρεσιών στις οποίες θα αναφερθούμε αργότερα.
Η κύρια τεχνολογία των Υποδομών Πιστοποίησης Δημόσιου Κλειδιού βασίζεται στην αρχή της ασυμμετρικής κρυπτογράφησης, η οποία προϋποθέτει την ύπαρξη δύο κλειδιών: του δημόσιου και του ιδιωτικού (κατά την έκδοση των πιστοποιητικών), τα οποία είναι μαθηματικά συνδεδεμένα μεταξύ τους. Δηλαδή, αν κάποιος έχει στην κατοχή του το ένα εκ των δύο κλειδιών, μπορεί να το χρησιμοποιήσει για να εφαρμόσει κάποια κρυπτογραφική μέθοδο (πχ, ψηφιακή υπογραφή) την οποία ο κάτοχος του άλλου κλειδιού να μπορέσει με απόλυτη σιγουριά και ασφάλεια να επιβεβαιώσει. Το ιδιωτικό κλειδί είναι το πλέον σημαντικό, αφού αυτό μένει στην κατοχή του χρήστη σε ένα ασφαλές σημείο του προφίλ του (το οποίο κι αυτό είναι κρυπτογραφημένο με τη σειρά του), στον υπολογιστή από τον οποίο έγινε η αρχική αίτηση. Το δημόσιο κλειδί μπορεί να διατεθεί σε οποιονδήποτε, ενώ είναι και μέρος του ψηφιακού πιστοποιητικού του χρήστη, με το οποίο και δένεται άπαξ και για όλη τη διάρκεια ζωής του πιστοποιητικού. Είναι σημαντικό να τονίσουμε εδώ ότι παρ’ όλο που υπάρχει μια μαθηματική σχέση που συνδέει τα δύο κλειδιά, είναι πρακτικά αδύνατο να υπολογίσουμε το ένα από αυτά, αν γνωρίζουμε μόνο το άλλο.
Παρ’ ότι η έκδοση του ψηφιακού πιστοποιητικού είναι μια εργασία που πραγματοποιείται από την Αρχή, ο υπολογισμός των δυο κλειδιών που προαναφέρθηκαν δεν γίνεται από αυτή, αλλά από τον υπολογιστή στον οποίο έγινε η αίτηση έκδοσης του πιστοποιητικού.
Ο επακριβής τρόπος εφαρμογής της ασυμμετρικής κρυπτογράφησης είναι αρκετά περίπλοκος και πέρα από το σκοπό του παρόντος άρθρου. Το ίδιο και οι αλγόριθμοι που χρησιμοποιούνται (Diffie-Hellman, RSA, DSA κα). Θα αναφέρουμε απλά τη διαδικασία. Αν υποθέσουμε ότι ο χρήστης Α θέλει να κρυπτογραφήσει ένα μήνυμα και να το αποστείλει στο χρήστη Β, τότε η διαδικασία θα έχει ως εξής:
Ο χρήστης Α θα πρέπει κατ’ αρχή να έχει πρόσβαση στο δημόσιο κλειδί του χρήστη Β. Αυτό είναι εύκολο, αφού όπως προαναφέραμε το κλειδί είναι διαθέσιμο σε όποιον το ζητήσει. Αφού αποκτήσει την πρόσβαση αυτή, θα το χρησιμοποιήσει σε συνεργασία με τον κατάλληλο αλγόριθμο κρυπτογράφησης και θα κωδικοποιήσει ένα κείμενο («cipher text»). Το κείμενο μπορεί πλέον να ταξιδέψει άφοβα μέσω οποιουδήποτε ανασφαλούς μέσου μετάδοσης δεδομένων (και πάντα το μυαλό μας πηγαίνει στο internet σε αυτή την περίπτωση) αφού κανείς δε μπορεί να το αποκρυπτογραφήσει – ο λόγος είναι ότι κανείς δεν έχει πρόσβαση στην «αδελφή ψυχή» του δημόσιου κλειδιού, το ιδιωτικό. Έτσι λοιπόν, ο αποδέκτης του μηνύματος, όντας ο μόνος που έχει στην κατοχή του το ιδιωτικό κλειδί, αποκρυπτογραφεί το μήνυμα, το οποίο πλέον επανέρχεται στην αρχική του μορφή (αυτή που το είχε δώσει ο αποστολέας του πριν το κρυπτογραφήσει). Τη διαδικασία μπορείτε να τη δείτε στο σχετικό σχεδιάγραμμα (Σχήμα 1).
Λόγω της πολυπλοκότητας της ασυμμετρικής κρυπτογράφησης, σπάνια χρησιμοποιείται αποκλειστικά αυτή, αλλά σχεδόν πάντα σε συνδυασμό με τη συμμετρική κρυπτογράφηση. Αυτό είναι κυρίως κατάλοιπο από τις εποχές που το υπολογιστικό κόστος κρυπτογράφησης/αποκρυπτογράφησης με ασύμμετρα κλειδιά ήταν απαγορευτικό για την γρήγορη διακίνηση των πληροφοριών. Η συμμετρική κρυπτογράφηση χρησιμοποιεί ένα μόνο κλειδί για να κρυπτογραφηθεί και να αποκρυπτογραφηθεί μια σειρά δεδομένων και είναι πολύ ταχύτερη ως μέθοδος, αλλά έχει ως βασικό μειονέκτημα ότι δεν υπάρχει ασφαλής τρόπος να διαμοιραστεί το κλειδί μεταξύ του αποστολέα και του αποδέκτη.
Τα ψηφιακά πιστοποιητικά, ως φυσικά αρχεία, είναι τυπικά μικρά σε μέγεθος (όχι πάνω από 4kb περίπου) και ανάλογα με την Αρχή και την κλάση τους, περιλαμβάνουν πληροφορίες για το χρήστη (ή τον υπολογιστή ή την υπηρεσία), πληροφορίες για την Αρχή που το εξέδωσε, τον λόγο για τον οποίο εκδόθηκε (ψηφιακή υπογραφή, κρυπτογράφηση κα), τον τύπο των αλγορίθμων που υποστηρίζονται, το δημόσιο κλειδί του αντίστοιχου ζευγαριού, τη χρονική διάρκεια ισχύος του και πολλά άλλα. Η μορφή των αρχείων αυτών ποικίλει και μπορεί να είναι δυαδική (binary) ή ως απλό κείμενο (ascii).
Αρχές Πιστοποίησης
Μια Αρχή Πιστοποίησης έχει τη δυνατότητα έκδοσης ψηφιακών πιστοποιητικών. Η διαδικασία έκδοσης ενός ψηφιακού πιστοποιητικού γίνεται είτε αυτοματοποιημένα (χωρίς ανθρώπινη παρουσία και επιβεβαίωση) είτε με τη φυσική παρέμβαση και προσωπική «φροντίδα» ενός στελέχους του οργανισμού στον οποίο ανήκει η Αρχή. Το στέλεχος αυτό αναλαμβάνει να πιστοποιήσει την ορθότητα των στοιχείων που αποστέλλει ο χρήστης σε διάφορα επίπεδα, με απλούς τρόπους (όπως αποστολή/λήψη στοιχείων μέσω e-mail, fax ή τηλεφώνου) αλλά και με πιο αποτελεσματικούς και σίγουρους τρόπους, όπως προσωπική συνάντηση και επιτόπια εξακρίβωση στοιχείων.
Αφού γίνει η ταυτοποίηση του χρήστη, εκδίδεται το ψηφιακό πιστοποιητικό, το οποίο μπορεί να είναι γενικής χρήσης ή να εκδοθεί μόνο για συγκεκριμένες εργασίες (πχ, ψηφιακή υπογραφή σε e-mails). Το πιστοποιητικό αυτό θα παραμείνει εν ισχύ για συγκεκριμένο χρονικό διάστημα (το οποίο έχει καθοριστεί εκ των προτέρων από τον διαχειριστή της Αρχής και δύναται μελλοντικά να αλλάξει).
Οι Αρχές μπορεί να είναι εμπορικές εταιρείες που εξειδικεύονται στην έκδοση και διαχείριση πιστοποιητικών (πχ, Verisign, Comodo κα) ή και υπηρεσίες τις οποίες κάθε οργανισμός μπορεί να εγκαταστήσει τοπικά στο εσωτερικό δίκτυο Η/Υ του και να τις διαχειριστεί και εκμεταλλευτεί άνευ κόστους. Όταν μια εταιρεία, ή ένας οργανισμός γενικά, σκοπεύει να εκδώσει ένα μεγάλο αριθμό από ψηφιακά πιστοποιητικά, θέλει απόλυτο έλεγχο της διαδικασίας και μπορεί να διαθέσει ένα άνθρωπο από το τμήμα Πληροφορικής για το σκοπό αυτό, τότε αυτή είναι και η οικονομικότερη (αλλά και πιο άμεσα ελέγξιμη) λύση. Υπάρχει διαθέσιμο στην αγορά ένα μεγάλο εύρος από δωρεάν λύσεις εγκατάστασης τοπικών Αρχών Πιστοποίησης, όπως τα Certificate Services της Microsoft (για λειτουργικά Windows Server 2000/2003/2008), OpenCA για Linux, RedHat Certificate System για RedHat Linux, αλλά και πολλές λύσεις με επιπλέον κόστος αγοράς.
Αρχές Πιστοποίησης στην πράξη
Οι Αρχές γενικά χωρίζονται σε πολλές κατηγορίες, όπως Αρχές ρίζας (Root CA), Αρχές έκδοσης κλπ. Για τις ανάγκες του άρθρου θα περιοριστούμε στις Αρχές έκδοσης πιστοποιητικών και τον τρόπο που αυτές δουλεύουν, εστιαζόμενοι στην αντίστοιχη υπηρεσία των Windows, τα Certificate Services, η οποία είναι μια υπηρεσία που παρέχεται δωρεάν στους κατόχους Windows Server και διαθέτει μια πληθώρα χαρακτηριστικών, με έμφαση στην ευκολία διαχείρισής της.
Τα περισσότερα από τα χαρακτηριστικά που θα αναφέρουμε εδώ, με τον ένα ή τον άλλο τρόπο, υπάρχουν και σε άλλες υπηρεσίες Αρχών Πιστοποίησης, είτε δωρεάν είτε επί πληρωμή. Το πλεονέκτημα της λύσης των Windows Server Certificate Services είναι ότι εκμεταλλεύεται την υπηρεσία καταλόγου που είναι γνωστή ως Active Directory και η οποία περιλαμβάνει το σύνολο των χρηστών και υπολογιστών ενός εταιρικού δικτύου. To Active Directory είναι μια υπηρεσία που μπορεί να βρεθεί στην πλειονότητα των εταιρικών δικτύων Η/Υ παγκόσμια, είτε πρόκειται για μεγάλα είτε για μικρά δίκτυα. Έτσι, έχοντας κάποιος διαχειριστής Αρχής άμεση πρόσβαση στο σύνολο αυτό, μπορεί να το χρησιμοποιήσει προκειμένου να εκδοθούν ψηφιακά πιστοποιητικά είτε σε χρήστες είτε σε υπολογιστές με το μικρότερο δυνατό κόστος και τη μικρότερη δυνατή προσπάθεια.
Η εγκατάσταση μιας Αρχής περιλαμβάνει μερικές βασικές πληροφορίες που πρέπει να δοθούν εξ αρχής, όπως ο τύπος της Αρχής, το μήκος και ο αλγόριθμος της έκδοσης του ιδιωτικού κλειδιού της, το όνομα με το οποίο θα είναι γνωστή, το χρονικό διάστημα ισχύος της ίδιας της Αρχής κα. Στην εικόνα 1, φαίνεται η κεντρική κονσόλα διαχείρισης των Windows Server Certificate Services, όπως αυτή διαμορφώνεται αμέσως μετά την εγκατάστασή τους.
Αφού εγκατασταθεί η Αρχή, μια από τις πρώτες παραμετροποιήσεις που πρέπει να γίνουν είναι ο τρόπος ανεύρεσης από τη μεριά των χρηστών, των ψηφιακών πιστοποιητικών που έχουν αναιρεθεί. Όταν ένα πιστοποιητικό δεν είναι πλέον σε ισχύ για διάφορους λόγους (λήξη χρονικής διάρκειας ισχύος, μακρά ή μόνιμη απουσία του πρώην κατόχου, υποκλοπή του πιστοποιητικού κλπ), τότε η Αρχή, μέσω του Διαχειριστή της, οφείλει να το ακυρώσει και να ενημερώσει όλους αυτούς που σκοπεύουν να κάνουν κάποια συναλλαγή με τη χρήση του συγκεκριμένου πιστοποιητικού ότι δεν είναι πλέον σε ισχύ. Αυτό γίνεται με δύο τρόπους: ο ένας είναι με τη χρήση μιας λίστας αναιρεθέντων πιστοποιητικών με την ονομασία CRL (Certificate Revocation List – διαβάζεται «κριλ»), την οποία κατεβάζουν οι ενδιαφερόμενοι χρήστες ή υπολογιστές σε τακτά χρονικά διαστήματα ή μέσω εφαρμογής του πρωτοκόλλου OSCP (Online Certificate Status Protocol), στο οποίο αντί να κατεβαίνει μια ολόκληρη λίστα με την τρέχουσα κατάσταση όλων των πιστοποιητικών της Αρχής, γίνεται συγκεκριμένη επερώτηση στη σχετική υπηρεσία της Αρχής (OCSP Responder), η οποία και απαντά για την κατάσταση (εν ισχύ ή όχι) του συγκεκριμένου πιστοποιητικού που πρόκειται να χρησιμοποιηθεί σε μια συναλλαγή. Στην εικόνα 2 φαίνεται το πλαίσιο διαλόγου που εμφανίζεται αν θέλουμε να αναιρέσουμε ένα ψηφιακό πιστοποιητικό, όπου ζητείται απαραίτητα ο λόγος αναίρεσής του, ούτως ώστε να τοποθετηθεί στη σχετική λίστα (CRL).
Μια επίσης σημαντική παραμετροποίηση που πρέπει να γίνει είναι η δημιουργία προτύπων, τα οποία θα χρησιμοποιηθούν αργότερα για την έκδοση πιστοποιητικών. Τα πρότυπα αυτά ορίζουν τον τύπο των πιστοποιητικών που μπορούν να εκδοθούν (πχ, πιστοποιητικά μόνο για επικοινωνία HTTPS, μόνο για κρυπτογράφηση e-mails κλπ) και μάλιστα μπορούν να κατηγοριοποιηθούν βάσει δικαιωμάτων χρηστών και υπολογιστών στο Active Directory, δίνοντας πλήρη έλεγχο στο διαχειριστή της Αρχής στο ποιος θα μπορεί να λάβει συγκεκριμένου είδους πιστοποιητικά. Στην εικόνα 3 φαίνονται μερικά από τα προϋπάρχοντα πρότυπα των Windows Server Certificate Services και κάποια άλλα που προστέθηκαν εκ των υστέρων από το διαχειριστή, ενώ στο σχήμα 2 φαίνεται σε σχεδιάγραμμα η διαδικασία αίτησης ψηφιακών πιστοποιητικών μέσω Certificate Services templates (πρότυπα).
Ίσως η πιο σημαντική παραμετροποίηση όμως, είναι ο τρόπος έκδοσης των πιστοποιητικών σε πολλαπλούς χρήστες ή υπολογιστές. Όπως αναφέραμε στην αρχή του άρθρου, υπάρχουν δύο βασικοί τρόποι έκδοσης πιστοποιητικών: με τη φυσική παρέμβαση του διαχειριστή μιας Αρχής και με την αυτοματοποιημένη έκδοσή τους. Για πρακτικούς λόγους, σε εταιρικά δίκτυα Windows συνήθως επιλέγεται η δεύτερη λύση αφού το λειτουργικό και η υπηρεσία Certificate Services μπορούν να «καταλάβουν» αν ο χρήστης που ζήτησε ένα πιστοποιητικό είναι όντως αυτός που λέει πως είναι, αφού εξακριβώνουν την ταυτότητά του από το login που έκανε στον υπολογιστή του. Κατ’ αυτό τον τρόπο, μπορεί να πραγματοποιηθεί μια πραγματικά μεγάλη διανομή ψηφιακών πιστοποιητικών μέσα σε ελάχιστες ώρες και με την ελάχιστη παρέμβαση του ανθρώπινου παράγοντα. Επιπλέον, για χρήστες εκτός εταιρικού δικτύου ή γι’ αυτούς που για οποιοδήποτε λόγο δεν επιθυμούν την έκδοση πιστοποιητικού αυτοματοποιημένα, υπάρχει και η δυνατότητα αίτησης μέσω web browser. Στην εικόνα 4 φαίνεται ένα screenshot από τη διαδικασία αίτησης ψηφιακού πιστοποιητικού μέσω web browser.
Πρακτική χρήση των ψηφιακών πιστοποιητικών
Ολοκληρώνοντας το άρθρο, δεν θα μπορούσαμε να βρούμε ενδεχομένως κάτι καλύτερο να αναφέρουμε, από το αδιαμφισβήτητα σημαντικό πρακτικό αποτέλεσμα που έχουν όλες αυτές οι τεχνολογίες που προαναφέραμε και η εφαρμογή τους στην καθημερινή μας ζωή. Αν δεν υπήρχε η κρυπτογραφία, δεν θα μπορούσαμε να κάνουμε απολύτως καμία συναλλαγή με ασφάλεια στο διαδίκτυο. Δεν πρέπει να ξεχνάμε ότι το πρωτόκολλο στο οποίο βασίζεται η επικοινωνία μεταξύ υπολογιστών στο διαδίκτυο (το γνωστό TCP/IP) δεν φτιάχτηκε με προτεραιότητα την ασφάλεια των δεδομένων αλλά την δυνατότητα λειτουργίας των υπολογιστών που βασίζονταν σε αυτό μέσω πολλαπλών οδών, αφού στην αρχή σχεδιάστηκε και εφαρμόστηκε σε στρατιωτικές εφαρμογές του στρατού των ΗΠΑ. Έτσι, η κρυπτογραφία και τα ψηφιακά πιστοποιητικά ήρθαν σαν «σωτήρες» του πρωτοκόλλου αυτού, μέσω του οποίου όλοι εμείς μπορούμε πλέον και διεξάγουμε ασφαλείς επικοινωνίες με οποιονδήποτε άλλο εταίρο επιθυμούμε (ένα screenshot από ένα τυπικό ψηφιακό πιστοποιητικό φαίνεται στην εικόνα 5).
Η χρήση των ψηφιακών πιστοποιητικών σε web sites με τη χρήση του πρωτοκόλλου SSL, έδωσε και την αναγκαία ώθηση στο ηλεκτρονικό εμπόριο από τα μέσα της δεκαετίας του 90 και μετά, αφού είναι ο πλέον διαδεδομένος τρόπος εξασφάλισης του απόρρητου των δεδομένων που ανταλλάσσονται μεταξύ του web browser ενός χρήστη και ενός web server που φιλοξενεί ένα ηλεκτρονικό κατάστημα. Εκτός της αναγκαίας κρυπτογράφησης των πληροφοριών που ανταλλάσσονται (και την προστασία της ακεραιότητάς τους), σημαντική είναι η δυνατότητα εξακρίβωσης της πραγματικής ταυτότητας του web site που επισκεπτόμαστε, αφού αυτό είναι φανερό από το ψηφιακό πιστοποιητικό το οποίο ο web browser του χρήστη, συμβουλεύεται. Από τη στιγμή που στο ψηφιακό πιστοποιητικό του site που επισκέπτεται ο χρήστης αναφέρεται το όνομα του site, το μόνο που πρέπει να προσεχθεί είναι αν ο εκδότης (Αρχή) του πιστοποιητικού αυτού είναι αξιόπιστος. Όλες οι Αρχές που είναι γνωστό ότι εκδίδουν πιστοποιητικά με ασφαλείς μεθόδους, περιλαμβάνονται εξ ορισμού σε όλους τους browsers.
Του ΔΗΜΉΤΡΗ ΠΑΠΙΤΣΗ