WK_6 - Robert Wójcik - Politechnika Wrocławska
Transkrypt
WK_6 - Robert Wójcik - Politechnika Wrocławska
Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: [email protected] google: Wójcik Robert Ochrona i poufność danych Wykład 6. 6. Wybrane protokoły kryptograficzne 6.1. Protokół ustanawiania klucza sesji – Diffie - Hellman 6.2. Protokół Needham-Schroeder symetryczny 6.3. Protokół Kerberos Protokół ustanawiania klucza sesji Diffie-Hellman W tym protokole klucz sesji przeznaczony do bezpiecznej komunikacji jest ustanawiany w trakcie wymiany komunikatów między podmiotami A i B. Publicznie znana jest duża liczba pierwsza p oraz generator g zbioru reszt Zp = {0, 1, …, p-1}. Każdy element x należący do Zp może być wyrażony jako x = gi mod p, gdzie 1 <= i <= p-1. 1. A wybiera kA, natomiast B wybiera kB, gdzie kA, KB <= p-2. Liczby kA i kB są trzymane w tajemnicy. 2. A przesyła podmiotowi B liczbę cA = gkA mod p, natomiast B przesyła podmiotowi A liczbę cB = gkB mod p. 3. Jako uzgodniony klucz przyjmowana jest liczba k = gkA*kB mod p. 4. Podmiot A oblicza k = (cB)kA mod p = (gkB mod p)kA mod p = ( (gkB)kA mod p ) mod p = gkB*kA mod p. 5. Podmiot B oblicza k = (cA)kB mod p = (gkA mod p)kB mod p = ( (gkA)kB mod p ) mod p = gkA*kB mod p. Protokół jest względnie bezpieczny, gdyż M podsłuchujący komunikaty przesyłane między A i B nie jest w stanie obliczyć liczbę k bezpośrednio, gdyż do wyliczenia k należy wyznaczyć kA z cA lub kB z cB, a jest to zadanie wyliczania dyskretnego logarytmu i nie są tu znane algorytmy efektywne, np. kA = logg (cA) mod p. Protokół Diffie-Hellmana nie jest jednak odporny na atak typu man in the middle. Podmiot M może ustalić wspólny klucz z A i wspólny klucz z B. Dzięki temu może przechwytywać wiadomości przesyłane od A do B, modyfikować je, a następnie odsyłać do B. A --- kAM --- M --- kMB --- B. 2 Są udoskonalenia protokołu Diffie-Hellman, które uodparniają go na ataki aktywne, np. protokół STS (Station-to-Station), w którym liczby cA i cB są podpisywane cyfrowo przez podmioty A i B. 3