SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLidianePaulaValezi
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPaulaYaraDaasPedro
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticash5kpmr7w7
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRafaelaMartins72608
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...MariaCristinaSouzaLe1
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPabloGabrielKdabra
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
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
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º anoRachel Facundo
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfKarinaSouzaCorreiaAl
 
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
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...DirceuNascimento5
 

Kürzlich hochgeladen (20)

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...
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptxPoesiamodernismo fase dois. 1930 prosa e poesiapptx
Poesiamodernismo fase dois. 1930 prosa e poesiapptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
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
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
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çã...
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 

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