Rozwiązanie trzecie - wprowadzamy klucz sesji
Wyobraźmy sobie że Sam(klient) i Frodo(serwer) posiadają wiedzę o pewnym magicznym przedmiocie(nie
jest to magiczny pierścień). Tego przedmiotu nie widział nikt poza nimi i
czarodziejem Gandalfem który go stworzył. Sam i Frodo mogą nawzajem zadawać
sobie różne pytania dotyczące magicznego przedmiotu. Pytań tych jest nieskończenie
wiele.
Jeśli do Frodo zgłosi się ktoś podający się za Sama, Frodo zada mu pytanie o magiczny przedmiot. Jeśli przybysz udzieli poprawnej odpowiedzi Frodo
będzie wiedział że ma doczynienia z prawdziwym Samem. Jeśli nie będzie znał
odpowiedzi Frodo będzie wiedział że najprwdopodobniej ma doczynienia ze sługą Saurona. Ten
mechanizm możemy trochę zmodyfikować. Przybysz zgłaszający się do Frodo
sam zadaje pytanie o magiczny przedmiot i udziela na nie odpowiedzi. Jeśli
pytanie i odpowiedź okażą się prawidłowe Frodo wie że przybysz jest Samem.
Choć wydaje się to mniej naturalne to dokładnie taki mechanizm użyty jest
w systemie Kerberos.
Teraz wyobraźmy sobie że Gandalf to Kerberos który tworzy magiczne
przedmioty czyli klucze sesji. Ponieważ w świecie komputerów wszystko
jest reprezentowane przez liczby, jest nią również klucz sesji. Zadawanie
pytań polega na szyfrowaniu za pomocą klucza sesji. Odpowiadanie na pytania
polega na umiejętności ich deszyfrowania. Jeśli użytkownik(Sam) sam chce
potwierdzić swoją autentyczność to koduje za pomocą klucza sesji swój identyfikator i aktualny czas i wysyła do serwera(Frodo). Taki
komunikat nazywamy poświadczeniem. Serwer znając klucz sesji może
rozkodować poświadczenie i sprawdzić czy rzeczywiście nadeszło od użytkownika
i czy czas w poświadczeniu spełnia pewne warunki.
Jeśli poświadczenie jest w porządku serwer wie że otrzymał je od prawdziwego
użytkownika.