som du sikkert allerede ved, bruges kabelforbundet tilsvarende privatliv (VIP) af virksomheder til at sikre deres trådløse forbindelser mod sniffingangreb. Du har sikkert også hørt, at det ikke er meget sikkert. I den første del af denne 2 del serie vil jeg forklare det indre arbejde i VP og følge det op næste måned med hvorfor det er usikkert.
som du sikkert allerede ved, bruges kabelforbundet tilsvarende privatliv (VIP) af virksomheder til at sikre deres trådløse forbindelser mod sniffingangreb. Du har sikkert også hørt, at det ikke er meget sikkert. I den første del af denne 2 del serie vil jeg forklare det indre arbejde i VP og følge det op næste måned med hvorfor det er usikkert.
har jeg overhovedet brug for VIP?
en autentisk bruger, Bob bruger sin bærbare computer til at kontrollere sin Gmail-konto hver dag. Han har et trådløst kort i sin bærbare computer, som automatisk registrerer sin internetudbyders trådløse adgangspunkt lige på tværs af gaden. Når han har forbindelse til VAP, kan han gå videre og tjekke sin e-mail. Alice er en lusket bruger, der ikke ønsker at betale internetudbyderen for adgang til internettet. Hun ved dog, at internetudbyderen på tværs af gaden har et adgangspunkt, som alle kan oprette forbindelse til og få adgang til internettet. Hun plugger i sin bærbare computer og henter snart musik fra internettet. VIP var designet til at sikre, at brugerne autentificerer sig selv, før de bruger ressourcer, for at blokere Alice og tillade Bob. Lad os se, hvordan det gør dette.
Sådan fungerer vi
VIP bruger RC4-algoritmen til at kryptere informationspakkerne, når de sendes ud fra adgangspunktet eller det trådløse netværkskort. Så snart adgangspunktet modtager pakkerne sendt af brugerens netværkskort, dekrypterer det dem.
hver byte af data krypteres ved hjælp af en anden pakkenøgle. Dette sikrer, at hvis en hacker formår at knække denne pakkenøgle, er den eneste information, der lækkes, den, der er indeholdt i den pakke.
den faktiske krypteringslogik i RC4 er meget enkel. Den almindelige tekst er forsynet med en uendelig lang keystream. Sikkerheden ved RC4 kommer fra hemmeligholdelsen af pakkenøglen, der er afledt af keystream.
så hvad er en pakke nøgle?
pakkenøglen dannes ved at kombinere en forud delt adgangskode, et tilstandsarray og en initialiseringsvektor (IV). Lad os først forstå hvert af disse udtryk:
foruddelt adgangskode: den samme foruddelte adgangskode bruges af alle brugere for hver pakke, der overføres.
State Array: det er en række tal, der krypteres og derefter bruges af RC4 til at konstruere nøglestrømmen.
Initialiseringsvektor (IV): IV er et 3-byte tilfældigt tal genereret af computeren. Det er enten prepended eller vedlagt cipher tekst og sendt til modtageren, der strimler IV off før dekryptering cipher tekst.
RC4-algoritmen består af 2 hoveddele:
Nøgleplanlægningsalgoritmen: KSA-processen involverer oprettelse af et krypteret tilstandsarray . Dette tilstandsarray vil nu blive brugt som input i anden fase, kaldet PRGA-fasen.
Pseudo tilfældig Generationsalgoritme: statens array fra KSA-processen bruges her til at generere en endelig nøglestrøm. Hver byte af den genererede nøglestrøm vises derefter med den tilsvarende almindelige tekstbyte for at producere den ønskede krypteringstekst.
Nøgleplanlægningsalgoritme
IV beregnes ved hjælp af et tilstandsarray og egenskaber for den foruddelte adgangskode. Dette opnås ved at oprette en række værdier svarende til det indeks, du vil bruge i algoritmen. Indekset er som standard 256. De komponenter, der kræves til KSA, er værdierne for variablerne i og j, indeksværdien, den foruddelte adgangskode og dens længde. Algoritmen, der bruger disse værdier til at generere en endelig keystream, er beskrevet nedenfor.
initialisering:
For i=0 ... index-1
S=i
J=0
Scrambling:
For i=0 ... index-1
J = j + state + K
Swap(state , state)
en løkke løber først fra 0 til indeks-1 for at initialisere tilstandsarrayet med værdier fra 0 til indeks. For f.eks. Hvis indeks =4 tilstandsarrayet vil blive fyldt med værdier fra 0 til 3. Derfor vil arrayværdierne være som følger:
s=0 s=1 s=2 s=3
værdien af j er sat til 0. En anden løkke startes derefter. For hver gang gennem sløjfen beregnes værdien af j, og array-værdien, der holdes i tilstand, byttes til den værdi, der holdes i tilstand .
Pseudo tilfældig Generationsalgoritme (PRGA)
en pseudorandom talgenerator (PRNG) er en algoritme, der genererer en tilfældig sekvens af tal. PRGA er ansvarlig for at oprette de streamingværdier, der bruges til at kryptere klarteksten, som er baseret på statens array, KSA ‘ s output . Den metode, som PRGA følger, er beskrevet nedenfor.
initialisering:
I=0 j=0 index=4
Generationsalgoritme
I=(i+1) mod index
J=(j+state) mod index
Swap(state, state)
Z=state + statemod index]
streamingværdien oprettes ved at løbe gennem algoritmen for hver byte af pakken. Variablerne i og j initialiseres til 0. For hver pakke beregnes værdien af j, og array-værdien, der holdes i tilstand, byttes til den værdi, der holdes i tilstand . Output N beregnes derefter for hver pakke. I slutningen af processen har vi en PRGA-strøm.
PRGA-strømmen er derefter forsynet med den almindelige tekst for at generere krypteringstekst, der overføres til den anden part.
et eksempel
lad os illustrere ovenstående begreber i form af et eksempel. Den almindelige tekst, der skal krypteres, er TEST. Adgangskoden, der vil blive brugt her, er 6258. De oprindelige værdier for vores variabel er som følger:
i=0 j=0 password=6258 pass length=4 index=4
efter algoritmen får vi:
Trin-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
Trin-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
Trin 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
Trin 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 er klar, initialiseres PRGA-proceduren. Proceduren er som følger:
Initially i=0 j=0
K=6 K=2 K=5 K=8
første Loop:
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
anden sløjfe:
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 sløjfe:
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
fjerde Loop:
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
udgangene S1-S4 i slutningen af hver sløjfe skal være forsynet med ASCII for hvert tegn i almindelig tekst, som i vores tilfælde er TEST. Derfor vil krypteringsteksten til den almindelige teksttest være som følger:
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
ordtesten, når den krypteres med VP, er UDRU.
denne artikel var blot en introduktion til VP og den nøjagtige procedure, hvor kryptering finder sted i VP. I den næste del vil vi tage fat på det spørgsmål, der er øverst i dine sind: “hvorfor er VIP usikker? Hvilke risici er jeg udsat for, hvis jeg bruger VP?”