Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução:...

32
Criptografia e Criptografia e Segurança de Rede Segurança de Rede Capítulo 6 Capítulo 6 Quarta Edição Quarta Edição por William Stallings por William Stallings Tradução: Carlos Daniel Tradução: Carlos Daniel Abreu Abreu

Transcript of Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução:...

Page 1: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Criptografia e Criptografia e Segurança de Rede Segurança de Rede

Capítulo 6Capítulo 6

Quarta EdiçãoQuarta Edição

por William Stallingspor William Stallings

Tradução: Carlos Daniel AbreuTradução: Carlos Daniel Abreu

Page 2: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Capítulo 6 – Mais sobre cifras Capítulo 6 – Mais sobre cifras simétricassimétricas

““Estou familiarizado com todas as formas de Estou familiarizado com todas as formas de escritas secretas, sendo eu mesmo o escritas secretas, sendo eu mesmo o autor de uma monografia superficial sobre autor de uma monografia superficial sobre o assunto, em que analiso 160 cifras o assunto, em que analiso 160 cifras diferentes" dissediferentes" disse Holmes. Holmes.

——The Adventure of the Dancing Men, The Adventure of the Dancing Men, Sir Arthur Conan DoyleSir Arthur Conan Doyle

Page 3: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Criptografia Múltipla & DES Criptografia Múltipla & DES TriploTriplo

Era necessário substituir o DESEra necessário substituir o DES Vulnerável a ataques por força brutaVulnerável a ataques por força bruta E também a ataques cripto-analíticosE também a ataques cripto-analíticos

AES é uma alternativa para istoAES é uma alternativa para isto Outra opção é usar a criptografia múltipla com Outra opção é usar a criptografia múltipla com

DES e chaves múltiplasDES e chaves múltiplas DES triplo foi a forma escolhidaDES triplo foi a forma escolhida

Page 4: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

DES DuploDES Duplo

Pode-se usar 2DES em cada blocoPode-se usar 2DES em cada bloco C = EC = EK2K2(E(EK1K1(P))(P))

Redução a um único estágioRedução a um único estágio Ataque “meet-in-the-middle”Ataque “meet-in-the-middle”

Funciona em qualquer cifra de criptografia de blocoFunciona em qualquer cifra de criptografia de bloco Desde que Desde que X = EX = EK1K1(P) = D(P) = DK2K2(C)(C) Criptografe P para todos os valores possíveis de KCriptografe P para todos os valores possíveis de K11

Então decriptografe C usando todos os valores Então decriptografe C usando todos os valores possíveis de Kpossíveis de K22

Pode mostrar Pode mostrar O(2O(25656)) passos passos

Page 5: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

DES triplo com duas chavesDES triplo com duas chaves

Deve-se usar 3 criptaçõesDeve-se usar 3 criptações Afigura a necessidade de 3 chaves distintasAfigura a necessidade de 3 chaves distintas

Mas pode usar 2 chaves com sequência Mas pode usar 2 chaves com sequência Cript-Decript-CriptCript-Decript-Cript C = EC = EK1K1(D(DK2K2(E(EK1K1(P)))(P))) cript & decript equivalentes em segurançacript & decript equivalentes em segurança se se K1=K2K1=K2 então funciona com Simples DES então funciona com Simples DES

Padronizado em ANSI X9.17 & ISO8732Padronizado em ANSI X9.17 & ISO8732 Nenhum ataque conhecidoNenhum ataque conhecido

Page 6: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

DES triplo com três chavesDES triplo com três chaves

Embora não tem ataques para duas chaves o Embora não tem ataques para duas chaves o DES triplo tem suas indicaçõesDES triplo tem suas indicações

Possui um tamanha de chave efetivo de 168 Possui um tamanha de chave efetivo de 168 bits e é definido da seguinte maneira:bits e é definido da seguinte maneira: C = EC = EK3K3(D(DK2K2(E(EK1K1(P)))(P)))

Diversas aplicações na internet adotaram o Diversas aplicações na internet adotaram o 3DES com três chaves, incluindo PGP, S/MINE3DES com três chaves, incluindo PGP, S/MINE

Page 7: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Modos de operação de cifra Modos de operação de cifra de blocode bloco

Criptografia de cifra de bloco com tamanho do Criptografia de cifra de bloco com tamanho do bloco fixobloco fixo Ex.: DES usa blocos de 64-bit c/ chaves de 56-bit Ex.: DES usa blocos de 64-bit c/ chaves de 56-bit

Precisa de alguma maneira para en/decript Precisa de alguma maneira para en/decript arbitrária quantidade de dadosarbitrária quantidade de dados

ANSI X3.106-1983 modo de usar ANSI X3.106-1983 modo de usar (agora FIPS (agora FIPS 81)81) define 4 possíveis modosdefine 4 possíveis modos

posteriormente 5 definições para AES & DESposteriormente 5 definições para AES & DES Tem modos de Tem modos de blocosblocos e e fluxofluxo

Page 8: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Modo Eletronic CodebookModo Eletronic Codebook

Mensagem é quebrada em blocos Mensagem é quebrada em blocos independentes que são criptografadosindependentes que são criptografados

Cada bloco é um valor que é substituído, Cada bloco é um valor que é substituído, como um codebook, por isso do nome.como um codebook, por isso do nome.

Cada bloco é codificado independentemente Cada bloco é codificado independentemente dos outros blocosdos outros blocosCCii = DES = DESK1K1(P(Pii))

Uso: ideal para transmissão segura de Uso: ideal para transmissão segura de pequena quantidade de dadospequena quantidade de dados

Page 9: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Electronic Codebook Book (ECB)Electronic Codebook Book (ECB)

Page 10: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Vantagens e Limitações do ECBVantagens e Limitações do ECB

Mensagens repetidas podem aparecer no Mensagens repetidas podem aparecer no criptogramacriptograma Se alinhado com o bloco da mensagemSe alinhado com o bloco da mensagem Particularmente com os dados do gráficoParticularmente com os dados do gráfico Ou com mensagens que mudam muito pouco, que Ou com mensagens que mudam muito pouco, que

se tornam um problema de analise de code-bookse tornam um problema de analise de code-book Fraqueza é devido a blocos de mensagem Fraqueza é devido a blocos de mensagem

criptografada serem independentescriptografada serem independentes Utilização principal é o envio de alguns blocos Utilização principal é o envio de alguns blocos

de dadosde dados

Page 11: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Modo Cipher Block Chaining Modo Cipher Block Chaining (CBC) (CBC)

Mensagem é quebrado em blocosMensagem é quebrado em blocos Ligados juntos na operação de criptografiaLigados juntos na operação de criptografia Cada bloco da cifra anterior é encadeado com Cada bloco da cifra anterior é encadeado com

o bloco do texto atual, por isso o nome.o bloco do texto atual, por isso o nome. Usa o vetor inicial (IV) para iniciar o processoUsa o vetor inicial (IV) para iniciar o processo

CCii = DES = DESK1K1(P(Pii XOR C XOR Ci-1i-1))

CC-1-1 = IV = IV

Uso: Confidencialidade, autenticaçãoUso: Confidencialidade, autenticação

Page 12: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Cipher Block Chaining (CBC)Cipher Block Chaining (CBC)

Page 13: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Message PaddingMessage Padding

No final da mensagem tem de lidar com um No final da mensagem tem de lidar com um possível curto último blocopossível curto último bloco Que não é tão grande quanto o tamanho do bloco da Que não é tão grande quanto o tamanho do bloco da

cifracifra também com conhecidos valores de não-dados (ex.: também com conhecidos valores de não-dados (ex.:

nulos)nulos) Ou PAD último bloco juntamente com a contagem do Ou PAD último bloco juntamente com a contagem do

tamanho do PADtamanho do PAD• ex. [ b1 b2 b3 0 0 0 0 5] ex. [ b1 b2 b3 0 0 0 0 5] • significa ter 3 bytes de dados, então 5 bytes pad+contadorsignifica ter 3 bytes de dados, então 5 bytes pad+contador

Isto pode requerer um bloco de entrada extra sobre a Isto pode requerer um bloco de entrada extra sobre a mensagemmensagem

Existem outros, mais exóticos, que evitam a Existem outros, mais exóticos, que evitam a necessidade de um bloco extranecessidade de um bloco extra

Page 14: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Vantagens e Limitações do CBCVantagens e Limitações do CBC

Um bloco de texto-cifrado depende de Um bloco de texto-cifrado depende de todostodos os blocos anterioresos blocos anteriores

Qualquer mudança a um bloco afeta todos os Qualquer mudança a um bloco afeta todos os blocos seguintesblocos seguintes

Precisa do Vetor de Inicialização (IV) Precisa do Vetor de Inicialização (IV) Precisa ser conhecido pelo emissor e receptorPrecisa ser conhecido pelo emissor e receptor Se enviado limpo, atacantes podem mudar bits do primeiro Se enviado limpo, atacantes podem mudar bits do primeiro

bloco, e mudar o IV para compensarbloco, e mudar o IV para compensar Por isso IV tem que ser um valor fixo (como na EFTPOS)Por isso IV tem que ser um valor fixo (como na EFTPOS) Ou ser enviado criptografado no ECB antes do resto da Ou ser enviado criptografado no ECB antes do resto da

mensagemmensagem

Page 15: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Cipher FeedBack (CFB)Cipher FeedBack (CFB)

Mensagem é tratada como um fluxo de bitsMensagem é tratada como um fluxo de bits Adicionada a saída da cifra de blocoAdicionada a saída da cifra de bloco Resultado é resposta para o próximo passoResultado é resposta para o próximo passo Padrão permite qualquer número de bit (1,8, 64 ou Padrão permite qualquer número de bit (1,8, 64 ou

128 etc) para ser resposta128 etc) para ser resposta denotado CFB-1, CFB-8, CFB-64, CFB-128 etc denotado CFB-1, CFB-8, CFB-64, CFB-128 etc

Mais eficiente para usar todos os bits no bloco (64 ou Mais eficiente para usar todos os bits no bloco (64 ou 128)128)CCii = P = Pii XOR DES XOR DESK1K1(C(Ci-1i-1))

CC-1-1 = IV = IV Uso: criptografia de fluxo de dados, autenticaçãoUso: criptografia de fluxo de dados, autenticação

Page 16: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Cipher FeedBack (CFB)Cipher FeedBack (CFB)

Page 17: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Vantagens e Limitações da CFBVantagens e Limitações da CFB

Apropriado quando dados chegam em Apropriado quando dados chegam em bits/bytes bits/bytes

Mais comum modo de fluxoMais comum modo de fluxo Limitação é necessário para pararLimitação é necessário para parar enquanto enquanto

encripta o bloco após todo n-bitsencripta o bloco após todo n-bits Note que a cifra de bloco é usada no modo de Note que a cifra de bloco é usada no modo de

encriptaçãoencriptação em em ambosambos os finais os finais Erros propagam por muitos blocos depois do Erros propagam por muitos blocos depois do

erroerro

Page 18: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Output FeedBack (OFB)Output FeedBack (OFB)

Mensagem é tratada como um fluxo de bitsMensagem é tratada como um fluxo de bits Saída da cifra é adicionada a mensagemSaída da cifra é adicionada a mensagem Saída é então resposta (por isso o nome)Saída é então resposta (por isso o nome) Resposta é independente da mensagemResposta é independente da mensagem Pode ser calculada antecipadamentePode ser calculada antecipadamente

CCii = P = Pii XOR O XOR Oii

OOii = DES = DESK1K1(O(Oi-1i-1))

OO-1-1 = IV = IV

Uso: encriptação em fluxo de canal com ruídosUso: encriptação em fluxo de canal com ruídos

Page 19: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Output FeedBack (OFB)Output FeedBack (OFB)

Page 20: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Vantagens e Limitações do OFBVantagens e Limitações do OFB

Bits com erros não se propagamBits com erros não se propagam Maior vulnerabilidade para modificação do fluxo de Maior vulnerabilidade para modificação do fluxo de

mensagens mensagens Uma variação da cifra de VernamUma variação da cifra de Vernam

Por isso deve-se Por isso deve-se nuncanunca re-utilizar a mesma re-utilizar a mesma sequência (key+IV) sequência (key+IV)

emissor & receptor devem continuar em sincroniaemissor & receptor devem continuar em sincronia Originalmente especificado com n-bit de respostaOriginalmente especificado com n-bit de resposta Pesquisas posteriores tem mostrado que somente Pesquisas posteriores tem mostrado que somente

resposta de bloco inteiroresposta de bloco inteiro (Ex.: CFB-64 ou CFB-128) (Ex.: CFB-64 ou CFB-128) deveria ser usadodeveria ser usado

Page 21: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Modo Counter (CTR)Modo Counter (CTR)

Um “novo” modo, apesar de proposto a mais Um “novo” modo, apesar de proposto a mais tempotempo

Similar ao OFB mas encripta o valor counter ao Similar ao OFB mas encripta o valor counter ao invés de qualquer valor de respostainvés de qualquer valor de resposta

Deve ter um valor diferente da chave & counter Deve ter um valor diferente da chave & counter para cada bloco de texto (nunca re-utilizado)para cada bloco de texto (nunca re-utilizado)CCii = P = Pii XOR O XOR Oii

OOii = DES = DESK1K1(i)(i)

Uso: criptografia em redes de alta velocidadeUso: criptografia em redes de alta velocidade

Page 22: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Counter (CTR)Counter (CTR)

Page 23: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Vantagens e Limitações do CTRVantagens e Limitações do CTR

EficiênciaEficiência Pode fazer criptografias paralelas em h/w ou s/wPode fazer criptografias paralelas em h/w ou s/w Pode pré-processar em antecipação a necessidadePode pré-processar em antecipação a necessidade Bom para bursty links de alta velocidadeBom para bursty links de alta velocidade

Acesso randômico para encriptar blocos de Acesso randômico para encriptar blocos de dadosdados

Segurança provável (bom como os outro)Segurança provável (bom como os outro) Mas deve-se certificar-se de nunca re-utilizar Mas deve-se certificar-se de nunca re-utilizar

os valores da chave/counter, senão pode os valores da chave/counter, senão pode quebrá-lo (cf OFB)quebrá-lo (cf OFB)

Page 24: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Cifras de fluxoCifras de fluxo

Processa a mensagem bit a bit (como no fluxo)Processa a mensagem bit a bit (como no fluxo) Tem um pseudo-aleatório Tem um pseudo-aleatório fluxo de chavefluxo de chave Combinando (XOR) com o fluxo de texto claroCombinando (XOR) com o fluxo de texto claro Aleatoriedade do Aleatoriedade do fluxo de chavefluxo de chave destrói destrói

completamente as propriedades estatísticas na completamente as propriedades estatísticas na mensagemmensagem CCii = M = Mii XOR StreamKey XOR StreamKeyii

Mas nunca se deve re-utilizar o fluxo de chaveMas nunca se deve re-utilizar o fluxo de chave Senão pode-se recuperar a mensagemSenão pode-se recuperar a mensagem

Page 25: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Estrutura da cifra de fluxoEstrutura da cifra de fluxo

Page 26: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

Propriedades da cifra de FluxoPropriedades da cifra de Fluxo

Algumas considerações de design são:Algumas considerações de design são: Longo período sem repetiçõesLongo período sem repetições Estatisticamente randômicoEstatisticamente randômico Depende de uma chave grande o bastanteDepende de uma chave grande o bastante Grande complexidade linearGrande complexidade linear

Devidamente implementado, pode ser tão Devidamente implementado, pode ser tão seguro quanto uma cifra de bloco com a chave seguro quanto uma cifra de bloco com a chave do mesmo tamanhodo mesmo tamanho

Porém mais simples & rápidoPorém mais simples & rápido

Page 27: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

RC4RC4

Uma cifra proprietária pertencente ao RSA DSI Uma cifra proprietária pertencente ao RSA DSI Outro design de Ron Rivest , simples mas eficienteOutro design de Ron Rivest , simples mas eficiente Tamanho da chave variável, cifra de fluxo de Tamanho da chave variável, cifra de fluxo de

orientação de byteorientação de byte Amplamente utilizado (web SSL/TLS, wireless WEP) Amplamente utilizado (web SSL/TLS, wireless WEP) Chaves formam uma permutação randômica de todos Chaves formam uma permutação randômica de todos

os valores 8-bitos valores 8-bit Que usa a permutação para misturar as informações Que usa a permutação para misturar as informações

de entrada processando um byte por vezde entrada processando um byte por vez

Page 28: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

RC4 - RC4 - Cronograma da chave Cronograma da chave

Começa com um vetor S de números: 0..255Começa com um vetor S de números: 0..255 Usa a chave para boa e verdadeira mistura Usa a chave para boa e verdadeira mistura S forma S forma state internostate interno da cifra da cifra

for i = 0 to 255 dofor i = 0 to 255 doS[i] = iS[i] = iT[i] = K[i mod keylen])T[i] = K[i mod keylen])

j = 0j = 0for i = 0 to 255 do for i = 0 to 255 do

j = (j + S[i] + T[i]) (mod 256) j = (j + S[i] + T[i]) (mod 256) swap (S[i], S[j])swap (S[i], S[j])

Page 29: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

RC4 CriptografiaRC4 Criptografia

Criptografia continua misturando valores do Criptografia continua misturando valores do vetorvetor

A soma dos pares misturados seleciona o valor A soma dos pares misturados seleciona o valor do “fluxo da chave” da permutaçãodo “fluxo da chave” da permutação

XOR S[t] com o próximo byte da mensagem XOR S[t] com o próximo byte da mensagem para en/decriptarpara en/decriptari = j = 0 i = j = 0

for each message byte Mfor each message byte Mii

i = (i + 1) (mod 256)i = (i + 1) (mod 256)j = (j + S[i]) (mod 256)j = (j + S[i]) (mod 256)swap(S[i], S[j])swap(S[i], S[j])t = (S[i] + S[j]) (mod 256) t = (S[i] + S[j]) (mod 256)

CCii = M = Mii XOR S[t] XOR S[t]

Page 30: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

RC4 OverviewRC4 Overview

Page 31: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

RC4 SegurançaRC4 Segurança

Alegou segurança contra ataques conhecidosAlegou segurança contra ataques conhecidos Tem algumas análises, nenhuma prática Tem algumas análises, nenhuma prática

Resultado é muito não-linearResultado é muito não-linear Desde RC4 é uma cifra de fluxo, deve-se Desde RC4 é uma cifra de fluxo, deve-se

nunca re-utilizar a chavenunca re-utilizar a chave Tem uma preocupação com a chave WEP, Tem uma preocupação com a chave WEP,

mas devido a manipulação em vez do próprio mas devido a manipulação em vez do próprio RC4RC4

Page 32: Criptografia e Segurança de Rede Capítulo 6 Quarta Edição por William Stallings Tradução: Carlos Daniel Abreu.

SumárioSumário

DES triploDES triplo Modos de operaçãoModos de operação

ECB, CBC, CFB, OFB, CTRECB, CBC, CFB, OFB, CTR Cifras de fluxoCifras de fluxo RC4RC4