Το Kerberos χρησιμοποιεί ως βάση το πρωτόκολλο Needham-Schroeder. Χρησιμοποιεί έναν αξιόπιστο τρίτο φορέα ελέγχου ταυτότητας, γνωστό ως "κέντρο διανομής κλειδιών (KDC)", το οποίο αποτελείται από δύο λογικά ξεχωριστά μέρη: έναν διακομιστή ελέγχου ταυτότητας (AS) και έναν διακομιστή χορήγησης εισιτηρίων (TGS). Το Kerberos λειτουργεί με βάση "εισιτήρια" (που ονομάζονται εισιτήρια Kerberos) τα οποία χρησιμεύουν για την απόδειξη της ταυτότητας των χρηστών.
Βάση δεδομένων Kerberos: Κάθε οντότητα στο δίκτυο - είτε πρόκειται για πελάτη είτε για διακομιστή - μοιράζεται ένα μυστικό κλειδί γνωστό μόνο στον εαυτό της και στο KDC. Η γνώση αυτού του κλειδιού χρησιμεύει για την απόδειξη της ταυτότητας κάθε οντότητας. Για την επικοινωνία μεταξύ δύο οντοτήτων, το KDC παράγει ένα κλειδί συνόδου το οποίο μπορούν να χρησιμοποιήσουν για να ασφαλίσουν τις επικοινωνίες τους.
Ο όρος "διακομιστής Kerberos" αναφέρεται γενικά στον KDC. Για λόγους αξιοπιστίας, είναι δυνατόν να υπάρχουν εφεδρικοί KDC. Αυτοί αναφέρονται ως "δευτερεύοντες διακομιστές Kerberos". Όλοι οι σκλάβοι συγχρονίζουν τις βάσεις δεδομένων τους από τον κύριο διακομιστή Kerberos.
Ο όρος "διακομιστής εφαρμογών με χρήση Kerber" αναφέρεται γενικά σε προγράμματα με χρήση Kerber, με τα οποία οι πελάτες επικοινωνούν χρησιμοποιώντας εισιτήρια Kerberos για έλεγχο ταυτότητας. Για παράδειγμα, ο διακομιστής telnet Kerberos είναι ένα παράδειγμα ενός διακομιστή εφαρμογών που έχει χρησιμοποιηθεί με Kerberos . Ενώ ο όρος "Kerberized applications" χρησιμοποιείται για να αναφερθεί στην πλευρά του πελάτη του Kerberized application server , Για παράδειγμα, ο πελάτης Kerberos telnet είναι ένα παράδειγμα ενός Kerberized applications
Η ασφάλεια του πρωτοκόλλου εξαρτάται σε μεγάλο βαθμό από:
- Οι συμμετέχοντες διατηρούν χαλαρά συγχρονισμένο χρόνο.
- Μια βραχύβια δήλωση γνησιότητας: τα εισιτήρια Kerberos.
Απλοποιημένη περιγραφή του πρωτοκόλλου
Θα χρησιμοποιούνται οι ακόλουθες συντομογραφίες:
· AS = Διακομιστής ελέγχου ταυτότητας
· TGS = Διακομιστής χορήγησης εισιτηρίων
· SS ή Server = Εξυπηρετητής υπηρεσιών (χρήστης του διακομιστή που ζητά την υπηρεσία του, όπως ένας διακομιστής εκτυπώσεων, ένας διακομιστής αρχείων κ.λπ...)
· TGT = Ticket Granting Ticket (εισιτήριο Kerberos για το TGS. Προετοιμάζεται από το AS και στη συνέχεια χρησιμοποιείται για τη συνομιλία με το TGS).
Εν συντομία, ο πελάτης πιστοποιείται στο ΠΣ χρησιμοποιώντας ένα μακροπρόθεσμο κοινόχρηστο μυστικό και λαμβάνει ένα εισιτήριο από το ΠΣ. Αργότερα, ο πελάτης μπορεί να χρησιμοποιήσει αυτό το εισιτήριο για να λάβει πρόσθετα εισιτήρια για SS χρησιμοποιώντας το ίδιο κοινόχρηστο μυστικό. Αυτά τα εισιτήρια μπορούν να χρησιμοποιηθούν για την απόδειξη της αυθεντικοποίησης στον SS.
Το πρωτόκολλο με περισσότερες λεπτομέρειες
Βήματα σύνδεσης χρήστη με βάση τον πελάτη:
- Ένας χρήστης εισάγει ένα όνομα χρήστη και έναν κωδικό πρόσβασης στο μηχάνημα-πελάτη.
- Ο πελάτης εκτελεί μια μονόδρομη συνάρτηση (κυρίως μια συνάρτηση Hash) στον εισαγόμενο κωδικό πρόσβασης και αυτός γίνεται το μυστικό κλειδί του πελάτη/χρήστη.
Βήματα ελέγχου ταυτότητας πελάτη:
- Ο πελάτης στέλνει ένα μήνυμα καθαρού κειμένου στο ΠΣ ζητώντας υπηρεσίες εκ μέρους του χρήστη.
Δείγμα μηνύματος: "Ο χρήστης XYZ επιθυμεί να ζητήσει υπηρεσίες".
Σημείωση: Ούτε το μυστικό κλειδί ούτε ο κωδικός πρόσβασης αποστέλλονται στο ΠΣ. - Το ΠΣ ελέγχει αν ο πελάτης βρίσκεται στη βάση δεδομένων του. Εάν είναι, το ΠΣ στέλνει τα ακόλουθα δύο μηνύματα στον πελάτη:
- Μήνυμα Α: Κλειδί συνόδου πελάτη/TGS κρυπτογραφημένο με το μυστικό κλειδί του πελάτη/χρήστη.
- Μήνυμα Β: TGT (το οποίο περιλαμβάνει το αναγνωριστικό πελάτη, τη διεύθυνση δικτύου πελάτη, την περίοδο ισχύος του εισιτηρίου και το κλειδί συνόδου πελάτη/ΤGS) κρυπτογραφημένο με το μυστικό κλειδί του TGS.
- Μόλις ο πελάτης λάβει τα μηνύματα Α και Β, αποκρυπτογραφεί το μήνυμα Α για να λάβει το κλειδί συνόδου πελάτη/ΤGS. Αυτό το κλειδί συνόδου χρησιμοποιείται για περαιτέρω επικοινωνίες με το TGS. Σε αυτό το σημείο, ο πελάτης έχει αρκετές πληροφορίες για να πιστοποιήσει τον εαυτό του στο TGS.
Σημείωση: Ο πελάτης δεν μπορεί να αποκρυπτογραφήσει το μήνυμα B, καθώς είναι κρυπτογραφημένο με το μυστικό κλειδί του TGS.
Βήματα εξουσιοδότησης εξυπηρέτησης πελατών:
- Όταν ζητάει υπηρεσίες, ο πελάτης στέλνει τα ακόλουθα δύο μηνύματα στο TGS:
- Μήνυμα Γ: Αποτελείται από το TGT του μηνύματος Β και το αναγνωριστικό της αιτούμενης υπηρεσίας.
- Μήνυμα D: Αυθεντικοποιητής (που αποτελείται από το αναγνωριστικό πελάτη και τη χρονοσφραγίδα), κρυπτογραφημένο με το κλειδί συνόδου πελάτη/ΤGS.
- Μετά τη λήψη των μηνυμάτων C και D, το TGS ανακτά το μήνυμα B από το μήνυμα C. Αποκρυπτογραφεί το μήνυμα B χρησιμοποιώντας το μυστικό κλειδί του TGS. Αυτό του δίνει το κλειδί συνόδου πελάτη/ΤGS. Χρησιμοποιώντας αυτό το κλειδί, το TGS αποκρυπτογραφεί το μήνυμα D (Authenticator) και στέλνει τα ακόλουθα δύο μηνύματα στον πελάτη:
- Μήνυμα E: Εισιτήριο πελάτη προς διακομιστή (το οποίο περιλαμβάνει το αναγνωριστικό πελάτη, τη διεύθυνση δικτύου πελάτη, την περίοδο ισχύος και το κλειδί συνόδου πελάτη/διακομιστή) κρυπτογραφημένο με χρήση του μυστικού κλειδιού SS.
- Μήνυμα F: Κλειδί συνόδου πελάτη/διακομιστή κρυπτογραφημένο με το κλειδί συνόδου πελάτη/ΤGS.
Βήματα αιτήματος εξυπηρέτησης πελατών:
- Μετά τη λήψη των μηνυμάτων E και F από το TGS, ο πελάτης έχει αρκετές πληροφορίες για να πιστοποιηθεί στον SS. Ο πελάτης συνδέεται με τον SS και στέλνει τα ακόλουθα δύο μηνύματα:
- Μήνυμα E: από το προηγούμενο βήμα (το εισιτήριο μεταξύ πελάτη και διακομιστή, κρυπτογραφημένο με το μυστικό κλειδί SS).
- Μήνυμα G: ένας νέος Αυθεντικοποιητής, ο οποίος περιλαμβάνει το αναγνωριστικό πελάτη, τη χρονοσφραγίδα και είναι κρυπτογραφημένος χρησιμοποιώντας το κλειδί συνόδου πελάτη/διακομιστή.
- Ο SS αποκρυπτογραφεί το εισιτήριο χρησιμοποιώντας το δικό του μυστικό κλειδί για να ανακτήσει το κλειδί συνόδου πελάτη/διακομιστή. Χρησιμοποιώντας το κλειδί συνόδου, ο SS αποκρυπτογραφεί το Authenticator και στέλνει το ακόλουθο μήνυμα στον πελάτη για να επιβεβαιώσει την πραγματική του ταυτότητα και την προθυμία του να εξυπηρετήσει τον πελάτη:
- Μήνυμα H: η χρονοσφραγίδα που βρέθηκε στο Authenticator του πελάτη συν 1, κρυπτογραφημένη με χρήση του κλειδιού συνόδου πελάτη/διακομιστή.
- Ο πελάτης αποκρυπτογραφεί την επιβεβαίωση χρησιμοποιώντας το κλειδί συνόδου πελάτη/διακομιστή και ελέγχει αν η χρονοσφραγίδα έχει ενημερωθεί σωστά. Εάν ναι, τότε ο πελάτης μπορεί να εμπιστευτεί τον διακομιστή και μπορεί να αρχίσει να εκδίδει αιτήσεις υπηρεσιών προς τον διακομιστή.
- Ο διακομιστής παρέχει τις ζητούμενες υπηρεσίες στον πελάτη.