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:
    - Użytkownik wysyła serwerowi uwierzytelniającemu swój identyfikator i nazwę serwera z którego chce skorzystać. 
 
    - Serwer uwierzytelniający tworzy bilet =[identyfikator użytkownika, identyfikator usługi adres sieciowy, stempel czasowy, czas  życia biletu,    klucz sesji ]#hasło usługi, wraz z kluczem sesji koduje go hasłem użytkownika i wysyła użytkownikowi. 
 
    - Użytkownik znając hasło dekoduje przesyłkę i otrzymuje bilet oraz klucz sesji. 
 
    - Za każdym razem kiedy użytkownik chce potwierdzić swoją autentyczość przed serwerem generuje poświadczenie=[identyfikator użytkownika, stempel czasowy, adres sieciowy]#klucz sesji i wysyła je wraz z biletem do serwera.
 
    - Serwer znając swoje hasło dekoduje bilet, sprawdza jego poprawności i z biletu wyciąga klucz sesji. Za pomocą klucza sesji dekoduje poświadczenie i na tej podstawie sprawdza autentyczność użytkownika.
   
Powyższy mechanizm łatwo można rozszerzyć tak żeby użytkownik miał możliwość
sprawdzenia autentyczności serwera ( zabezpieczenie przed atakiem wykorzystującym
fałszywy serwer ). Wystarczy że po wysłaniu serwerowi biletu i poświadczenia
użytkownik zarząda żeby serwer sam wysłał mu potwierdzenie. Jeśli serwer nie będzie prawdziwym serwerem nie
będzie potrafił wygenerować poświadczenia.