Wireless Security-Come funziona WEP

Come probabilmente già sapete Wired Equivalent Privacy (WEP) viene utilizzato dalle aziende per proteggere le loro connessioni wireless da attacchi sniffing. Probabilmente avete anche sentito che non è molto sicuro. Nella prima parte di questa serie di parti 2 spiegherò il funzionamento interno del WEP e lo seguirò il mese prossimo con il motivo per cui è insicuro.

Come probabilmente già sapete Wired Equivalent Privacy (WEP) viene utilizzato dalle aziende per proteggere le loro connessioni wireless da attacchi sniffing. Probabilmente avete anche sentito che non è molto sicuro. Nella prima parte di questa serie di parti 2 spiegherò il funzionamento interno del WEP e lo seguirò il mese prossimo con il motivo per cui è insicuro.

Ho bisogno di WEP a tutti?

Un utente autentico, Bob utilizza il suo computer portatile per controllare il suo account Gmail di tutti i giorni. Ha una scheda wireless nel suo laptop che rileva automaticamente il punto di accesso wireless (WAP) del suo ISP proprio dall’altra parte della strada. Una volta collegato al WAP può andare avanti e controllare la sua email. Alice è un utente subdolo che non vuole pagare l’ISP per l’accesso a Internet. Tuttavia sa che l’ISP dall’altra parte della strada ha un punto di accesso a cui chiunque può connettersi e accedere a Internet. Si collega al suo laptop e sta presto scaricando musica da Internet. WEP è stato progettato per garantire che gli utenti si autenticano prima di utilizzare le risorse, per bloccare Alice, e consentire Bob. Vediamo come funziona.

Come funziona WEP

WEP utilizza l’algoritmo RC4 per crittografare i pacchetti di informazioni che vengono inviati dal punto di accesso o dalla scheda di rete wireless. Non appena il punto di accesso riceve i pacchetti inviati dalla scheda di rete dell’utente, li decrittografa.

Ogni byte di dati verrà crittografato utilizzando una chiave di pacchetto diversa. Questo assicura che se un hacker riesce a rompere questa chiave di pacchetto l’unica informazione che è trapelato è quello che è contenuto in quel pacchetto.

La logica di crittografia effettiva in RC4 è molto semplice. Il testo normale è XOR-ed con un keystream infinitamente lungo. La sicurezza di RC4 deriva dalla segretezza della chiave di pacchetto derivata dal keystream.

Quindi cos’è una chiave di pacchetto?

La chiave di pacchetto è formata combinando una password pre-condivisa, un array di stati e un vettore di inizializzazione (IV). Capiamo prima ciascuno di questi termini:

Password pre-condivisa: la stessa password pre-condivisa viene utilizzata da tutti gli utenti per ogni pacchetto trasmesso.

Array di stati: è una serie di numeri che vengono criptati e quindi utilizzati da RC4 per costruire il flusso chiave.

Vettore di inizializzazione (IV): L’IV è un numero casuale di 3 byte generato dal computer. Viene anteposto o aggiunto al testo cifrato e inviato al destinatario che rimuove l’IV prima di decrittografare il testo cifrato.

L’algoritmo RC4 è costituito da 2 parti principali:

L’algoritmo di pianificazione delle chiavi: Il processo KSA comporta la creazione di un array di stati criptati . Questo array di stati verrà ora utilizzato come input nella seconda fase, chiamata fase PRGA.

L’algoritmo di generazione pseudo casuale: L’array di stati dal processo KSA viene utilizzato qui per generare un flusso di chiavi finale. Ogni byte del flusso di chiavi generato viene quindi Xor’ed con il corrispondente byte di testo normale per produrre il testo cifrato desiderato.

Algoritmo di pianificazione delle chiavi

L’IV viene calcolato utilizzando un array di stati e le proprietà della password pre-condivisa. Ciò si ottiene creando una matrice di valori uguali all’indice che si desidera utilizzare nell’algoritmo. L’indice per WEP per impostazione predefinita è 256. I componenti necessari per il KSA sono i valori delle variabili i e j, il valore dell’indice, la password pre-condivisa e la sua lunghezza. L’algoritmo che utilizza questi valori per generare un keystream finale è descritto di seguito.

Inizializzazione:

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

Rimescolando:

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

Un ciclo viene eseguito prima da 0 a index-1 per inizializzare l’array di stati con valori da 0 a index. Per es. Se index =4 l’array di stati verrà riempito con valori da 0 a 3. Pertanto i valori dell’array saranno i seguenti:

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

Il valore di j è impostato su 0. Viene quindi avviato un altro ciclo. Per ogni volta attraverso il ciclo, viene calcolato il valore di j e il valore dell’array tenuto in stato viene scambiato con il valore tenuto in stato .

Pseudo Random Generation Algorithm (PRGA)

Un generatore di numeri pseudorandom (PRNG) è un algoritmo che genera una sequenza casuale di numeri. Il PRGA è responsabile della creazione dei valori di streaming utilizzati per crittografare il testo in chiaro, che si basa sull’array di stati, l’output del KSA . La metodologia che il PRGA segue è descritta di seguito.

Inizializzazione:

I=0 j=0 index=4 

Algoritmo di generazione

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

Il valore di streaming viene creato eseguendo il loop attraverso l’algoritmo per ogni byte del pacchetto. Le variabili i e j sono inizializzate a 0. Per ogni pacchetto viene calcolato il valore di j e il valore dell’array tenuto in stato viene scambiato con il valore tenuto in stato . L’output z viene quindi calcolato per ogni pacchetto. Alla fine del processo abbiamo un flusso PRGA.

Il flusso PRGA viene quindi Xor’ed con il testo normale per generare testo cifrato che viene trasmesso all’altra parte.

Un esempio

Illustriamo i concetti di cui sopra sotto forma di un esempio. Il testo normale che deve essere crittografato è TEST. La password che verrà utilizzata qui è 6258. I valori iniziali della nostra variabile sono i seguenti:

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

Seguendo l’algoritmo otteniamo:

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

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

Passo 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

Passo 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

Una volta che l’array di stati KSA è pronto, la procedura PRGA viene inizializzata. La procedura è la seguente:

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

Primo ciclo:

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

Secondo ciclo:

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

Terzo ciclo:

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

Quarto ciclo:

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

Le uscite z1-z4 alla fine di ogni ciclo devono essere Xor’ed con l’ASCII di ogni carattere di testo normale che nel nostro caso è TEST. Quindi il testo cifrato per il test di testo normale sarà il seguente:

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

Il TEST di parola quando crittografato con WEP è UDRU.

Questo articolo era solo un’introduzione al WEP e l’esatta procedura in cui la crittografia avviene in WEP. Nella prossima parte affronteremo la domanda che è più in alto nella vostra mente: “Perché WEP è insicuro? A quali rischi sono esposto se uso WEP?”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.