Το πρότυπο X.509

Το X.509 είναι ένα διεθνές πρότυπο που καθορίζει τον τρόπο λειτουργίας των Υποδομών Δημοσίου Κλειδιού (Public Key Infrastructure/PKI). Προδιαγράφει τις μορφές διάθεσης της σχετικής πληροφορίας (κλειδιά, πιστοποιητικά, λίστες ανάκλησης), καθώς και τους αλγορίθμους επαλήθευσης του κύρους ενός πιστοποιητικού.

Πιστοποιητικά και επαλήθευση
Στο X.509, η Αρχή Πιστοποίησης (Certification Authority — CA) εκδίδει ένα πιστοποιητικό, το οποίο περιλαμβάνει πληροφορίες για μια οντότητα-υποκείμενο (subject). Το υποκείμενο του πιστοποιητικού μπορεί να είναι ένα όνομα (common name) ή κάποια άλλη οντότητα (alternative name), όπως μια διεύθυνση e-mail, μια διεύθυνση IP ή ένα όνομα DNS. Ένα πιστοποιητικό X.509 περιέχει τις ακόλουθες πληροφορίες:
  • - Πιστοποιητικό 
  • - Έκδοση X.509 (π.χ. 3) 
  • - Αύξων Αριθμός 
  • - Αλγόριθμος 
  • - Εκδούσα Αρχή Πιστοποίησης 
  • - Περίοδος έγκυροτητας 
  • - Όχι νωρίτερα από 
  • - Oχι αργότερα από
  • - Υποκείμενο Πληροφορίας δημόσιου κλειδιού υποκειμένου 
  • - Αλγόριθμος δημόσιου κλειδιού 
  • - Τιμή δημόσιου κλειδιού
  • - Προαιρετικές πληροφορίες… 
  • - Επεκτάσεις (extensions)… 
  • - Αλγόριθμος υπογραφής πιστοποιητικού 
  • - Υπογραφή πιστοποιητικού 

Η Αρχή Πιστοποίησης υπογράφει ψηφιακά τις πληροφορίες του πιστοποιητικού, ώστε όποιος διαθέτει το δημόσιο κλειδί της, να μπορεί να επαληθεύσει την ισχύ των πληροφοριών που φέρει το πιστοποιητικό. Κάθε Αρχή Πιστοποίησης διαθέτει με τη σειρά της ένα δικό της πιστοποιητικό, υπογεγραμμένο από κάποια άλλη αρχή πιστοποίησης (σε αυτή την περίπτωση μιλάμε για ενδιάμεση αρχή πιστοποίησης — intermediate CA) ή από τον εαυτό της (οπότε μιλάμε για αρχική αρχή πιστοποίησης — root CA). Επομένως η επαλήθευση της εγκυρότητας ενός πιστοποιητικού μπορεί να γίνει ακολουθώντας μια αλυσίδα Αρχών Πιστοποίησης, μέχρι να φτάσουμε σε μια έμπιστη Αρχή Πιστοποίησης (trusted CA).

Κάθε λειτουργικό σύστημα ή πρόγραμα περιήγησης του διαδικτύου (browser), διανέμεται με έναν κατάλογο έμπιστων αρχικών και ενδιάμεσων Αρχών Πιστοποίησης, πράγμα το οποίο σημαίνει ότι μπορεί να επαληθεύσει την εγκυρότητα ενός μεγάλου αριθμού πιστοποιητικών.

Έστω, για παράδειγμα, ότι συνδεόμενοι σε έναν Εξυπηρετητή (server), παρουσιάζεται ένα πιστοποιητικό υπογεγραμμένο από την αρχή πιστοποίησης «CA 1». Η «CA 1» είναι ενδιάμεση αρχή πιστοποίησης και δεν υπάρχει εγκατεστημένη στο λειτουργικό σύστημα, όμως ο Εξυπηρετητής μας παρέχει το πιστοποιητικό της μαζί με το δικό του. Ελέγχοντας την υπογραφή, διαπιστώνεται ότι, σύμφωνα με τη «CA 1», το πιστοποιητικό του εξυπηρετητή είναι έγκυρο, ωστόσο η «CA 1» δεν είναι έμπιστη Αρχή Πιστοποίησης. Το πιστοποιητικό της «CA 1» φέρει υπογραφή από την «CA 2», η οποία βρίσκεται στον κατάλογο με τις έμπιστες Αρχές Πιστοποίησης του λειτουργικού συστήματος που χρησιμοποιούμε. Επομένως, επαληθεύοντας το πιστοποιητικό της «CA 1» χρησιμοποιώντας το δημόσιο κλειδί από το πιστοποιητικό της «CA 2», καταλήγουμε σε μια έμπιστη αρχή πιστοποίησης. Κατ' αυτόν τον τρόπο σχηματίζεται η αλυσίδα πιστοποίησης (certification chain), όπως αυτή φαίνεται στo παρακάτω σχήμα.digicert
Επομένως το δημόσιο κλειδί που βρίσκεται στο πιστοποιητικό του Εξυπηρετητή μπορεί να χρησιμοποιηθεί με ασφάλεια για την κρυπτογράφηση δεδομένων προς αυτόν, αφού η έμπιστη «CA 2» έχει επιβεβαιώσει (μέσω της «CA 1») ότι το πιστοποιητικό αυτό (και επομένως και το δημόσιο κλειδί) όντως ανήκει στον Εξυπηρετητή.
Last modified: Tuesday, 19 April 2016, 12:11 PM