Algorytm Diffiego Hellmana (DH) to metoda bezpiecznej wymiany kluczy kryptograficznych za pośrednictwem publicznego kanału komunikacyjnego. Klucze nie są faktycznie wymieniane – są wspólnie wyprowadzane. Jego nazwa pochodzi od ich wynalazców Whitfielda Diffie i Martina Hellmana.
Jeśli Anna i Wojtek chcą się ze sobą komunikować, najpierw ustalają między sobą dużą liczbę pierwszą p i generator (lub podstawę) g (gdzie 0 < g < p).
Anna wybiera tajną liczbę całkowitą a (jej klucz prywatny), a następnie oblicza g^a mod p (czyli jej klucz publiczny). Wojtek wybiera swój klucz prywatny b i oblicza swój klucz publiczny w ten sam sposób.
Wojtek zna b i g^a, więc może obliczyć (g^a)^b mod p = g^ab mod p. Dlatego zarówno Anna, jak i Wojtek znają wspólny sekret g^ab mod p. Magda która jest jako podsłuchująca i która podsłuchiwała komunikację, zna p, g, klucz publiczny Anny (g^a mod p) i klucz publiczny Wojtka (g^b mod p). Nie jest w stanie obliczyć wspólnego sekretu z tych wartości.
W trybie statyczno-statycznym zarówno Anna, jak i Wojtek zachowują swoje klucze prywatne/publiczne w wielu komunikatach. Dlatego wynikowy wspólny sekret będzie za każdym razem taki sam. W trybie efemeryczno-statycznym jedna ze stron będzie generować za każdym razem nowy klucz prywatny/publiczny. Dzięki czemu zostanie wygenerowany nowy wspólny sekret.
CZY RSA UŻYWA ALGORYTMU DIFFIEGO HELLMANA?
Zarówno RSA, jak i Diffie Hellman (DH) to protokoły szyfrowania z kluczem publicznym używane do bezpiecznej wymiany kluczy. Są to niezależne protokoły, które nie polegają na sobie nawzajem.
CZYM JEST EFEMERYCZNY DIFFIE HELLMAN?
Efemeryczny Diffie-Hellman używa tymczasowych kluczy publicznych. Każda instancja lub uruchomienie protokołu używa innego klucza publicznego. Autentyczność tymczasowego klucza serwera można zweryfikować, sprawdzając podpis na kluczu. Ponieważ klucze publiczne są tymczasowe, naruszenie długoterminowego klucza podpisywania serwera nie zagraża prywatności poprzednich sesji. Jest to znane jako Perfect Forward Secrecy (PFS).
CZY DIFFIE HELLMAN JEST ALGORYTMEM SYMETRYCZNYM?
Diffie Hellman używa pary kluczy prywatny-publiczny do ustanowienia wspólnego sekretu – zwykle klucza symetrycznego. DH nie jest algorytmem symetrycznym – jest to algorytm asymetryczny używany do ustanowienia wspólnego sekretu dla algorytmu z kluczem symetrycznym.
CO TO JEST NIEUWIERZYTELNIONY PROTOKÓŁ NEGOCJACJI KLUCZY?
Protokoły uzgadniania kluczy uwierzytelnionych wymieniają klucz sesji w protokole wymiany kluczy, który również uwierzytelnia tożsamość stron zaangażowanych w wymianę kluczy. Anonimowa (lub nieuwierzytelniona) wymiana kluczy, taka jak Diffie-Hellman, nie zapewnia uwierzytelnienia stron, a zatem jest podatna na ataki typu man-in-the-middle.
CZY ALGORYTM DIFFIEGO-HELLMANA JEST NADAL UŻYWANY?
DH jest nadal w użyciu, ale należy podjąć pewne środki ostrożności w odniesieniu do jego elementów konstrukcyjnych. Aby zapobiec zagrożeniom typu man-in-the-middle dodatkowe uwierzytelnianie musi być zaimplementowane do protokołu DH.
DH jest uważany za bezpieczny przed podsłuchem, jeśli skończona cykliczna grupa G i generator g są odpowiednio dobrane. W szczególności grupa G musi być duża, zwłaszcza jeśli ta sama grupa jest używana do dużego natężenia ruchu. Przy wystarczająco dużej grupie G, rozwiązanie problemu Diffiego-Hellmana, aby uzyskać g^ab uważane jest za trudne.
Sama wymiana Diffie-Hellman nie zapewnia uwierzytelnienia komunikujących się stron i dlatego jest podatna na atak typu man-in-the-middle. Aktywny atakujący wykonujący atak typu man-in-the-middle może ustanowić dwie różne wymiany kluczy, jedną z Anną, a drugą z Wojtkiem, skutecznie podszywając się pod Annę do Wojtka i odwrotnie, umożliwiając jej odszyfrowanie, a następnie ponowne zaszyfrowanie wiadomości przekazywanych między nimi.
CO TO JEST WYKRES TAJNOŚCI?
Wykres tajności służy do analizy, kto wie co na każdym etapie algorytmu wymiany kluczy.