Rozwiązanie czwarte - wprowadzamy serwer przyznawania biletów
bilet TGS=[id użytkownika, id TGS, adres sieciowy, stempel czasowy, czas życia, klucz sesji z TGS]#hasło TGS
poświadczenie TGS=[identyfikator użytkownika, stempel czasowy, adres sieciowy]#klucz sesji z TGS
bilet usługa=[id użytkownika, id usługi, adres sieciowy, stempel czasowy, czas życia, klucz sesji z usługą]#hasło usługi
poświadczenie usługa=[identyfikator użytkownika, stempel czasowy, adres sieciowy]#klucz sesji z usługą
Opis rozwiązania:
Usługa uwierzytelniania pełni dwie funkcje:
- Identyfikacji użytkownika - szyfrując hasłem użytkownika zapewnia
że skontaktował się z nią prawdziwy użytkownik. Jeśli użytkownik był fałszywy
to i tak zaszyfrowany hasłem użytkownika komunikat do niczego mu się nie
przyda
- Wystawiania biletów i generowania kluczy
W dotychczasowym rozwiązaniu obie te funkcje były połączone. Teraz
usługę uwierzytelniania dzielimy na dwie składowe:
- Authentication server (AS) - odpowiada za potwierdzenie
tożsamości użytkownika, raz na sesję użytkownik kontaktuje się z AS i otrzymuje
bilet do TGS i klucz sesji do TGS zakodowany hasłem użytkownika
- Ticket-granting server (TGS) - użytkownik chcąc otrzymać
bilet i klucz sesji do usługi wysyła bilet dostępu do TGS, poświadczenie
do TGS, swój identyfikator i identyfikator usługi. TGS sprawdza poprawność
biletu i nadesłanych danych. Jeśli wszystko się zgadza tworzy i wysyła użytkownikowi
bilet i klucz sesji do usługi (klucz sesji do usługi zakodowany jest kluczem
sesji z TGS). Użytkownik kontaktuje się z TGS wielokrotnie, raz dla każdej
usługi. Rolę hasła przejmuje bilet i klucz sesji do TGS.