Baixe o app para aproveitar ainda mais
Prévia do material em texto
Segurança de Sistemas ULBRA – Cachoeira do Sul Professor: Daniel Biasoli E-mail: daniel@biasoli.com Aula 05 Introdução ao Padrão IEEE 802.11 Introdução ao Padrão IEEE 802.11 Introdução ao Padrão IEEE 802.11 Introdução ao Padrão IEEE 802.11 • Benefícios: –Mobilidade; – Rápida Instalação; – Flexibilidade; – Escalabilidade Introdução ao Padrão IEEE 802.11 LANs sem fios • LAN sem fio é um exemplo de uso de canal broadcast; • Possui características distintas, que leva à adoção de protocolos diferentes; • Normalmente em LANs sem fio não é possível identificar colisões enquanto elas estão ocorrendo; • Adicionalmente, uma estação pode não ser capaz de transmitir ou receber quadros de todas as outras estações. LANs sem fios • Problema da estação oculta: – Uma estação não consegue detectar uma possível concorrente pelo meio físico porque ela está distante demais; – A e C ocultos ao transmitirem para B: LANs sem fios • Problema da estação exposta: – Em uma situação inversa, é possível detectar um “falso” concorrente pelo meio físico caso dois transmissores estejam ao alcance um do outro, mas o mesmo não ocorra com os receptores; – B e C visíveis ao transmitirem para A e D, respectivamente: LANs sem fios • O problema das LANs sem fio, na realidade, está em identificar a atividade em torno do receptor; – Em um sistema de rádio, várias transmissões simultâneas podem ocorrer desde que todas tenham destinos distintos, e estes estejam fora do alcance uns dos outros; LANs sem fios • Protocolo MACA (Multiple Access with Collision Avoidance – Acesso múltiplo com prevenção de colisão) – A ideia básica é fazer com que o transmissor estipule o receptor a liberar um quadro curto como saída, de modo que as estações vizinhas possam detectar essa transmissão e evitar transmitir enquanto o quadro de dados (grande) estiver sendo recebido; LANs sem fios LANs sem fios • Ainda assim poderá haver colisões; • Neste caso, o transmissor que não obteve sucesso na transmissão aguardará um tempo aleatório para fazer nova tentativa. • WEP = Wired Equivalent Privacy • Os 3 Serviços Básicos de segurança para Redes Wireless: – Autenticação; – Privacidade; – Integridade O Padrão de Segurança das Redes 802.11 Autenticação Privacidade Integridade • Utiliza um CRC linear; • Uma chave RC4 criptografa a mensagem transmitida que será descriptografada e conferida pelo destino; • Se o CRC calculado pelo destino for diferente do CRC apontado pela origem, o pacote é descartado. Detecção de Erros Quando é mais eficiente detectar erros e retransmitir dados, para lidar com erros ocasionais? Códigos de Detecção de Erros • Em fios de cobre ou fibra ótica a taxa de erros é menor em relação a enlaces sem fios. Detecção de Erros • A detecção de erros não é 100% perfeita • Protocolo pode não identificar alguns erros, mas é raro • Maior campo de bits de detecção e correção de erros permite melhorar detecção e correção Códigos de Detecção de Erros – CRC ou código de Redundância Cíclica (ou ainda, código polinomial) – Cyclic Redundancy Check - CRC CRC ou Código de Redundância Cíclica (Cyclic Redundancy Check) • Cálculo de CRC • Exemplo – Antes do Envio de Dados • Exemplo – Envio de dados • Exemplo – Teste no Receptor • Considerações CRC ou Código de Redundância Cíclica • A verificação de redundância cíclica (Cyclic Redundancy Check – CRC) é uma técnica de detecção de erros muito usada em redes de computadores. • Os códigos de CRC são conhecidos como códigos polinomiais B(x) = �� + �� + �� + �� = ( � � )� CRC ou Código de Redundância Cíclica • Uma mensagem deve ser enviada com o código de CRC calculado para que possa ser verificada no receptor. • O cálculo de CRC é realizado através de uma operação de divisão aplicada a números binários. • Há uma diferença na divisão: as operações de subtração são substituídas por operações lóticas de ou exclusivo (XOR – eXclusive OR). CRC ou Código de Redundância Cíclica • Relembrando a tabela da operação XOR: A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 CRC ou Código de Redundância Cíclica • Cálculo de CRC – Premissas: – Um emissor deseja enviar D com d bits de dados. – Um código de CRC R com r bits de comprimento deve ser gerado e anexado aos dados antes do envio. • D: d bits de dados • R: r bits de CRC CRC ou Código de Redundância Cíclica • O receptor e o emissor conhecem um padrão de bits denominado G, de gerador. • Este gerador tem (r + 1) bits de comprimento. • O bit mais significativo do gerador (mais à esquerda) deve ser 1. CRC ou Código de Redundância Cíclica • A base para o cálculo de R (código de CRC) é a fórmula): – R = � ��� �∗�� � – � ∗ �� é o deslocamento dos bits de dados à esquerda r casas. – G é o gerador – Isso é a adição de r bits 0 no final dos bits de dados. – Por exemplo: D = ( �� � )� e r = 3 ���� D*� � (100101000) CRC ou Código de Redundância Cíclica Exemplo antes do envio de dados: − ������� ������ �� ��� �� !�"� �� �����: 111100101. − $ %������ �ã� �� !�"� 101101. COMO CALCULAR O CRC ANTES DE ENVIAR OS DADOS? CRC ou Código de Redundância Cíclica Emissor Receptor 111100101 CRC????? Exemplo – Antes do Envio de Dados Exemplo – Antes do Envio de Dados Grau do Gerador = 5 11110010100000 Exemplo – Antes do Envio de Dados Grau do Gerador = 5 11110010100000 101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 Gerador Exemplo – Antes do Envio de Dados 11110010100000 101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 1 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101 010001 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101 010001 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101 0100011 Exemplo – Antes do Envio de Dados 11110010100000 101101 11101101 0100011 Exemplo – Antes do Envio de Dados 11110010100000 101101 11101101 0100011 101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 11101101 0100011 101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 11101101 0100011 101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 11101101 0100011 101101 xor 001110 Exemplo – Antes do Envio de Dados 11110010100000 101101 11101101 0100011 101101 0011100 Exemplo – Antes do Envio de Dados 11110010100000 101101 110101101 0100011 101101 0011100 Exemplo – Antes do Envio de Dados 11110010100000 101101 110101101 0100011 101101 00111001 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 101101 xor 010100 Exemplo – Antesdo Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 101101 010100 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101101101 0100011 101101 00111001 101101 0101000 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011101101 0100011 101101 00111001 101101 0101000 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 xor 000101 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 000101 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 0001010 Exemplo – Antes do Envio de Dados 11110010100000 101101 110110101101 0100011 101101 00111001 101101 0101000 101101 0001010 Exemplo – Antes do Envio de Dados 11110010100000 101101 110110101101 0100011 101101 00111001 101101 0101000 101101 00010100 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101100101101 0100011 101101 00111001 101101 0101000 101101 00010100 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101100101101 0100011 101101 00111001 101101 0101000 101101 000101000 Exemplo – Antes do Envio de Dados 11110010100000 101101 1101100101101 0100011 101101 00111001 101101 0101000 101101 000101000 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101000 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101000 101101 xor Exemplo – Antes do Envio de Dados 11110010100000 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101000 101101 xor 000101 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101000 101101 000101 Exemplo – Antes do Envio de Dados 11110010100000 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101000 101101 0001010 Exemplo – Antes do Envio de Dados 11110010100000 101101 110110010101101 0100011 101101 00111001 101101 0101000 101101 000101000 101101 0001010 Exemplo – Envio dos Dados • Após calcular o CRC cujos bits são 01010, o emissor envia os bits de dados mais os bits de CRC. • O receptor utiliza os bits enviados e divide pelo gerador para verificar se os bits estão corretos. CRC ou Código de Redundância Cíclica Emissor Receptor 11110010101010 Exemplo – Teste no Receptor 11110010101010 Exemplo – Teste no Receptor 11110010101010 101101 Exemplo – Teste no Receptor 11110010101010 101101 1 Exemplo – Teste no Receptor 11110010101010 101101 1101101 Exemplo – Teste no Receptor 11110010101010 101101 1101101 xor Exemplo – Teste no Receptor 11110010101010 101101 1101101 xor 010001 Exemplo – Teste no Receptor 11110010101010 101101 1101101 0100011 Exemplo – Teste no Receptor 11110010101010 101101 11101101 0100011 Exemplo – Teste no Receptor 11110010101010 101101 11101101 0100011 101101 Exemplo – Teste no Receptor 11110010101010 101101 11101101 0100011 101101 Exemplo – Teste no Receptor 11110010101010 101101 11101101 0100011 101101 xor 001110 Exemplo – Teste no Receptor 11110010101010 101101 11101101 0100011 101101 001110 Exemplo – Teste no Receptor 11110010101010 101101 11101101 0100011 101101 0011100 Exemplo – Teste no Receptor 11110010101010 101101 110101101 0100011 101101 0011100 Exemplo – Teste no Receptor 11110010101010 101101 110101101 0100011 101101 00111001 Exemplo – Teste no Receptor 11110010101010 101101 1101101101 0100011 101101 00111001 101101 Exemplo – Teste no Receptor 11110010101010 101101 1101101101 0100011 101101 00111001 101101 010100 Exemplo – Teste no Receptor 11110010101010 101101 1101101101 0100011 101101 00111001 101101 0101000 Exemplo – Teste no Receptor 11110010101010 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 Exemplo – Teste no Receptor 11110010101010 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 000101 Exemplo – Teste no Receptor 11110010101010 101101 11011101101 0100011 101101 00111001 101101 0101000 101101 0001011 Exemplo – Teste no Receptor 11110010101010 101101 110110101101 0100011 101101 00111001 101101 0101000 101101 0001011 Exemplo – Teste no Receptor 11110010101010 101101 110110101101 0100011 101101 00111001 101101 0101000 101101 00010110 Exemplo – Teste no Receptor 11110010101010 101101 1101100101101 0100011 101101 00111001 101101 0101000 101101 00010110 Exemplo – Teste no Receptor 11110010101010 101101 1101100101101 0100011 101101 00111001 101101 0101000 101101 000101101 Exemplo – Teste no Receptor 11110010101010 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101101 Exemplo – Teste no Receptor 11110010101010 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101101 101101 Exemplo – Teste no Receptor 11110010101010 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101101 101101 000000 Exemplo – Teste no Receptor 11110010101010 101101 11011001101101 0100011 101101 00111001 101101 0101000 101101 000101101 101101 0000000 Exemplo – Teste no Receptor 11110010101010 101101 110110010101101 0100011 101101 00111001 101101 0101000 101101 000101101 101101 0000000 Exemplo – Teste no Receptor 11110010101010 101101 110110010101101 0100011 101101 00111001 101101 0101000 101101 000101101 101101 0000000 Exemplo – Teste no Receptor 11110010101010 101101 110110010101101 0100011 101101 00111001 101101 0101000 101101 000101101 101101 0000000 Resto zero: os dados recebidos estão corretos Considerações • Padrões para CRC com 8, 12, 16 ou 32 bits: – CRC-32 – CRC-16 – CRC-12 Considerações • Cada padrão de CRC detecta erros em rajadas menores que (r+1) bits. • Os padrões também detectam qualquer quantidade ímpar de erros de bits. • ATM utiliza CRC-8 no cabeçalho das células. • CRC-32 é utilizado pelos protocolos da camada de enlace padronizados pelo IEEE. Exercícios Calcule o CRC para a seqüência de bits “10011110111001” e “10111110101001” para os seguintes polinômios geradores: G(x) = X^5 + X^2 + 1 G(x) = X^6 + X^4 + X^1 + 1 Atividade em Trios • Pesquisar na internet o funcionamento de ataques do tipo (em redes WEP): – Ataque de Replay – Ataque de bit-flipping 1) Descrever detalhadamente o funcionamento de cada um. 2) Por que o código CRC é vulnerável para este tipo de ataque, em redes sem fio? 3) Explicar, com suas palavras, como se proteger deste tipo de ataque. Entregar aatividade até o final da aula.
Compartilhar