Rozwiązanie trzecie - wprowadzamy klucz sesji
bilet=[id użytkownika, id usługi, adres sieciowy, stempel czasowy, czas życia biletu, klucz sesji]#hasło usługi
poświadczenie=[identyfikator użytkownika, stempel czasowy, adres sieciowy]#klucz sesji
Opis rozwiązania:
Po zgłoszeniu się użytkownika do serwera uwierzytelniającego ten tworzy
unikalny klucz sesji do komunikacji użytkownika z usługą.
Potrzebujemy sposobu na bezpieczne dostarczenie klucza sesji do użytkownika i serwera usługi. Do klienta klucz sesji trafia zaszyfrowany hasłem klienta. Daje nam
to pewność że nikt poza klientem nie otrzyma w ten sposób klucza sesji.
Do serwera klucz sesji trafia wraz z biletem. Ponieważ dane zawarte w bilecie zaszyfrowane są hasłem serwera nikt poza serwerem nie może ich
odczytać. Mamy już bezpieczny sposób przesyłania klucza sesji. Potrzebujemy jeszcze sposobu przepytywania w celu potwierdzenia tożsamości.
Za każdym razem kiedy klient chce potwierdzić swoją tożsamość przesyła serwerowi bilet i poświadczenie(authenticator).
Poświadczenie=[identyfikator użytkownika, stempel czasowy, adres sieciowy]#klucz sesji
Poświadczenia są jednorazowe. Ich jednorazowość gwarantować ma krótki czas ważności poświadczenia - kilka minut. Klient znając klucz sesji może wygenerować dowolną ilość poświadczeń.