Bezpieczeństwo sieci bezprzewodowej-jak działa WEP

jak już zapewne wiesz, Wired Equivalent Privacy (WEP) jest używany przez firmy do zabezpieczania połączeń bezprzewodowych przed atakami sniffingowymi. Prawdopodobnie słyszałeś też, że nie jest to zbyt bezpieczne. W pierwszej części tej serii części 2 wyjaśnię wewnętrzne działanie WEP i kontynuuję go w przyszłym miesiącu, dlaczego jest niepewny.

jak zapewne już wiesz, Wired Equivalent Privacy (WEP) jest używany przez firmy do zabezpieczania połączeń bezprzewodowych przed atakami sniffingowymi. Prawdopodobnie słyszałeś też, że nie jest to zbyt bezpieczne. W pierwszej części tej serii części 2 wyjaśnię wewnętrzne działanie WEP i kontynuuję go w przyszłym miesiącu, dlaczego jest niepewny.

czy w ogóle potrzebuję WEP?

autentyczny użytkownik, Bob używa swojego laptopa, aby codziennie sprawdzać swoje konto Gmail. Ma kartę bezprzewodową w swoim laptopie, która automatycznie wykrywa bezprzewodowy punkt dostępu (WAP) jego dostawcy usług internetowych po drugiej stronie ulicy. Po podłączeniu do WAP może sprawdzić pocztę. Alice jest podstępnym użytkownikiem, który nie chce płacić dostawcy Internetu za dostęp do Internetu. Wie jednak, że ISP po drugiej stronie ulicy ma punkt dostępowy, z którym każdy może się połączyć i uzyskać dostęp do Internetu. Podłącza laptopa i wkrótce pobiera muzykę z Internetu. WEP został zaprojektowany w celu zapewnienia, że użytkownicy uwierzytelniają się przed użyciem zasobów, aby zablokować Alice i zezwolić Bobowi. Zobaczmy, jak to zrobi.

jak działa WEP

WEP wykorzystuje algorytm RC4 do szyfrowania pakietów informacji wysyłanych z punktu dostępu lub karty sieci bezprzewodowej. Gdy tylko punkt dostępu otrzyma pakiety wysłane przez kartę sieciową użytkownika, odszyfruje je.

każdy bajt danych zostanie zaszyfrowany przy użyciu innego klucza pakietów. Zapewnia to, że jeśli hakerowi uda się złamać ten klucz pakietu, wyciekną tylko te informacje, które są zawarte w tym pakiecie.

rzeczywista logika szyfrowania w RC4 jest bardzo prosta. Zwykły tekst jest XOR-ed z nieskończenie długim strumieniem klawiszy. Bezpieczeństwo RC4 wynika z tajności klucza pakietów, który pochodzi z strumienia kluczy.

Co to jest klucz pakietowy?

klucz pakietu jest tworzony przez połączenie wstępnie udostępnionego hasła, tablicy stanu i wektora inicjalizacji (IV). Najpierw zrozummy każde z tych pojęć:

wstępnie udostępnione hasło: to samo wstępnie udostępnione hasło jest używane przez wszystkich użytkowników dla każdego przesyłanego pakietu.

tablica stanu: jest to seria liczb, które są zaszyfrowane, a następnie używane przez RC4 do konstruowania strumienia klucza.

Wektor inicjalizacji (IV): IV jest 3-bajtową liczbą losową generowaną przez komputer. Jest on dołączany lub dołączany do zaszyfrowanego tekstu i wysyłany do odbiorcy, który odcina kroplówkę przed odszyfrowaniem zaszyfrowanego tekstu.

algorytm RC4 składa się z 2 głównych części:

algorytm szeregowania kluczy: proces KSA polega na utworzeniu zaszyfrowanej tablicy stanów . Ta tablica stanu będzie teraz używana jako wejście w drugiej fazie, zwanej fazą PRGA.

algorytm generowania pseudolosowego: tablica stanu z procesu KSA służy tutaj do generowania końcowego strumienia kluczy. Każdy bajt wygenerowanego strumienia klucza jest następnie XOR ’ ED z odpowiednim bajtem zwykłego tekstu, aby uzyskać żądany zaszyfrowany tekst.

algorytm szeregowania kluczy

IV jest obliczany przy użyciu tablicy stanu i właściwości wstępnie udostępnionego hasła. Osiąga się to poprzez utworzenie tablicy wartości równej indeksowi, którego chcesz użyć w algorytmie. Indeks WEP domyślnie wynosi 256. Komponentami wymaganymi dla KSA są wartości zmiennych i I j, wartość indeksu, wstępnie udostępnione hasło i jego długość. Algorytm, który wykorzystuje te wartości do generowania końcowego strumienia kluczy, jest przedstawiony poniżej.

Inicjalizacja:

For i=0 ... index-1
S=i
J=0

Scrambling:

For i=0 ... index-1
J = j + state + K
Swap(state , state)

pętla najpierw uruchamia się od 0 do index-1, aby zainicjalizować tablicę stanu wartościami od 0 do index. Dla np. Jeżeli index =4, to tablica stanu zostanie wypełniona wartościami od 0 do 3. Dlatego wartości tablicy będą następujące:

s=0 s=1 s=2 s=3 

wartość j jest ustawiona na 0. Następnie uruchamiana jest kolejna pętla. Za każdym razem przez pętlę obliczana jest wartość j, a wartość tablicy utrzymywana w stanie jest zamieniana na wartość utrzymywaną w stanie .

algorytm generowania pseudolosowego (PRGA)

generator liczb pseudolosowych (PRNG) to algorytm generujący losowy ciąg liczb. PRGA jest odpowiedzialny za tworzenie wartości strumieniowych używanych do szyfrowania zwykłego tekstu, który jest oparty na tablicy stanu, wyjście KSA . Metodologia, którą stosuje PRGA, jest przedstawiona poniżej.

Inicjalizacja:

I=0 j=0 index=4 

algorytm generowania

I=(i+1) mod index
J=(j+state) mod index
Swap(state, state)
Z=state + statemod index]

wartość strumieniowa jest tworzona przez zapętlenie algorytmu dla każdego bajtu pakietu. Zmienne i I j są inicjalizowane na 0. Dla każdego pakietu obliczana jest wartość j, a wartość tablicy utrzymywana w stanie jest zamieniana na wartość utrzymywaną w stanie . Wyjście z jest następnie obliczane dla każdego pakietu. Na końcu procesu mamy strumień PRGA.

strumień PRGA jest następnie XOR ’ ed ze zwykłym tekstem w celu wygenerowania zaszyfrowanego tekstu, który jest przesyłany do drugiej strony.

przykład

zilustrujmy powyższe pojęcia w formie przykładu. Zwykły tekst, który ma być zaszyfrowany, jest testem. Hasło, które zostanie użyte tutaj to 6258. Początkowe wartości naszej zmiennej są następujące:

i=0 j=0 password=6258 pass length=4 index=4 

idąc za algorytmem otrzymujemy:

Krok-1

State array: State=0 State=1 State=2 State=3
Password: K=6 K=2 K=5 K=8
j = + K] mod 4 = 6 mod 4 = 2
Swap(State , State) = Swap(0,2)
State=2 State=1 State=0 State=3

Krok-2

i=1 j=2
State array: State=2 State=1 State=0 State=3
Password: K=6 K=2 K=5 K=8
j = + K] mod 4 = 5 mod 4 = 1
Swap(State, State) = Swap(1,0)
State=2 State=0 State=1 State=3

Krok 3

i=2 j=1
State array: State=2 State=0 State=1 State=3
Password: K=6 K=2 K=5 K=8
j = + K]mod 4 = 7 mod 4 = 3
Swap(State, State) = Swap(1,3)
State=2 State=0 State=3 State=1

Krok 4

i=3 j=3
State array: State=2 State=0 State=3 State=1
Password: K=6 K=2 K=5 K=8
j = +K]mod 4 = 12 mod 4 = 0
Swap(State, State) = Swap(1,2)
State=1 State=0 State=3 State=2
Final State Array: State=1 State=0 State=3 State=2

gdy tablica stanu KSA jest gotowa, inicjowana jest procedura PRGA. Procedura jest następująca:

Initially i=0 j=0
K=6 K=2 K=5 K=8

pierwsza pętla:

State=1 State=0 State=3 State=2
i=1 j=0+State=0+0=0
Swap(State, State) = Swap(0,1)
State=0 State=1 State=3 State=2
z = State + State mod 4] = State = 1
z1 = 00000001

druga pętla:

State=0 State=1 State=3 State=2
i=2 j=0+State=3
Swap(State, State) = Swap(3,2)
State=0 State=1 State=2 State=3
z = State + State mod 4] = State = 1
z2 = 00000001

trzecia pętla:

State=0 State=1 State=2 State=3
i=3 j=3+State=6 mod 4 = 2
Swap(State,State) = Swap(3,2)
State=0 State=1 State=3 State=2
z = State + State] mod 4 = State = 1
z3=00000001

czwarta pętla:

State=0 State=1 State=3 State=2
i=4 j=2+State=2+State = 2+State = 2
Swap(State,State) = Swap(State,State) = Swap(0,3)
State=3 State=1 State=0 State=2
z4 = State + State] = State +
State] = State = 2
z4=00000010

wyjścia z1-z4 na końcu każdej pętli muszą być XOR ’ ED z ASCII każdego znaku zwykłego tekstu, co w naszym przypadku jest testem. Stąd tekst zaszyfrowany dla testu zwykłego tekstu będzie wyglądał następująco:

T xor z1 = 01010100 xor 00000001 = 01010101 = U
E xor z2 = 01000101 xor 00000001 = 01000100 = D
S xor z3 = 01010011 xor 00000001 = 01010010 = R
T xor z4 = 01010100 xor 00000010 = 01010110 = U

słowo TEST po zaszyfrowaniu za pomocą WEP to UDRU.

ten artykuł był tylko wstępem do WEP i dokładną procedurą, w której szyfrowanie odbywa się w WEP. W następnej części zajmiemy się pytaniem, które jest najważniejsze w waszych umysłach: „dlaczego WEP jest niepewny? Na jakie ryzyko jestem narażony, Jeśli używam WEP?”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.