Czym jest wymiana kluczy Diffie – Hellman i jak działa?

Czym jest wymiana kluczy Diffie – Hellman i jak działa


Wymiana kluczy Diffie-Hellmana była jeden z najważniejszych osiągnięć w kryptografii klucza publicznego i wciąż jest często wdrażany w szeregu różnych dzisiejszych protokołów bezpieczeństwa.

Pozwala dwóm stronom, które wcześniej się nie spotkały, bezpiecznie ustalić klucz, którego mogą użyć do zabezpieczenia komunikacji. W tym artykule wyjaśnimy, do czego służy, jak działa krok po kroku, jego różne odmiany, a także względy bezpieczeństwa, które należy zanotować w celu bezpiecznego wdrożenia.

Co to jest wymiana kluczy Diffie-Hellman?

Wymiana kluczy Diffie-Hellmana była pierwsza szeroko stosowana metoda bezpiecznego opracowywania i wymiany kluczy w niepewnym kanale.

W powyższych terminach może to nie wydawać się tak ekscytujące lub przełomowe, dlatego podajmy przykład, który wyjaśnia, dlaczego wymiana kluczy Diffie-Hellmana była tak ważnym kamieniem milowym w świecie kryptografii i dlaczego jest tak często używana dzisiaj.

Załóżmy, że jesteś ściśle tajnym szpiegiem i musisz przesłać kilka ważnych informacji do swojej kwatery głównej. Jak powstrzymasz swoich wrogów przed dotarciem do wiadomości??

Najczęstszym rozwiązaniem byłoby zaszyfrowanie wiadomości za pomocą kodu. Najprostszym sposobem jest ustalenie dowolnego rodzaju kodu i klucza, którego planujesz użyć wcześniej, lub wykonanie tego za pomocą bezpiecznego kanału komunikacji.

Powiedzmy, że jesteś wyjątkowo złym szpiegiem, a ty i Twoja siedziba decydujecie się użyć słabego szyfru shift-shift do zakodowania wiadomości. W tym kodzie każde „a” staje się „b”, każde „b” staje się „c”, każde „c” staje się „d” i tak dalej, aż do „z” staje się „a”.

Pod tym szyfrem zmiany wiadomość „Chodźmy na obiad” zmienia się w „Mfu hfu ejoofs”. Na szczęście w naszej hipotetycznej sytuacji twoi przeciwnicy są tak samo niekompetentni jak ty i nie są w stanie złamać tak prostego kodu, który uniemożliwia im dostęp do treści wiadomości.

Ale co się stanie, jeśli wcześniej nie będziesz mógł ustalić kodu z odbiorcą?

Załóżmy, że chcesz komunikować się z szpiegiem z sojuszniczego narodu, którego nigdy wcześniej nie spotkałeś. Nie masz bezpiecznego kanału, z którym możesz z nimi rozmawiać. Jeśli nie zaszyfrujesz swojej wiadomości, każdy przeciwnik, który ją przejmie, będzie mógł przeczytać treść. Jeśli zaszyfrujesz go bez podania sojusznikowi kodu, wróg nie będzie w stanie go odczytać, ale sojusznik też nie będzie.

Ten problem był jednym z największych problemów w kryptografii do lat 70. XX wieku:

Jak możesz bezpiecznie wymieniać informacje z kimś, jeśli nie miałeś okazji udostępnić klucza z wyprzedzeniem?

Wymiana kluczy Diffie-Hellmana była pierwszym publicznie stosowanym mechanizmem rozwiązywania tego problemu. Algorytm pozwala tym, którzy nigdy wcześniej się nie spotkali, bezpiecznie utworzyć wspólny klucz, nawet przez niepewny kanał, który mogą monitorować przeciwnicy.

Historia wymiany kluczy Diffie-Hellman

Wymiana kluczy Diffie-Hellman ma swoje korzenie w latach siedemdziesiątych. Chociaż dziedzina kryptografii rozwinęła się znacznie na początku XX wieku, postępy te koncentrowały się głównie w obszarze kryptografii z kluczem symetrycznym.

Algorytmy klucza publicznego pojawiły się dopiero w 1976 r., Kiedy Whitfield Diffie i Martin Hellman opublikowali swój artykuł, Nowe kierunki w kryptografii. Współpraca nakreśliła mechanizmy nowego systemu, który stał się znany jako Wymiana kluczy Diffie-Hellman.

Praca została częściowo zainspirowana wcześniejszymi opracowaniami Ralpha Merkle'a. Tak zwany Puzzle Merkle polega na tym, że jedna ze stron tworzy i przesyła szereg zagadek kryptograficznych do drugiej. Te zagadki wymagałyby umiarkowanej ilości zasobów obliczeniowych do rozwiązania.

Odbiorca losowo wybiera jedną łamigłówkę do rozwiązania, a następnie wkłada konieczny wysiłek, aby ją ukończyć. Po rozwiązaniu zagadki odbiorca otrzymuje identyfikator i klucz sesji. Odbiorca następnie przesyła identyfikator z powrotem do pierwotnego nadawcy, który informuje nadawcę, która zagadka została rozwiązana.

Ponieważ pierwotny nadawca stworzył łamigłówki, identyfikator informuje ich o kluczu sesji odkrytym przez odbiorcę, a obie strony mogą używać tego klucza do bezpieczniejszej komunikacji. Jeśli atakujący podsłuchuje interakcję, będzie miał dostęp do wszystkich łamigłówek, a także do identyfikatora, który odbiorca przesyła do pierwotnego nadawcy.

Identyfikator nie mówi atakującemu, który klucz sesji jest używany, więc najlepszym sposobem na odszyfrowanie informacji jest rozwiązuj wszystkie zagadki, aby odkryć właściwy klucz sesji. Ponieważ atakujący będzie musiał rozwiązać średnio połowę zagadek, odkrycie klucza jest dla nich znacznie trudniejsze niż dla odbiorcy.

Takie podejście zapewnia większe bezpieczeństwo, ale dalekie jest od idealnego rozwiązania. Wymiana kluczy Diffie-Hellmana wykorzystała niektóre z tych pomysłów i uczyniła je bardziej złożonymi w celu stworzenia bezpiecznej metody kryptografii klucza publicznego.

Chociaż stał się znany jako wymiana kluczy Diffie-Hellman, Martin Hellman zaproponował, aby algorytm nazywał się wymianą kluczy Diffie-Hellman-Merkle, aby odzwierciedlić pracę, którą Ralph Merkle włożył w kryptografię klucza publicznego.

Publicznie sądzono, że Merkle, Hellman i Diffie byli pierwszymi osobami, które opracowały kryptografię klucza publicznego do 1997 r., Kiedy to rząd brytyjski odtajnił pracę wykonaną na początku lat siedemdziesiątych przez James Ellis, Clifford Cox i Malcolm Williamson.

Okazuje się, że trio opracowało pierwszy schemat szyfrowania klucza publicznego między 1969 a 1973 rokiem, ale ich praca była tajna przez dwie dekady. Przeprowadzono go w siedzibie rządowej centrali komunikacyjnej (GCHQ), brytyjskiej agencji wywiadowczej.

Ich odkryciem był właściwie algorytm RSA, więc Diffie, Hellman i Merkle nadal byli pierwszymi, którzy opracowali wymianę kluczy Diffie-Hellman, ale nie byli już pierwszymi wynalazcami kryptografii z kluczem publicznym.

Gdzie używana jest wymiana kluczy Diffie-Hellman?

Głównym celem wymiany kluczy Diffie-Hellmana jest bezpiecznie opracuj wspólne sekrety, których można użyć do uzyskania kluczy. Klucze te mogą być następnie używane z algorytmami klucza symetrycznego do przesyłania informacji w sposób chroniony. Algorytmy symetryczne są zwykle używane do szyfrowania dużej ilości danych, ponieważ są bardziej wydajne niż algorytmy klucza publicznego.

Technicznie rzecz biorąc, wymiana kluczy Diffie-Hellmana może być wykorzystana do ustalenia kluczy publicznych i prywatnych. Jednak w praktyce zwykle stosuje się RSA. Wynika to z faktu, że algorytm RSA może również podpisywać certyfikaty klucza publicznego, podczas gdy wymiana kluczy Diffie-Hellmana nie jest.

Algorytm ElGamal, który był intensywnie wykorzystywany w PGP, oparty jest na wymianie kluczy Diffie-Hellmana, więc każdy protokół, który go używa, skutecznie implementuje rodzaj Diffie-Hellmana.

Jako jedna z najczęstszych metod bezpiecznego rozprowadzania kluczy, wymiana kluczy Diffie-Hellmana jest często implementowane w protokołach bezpieczeństwa, takich jak TLS, IPsec, SSH, PGP i wiele innych. To czyni go integralną częścią naszej bezpiecznej komunikacji.

W ramach tych protokołów często używana jest wymiana kluczy Diffie-Hellman, aby zabezpieczyć połączenie ze stroną internetową, uzyskać zdalny dostęp do innego komputera i wysłać zaszyfrowane wiadomości e-mail

Jak działa wymiana kluczy Diffie-Hellmana?

Wymiana kluczy Diffie-Hellmana jest złożona i może być trudna do zrozumienia, jak działa. Wykorzystuje bardzo duże liczby i dużo matematyki, coś, czego wielu z nas wciąż boi się tych długich i nudnych lekcji w szkole średniej.

Żeby było trochę łatwiej zrozumieć, zaczniemy od wyjaśnienia wymiany kluczy Diffie-Hellmana z analogią. Gdy masz ogólny obraz tego, jak to działa, przejdziemy do bardziej technicznego opisu podstawowych procesów.

Najlepszą analogią do schematu Diffie-Hellmana jest wymyślenie dwie osoby mieszające farbę. Użyjmy standardu kryptografii i powiedzmy, że ich imiona to Alice i Bob. Oboje zgadzają się na losowy kolor na początek. Powiedzmy, że wysyłają sobie wiadomość i decydują się na kolor żółty jako wspólny kolor, tak jak na poniższym schemacie:

diffie-hellman-2

zobacz swój własny tajny kolor. Nie mówią drugiej stronie o swoim wyborze. Powiedzmy, że Alice wybiera czerwony, podczas gdy Bob wybiera a lekko zielonkawy niebieski.

Następnym krokiem jest, aby zarówno Alice, jak i Bob zmieszali swój sekretny kolor (czerwony dla Alicji, zielonkawo-niebieski dla Boba) z żółtym, który wspólnie uzgodnili. Zgodnie ze schematem Alice kończy się na mieszanka pomarańczy, podczas gdy wynik Boba to głęboki niebieski.

Po zakończeniu miksowania przesyłają wynik drugiej stronie. Alice otrzymuje głębszy niebieski kolor, podczas Bob otrzymuje pomarańczową farbę.

Po otrzymaniu mieszanego wyniku od partnera, dodają do niego swój tajny kolor. Alice bierze głębszy niebieski kolor i dodaje swoją sekretną czerwoną farbę, podczas Bob dodaje swój tajny zielonkawo-niebieski do pomarańczowej mieszanki, którą właśnie otrzymał.

Wynik? Oba mają ten sam kolor, co w tym przypadku jest obrzydliwie brązowe. Być może nie jest to kolor, który chciałbyś pomalować w swoim salonie, ale mimo to jest to wspólny kolor. Ten wspólny kolor jest określany jako wspólny sekret.

Krytyczną częścią wymiany kluczy Diffie-Hellmana jest to, że obie strony osiągają ten sam wynik, bez konieczności wysyłania całej wspólnej tajemnicy przez kanał komunikacji. Wybór wspólnego koloru, ich własnych tajnych kolorów, wymiana mieszanki, a następnie dodanie własnego koloru raz jeszcze, pozwala obu stronom dojść do tego samego wspólnego sekretu bez konieczności wysyłania całej informacji.

Jeśli atakujący nasłuchuje wymiany, wszystko, co mogą uzyskać dostęp, to wspólny żółty kolor, od którego Alice i Bob zaczynają, a także mieszane kolory, które są wymieniane. Ponieważ tak naprawdę robi się to za pomocą ogromnych liczb zamiast farby, te informacje nie wystarczą, aby atak mógł rozpoznać początkowy tajny kolor lub wspólny sekret (technicznie można obliczyć wspólny sekret na podstawie tych informacji, ale w bezpiecznej implementacji wymiany kluczy Diffie-Hellmana zajęłoby to niewykonalną ilość czasu i zasobów obliczeniowych).

Ta struktura wymiany kluczy Diffie-Hellmana czyni ją tak przydatną. Pozwala obu stronom komunikować się za pośrednictwem potencjalnie niebezpiecznego połączenia i nadal wymyśla wspólny sekret, którego mogą używać do tworzenia kluczy szyfrujących do swojej przyszłej komunikacji. Nie ma znaczenia, czy ktoś atakujący nasłuchuje, ponieważ cały wspólny sekret nigdy nie jest wysyłany przez połączenie.

Szczegóły techniczne wymiany kluczy Diffie-Hellman

Czas na matematykę…

Nie martw się, zwolnimy czas i postaramy się, aby cały proces był jak najłatwiejszy do zrozumienia. Wynika to z podobnej przesłanki, jak pokazano powyżej, ale zamiast mieszać i wysyłać kolory, schemat Diffie-Hellmana faktycznie wykonuje obliczenia na podstawie wyjątkowo dużych liczb pierwszych, a następnie przesyła je w poprzek.

Aby zapewnić bezpieczeństwo, zaleca się, aby główny (p) ma co najmniej 2048 bitów, który jest binarnym odpowiednikiem liczby dziesiętnej o tym rozmiarze:

415368757628736598425938247569843765827634879128375827365928736 84273684728938572983759283475934875938475928475928739587249587 29873958729835792875982795837529876348273685729843579348795827 93857928739548772397592837592478593867045986792384737826735267 3547623568734869386945673456827659498063849024875809603947902 7945982730187439759284620950293759287049502938058920983945872 0948602984912837502948019371092480193581037995810937501938507913 95710937597019385089103951073058710393701934701938091803984091804 98109380198501398401983509183501983091079180395810395190395180935 8109385019840193580193840198340918093851098309180019

Aby zapobiec eksplozji głowy, wyjaśnimy to znacznie mniejszymi liczbami. Miej świadomość, że wymiana kluczy Diffie-Hellmana byłaby niepewna, gdyby użyła liczb tak małych jak te w naszym przykładzie. Używamy tylko tak małych liczb, aby przedstawić koncepcję w prostszy sposób.

W najbardziej podstawowej formie wymiany kluczy Diffie-Hellmana, Alice i Bob zaczynają od wzajemnego wyboru dwóch liczb na początek, w przeciwieństwie do pojedynczej zwykłej farby w powyższym przykładzie. To są moduł (p) i podstawa (sol).

W praktyce, moduł (p) jest bardzo dużą liczbą pierwszą, podczas baza (sol) jest stosunkowo niewielki, aby uprościć obliczenia. Baza (sol) pochodzi z grupy cyklicznej (sol), który jest zwykle generowany na długo przed innymi etapami.

W naszym przykładzie załóżmy, że moduł (p) jest 17, podczas gdy baza (sol) jest 4.

Gdy wspólnie zdecydują się na te liczby, Alice decyduje się na tajny numer (za) dla siebie, podczas gdy Bob wybiera własny tajny numer (b). Powiedzmy, że wybierają:

a = 3

b = 6

Następnie Alice wykonuje następujące obliczenia, aby dać jej numer, który wyśle ​​do Boba:

A = ga mod p

W powyższym obliczeniu, mod oznacza operację modulo. Są to w gruncie rzeczy obliczenia mające na celu ustalenie reszty po podzieleniu lewej strony przez prawą. Jako przykład:

15 mod 4 = 3

Jeśli rozumiesz, jak działają operacje modulo, możesz wykonać je samodzielnie w poniższych obliczeniach, w przeciwnym razie możesz użyć kalkulatora online.

Dodajmy zatem nasze liczby do wzoru:

A = 43 mod 17

A = 64 mod 17

A = 13

Gdy robimy to samo dla Boba, otrzymujemy:

B = 46 mod 17

B = 4096 mod 17

B = 16

Alice następnie wysyła swój wynik (ZA) do Boba, podczas gdy Bob wysyła swoją figurkę (b) do Alice. Alice oblicza następnie wspólny sekret (s) przy użyciu numeru, który otrzymała od Boba (b) i jej tajny numer (za), przy użyciu następującego wzoru:

s = Ba mod p

s = 163 mod 17

s = 4096 mod 17

s = 16

Następnie Bob wykonuje to samo obliczenie, ale z numerem, który wysłała mu Alice (ZA), a także jego własny tajny numer (b):

s = ZAb mod p

s = 136 mod 17

s = 4,826,809 mod 17

s = 16

Jak widać, obie strony zakończyły się tym samym wynikiem s, 16. To wspólny sekret, który znają tylko Alice i Bob. Mogą następnie użyć tego do skonfigurowania klucza do szyfrowania symetrycznego, umożliwiając im bezpieczne przesyłanie informacji między sobą w taki sposób, że tylko oni mogą uzyskać do nich dostęp.

Zauważ, że chociaż b i s są takie same w powyższym przykładzie, to tylko zbieg okoliczności oparty na małych liczbach wybranych dla tej ilustracji. Zwykle wartości te nie byłyby takie same w rzeczywistej implementacji wymiany kluczy Diffie-Hellmana.

Mimo że wiele z powyższych danych jest przesyłanych kanałem w postaci czystego tekstu (p, g, A i b) i mogą być odczytane przez potencjalnych napastników, wspólny sekret (s) nigdy nie jest przesyłany. Wyliczenie wspólnego sekretu nie byłoby praktyczne dla osoby atakującej (s) lub jeden z tajnych numerów (za i b) z informacji przesyłanych w postaci zwykłego tekstu.

Oczywiście zakłada to, że wymiana kluczy Diffie-Hellmana jest poprawnie zaimplementowana i stosowane są wystarczająco duże liczby. Dopóki te przepisy są przestrzegane, wymiana kluczy Diffie-Hellmana jest uważana za bezpieczny sposób na ustanowienie wspólnej tajemnicy, która może być wykorzystana do zabezpieczenia przyszłej komunikacji.

Ustanawianie klucza wspólnego między wieloma stronami

Wymiana kluczy Diffie-Hellmana może być również wykorzystana do skonfigurowania klucza wspólnego z większą liczbą uczestników. Działa w ten sam sposób, z tym że każda ze stron musi dodać kolejne rundy obliczeń, aby dodać swój tajny numer i otrzymać ten sam wspólny sekret.

Podobnie jak w dwupartyjnej wersji wymiany kluczy Diffie-Hellmana, niektóre części informacji są przesyłane niezabezpieczonymi kanałami, ale niewystarczająco, aby atakujący mógł obliczyć wspólny sekret.

Dlaczego wymiana kluczy Diffie-Hellman jest bezpieczna??

Na poziomie matematycznym wymiana kluczy Diffie-Hellmana opiera się na funkcjach jednokierunkowych stanowiących podstawę jego bezpieczeństwa. Są to obliczenia, które są proste do wykonania w jedną stronę, ale o wiele trudniejsze do obliczenia w odwrotnej kolejności.

Mówiąc dokładniej, opiera się on na problemie Diffie-Hellmana, który zakłada, że ​​przy odpowiednich parametrach obliczenie jest niemożliwe solab z oddzielnych wartości sol, solza i solb. Obecnie nie ma publicznego sposobu na łatwe znalezienie solab z innych wartości, dlatego wymiana kluczy Diffie-Hellmana jest uważana za bezpieczną, mimo że atakujący mogą przechwycić wartości p, sol, ZA, i b.

Poświadczenie & wymiana kluczy Diffie-Hellman

W prawdziwym świecie wymiana kluczy Diffie-Hellmana jest rzadko używana samodzielnie. Głównym tego powodem jest to nie zapewnia uwierzytelnienia, co naraża użytkowników na ataki typu man-in-the-middle.

Te ataki mogą mieć miejsce, gdy wymiana kluczy Diffie-Hellmana jest realizowana samodzielnie, ponieważ nie ma możliwości sprawdzenia, czy druga strona w związku jest naprawdę tym, za kogo się podaje. Bez jakiejkolwiek formy uwierzytelnienia, użytkownicy mogą faktycznie łączyć się z atakującymi kiedy myślą, że komunikują się z zaufaną stroną.

Z tego powodu wymiana kluczy Diffie-Hellmana jest generalnie realizowana wraz z pewnymi sposobami uwierzytelnienia. Często wiąże się to z użyciem certyfikatów cyfrowych i algorytmu klucza publicznego, takiego jak RSA, do weryfikacji tożsamości każdej ze stron.

Warianty wymiany kluczy Diffie-Hellmana

Wymiana kluczy Diffie-Hellmana może być realizowana na wiele różnych sposobów, a także stanowi podstawę dla kilku innych algorytmów. Niektóre z tych implementacji zapewniają autoryzację, podczas gdy inne mają różne funkcje kryptograficzne, takie jak idealna tajemnica przekazywania.

Krzywa eliptyczna Diffie-Hellman

Krzywa eliptyczna Diffie-Hellman wykorzystuje algebraiczną strukturę krzywych eliptycznych, aby umożliwić swoim implementacjom osiągnięcie podobnego poziomu bezpieczeństwa przy mniejszym rozmiarze klucza. 224-bitowy klucz krzywej eliptycznej zapewnia taki sam poziom bezpieczeństwa jak 2048-bitowy klucz RSA. Może to zwiększyć efektywność wymiany i zmniejszyć wymagania dotyczące przechowywania.

Oprócz mniejszej długości klucza i faktu, że opiera się on na właściwościach krzywych eliptycznych, krzywa eliptyczna Diffie-Hellman działa podobnie jak standardowa wymiana kluczy Diffie-Hellmana.

TLS   

TLS, który jest protokołem używanym do zabezpieczenia dużej części Internetu, może korzystać z wymiany Diffie-Hellmana na trzy różne sposoby: anonimowy, statyczny i efemeryczny. W praktyce należy stosować tylko efemeryczny Diffie-Hellman, ponieważ inne opcje mają problemy z bezpieczeństwem.

  • Anonimowy Diffie-Hellman - Ta wersja wymiany kluczy Diffie-Hellman nie korzysta z żadnego uwierzytelnienia, co naraża ją na ataki typu man-in-the-middle. Nie należy go używać ani implementować.
  • Statyczny Diffie-Hellman - Static Diffie-Hellman używa certyfikatów do uwierzytelnienia serwera. Domyślnie nie uwierzytelnia klienta ani nie zapewnia tajemnicy przekazywania.
  • Efemeryczny Diffie-Hellman - Jest to uważane za najbezpieczniejsze wdrożenie, ponieważ zapewnia idealną tajemnicę do przodu. Zazwyczaj łączy się go z algorytmem takim jak DSA lub RSA w celu uwierzytelnienia jednej lub obu stron w połączeniu. Efemeryczny Diffie-Hellman używa różnych par kluczy przy każdym uruchomieniu protokołu. Daje to idealnej tajemnicy połączenia, ponieważ nawet jeśli klucz zostanie naruszony w przyszłości, nie można go użyć do odszyfrowania wszystkich poprzednich wiadomości.

ElGamal

ElGamal to algorytm klucza publicznego zbudowany na wymianie kluczy Diffie-Hellman. Podobnie jak Diffie-Hellman, nie zawiera żadnych przepisów dotyczących samodzielnego uwierzytelniania i ogólnie jest w tym celu łączony z innymi mechanizmami.

ElGamal był używany głównie w PGP, GNU Privacy Guard i innych systemach, ponieważ jego główny rywal, RSA, został opatentowany. Patent RSA wygasł w 2000 r., Co pozwoliło na jego swobodne wdrożenie po tej dacie. Od tego czasu ElGamal nie był wdrażany tak często.

STS

Protokół Station-to-Station (STS) jest również oparty na wymianie kluczy Diffie-Hellman. To kolejny kluczowy program porozumień, który zapewnia ochronę przed atakami typu man-the-the-middle, a także idealną tajemnicę do przodu.

Wymaga, aby obie strony w połączeniu posiadały już parę kluczy, która służy do uwierzytelniania każdej ze stron. Jeśli strony nie są sobie znane, można użyć certyfikatów do zweryfikowania tożsamości obu stron.

Wymiana kluczy Diffie-Hellman & RSA

Jak omówiliśmy wcześniej, wymiana klucza Diffie-Hellmana jest często implementowana wraz z RSA lub innymi algorytmami w celu zapewnienia uwierzytelnienia połączenia. Jeśli znasz RSA, możesz się zastanawiać dlaczego ktokolwiek miałby zawracać sobie głowę również wymianą kluczy Diffie-Hellmana, ponieważ RSA umożliwia stronom, które nigdy wcześniej się nie spotkały, bezpieczną komunikację.

RSA pozwala użytkownikom szyfrować wiadomości za pomocą klucza publicznego ich korespondenta, dzięki czemu można je odszyfrować tylko za pomocą pasującego klucza prywatnego. Jednak w praktyce, RSA nie jest używane do szyfrowania całej komunikacji - byłoby to zbyt mało wydajne.

Zamiast tego RSA jest często używany tylko jako sposób uwierzytelnienia obu stron. Robi to z cyfrowe certyfikaty każdej ze stron, które zostaną zweryfikowane przez urząd certyfikacji aby udowodnić, że właściciel certyfikatu jest naprawdę tym, za kogo się podaje, i że klucz publiczny na certyfikacie faktycznie należy do niego.

Do wzajemnego uwierzytelnienia, każda ze stron podpisze wiadomość przy użyciu swojego klucza prywatnego, a następnie wyśle ​​ją do partnera komunikacji. Każdy odbiorca może wtedy zweryfikować tożsamość drugiej strony, sprawdzając podpisane wiadomości względem klucza publicznego na cyfrowym certyfikacie ich partnera komunikacyjnego (zobacz wyżej wspomniany artykuł na temat RSA, aby uzyskać więcej szczegółów na temat tego, jak to działa, w szczególności Podpisywanie wiadomości Sekcja).

Teraz, gdy obie strony zostały uwierzytelnione, technicznie możliwe jest dalsze używanie RSA do bezpiecznego wysyłania zaszyfrowanych wiadomości między sobą, jednak byłoby to zbyt mało wydajne.

Aby obejść tę nieefektywność, wiele protokołów bezpieczeństwa używa algorytmu takiego jak wymiana kluczy Diffiego-Hellmana w celu wypracowania wspólnego sekretu, którego można użyć do ustanowienia wspólnego klucza symetrycznego. Ten klucz symetryczny jest następnie wykorzystywany w algorytmie klucza symetrycznego, takim jak AES, do szyfrowania danych że obie strony zamierzają bezpiecznie przesyłać między sobą.

Może to wydawać się złożonym i zawiłym procesem, ale ostatecznie jest znacznie szybszy i mniej wymagający pod względem zasobów w porównaniu z użyciem algorytmu klucza publicznego do całej wymiany. To dlatego, że szyfrowanie kluczem symetrycznym jest rzędu wielkości wydajniejsze niż szyfrowanie kluczem publicznym.

Oprócz wspomnianych powyżej nieefektywności, istnieją też inne wady, które wynikałyby wyłącznie z używania RSA. RSA wymaga wypełnienia, aby było bezpieczne, więc dodatkowy algorytm musiałby być odpowiednio zaimplementowany obok niego, aby był bezpieczny.

RSA nie zapewnia idealnej tajemnicy forward, albo, co jest kolejną wadą w porównaniu do efemerycznej wymiany kluczy Diffie-Hellmana. Łącznie te powody sprawiają, że w wielu sytuacjach najlepiej stosować RSA tylko w połączeniu z wymianą kluczy Diffie-Hellmana.

Alternatywnie, wymiana kluczy Diffie-Hellmana może być połączona z algorytmem takim jak Digital Signature Standard (DSS) w celu zapewnienia uwierzytelnienia, wymiany kluczy, poufności i sprawdzenia integralności danych. W takiej sytuacji RSA nie jest konieczne do zabezpieczenia połączenia.

Kwestie bezpieczeństwa wymiany kluczy Diffie-Hellman

Bezpieczeństwo wymiany kluczy Diffie-Hellmana zależy od tego, w jaki sposób jest ona realizowana, a także od wybranych dla niej liczb. Jak wspomniano powyżej, nie ma możliwości samodzielnego uwierzytelnienia drugiej strony, ale w praktyce stosuje się inne mechanizmy, aby upewnić się, że druga strona w związku nie jest oszustem.

Parametry wyboru liczby

Jeśli rzeczywista implementacja wymiany kluczy Diffie-Hellmana używa liczb tak małych jak te w naszym przykładzie, proces wymiany byłby trywialny dla atakującego. Ale liczy się nie tylko rozmiar liczb - liczby muszą być również wystarczająco losowe. Jeśli generator liczb losowych generuje przewidywalny wynik, może całkowicie podważyć bezpieczeństwo wymiany kluczy Diffie-Hellmana.

Numer p powinien mieć długość 2048 bitów w celu zapewnienia bezpieczeństwa. Baza, sol, może być względnie małą liczbą, np. 2, ale musi pochodzić z rzędu sol ma duży czynnik główny

Atak Logjam

Wymiana kluczy Diffie-Hellmana została zaprojektowana na podstawie trudnego do rozwiązania problemu dyskretnego logarytmu. Najbardziej skutecznym publicznie znanym mechanizmem znajdowania rozwiązania jest algorytm sita pola liczbowego.

Możliwości tego algorytmu zostały wzięte pod uwagę przy projektowaniu wymiany kluczy Diffie-Hellmana. Do 1992 roku wiadomo było, że dla danej grupy, sol, trzy z czterech etapów algorytmu można potencjalnie obliczyć wcześniej. Gdyby ten postęp został zapisany, ostatni krok można obliczyć w stosunkowo krótkim czasie.

Nie było to zbyt niepokojące, dopóki nie zorientowano się, że znaczna część ruchu internetowego korzysta z tych samych grup, które mają 1024 bity lub mniej. W 2015 r. Zespół akademicki przeprowadził obliczenia najpopularniejszej liczby 512-bitowej liczby pierwszej używanej przez wymianę kluczy Diffie-Hellmana w TLS.

Byli również w stanie obniżyć poziom 80% serwerów TLS, które obsługiwały DHE-EXPORT, aby zaakceptować 512-bitową wymianę kluczy Diffie-Hellman klasy eksportowej dla połączenia. To znaczy że każdy z tych serwerów jest podatny na atak dobrze wyposażonego przeciwnika.

Naukowcy przystąpili do ekstrapolacji swoich wyników, szacowanie, że państwo narodowe może złamać 1024-bitową liczbę pierwszą. Po zerwaniu z najczęściej używaną 1024-bitową liczbą pierwszą, zespół akademicki oszacował, że przeciwnik może monitorować 18% z miliona najpopularniejszych witryn HTTPS.

Następnie powiedzieli, że druga liczba pierwsza pozwoli przeciwnikowi odszyfrować połączenia 66% serwerów VPN i 26% serwerów SSH. W dalszej części raportu naukowcy zasugerowali, że NSA może już mieć takie możliwości.

„Dokładna lektura opublikowanych wycieków NSA pokazuje, że ataki agencji na sieci VPN są zgodne z osiągnięciem takiej przerwy”.

Pomimo tej luki wymiana kluczy Diffie-Hellmana może być nadal bezpieczna, jeśli zostanie poprawnie zaimplementowana. Dopóki używany jest klucz 2048-bitowy, atak Logjam nie będzie działał. Zaktualizowane przeglądarki są również zabezpieczone przed tym atakiem.

Czy wymiana kluczy Diffie-Hellmana jest bezpieczna??

Chociaż wymiana kluczy Diffie-Hellmana może wydawać się złożona, jest to podstawowa część bezpiecznej wymiany danych online. Tak długo, jak jest implementowany wraz z odpowiednią metodą uwierzytelniania, a numery zostały odpowiednio wybrane, nie jest uważany za podatny na atak.

Wymiana kluczy Diffie-Hellmana była innowacyjną metodą pomagającą dwóm nieznanym stronom w bezpiecznej komunikacji, gdy została opracowana w latach siedemdziesiątych. Obecnie wdrażamy nowsze wersje z większymi kluczami w celu ochrony przed nowoczesną technologią sam protokół wygląda na to, że będzie bezpieczny do momentu pojawienia się obliczeń kwantowych i zaawansowane ataki, które się z tym wiążą.

Technologia biznesowa bezpieczeństwa cybernetycznego przez TheDigitalArtist na licencji CC0

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me

Add a Comment

Your email address will not be published. Required fields are marked *

98 − = 90