SlideShare une entreprise Scribd logo
1  sur  29
Algoritmo RC4


●   Funcionamento do RC4
    –   Vetor State (S)
         ●   256 posições
               0   1       2       3       4       5       6       7   8   9




         ●   Permutação de acordo com a chave (K)
                       K       x       x       x       x       x




                                                                               1
Algoritmo RC4


index1 = 0;
index2 = 0;
for(counter = 0; counter < 256; counter++)
{
    index2 = (key[index1] + state[counter] + index2) % 256;

    swap_byte(&state[counter], &state[index2]);
    index1 = (index1 + 1) % key_data_len;

}



                                                              2
Algoritmo RC4

●   Após a permuta é realizada a criação
    da chave de qualquer tamanho pelo
    PRNG
    inicializa-se x = y = 0


    x = (x + 1) % 256;
    y = (state[x] + y) % 256;
    swap_byte(&state[x], &state[y]);
    xorIndex = (state[x] + state[y]) % 256;
    GeneratedByte = state[xorIndex];



                                              3
Algoritmo RC4


●   Verificação do funcionamento:
●   Software wep.php
●   apresenta a chave, o vetor State e os Bytes utilizandos para
    realizar a cifragem da mensagem
●   ex:


           php wep.php normal 10:11:12:13 “teste”




                                                               4
Situação Atual



●   O WEP apresenta chaves fracas
●   artigo:
    “Weaknesses in the Key Scheduling
          Algorithm of RC4” de
       Fluhrer / Mantin / Shamir

●   Programas WEPCrack e AirSnort


                                        5
Situação Atual


index1 = 0;
index2 = 0;


for(counter = 0; counter < 256; counter++)
{
    index2 = (key[index1] + state[counter] + index2) % 256;
    swap_byte(&state[counter], &state[index2]);
    index1 = (index1 + 1) % key_data_len;

}




                                                              6
Situação Atual

●   Existem dois elementos que alteram os valores de S:
    –   Index2 (varia de acordo com a chave)
    –   Counter (contador linear)
●   Existe uma probabilidade de que um valor seja
    alterado tanto pelo Index, quanto pelo Counter




                                                          7
Situação Atual



●   Ou seja existe a probabilidade de aprox. 37% de que um valor
    seja alterado apenas por Counter
●   Para uma chave com K bytes, sendo E < K existe uma
    probabilidade de que E dependa apenas dos elementos 0..E da
    chave no vetor S


●   Ou seja, em 37% dos      casos   o   algoritmo   passa   a   ser
    equivalente a.......




                                                                   8
Situação Atual
for(counter = 0; counter < 256; counter++)
 {
    index2 = (key[index1] + state[counter] + index2) % 256;
     swap_byte(&state[counter], &state[index2]);
     index1 = (index1 + 1) % key_data_len;
}



for(counter = 0; counter < 256; counter++)
{
     index2 = (key[index1] + counter + index2) % 256;
     state[counter] = index2;
     index1 = (index1 + 1) % key_data_len;
}

                                                              9
Situação Atual

●   A probabilidade     desta afirmação estar correta
    para os elementos de State




                                                        10
Situação Atual



●   prova:
●   executar os dois algoritmos e comparar o número de colisões
    para cada elemento de State




             php wep.php prove1 8 500 norm




                                                             11
Situação Atual


●   Desta forma:


           State[E] = ΣK(E) + E(E + 1)/2

●   Onde (E) representa o somatório dos bytes de 0..E
    (inclusive) da chave K


    –   State[1] = K[0] + K[1] + 1(1 + 1)/2
    –   State[2] = K[0] + K[1] + K[2] + 2(2 + 1)/2




                                                         12
Situação Atual



●   prova:
●   verificar   se   o   valor   de   State[E]   pode   ser   obtido   pela
    fórmula




     php wep.php prove1 8 500 norm state




                                                                         13
Situação Atual



●   Exemplo de chave fraca – permite a descoberta do
    segredo a partir do vetor de permutação devido a
    relação entre chaves prévias e vetor State


    –   Exemplo de previsão simples no caso em que S[1] = 1
         ●   K[0] + K[1] = 0 (chave fraca), implicando:
         ●   S[2] = K[2] + 2 (2+1) / 2 = K[2] + 3




                                                              14
Situação Atual



●   prova:
●   gerar as chaves com K[0] = 0 e K[1] = 0




     php wep.php prove1 8 500 weak state




                                              15
Situação Atual

●   Após a permuta é realizada a criação
    da chave de qualquer tamanho pelo
    PRNG
    inicializa-se x = y = 0
    x = (x + 1) % 256;
    y = (state[x] + y) % 256;
    swap_byte(&state[x], &state[y]);
    xorIndex = (state[x] + state[y]) % 256;
    GeneratedByte = state[xorIndex];




                                              16
Situação Atual


●   Considerando uma situação onde State[1]=1
     –   ou seja, K[0]=K[1]=0




    x = (0 + 1) % 256;                   /* x == 1 */
    y = (state[1] + 0) % 256;            /* y == 1 */
    swap_byte(&state[1], &state[1]);     /* no effect */
    xorIndex = (state[1] + state[1]);    /* xorIndex = 2 */
    GeneratedByte = state[2]




                                                              17
Situação Atual

●   Sempre que State[1] = 1, a alteração realizada pelo PRNG
    torna-se previsível
    –   É realizado um XOR entre o texto claro e State[2]
    –   Ao descobrir State[2], o atacante pode sugerir um K[2]
        provável
                State[2] = K[2] + 3, quando State[1]=1


●   prova:


          php wep.php normal 00:00:12:82
                      “teste”


                                                            18
Situação Atual

●   prova:
●   para encontrar novas chaves com State[1]=1
     –   1000 tentativas (aleatório)
     –   chave com tam=5


             php wep.php find_weak 1000 5




                                                 19
Quebra do WEP


●       No wep, o IV representa os primeiros 3 bytes do segredo
        compartilhado (K) = K[0], K[1], K[2]


●       O LLC adiciona sempre o mesmo cabeçalho (0xaa), primeiro
        byte a ser cifrado (texto claro)


    ●   O atacante pode, então recriar os primeiros passos
        da permuta de State a partir do IV utilizado




                                                              20
Quebra do WEP



●   Resumindo, o atacante possui:
    –   IV = K[0], K[1], K[2]
    –   Precisa descobrir S[3] para descobrir/sugerir K[3],
        pois


           S[3] = K[0] + K[1] + K[2] + K[3] + 3(3 + 1)/2




                                                           21
Quebra do WEP



●    Sempre que S[1] = 0 e S[0] = n o primeiro byte será
     cifrado por S[n], pois:

    x = (x + 1) % 256;                        x = 1
    y = (state[x] + y) % 256;                 y = (state[1]) = 0
    swap_byte(&state[x], &state[y]);          state[1] <-> state [0]
    xorIndex = (state[x] + state[y]) % 256;   xorIndex = (state[1] +
                                              state[0]) = state[1]
    GeneratedByte = state[xorIndex];          GeneratedByte = state[1]




                                                                         22
Quebra do WEP

●   prova:
●   para encontrar novas chaves com State[1]=0
     –   1000 tentativas (aleatório)
     –   chave com tam=5


             php wep.php find_weak 1000 5

●   utiliza-se a chave encontrada no RC4
●   o valor apontado por State[0] será o índice em State para o
    valor utilizado na cifragem


    php wep.php normal 50:233:61:247:240
                 "ola mundo"
                                                             23
Quebra do WEP


●   Se (S[1] + S[S[1]] = 3) então o texto será cifrado
    por S[3]
    –   Descoberta de S[3]
         ●   S[3] = texto_cifrado XOR 0xaa

    –   Inversão do processo de permutação do RC4
         ●   S[3] = K[0] + K[1] + K[2] + K[3] + 3(3 + 1)/2

●   O   mesmo    é   feito    para     K[4],   ...   Ou      seja
    (S[1]+S[S[1]]=4) ... .... ....




                                                               24
Quebra do WEP

●   Exemplo:
php wep.php normal 4:29:74:3:228 “teste”


KEY: 4:29:74:3:228<- objetivo
State:
S[0]=3 S[1]=0 S[2]=110 S[3]=116 S[4]=197 S[5]=38...
RC4 KEY:116:79:90:205:73


O atacante possui os valores iniciais da chave
IV[0]=K[0]=4 IV[1]=K[1]=29 IV[2]=K[2]=74




                                                      25
Quebra do WEP

●   Para obter K[3]:
IV[0]=K[0]=4 IV[1]=K[1]=29 IV[2]=K[2]=74
S[3]=116 (obtém realizando um XOR entre 0xaa e o valor
         do primeiro byte do pacote capturado)


S[3] = 4 + 29 + 74 + K[3] + 3 x (3+1)/2
K[3] =   116 – 4 – 29 – 74 – 6   = 3


                       K[3] = 3




                                                    26
Quebra do WEP


●   Próximo passo:
     –   Encontrar uma situação onde S[1]=0 e S[0]=4 com
         chave fraca, ou seja, que:




    S[4] = K[0] + K[1] + K[2] + K[3] + K[4] + 4(4+1)/2


                            ...




                                                         27
Quebra do WEP


●   Exemplo 2:
php wep.php normal 26:55:29:50:43 “teste”


KEY: 26:55:29:50:43<- objetivo
State:
S[0]=3 S[1]=0 S[2]=10 S[3]=166 S[4]=213 S[5]=218...


RC4 KEY:166:198:122:220:59




                                                      28
Quebra do WEP


●   Para obter K[3]:
IV[0]=K[0]=26 IV[1]=K[1]=55 IV[2]=K[2]=29
S[3]=166 (obtém realizando um XOR entre 0xaa e o valor
         do primeiro byte do pacotecapturado)


K[3] =   166 – 26 – 55 – 29 – 6   = 50


                       K[3] = 50

                       ... ... ...


                                                    29

Contenu connexe

Plus de Andre Peres

06 - Redes sem Fios - seguranca
06 - Redes sem Fios -  seguranca06 - Redes sem Fios -  seguranca
06 - Redes sem Fios - segurancaAndre Peres
 
04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisico04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisicoAndre Peres
 
05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlace05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlaceAndre Peres
 
03- Redes sem Fios - antenas
03- Redes sem Fios -  antenas03- Redes sem Fios -  antenas
03- Redes sem Fios - antenasAndre Peres
 
01 - Redes sem Fios - introducao
01 - Redes sem Fios -  introducao01 - Redes sem Fios -  introducao
01 - Redes sem Fios - introducaoAndre Peres
 
02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondas02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondasAndre Peres
 
10 - segurança -snmp
10  - segurança -snmp10  - segurança -snmp
10 - segurança -snmpAndre Peres
 
8 - segurança - anatomia ataques
8 - segurança - anatomia ataques8 - segurança - anatomia ataques
8 - segurança - anatomia ataquesAndre Peres
 
9 - segurança - ataques buffer-injection
9 - segurança -  ataques buffer-injection9 - segurança -  ataques buffer-injection
9 - segurança - ataques buffer-injectionAndre Peres
 
7 - segurança - dmz vpn
7  - segurança -  dmz vpn7  - segurança -  dmz vpn
7 - segurança - dmz vpnAndre Peres
 
6 - segurança - criptografia
6   - segurança - criptografia6   - segurança - criptografia
6 - segurança - criptografiaAndre Peres
 
5 - segurança - firewall
5  - segurança - firewall5  - segurança - firewall
5 - segurança - firewallAndre Peres
 
4 - segurança - mecanismos
4 - segurança - mecanismos4 - segurança - mecanismos
4 - segurança - mecanismosAndre Peres
 
3 - segurança - psi
3 - segurança - psi3 - segurança - psi
3 - segurança - psiAndre Peres
 
2 - segurança - analise de-riscos
2 - segurança - analise de-riscos2 - segurança - analise de-riscos
2 - segurança - analise de-riscosAndre Peres
 
1 - Segurança - introducao
1 - Segurança - introducao1 - Segurança - introducao
1 - Segurança - introducaoAndre Peres
 
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacaoAndre Peres
 
6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissao6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissaoAndre Peres
 
5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls 5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls Andre Peres
 
4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equips4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equipsAndre Peres
 

Plus de Andre Peres (20)

06 - Redes sem Fios - seguranca
06 - Redes sem Fios -  seguranca06 - Redes sem Fios -  seguranca
06 - Redes sem Fios - seguranca
 
04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisico04 - Redes sem Fios -fisico
04 - Redes sem Fios -fisico
 
05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlace05 - Redes sem Fios - enlace
05 - Redes sem Fios - enlace
 
03- Redes sem Fios - antenas
03- Redes sem Fios -  antenas03- Redes sem Fios -  antenas
03- Redes sem Fios - antenas
 
01 - Redes sem Fios - introducao
01 - Redes sem Fios -  introducao01 - Redes sem Fios -  introducao
01 - Redes sem Fios - introducao
 
02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondas02 - Redes sem Fios - microondas
02 - Redes sem Fios - microondas
 
10 - segurança -snmp
10  - segurança -snmp10  - segurança -snmp
10 - segurança -snmp
 
8 - segurança - anatomia ataques
8 - segurança - anatomia ataques8 - segurança - anatomia ataques
8 - segurança - anatomia ataques
 
9 - segurança - ataques buffer-injection
9 - segurança -  ataques buffer-injection9 - segurança -  ataques buffer-injection
9 - segurança - ataques buffer-injection
 
7 - segurança - dmz vpn
7  - segurança -  dmz vpn7  - segurança -  dmz vpn
7 - segurança - dmz vpn
 
6 - segurança - criptografia
6   - segurança - criptografia6   - segurança - criptografia
6 - segurança - criptografia
 
5 - segurança - firewall
5  - segurança - firewall5  - segurança - firewall
5 - segurança - firewall
 
4 - segurança - mecanismos
4 - segurança - mecanismos4 - segurança - mecanismos
4 - segurança - mecanismos
 
3 - segurança - psi
3 - segurança - psi3 - segurança - psi
3 - segurança - psi
 
2 - segurança - analise de-riscos
2 - segurança - analise de-riscos2 - segurança - analise de-riscos
2 - segurança - analise de-riscos
 
1 - Segurança - introducao
1 - Segurança - introducao1 - Segurança - introducao
1 - Segurança - introducao
 
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
7 - Redes de Computadores - codificacao sinalizacao-multiplexacao
 
6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissao6 - Redes de Computadores - meios transmissao
6 - Redes de Computadores - meios transmissao
 
5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls 5 - Redes de Computadores - fr-atm-mpls
5 - Redes de Computadores - fr-atm-mpls
 
4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equips4 - Redes de Computadores - arp-vlan-equips
4 - Redes de Computadores - arp-vlan-equips
 

Dernier

Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...marcelafinkler
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Cabiamar
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfJuliana Barbosa
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedJaquelineBertagliaCe
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...andreiavys
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)Centro Jacques Delors
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfFbioFerreira207918
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa paraAndreaPassosMascaren
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docPauloHenriqueGarciaM
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaCentro Jacques Delors
 

Dernier (20)

Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 

Quebra wep

  • 1. Algoritmo RC4 ● Funcionamento do RC4 – Vetor State (S) ● 256 posições 0 1 2 3 4 5 6 7 8 9 ● Permutação de acordo com a chave (K) K x x x x x 1
  • 2. Algoritmo RC4 index1 = 0; index2 = 0; for(counter = 0; counter < 256; counter++) { index2 = (key[index1] + state[counter] + index2) % 256; swap_byte(&state[counter], &state[index2]); index1 = (index1 + 1) % key_data_len; } 2
  • 3. Algoritmo RC4 ● Após a permuta é realizada a criação da chave de qualquer tamanho pelo PRNG inicializa-se x = y = 0 x = (x + 1) % 256; y = (state[x] + y) % 256; swap_byte(&state[x], &state[y]); xorIndex = (state[x] + state[y]) % 256; GeneratedByte = state[xorIndex]; 3
  • 4. Algoritmo RC4 ● Verificação do funcionamento: ● Software wep.php ● apresenta a chave, o vetor State e os Bytes utilizandos para realizar a cifragem da mensagem ● ex: php wep.php normal 10:11:12:13 “teste” 4
  • 5. Situação Atual ● O WEP apresenta chaves fracas ● artigo: “Weaknesses in the Key Scheduling Algorithm of RC4” de Fluhrer / Mantin / Shamir ● Programas WEPCrack e AirSnort 5
  • 6. Situação Atual index1 = 0; index2 = 0; for(counter = 0; counter < 256; counter++) { index2 = (key[index1] + state[counter] + index2) % 256; swap_byte(&state[counter], &state[index2]); index1 = (index1 + 1) % key_data_len; } 6
  • 7. Situação Atual ● Existem dois elementos que alteram os valores de S: – Index2 (varia de acordo com a chave) – Counter (contador linear) ● Existe uma probabilidade de que um valor seja alterado tanto pelo Index, quanto pelo Counter 7
  • 8. Situação Atual ● Ou seja existe a probabilidade de aprox. 37% de que um valor seja alterado apenas por Counter ● Para uma chave com K bytes, sendo E < K existe uma probabilidade de que E dependa apenas dos elementos 0..E da chave no vetor S ● Ou seja, em 37% dos casos o algoritmo passa a ser equivalente a....... 8
  • 9. Situação Atual for(counter = 0; counter < 256; counter++) { index2 = (key[index1] + state[counter] + index2) % 256; swap_byte(&state[counter], &state[index2]); index1 = (index1 + 1) % key_data_len; } for(counter = 0; counter < 256; counter++) { index2 = (key[index1] + counter + index2) % 256; state[counter] = index2; index1 = (index1 + 1) % key_data_len; } 9
  • 10. Situação Atual ● A probabilidade desta afirmação estar correta para os elementos de State 10
  • 11. Situação Atual ● prova: ● executar os dois algoritmos e comparar o número de colisões para cada elemento de State php wep.php prove1 8 500 norm 11
  • 12. Situação Atual ● Desta forma: State[E] = ΣK(E) + E(E + 1)/2 ● Onde (E) representa o somatório dos bytes de 0..E (inclusive) da chave K – State[1] = K[0] + K[1] + 1(1 + 1)/2 – State[2] = K[0] + K[1] + K[2] + 2(2 + 1)/2 12
  • 13. Situação Atual ● prova: ● verificar se o valor de State[E] pode ser obtido pela fórmula php wep.php prove1 8 500 norm state 13
  • 14. Situação Atual ● Exemplo de chave fraca – permite a descoberta do segredo a partir do vetor de permutação devido a relação entre chaves prévias e vetor State – Exemplo de previsão simples no caso em que S[1] = 1 ● K[0] + K[1] = 0 (chave fraca), implicando: ● S[2] = K[2] + 2 (2+1) / 2 = K[2] + 3 14
  • 15. Situação Atual ● prova: ● gerar as chaves com K[0] = 0 e K[1] = 0 php wep.php prove1 8 500 weak state 15
  • 16. Situação Atual ● Após a permuta é realizada a criação da chave de qualquer tamanho pelo PRNG inicializa-se x = y = 0 x = (x + 1) % 256; y = (state[x] + y) % 256; swap_byte(&state[x], &state[y]); xorIndex = (state[x] + state[y]) % 256; GeneratedByte = state[xorIndex]; 16
  • 17. Situação Atual ● Considerando uma situação onde State[1]=1 – ou seja, K[0]=K[1]=0 x = (0 + 1) % 256; /* x == 1 */ y = (state[1] + 0) % 256; /* y == 1 */ swap_byte(&state[1], &state[1]); /* no effect */ xorIndex = (state[1] + state[1]); /* xorIndex = 2 */ GeneratedByte = state[2] 17
  • 18. Situação Atual ● Sempre que State[1] = 1, a alteração realizada pelo PRNG torna-se previsível – É realizado um XOR entre o texto claro e State[2] – Ao descobrir State[2], o atacante pode sugerir um K[2] provável State[2] = K[2] + 3, quando State[1]=1 ● prova: php wep.php normal 00:00:12:82 “teste” 18
  • 19. Situação Atual ● prova: ● para encontrar novas chaves com State[1]=1 – 1000 tentativas (aleatório) – chave com tam=5 php wep.php find_weak 1000 5 19
  • 20. Quebra do WEP ● No wep, o IV representa os primeiros 3 bytes do segredo compartilhado (K) = K[0], K[1], K[2] ● O LLC adiciona sempre o mesmo cabeçalho (0xaa), primeiro byte a ser cifrado (texto claro) ● O atacante pode, então recriar os primeiros passos da permuta de State a partir do IV utilizado 20
  • 21. Quebra do WEP ● Resumindo, o atacante possui: – IV = K[0], K[1], K[2] – Precisa descobrir S[3] para descobrir/sugerir K[3], pois S[3] = K[0] + K[1] + K[2] + K[3] + 3(3 + 1)/2 21
  • 22. Quebra do WEP ● Sempre que S[1] = 0 e S[0] = n o primeiro byte será cifrado por S[n], pois: x = (x + 1) % 256; x = 1 y = (state[x] + y) % 256; y = (state[1]) = 0 swap_byte(&state[x], &state[y]); state[1] <-> state [0] xorIndex = (state[x] + state[y]) % 256; xorIndex = (state[1] + state[0]) = state[1] GeneratedByte = state[xorIndex]; GeneratedByte = state[1] 22
  • 23. Quebra do WEP ● prova: ● para encontrar novas chaves com State[1]=0 – 1000 tentativas (aleatório) – chave com tam=5 php wep.php find_weak 1000 5 ● utiliza-se a chave encontrada no RC4 ● o valor apontado por State[0] será o índice em State para o valor utilizado na cifragem php wep.php normal 50:233:61:247:240 "ola mundo" 23
  • 24. Quebra do WEP ● Se (S[1] + S[S[1]] = 3) então o texto será cifrado por S[3] – Descoberta de S[3] ● S[3] = texto_cifrado XOR 0xaa – Inversão do processo de permutação do RC4 ● S[3] = K[0] + K[1] + K[2] + K[3] + 3(3 + 1)/2 ● O mesmo é feito para K[4], ... Ou seja (S[1]+S[S[1]]=4) ... .... .... 24
  • 25. Quebra do WEP ● Exemplo: php wep.php normal 4:29:74:3:228 “teste” KEY: 4:29:74:3:228<- objetivo State: S[0]=3 S[1]=0 S[2]=110 S[3]=116 S[4]=197 S[5]=38... RC4 KEY:116:79:90:205:73 O atacante possui os valores iniciais da chave IV[0]=K[0]=4 IV[1]=K[1]=29 IV[2]=K[2]=74 25
  • 26. Quebra do WEP ● Para obter K[3]: IV[0]=K[0]=4 IV[1]=K[1]=29 IV[2]=K[2]=74 S[3]=116 (obtém realizando um XOR entre 0xaa e o valor do primeiro byte do pacote capturado) S[3] = 4 + 29 + 74 + K[3] + 3 x (3+1)/2 K[3] = 116 – 4 – 29 – 74 – 6 = 3 K[3] = 3 26
  • 27. Quebra do WEP ● Próximo passo: – Encontrar uma situação onde S[1]=0 e S[0]=4 com chave fraca, ou seja, que: S[4] = K[0] + K[1] + K[2] + K[3] + K[4] + 4(4+1)/2 ... 27
  • 28. Quebra do WEP ● Exemplo 2: php wep.php normal 26:55:29:50:43 “teste” KEY: 26:55:29:50:43<- objetivo State: S[0]=3 S[1]=0 S[2]=10 S[3]=166 S[4]=213 S[5]=218... RC4 KEY:166:198:122:220:59 28
  • 29. Quebra do WEP ● Para obter K[3]: IV[0]=K[0]=26 IV[1]=K[1]=55 IV[2]=K[2]=29 S[3]=166 (obtém realizando um XOR entre 0xaa e o valor do primeiro byte do pacotecapturado) K[3] = 166 – 26 – 55 – 29 – 6 = 50 K[3] = 50 ... ... ... 29