Trådlös säkerhet-hur WEP fungerar

som du förmodligen redan vet Wired Equivalent Privacy (WEP) används av företag för att säkra sina trådlösa anslutningar från sniffing attacker. Du har nog också hört att det inte är så säkert. I den första delen av denna 2-delserie kommer jag att förklara WEP: s inre arbete och följa upp det nästa månad med varför det är osäkert.

som du förmodligen redan vet Wired Equivalent Privacy (WEP) används av företag för att säkra sina trådlösa anslutningar från sniffing attacker. Du har nog också hört att det inte är så säkert. I den första delen av denna 2-delserie kommer jag att förklara WEP: s inre arbete och följa upp det nästa månad med varför det är osäkert.

behöver jag WEP alls?

en autentisk användare, Bob använder sin bärbara dator för att kontrollera sitt Gmail-konto varje dag. Han har ett trådlöst kort i sin bärbara dator som automatiskt upptäcker sin ISP: s trådlösa åtkomstpunkt (WAP) tvärs över gatan. När han är ansluten till WAP kan han gå vidare och kolla sin e-post. Alice är en lömsk användare som inte vill betala Internetleverantören för tillgång till Internet. Hon vet dock att ISP tvärs över gatan har en åtkomstpunkt som vem som helst kan ansluta till och få tillgång till Internet. Hon pluggar in sin bärbara dator och laddar snart ner musik från Internet. WEP har utformats för att säkerställa att användarna autentisera sig innan du använder resurser, att blockera ut Alice, och tillåta Bob. Låt oss se hur det gör det här.

hur WEP fungerar

WEP använder RC4-algoritmen för att kryptera informationspaketen när de skickas ut från åtkomstpunkten eller det trådlösa nätverkskortet. Så snart åtkomstpunkten tar emot paketen som skickas av användarens nätverkskort dekrypterar den dem.

varje byte av data krypteras med en annan paketnyckel. Detta säkerställer att om en hacker lyckas knäcka denna paketnyckel är den enda informationen som läckt ut den som finns i det paketet.

den faktiska krypteringslogiken i RC4 är mycket enkel. Den vanliga texten XOR-ed med en oändligt lång keystream. Säkerheten för RC4 kommer från sekretessen för paketnyckeln som härrör från keystream.

så vad är en paketnyckel?

paketnyckeln bildas genom att kombinera ett fördelat lösenord, en tillståndsgrupp och en initialiseringsvektor (IV). Låt oss först förstå var och en av dessa termer:

fördelat lösenord: samma fördelat lösenord används av alla användare för varje paket som överförs.

State Array: det är en serie siffror som krypteras och sedan används av RC4 för att konstruera nyckelströmmen.

Initialiseringsvektor (IV): IV är ett 3-byte slumpmässigt nummer som genereras av datorn. Det är antingen prepended eller bifogas chiffertexten och skickas till mottagaren som tar bort IV innan dekryptering av chiffertexten.

RC4-algoritmen består av 2 huvuddelar:

Nyckelplaneringsalgoritmen: KSA-processen innebär att man skapar en krypterad tillståndsarray . Denna tillståndsgrupp kommer nu att användas som ingång i den andra fasen, kallad PRGA-fasen.

pseudo – Slumpgenereringsalgoritmen: tillståndsmatrisen från KSA-processen används här för att generera en slutlig nyckelström. Varje byte av den genererade nyckelströmmen Xor ’ ed med motsvarande vanlig textbyte för att producera önskad chiffertext.

Nyckelschemaläggningsalgoritm

IV beräknas med hjälp av en tillståndsmatris och egenskaper för det fördelade lösenordet. Detta uppnås genom att skapa en rad värden som är lika med det index du vill använda i algoritmen. Indexet för WEP är som standard 256. Komponenterna som krävs för KSA är värdena för variablerna i och j, indexvärdet, det fördelade lösenordet och dess längd. Algoritmen som använder dessa värden för att generera en slutlig keystream beskrivs nedan.

initiering:

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

Scrambling:

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

en slinga går först från 0 till index – 1 för att initiera tillståndsmatrisen med värden från 0 till index. För t.ex. Om index =4 tillståndsmatrisen kommer att fyllas med värden från 0 till 3. Därför kommer arrayvärdena att vara enligt följande:

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

värdet på j är satt till 0. En annan slinga startas sedan. För varje gång genom slingan beräknas värdet på j, och matrisvärdet som hålls i tillstånd byts ut för värdet som hålls i tillstånd .

Pseudo Random Generation Algorithm (PRGA)

en pseudorandom number generator (PRNG) är en algoritm som genererar en slumpmässig sekvens av siffror. PRGA är ansvarig för att skapa strömmande värden som används för att kryptera klartext, som är baserad på state array, utgången från KSA . Metoden som PRGA följer beskrivs nedan.

initiering:

I=0 j=0 index=4 

Generationsalgoritm

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

strömningsvärdet skapas genom att loopas genom algoritmen för varje byte av paketet. Variablerna i och j initieras till 0. För varje paket beräknas värdet på j, och arrayvärdet som hålls i tillstånd byts ut mot värdet som hålls i tillstånd . Utgången z beräknas sedan för varje paket. I slutet av processen har vi en PRGA-ström.

PRGA-strömmen Xor ’ ed med den vanliga texten för att generera chiffertext som överförs till den andra parten.

ett exempel

låt oss illustrera ovanstående begrepp i form av ett exempel. Den vanliga texten som ska krypteras är TEST. Lösenordet som kommer att användas här är 6258. De ursprungliga värdena för vår variabel är följande:

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

efter algoritmen får vi:

Steg-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

steg-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

steg 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

steg 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

när KSA state array är klar initieras PRGA-proceduren. Förfarandet är som följer:

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

första slingan:

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

andra slingan:

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

tredje slingan:

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

fjärde slingan:

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

utgångarna z1-z4 i slutet av varje slinga måste Xor ’ ed med ASCII för varje tecken i vanlig text som i vårt fall är TEST. Därför kommer chiffertexten för det vanliga texttestet att vara enligt följande:

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

ordtestet när det krypteras med WEP är UDRU.

den här artikeln var bara en introduktion till WEP och den exakta proceduren där kryptering sker i WEP. I nästa del kommer vi att ta upp frågan som är överst i dina sinnen: ”Varför är WEP osäker? Vilka risker utsätts jag för om jag använder WEP?”

Lämna ett svar

Din e-postadress kommer inte publiceras.