redes de computadores -...

43
Segurança de Redes de Computadores Ricardo José Cabeça de Souza www.ricardojcsouza.com.br [email protected]

Upload: danglien

Post on 17-Feb-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Segurança de Redes de Computadores

Ricardo José Cabeça de Souza

www.ricardojcsouza.com.br

[email protected]

• RC (Ron's Code ou Rivest Cipher)

– Criado por Ron Rivest na empresa RSA Data Security

– Algoritmo muito utilizado em e-mails e faz uso de chaves que vão de 8 a 1024 bits Padrão 128 bits

– Possui várias versões: RC2,RC4, RC5 e RC6

– Essencialmente, cada versão difere da outra por trabalhar com chaves maiores

Criptografia www.ricardojcsouza.com.br [email protected]

• RC (Ron's Code ou Rivest Cipher)

– Utiliza um gerador pseudo-randômico para gerar um fluxo de bits que é utilizado como chave – key stream

– A utilização do mesmo key stream é um risco pois torna o algoritmo vulnerável a uma série de ataques

Criptografia www.ricardojcsouza.com.br [email protected]

• RC (Ron's Code ou Rivest Cipher)

Criptografia www.ricardojcsouza.com.br [email protected]

• RC (Ron's Code ou Rivest Cipher)

– RC5 de 12 ciclos (com blocos de 64 bits) é suscetível a um ataque criptoanalítico diferencial usando 244 textos simples específicos

– O uso de 18 a 20 ciclos é sugerido como proteção suficiente

– A RSA Security, que possui uma patente do algoritmo, ofereceu uma série de prêmios de dez mil dólares para quem decifrasse um texto cifrado com RC5, mas estes desafios foram descontinuados em maio de 2007

Criptografia www.ricardojcsouza.com.br [email protected]

• RC (Ron's Code ou Rivest Cipher)

– Alguns destes desafios foram vencidos usando computação distribuída pela organização Distributed.net

– Usando o método da força bruta, a Distributed.net desencriptou mensagens cifradas (através de RC5) utilizando chaves de 56 e 64 bits

– Usado nos protocolos WEP(Wired Equivalency Protection) e no WPA(Wi-Fi Protected Access)

Criptografia www.ricardojcsouza.com.br [email protected]

• TWOFISH

– O Twofish é um algoritmo de livre distribuição, criado por Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall e Niels Ferguson

– Criado com a finalidade de ser um dos candidatos para o Advanced Encryption Standard (AES)

– Vem como uma evolução para o Blowfish, também criado por Schneier

– Seu esquema de cifragem consiste em tratar a mensagem em blocos de 128 bits, utilizando chaves de tamanhos variáveis, podendo ser de 128, 192 ou 256 bits

– Assim como o Blowfish, afim de aumentar a segurança, ele realiza 16 interações durante a criptografia

Criptografia www.ricardojcsouza.com.br [email protected]

• TWOFISH

– É possível utilizar o algoritmo com menos estágios, visto que só foi possível quebrá-lo na quinta interação

– Afim de obter um bom nível de segurança, e sendo ele um algoritmo veloz, é recomendável utilizar as 16 fases

– Mais do que esse número diminui a velocidade sem aumentar muito a segurança

– Não existem chaves fracas para esse algoritmo

– A geração de sua chave em microprocessadores, assim como a capacidade de operar com smartcards, e o processamento em hardware foram projetados afim de gerar uma ótima eficiência

Criptografia www.ricardojcsouza.com.br [email protected]

• TWOFISH

Criptografia www.ricardojcsouza.com.br [email protected]

1) Primeiramente, o texto não-encriptado é dividido em 4 partes de 32 bits

2) Essas quatro partes servem de entrada para os XOR`s com as sub-chaves criadas

3) Em seguida, são feitos os 16 processos, nos quais as duas partes da entrada que estão mais a esquerda servem como entrada para a função g, sendo que uma delas é rodada de 8 bits primeiramente

• TWOFISH

Criptografia www.ricardojcsouza.com.br [email protected]

4) A função g consiste de de 4 S-Boxes de 1 byte cada, que são criadas dependentemente da chave 5) Em seguida, é feita uma mistura linear baseada nas matrizes MDS(Maximum Distance Separable) 6) Os resultados das duas funções G são, então, combinados usando PHT(Pseudo-Hadamard transform) e duas sub-chaves

• TWOFISH

Criptografia www.ricardojcsouza.com.br [email protected]

7) Os dois resultados obtidos desse processo passam a ser entradas para dois XOR`s respectivamente, nos quais as outras duas entradas serão as outras duas partes do texto inicial 8) É importante observar que, antes de ser feito esses XOR`s, um dos conjuntos de entrada que ainda não havia sido usado tem uma rotação de 1 bit para a esquerda, e após os XOR`s, o conjunto cuja entrada não sofreu nenhuma rotação vai ser rodado 1 bit para a direita 9) A partir daí, é feita uma troca entre os grupos da direita e os da esquerda, e estes passarão a ser a entrada para a próxima interação

• FUNÇÕES HASH – A tradução literal de hash é "picar, misturar, confundir“

– Funções criptográficas hash são usadas em vários contextos, por exemplo, para computar um resumo de mensagem ao criar uma assinatura digital

– Uma função hash comprime os bits de uma mensagem com um valor hash de tamanho fixo, distribuindo equitativamente as mensagens possíveis entre os valores hash possíveis

Criptografia www.ricardojcsouza.com.br [email protected]

• FUNÇÕES HASH

Criptografia www.ricardojcsouza.com.br [email protected]

• FUNÇÕES HASH – Uma função hash dificulta extremamente a tarefa de adequar uma

mensagem qualquer a um valor hash particular

– Funções hash costumam produzir valores hash de 128 bits ou mais

– Este número, 2128, é muito maior que o número de mensagens diferentes que possam ser trocadas no mundo todo

– O motivo pelo qual se necessita mais de 128 bits baseia-se no paradoxo do aniversário

• A grosso modo, o paradoxo do aniversário afirma que, se uma determinada função hash mapear qualquer mensagem num resumo hash de 128 bits, podemos esperar que o mesmo resumo será computado duas vezes quando 264 mensagens randomicamente selecionadas tiverem sido "hasheadas“

Criptografia www.ricardojcsouza.com.br [email protected]

• FUNÇÕES HASH – Muitas funções hash podem ser obtidas gratuitamente

– As mais famosas são as da família MD(Message-Digest Algorithm), especialmente a MD4 e a MD5

– A MD4 já foi quebrada e a MD5, apesar de ainda ser muito utilizada, também deveria ser considerada insegura

– A SHA-1 e a RipeMD-160 são dois exemplos do que ainda se considera o estado da arte

Criptografia www.ricardojcsouza.com.br [email protected]

• MD4

– Função hash de mão única MD4 foi projetada por Ron Rivest e publicada oficialmente pela primeira vez em outubro de 1990

– Usa como entrada uma mensagem de comprimento arbitrário e produz uma "impressão digital" ou um "digesto de mensagem" de 128 bits

– Digesto é uma compilação de diretrizes ou uma coleção de decisões, geralmente aplicado como termo jurídico

Criptografia www.ricardojcsouza.com.br [email protected]

• MD4

– Criado para ser utilizado em assinaturas digitais onde um texto longo precisa ser "comprimido" de forma segura antes de ser cifrado com uma chave privada (secreta) por um criptossistema de chave pública

– A entrada do MD4 é uma mensagem que pode ter qualquer comprimento, ou seja, qualquer mensagem com um número arbitrário de bits

Criptografia www.ricardojcsouza.com.br [email protected]

• MD4

– O número de bits, representado por b, é um número inteiro positivo que varia de zero até o infinito

– Para obter o digesto da mensagem, seus bits, representados por m0, m1, ..., m{b-1}, onde b = número de bits da mensagem, são submetidos a diversas operações

– Este processo é dividido em cinco etapas ou passos

Criptografia www.ricardojcsouza.com.br [email protected]

• MD4 – Passo 1: Adição de bits

• Adiciona-se tantos bits quantos forem necessários para que o comprimento da mensagem seja 448 ou qualquer múltiplo de 512 menos 64 bits (512 - 64 = 448, 1024 - 64 = 960, etc)

– Passo 2: Incluir comprimento • O valor b, que representa o

comprimento em bits da mensagem original, deve ser adicionado à mensagem previamente preparada no passo 1 na forma de 64 bits

– Passo 3: Inicialização do buffer MD • Um buffer de quatro words é usado

para calcular o digesto da mensagem

Criptografia www.ricardojcsouza.com.br [email protected]

• MD4 – Passo 4: Processamento da

mensagem em blocos de 16 words • São definidas três funções auxiliares

• Cada um dos bits, a função F atua condicionalmente, ou seja, se X então Y, senão Z.

• G atua como uma função de maioria: se pelo menos dois bits de X, Y e Z estiverem ligados, G produz um bit "1" nesta posição, senão o bit será "0"

– Passo 5: Obtenção do valor hash • O digesto da mensagem é produzido

concatenando-se A, B, C e D

Criptografia www.ricardojcsouza.com.br [email protected]

F G

H

• MD5

– O MD5 foi desenvolvido por Ron Rivest em 1991

– É basicamente o MD4 com um "cinto de segurança" - os cálculos são um pouco mais lentos, mas, em compensação, é muito mais seguro

– É usado em assinaturas digitais onde um texto longo precisa ser "comprimido" de forma segura antes de ser cifrado com uma chave privada (secreta) por um criptossistema de chave pública

– Foi projetado para máquinas de 32 bits

Criptografia www.ricardojcsouza.com.br [email protected]

• MD5 – Passo 1: Preparação do fluxo de dados

• Adiciona-se à mensagem os bits necessários para que seu tamanho mais 64 bits seja divisível por 512

– Passo 2: Inclusão do comprimento

• Uma representação binária do tamanho original da mensagem e que ocupa 64 bits, é adicionada à mesma

– Passo 3: Inicialização do buffer MD

• Um buffer de quatro words é usado para calcular o digesto da mensagem

Criptografia www.ricardojcsouza.com.br [email protected]

F G

H

I

• MD5

– Passo 4: Processamento da mensagem em blocos de 16 words (512 bits) • Definse-se quatro funções

auxiliares

• Cada uma delas usa três words de 32 bits para produzir uma saída de um word de 32 bits

– Passo 5: A saída • O digesto da mensagem

produzido na saída é a concatenação de A, B, C e D

Criptografia www.ricardojcsouza.com.br [email protected]

F G

H

I

• SHA (Secure Hash Algorithm) – A família SHA (Secure Hash Algorithm) está relacionada

com as funções criptográficas

– A função mais usada nesta família, a SHA-1, é usada numa grande variedade de aplicações e protocolos de segurança, incluindo TLS, SSL, PGP, SSH, S/MIME e IPSec

– SHA-1 foi considerado o sucessor do MD5

– Ambos têm vulnerabilidades comprovadas

– Em algumas correntes, é sugerido que o SHA-256 ou superior seja usado para tecnologia crítica

– Os algoritmos SHA foram projetados pela National Security Agency (NSA) e publicados como um padrão do governo Norte-Americano

Criptografia www.ricardojcsouza.com.br [email protected]

• SHA (Secure Hash Algorithm)

Criptografia www.ricardojcsouza.com.br [email protected]

• SHA (Secure Hash Algorithm)

– Tamanhos

Criptografia www.ricardojcsouza.com.br [email protected]

• Algoritmos de Chave Assimétrica

– Também chamados de algoritmos de chave pública e privada

– Utilizam chaves diferentes para cifrar e de cifrar os dados

– Cada pessoa tem duas chaves:

• Uma chave pública que pode ser divulgada

• Outra privada que deve ser mantida em segredo

Criptografia www.ricardojcsouza.com.br [email protected]

• Algoritmos de Chave Assimétrica

– Mensagens cifradas com a chave pública só podem ser decifradas com a chave secreta e vice versa

– Se o algoritmo de encriptação por chave-pública é muitíssimo lento, então deve-se utilizá-lo somente para proteger pequena quantidade de dados

Criptografia www.ricardojcsouza.com.br [email protected]

• Algoritmos de Chave Assimétrica

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– É um software de criptografia multiplataforma de alta segurança produzido pela empresa Pretty Good Software fundida Networks Associates Inc

– Pontos Fortes:

• Tecnologia de chaves públicas, não necessitando de canal seguro para troca de chaves

• Somente a pessoa a quem é destinada o e-mail pode lê-lo

• Autenticação de remetentes a fim de verificar se quem apareceu como remetente foi quem enviou a mensagem

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Antes de comprimir o texto, PGP utiliza uma função de espalhamento segura no conteúdo do texto

– Essa função retorna uma identificação única da mensagem

– Identificação esta que muda, caso o texto sofra qualquer alteração de conteúdo

– Podemos fazer uma analogia a uma função de somatório sofisticada (uma espécie de CRC da mensagem)

– Esse processo é conhecido como assinatura digital

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Essa identificação é então encriptada utilizando a chave secreta do remetente e depois anexada a mensagem

– Quando do recebimento, PGP descomprime e então usa a função sobre a mensagem que recebera

– Depois tenta extrair a identificação encriptada anexa a mensagem utilizando a chave pública do remetente a fim de identificar se realmente foi o remetente que enviou

– Depois compara as identificações a fim de verificar se o texto foi adulterado

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Extrai um identificador I, de 128 bits, único a mensagem, via algoritmo MD5

– Comprime a mensagem via ZIP

– Gera uma chave K aleatória válida somente para sessão corrente de encriptação

– Encripta a mensagem via encriptação simétrica, utilizando a chave K do passo anterior

• Algoritmo utilizado é o CAST ou IDEA ou em menor grau o 3DES e a chave tem 128 bits de tamanho

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Encripta a chave K utilizando a chave pública do destinatário via algoritmo RSA ou DH/DSS (768 bits de tamanho no mínimo)

• Anexa o resultado a mensagem

– Encripta I usando a chave secreta do remetente

– Anexa o resultado a mensagem

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Encriptação

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Ao receber, PGP recupera K usando a chave privada do destinatário

– Desencripta a mensagem com K

– Descomprime o texto

– Extrai I' (identificador da mensagem recebida) via MD5

– Obtém I a partir da chave pública do remetente

– Compara I com I'

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Desencriptação

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Assinatura Digital

• Habilitam o receptor da informação verificar a autenticidade da origem da informação, e também verifica se a informação está intacta

• Provêem autenticação e integridade de dados

• Provê também não repúdio, o que significa que previne o emissor de reivindicar que ele ou ela não enviaram de fato a informação

• Serve para o mesmo propósito que uma assinatura manuscrita

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Assinatura Digital

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Assinatura Digital (com PGP)

Criptografia www.ricardojcsouza.com.br [email protected]

• PGP(Pretty Good Protocol)

– Assinatura Digital

Criptografia www.ricardojcsouza.com.br [email protected]

Referências

• STALLINGS, William. Criptografia e segurança de redes. 4. ed. São Paulo: Pearson Prentice Hall, 2008.

• FECHINI, Joseana Macêdo. Segurança da Informação. Disponível em http://www.dsc.ufcg.edu.br/~joseana/Criptografia-SI.html .

• BRAGA, Hugo Rodrigo. HISTÓRIA DA CRIPTOLOGIA – Antiguidade. Disponível em http://www.hu60.com.br/assuntos/criptologia.php .

• Lima, Marcelo. Nakamura, Emílio. Segurança de Redes e Sistemas. Versão 1.1.0. Escola Superior de Redes RNP:2007.

• Sousa, Vitor Silva. Esteganografia. Disponível em http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/vitor/Tcnicas.html .

• Disponível em http://www.numaboa.com.br/criptografia/bloco/355-modos-de-operacao .

• Pretty Good Protocol. Disponível em http://www.rnp.br/_arquivo/documentos/ref0181.pdf .

• Protocolo SSH. Disponível em http://www.gta.ufrj.br/~natalia/SSH/indice.html .

www.ricardojcsouza.com.br [email protected]

Referências

• Julio, Eduardo Pagani. Brazil, Wagner Gaspar. Albuquerque, Célio Vinicius Neves. Esteganografia e suas Aplicações. VII Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais, 2007.

• MEDEIROS, Carlos Diego Russo. SEGURANÇA DA INFORMAÇÃO: Implantação de Medidas e Ferramentas de Segurança da Informação. Universidade da Região de Joinville – UNIVILLE, 2001.

• NIC BR Security Office. Cartilha de Segurança para Internet. Parte VII: Incidentes de Segurança e Uso Abusivo da Rede. Versão 2.0, 2003.

• NIC BR Security Office. Cartilha de Segurança para Internet. Parte II: Riscos Envolvidos no Uso da Internet e Métodos de Prevenção. Versão 2.0, 2003.

• FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. 4. ed. São Paulo: McGraw-Hill, 2008.

www.ricardojcsouza.com.br [email protected]