Você está na página 1de 83

5: Algoritmos Criptogrficos

Cenrio inicial da padronizao em criptografia at 1970:....No existiam padres, e praticamente nenhuma cultura ou pesquisa criptogrfica fora da rea militar. Pequenas companias vendiam hardware de criptografia restrita para governos.

1972...........National Institute of Standards and Technology iniciou um programa para proteo a computadores e comunicao de dados que previa o estabelecimento de um algoritmo criptogrfico padro que permitisse interoperabilidade nas comunicaes.

1973...........NIST abriu concurso para escolha de um algoritmo padro que obedecesse os critrios de segurana divulgados. Nenhum dos candidatos conseguiu alcanar esses critrios.

1974...........NIST relana o concurso. O algoritmo submetido pela IBM (baseado no algoritmo LUCIFER) passou nos critrios preliminares. Sua avaliao detalhada foi requisitada National Security Agency, que o cosiderou seguro. Foi ento escolhido.

1975...........NIST negocia com a IBM os direitos de uso irrestrito e livre do algoritmo, aps alterao feita pela NSA que encurtou o tamanho das chaves e aps debates pblicos sobre sua segurana.

1976...........O algoritmo escolhido adotado em 23/11/76 como padro oficial nos EUA, renovvel a cada 5 anos, com nome de Data Encription Standard (DES). O NIST publica vrias documentos de especificao para implementao e uso do DES, com inteno de poder validar implementaes em hardware.

1981-92............ANSI, ISO acolhem e NIST renova o padro DES.

Descrio do algoritmo padro DES


Especificao geral - Cifra de bloco de 64 bits: o bloco de entrada,
chave e criptograma tem o mesmo tamanho. O algoritmo uma rede de Feistel, constituida de 16 rodadas que alternam substituio f, XOR e permutao em subblocos L, R.

Especificao do DES -

Criptografia e Segurana na Informtica

Cada oitavo bit da chave k (paridade do byte), extrado e os outros permutados antes da gerao das subchaves locais Ki. Estas subchaves so calculadas por permutao e compresso, repetidas a cada rodada, entrando na composio de f conforme o diagrama e tabelas abaixo

Especificao das substituies DES -

Pedro Rezende 1998-2002

As caixas de substituio (S-boxes) foram escolhidas de forma a minimizar a alcance da tcnica estatstica de ataque por texto pleno escolhido, conhecido a partir de 1990 como criptoanlise diferencial.

Criptografia e Segurana na Informtica

Anlise do DES

1.

Segurana A IBM afirma ter o DES consumido 17 homens-ano de intenso trabalho de criptoanlise. A NSA supostamente induziu alteraes no algoritmo original, no comprimento til da chave (de 112 para 56 bits) e nas caixas S, talvez para eliminar possveis trapdoors plantadas pela IBM.
2.

Durante os debates para escolha do padro pela NIST, alguns crticos suspeitaram terem as alteraes sido impostas para que a NSA pudesse plantar trapdoors no algoritmo. Em 1978 uma comisso do senado americano com acesso a material secreto desautorizou essas suspeitas.

Chaves fracas As quatro chaves abaixo, dentre as possveis 72 057 594 037 927 936 chaves do DES, geram apenas 4 subchaves, usadas em 4 rodadas cada.
Valores de chaves fracas do DES (com bits de paridade) k= 0101 0101 0101 0101 hexadecimal k= 0101 0101 FEFE FEFE k= FEFE FEFE 0101 0101 k= FEFE FEFE FEFE FEFE

Nmero de rodadas Aps 5 rodadas, qualquer bit do criptograma funo dos 64 bits de entrada e dos 56 bits da chave. Porm a tcnica de criptonlise diferencial (secretamente conhecida dos projetistas do DES) permite ataque eficiente por texto pleno escolhido, caso o algoritmo execute menos de 16 rodadas.

Pedro Rezende 1998-2002

Criptoanlise diferencial
Aplicaes Nas redes de Feistel onde f(k,m) aplica substituio em km, as propriedades estatsticas de f podem ser exploradas em ataques de texto pleno conhecido, pela anlise de diferenas na entrada e sada de f:
1.

Calcula-se a probabilidade de ocorrncias de padres na sada f(k,m)


f(k,m), para dada diferena fixa entre valores de entrada m e m.

Constri-se uma tabela para f dessas probabilidades, que independem de k. (Tabela de caractersticas de f)
2.

De posse de uma cifra com chave k desconhecida, encripta-se vrios pares de mensagens m, m e mede-se a freqncia de diferenas nos pares de sada na rodada i. Compara-se as freqncias medidas com as caractersticas de f, para inferir provveis bits de Kim e Kim

3.

Combinam-se as probabilidades para valores de bits em subchaves Ki das vrias rodadas, para se estimar os bits mais provveis da chave k.

Criptografia e Segurana na Informtica

Ataques ao DES por texto pleno adaptativo


Tcnica mais eficaz em 1995: criptoanlise linear- (Matsui 93)
Aps a criptoanlise diferencial se tornar pblica, foi inventado a tcnica de ataque da criptoanlise linear, que usa aproximao linear para descrever o comportamento interno de uma cifra de bloco, explorando tendncias no randmicas desse comportamento.

Com refinamentos desenvolvidos at 1995, esta a melhor tcnica publicamente conhecida para quebra do DES, usando em mdia 243 blocos de texto pleno escolhidos. Uma implementao em software, com o processamento distribudo em 12 estaes HP9000/735 conseguiu recuperar a chave em 50 dias. (Matsui, CRIPTO 94)

Pedro Rezende 1998-2002

Tcnicas de robustecimento do DES


Encriptao tripla At 1992, no se sabia se essa tcnica aumentava realmente a segurana da cifra, ou apenas seu tempo de execuo. A demonstrao de que o algoritmo criptogrfico do DES no forma um grupo (Campbell, CRIPTO 92) confirmou a eficcia da tripla encriptao. Composies menores ou em outras disposies triplas resultam mais frgeis que esta:

Caixas de substituio dinmicas Alguns fabricantes de placas de encriptao DES implementam alocao dinmica para valores das caixas S1..S8 durante a leitura da chave. Toda a segurana do DES e os ataques eficientes hoje conhecidos concentram-se nessas caixas. Substituies aleatrias quase sempre tornam o algoritmo bem mais vulnervel criptoanlise diferencial ou linear. (resistncia da cifra a uma dessas tcnicas tende a favorecer outra) Substituies dinmicas s devem ser usadas com vida til curta.
8

Criptografia e Segurana na Informtica

Outros Algoritmos Simtricos


NewDES (Robert Scott, 1985) Apesar do nome, no um padro nem variante do DES. um algoritmo iterativo com 17 rodadas, que usa blocos de 64 bits e chave de 120 bits, cujos bytes so as subchaves K0...K14, usadas intercaladamente.

Anlise do NewDES Concebido para implementao em software mais eficiente que o DES, pois opera em bytes. menos seguro embora use chave maior, sucumbindo ao ataque de chaves relacionadas, com 233 chaves e mensagens escolhidas em 233 passos. (parecido criptoanlise diferencial, onde mede-se a freqncia de diferenas na sada entre pares de chaves)

Pedro Rezende 1998-2002

Khufu (Ralph Merkle, 1990) Algoritmo cujo projeto explora as deficincias do DES em software. Para cifra de bloco de 64 bits. Iterativo com chave de 512 bits, nmero de rodadas configurvel e S-boxes 8x32 dinmicas, geradas a partir da chave. Apresenta overhead de tempo execuo para clculo das S-boxes, com impacto em encriptaes curtas e em ataques por fora bruta. resistente analise diferencial e linear, e patenteado (licenas concedidas pela Xerox Corp, P.O. box 1600, Stamford CT, EUA)

Khafre (Ralph Merkle, 1990) Algoritmo cujo projeto explora as deficincias do DES em software. Para cifra de bloco de 64 bits, uma rede de Feistel iterativa com nmero de rodadas configurvel e usa chave de tamanho varivel, entre 64 e 128 bits. Alternativa ao algoritmo Kuhfu que usa S-boxes fixas e portanto sem overhead no tempo de execuo. patenteado (licena pela Xerox Corp)

RC2 (Ron Rivest, 1990) RC2 um algoritmo proprietrio, restrito aos implementadores licenciados pela RSA Data Security Inc. Para cifra de bloco de 64 bits. No iterativo, usa chave de tamanho varivel. (at 1024b). Em princpio resistente anlise diferencial, linear e 3x mais eficiente em SW que o DES. Um acordo entre a Software Publishers Assoc. e o governo dos EUA autoriza a exportao do algoritmo em implementaes que usam 40 bits da chave, empregado em vrios protocolos criptogrficos para redes TCP/IP.

10

Criptografia e Segurana na Informtica

IDEA (Xuejia Lai & James Massey, 1991) -

Algoritmo baseado em vasta fundamentao terica, cifra de bloco de 64 bits iterativa com 8 rodadas e chave de 128 bits, alterna operaes de 3 grupos algbricos de estruturas distintas e opera em palavras de 2 bytes.

Pedro Rezende 1998-2002

11

Anlise do IDEA Algoritmo patenteado, projetado como modelo de cifras de Markov, para as quais a resistncia criptoanlise diferencial pode ser formalizada e quantificada. Pode ser usado em qualquer modo encadeado. Vrios criptlogos j analisaram a verso final do algoritmo (1992), sem nenhum ter divulgado alguma tcnica descoberta que o enfraquea. H uma classe de chaves fracas (para ataques de texto pleno escolhido) com probabilidade menor que 2-96 de serem geradas ao acaso: k= 0000 0000 00?0 0000 0000 0000 000? ???? ?000 Embora recente, talvez seja hoje a cifra simtrica mais robusta em uso. Implementaes do padro de 8 rodadas em software so em geral 2x mais eficientes que o DES. Com 4 rodadas so aparentemente seguras e dobram a eficincia. No pode ser expandido para palvras de 32 bits, porque o IDEA explora o fato de 216+1 ser primo, enquanto 232+1 no . Pode substituir o DES sem muitas modificaes em implementaes de servios criptogrficos. mais conhecido por ter sido escolhido para uma implementao do mdulo shareware de segurana de e-mail, o PGP. IDEA patenteado na Europa e nos EUA, sendo livre de royalties para implementaes sem fins comerciais. Licenas para uso comercial so negociadas por Ascom Sistec AG, Mgenwil, Sua: idea@ascom.ch

MMB (John Daemen, 1993) Algoritmo baseado no IDEA, com blocos e chave de 128 bits e multiplicao mdulo 232-1. vulnervel criptoanlise linear e ao ataque de chave escolhida de Biham. tambm menos eficiente que o DES para implementaes em hardware, embora seja eficiente em software.

12

Criptografia e Segurana na Informtica

GOST (USSR Gosudarstvenyi Standard, 1989) Padro de algoritmo criptogrfico estabelecido pelo governo da (ex-) Unio Sovitica para cifra de bloco de 64 bits, semelhante ao DES. uma rede de Feistel iterativa com 32 rodadas que usa chave de 256 bits. GOST - rodada i
Li-1 Ri-1 Tabela de subchaves

+
Substituio

Rotao<<11

Li Ri

+ Soma mdulo 232

As subchaves so palavras da chave, usadas circularmente: na encriptao no sentido horrio at a rodada 24, anti-horrio nas rodadas 25 a 32; na decriptao, as subchaves so usadas no sentido inverso.

Anlise do GOST O DES usa permutaes em f para aumentar a difuso (efeito avalanche da cifra, que propaga a influencia de qualquer bit de entrada em qualquer bit de sada), enquanto o GOST usa um grande nmero de rodadas, o que tambm contribui, junto com o tamanho da chave e a ocultao das S-boxes, para neutralizar sua anlise diferencial e linear.

Pedro Rezende 1998-2002

13

Blowfish (Bruce Schneier, 1994) Cifra de bloco de 64 bits e chave com tamanho varivel de at 448 bits. uma rede de Feistel iterativa de 16 rodadas que usa XOR, consulta a tabela e adio na funo f, onde as 4 S-boxes 8x32 e o vetor de 18 subchaves so gerados em iteraes de inicializao do prprio algoritmo.

14

Criptografia e Segurana na Informtica

Inicializao e anlise do Blowfish Algoritmo no patenteado, de uso inteiramente livre (o autor acredita na criptografia como patrimnio intelectual coletivo da cincia). As subchaves e S-boxes so derivadas na seguinte inicializao:
1.

Os vetores de subchaves e depois os das S-boxes so carregados, na ordem em que indexados, com o XOR bit a bit da representao binria do nmero e da chave repetidamente concatenada.

2.

A partir de um bloco de zeros na entrada, o algoritmo iterado com o criptograma, substituindo sucessivas subchaves ou blocos de 8 bytes das S-boxes e realimentando a entrada (512 iteraes). Inicializao
VI = 0 V VI = XOR k k k Blowfish
-Atribuio com ps incremento

Subchaves | S-boxes

Chaves fracas (que geram S-boxes duplicadas) podem ser criadas, com probabilidade de 2-14. Estas chaves no podem ser identificadas antes da expanso inicializadora, mas at o momento no se conhece forma de explor-las com tcnicas de anlise diferencial e linear.

O n de mensagens escolhidas necessrias para este ataque da ordem de 28r+1 onde r = n de rodadas da implementao. (24r+1 com chaves fracas)

Em implementaes otimizadas para processadores de 32 bits que carregam os vetores em cache, a encriptao de cada bloco pode ser feita em 26 ciclos de clock do processador, usando 5K de memria RAM

Pedro Rezende 1998-2002

15

RC5 w/r/b (Ron Rivest, 1995) Algoritmos para uma famlia de cifras de bloco onde o n de palavras w do bloco, bytes b da chave e nmero de rodadas r so configurveis. Projetado para implementao em software, opera com XOR, rotaes variveis e aritmtica em 32 bits. Sua patente foi solicitada pela RSA Data Security Inc., que promete vir a cobrar royalties modestos pela licena. As subchaves Si so geradas na inicializao. No caso w = 2, o bloco separado em palavras A e B, e os algoritmos da cifra so
Encriptao RC5 2/r/b: A = A+ S0 B = B+ SI for i = 1 to r do begin A = ((A B)<<<B)+S2i B = ((A B)<<<A)+S2i+1 end {>>>" = shift circular p/ direita} Decriptao RC5 2/r/b: for i = r downto 1 do begin B = ((B S2i+1)>>>A) A A = ((A S2i )>>>B) B end B = B+ SI A = A+ S0 {"<<<" = shift circular p/ esquerda}

Inicializao do RC5 w/r/b A chave copiada para um vetor L de inteiros longos L1...Lm usando a

conveno little endian. O vetor S de subchaves inicializado com iteraes a partir de P e Q, respectivamente, com bits da representao binria de e da constante neperiana 'e', e depois mesclado com L conforme a especificao:
Carga: {P=0Xb7e15163} S0 = P {Q=0x9e3779b9} for i = 1 to 2*(r+1) 1 do Si = (Si1+ Q) mod 232 i=j=0 A=B=0 n = max ( 2*(r+1), m ) Mescla da chave: do n times A = Si = (Si +A+ B) >>>3 B = Lj = (Lj+A+ B)>>>(A+B) i = (i+1) mod 2*(r+1) j = (j+ 1) mod m

16

Criptografia e Segurana na Informtica

Skipjack (NIST, 1990) Algoritmo patenteado e restrito, destinado apenas s funes de cifra em hardware resistente a violaes. Projetado para implementao nos chips Clipper, e Capstone, que incorporam a funcionalidade necessria para uso em protocolos de chaves escrituradas. Foi desenvolvido em 1985 e testado at 1990 pela NSA, e seus detalhes de especificao nunca foram divulgados, exceto algumas de suas propriedades bsicas: para cifra de bloco de 64 bits, com chave de 80 bits e iterativo com 32 rodadas. Seus critrios de projeto, teste, e resultados dos testes foram avaliados por um painel de criptlogos no governamentais que o consideraram seguro, estimando para s daqui a 30 anos a equiparao do custo de ataque por fora bruta ao SKIPJACK ao custo atual de quebra do DES.

Alguns Algoritmos menos conhecidos 1.

FEAL (1987) - Patenteado pela NNT do Japo, semelhante ao DES com nmero varivel de rodadas e rpido, teoricamente mais frgil que o DES. Algoritmo favorito para teste de novas tcnicas de criptoanlise

2. 3.

LOKI (1991) - Algoritmo australiano patenteado, semelhante ao DES. CA-1.1 (1992) - Algoritmo francs baseado em automata celulares, para cifra de bloco de 384 e chave de 1088 bits em processamento paralelo. Patenteado e livre para uso no comercial (H Gutowitz)

4.

CAST (1993) - Patente pendente no Canad, considerado para adoo como padro. Usa bloco e chave de 64 bits, 6 S-boxes (8x32) geradas da chave. Resistente anlise diferencial e linear. (Adams & Tavares)

Pedro Rezende 1998-2002

17

Critrios de projeto para cifras de bloco


Princpios bsicos (Shannon, 1949) 1.

Difuso - Espalhamento da influncia de bits individuais da chave ou mensagem atravs da maior parte possvel do criptograma.

2.

Confuso - Ocultao da relao entre mensagem, criptograma e chave no sentido de tornar complexa sua anlise estatstica.

Caso ideal versus caso vivel A confuso uma propriedade suficiente para as cifras de bloco serem seguras, e teoricamente tais cifras existem em abundncia, j que so apenas permutaes do conjunto das cadeias de bits que formam blocos

Por outro lado, um algoritmo contendo somente uma S-box 64x64 ocuparia 264 *64 bits (~ dez mil terabytes) de memria. Na prtica intercala-se camadas de confuso (tabelas pequenas) e difuso, geralmente por meio de substituies e permutaes, para construi-las.

Redes de Feistel (Horst Feistel, 1973) Desenho de intercalao onde a propriedade nilpotente da operao lgica de "ou" exclusivo () combinada com a permutao dos operandos para permitir a introduo de uma confuso qualquer na construo da classe de funes inversveis que constituem a cifra. Li = Ri-1 ;Ri = Li-1 f(Ri-1,Ki) f [ Li-1 = Li-1 f(Ri-1,Ki) f(Ri-1,Ki) ]

18

Criptografia e Segurana na Informtica

Resistncia anlise diferencial e linear (Matsui, EUROCRIPT94)


Parece haver certa dualidade entre estes dois mtodos, tanto nas tcnicas de explorao no ataque, como nos critrios de escolha de S-boxes que introduzam no-linearidade nas cifras para resistirem a estes ataques.

Critrios de definio para as S-boxes mxn 1.

Quanto maior a sada n em relao entrada m, mais efetiva tende a ser a anlise linear e menos efetiva a anlise diferencial, e vice versa.

2.

Quanto maior as S-boxes, mais provvel que sua substituio, se escolhida ao acaso, seja resistente aos dois mtodos de anlise.

3.

S-boxes fixas escolhidas para resistirem a estes dois mtodos tm segurana desconhecida contra mtodos de ataque desconhecido, ao contrrio das S-boxes randmicas ou geradas a partir da chave.

Comparao do impacto no desempenho das escolhas na especificao das cifra (486SX 33MHz, Schneier 1995) -

Velocidade de encriptao
Algoritmo Blowfish (12 rodadas) Blowfish (16 rodadas) Blowfish (20 rodadas) DES FEAL (8 rodadas) FEAL (16 rodadas) FEAL (32 rodadas) GOST KB/Seg Algoritmo KB/Seg 221 115 223 127 86 65 52 12 182 Khufu (16 rodadas) 135 Khufu (32 rodadas) 110 NewDES 35 RC5 bloco32/8rodadas 300 RC5 32/12 161 RC5 32/16 91 RC5 32/20 53 Triple DES

Pedro Rezende 1998-2002

19

Cifras Encadeadas
RC4 (RSA Data Security, 1987) Algoritmo restrito at 1994, quando teve sua especificao publicada anonimamente na lista de mensagens Cypherpunk. Para cifras encadeadas de bytes em modo OFB, usa uma S-box 8x8 S contendo permutao S0...S255 dos valores hexa 00,..,FF, e dois contadores de bytes m, n.
Gerao da seqncia de pad: k repeat n = (n+1) mod 256 m = (m+ Sn) mod 256 Troca (Sm ,Sn) t = (Sm +Sn) mod 256 k= St Inicializao de S com a chave semente concatenada = k1...k255: for n=0 to 255 do Sn = n m=0 for n=0 to 255 do m = (m+ Sn +k n) mod 256 Troca (Sm ,Sn)

Anlise do RC4 1.

A cifra encadeada em modo OFB encripta ou decripta executando o XOR de cada byte k gerado pelo algoritmo, com cada byte da mensagem ou do criptograma. A chave semente pode ter at 1024 bits

2.

H 256!*2562 21700 estados possveis para o gerador de chaves de padding deste algoritmo. RSA afirma parecer no haver sementes
k1...k255 que gerem ciclos pequenos, e ser o algoritmo imune s

anlises diferencial e linear. Licenciado para exportao com H = 40.


3.

Usado em dezenas de produtos (Lotus Notes, Apple AOCE, Oracle Secure SQL, CDPD, etc.) Em princpio pode ser adaptado de 8 para 16 bits, tornando-o mais rpido, mas com 216 iteraes de inicializao e ~100K de RAM ocupados pela S-box 16x16.

20

Criptografia e Segurana na Informtica

SEAL (Don Coppersmith, 1994) Algoritmo para construo de famlias de geradores pseudorandmicos, que pode tanto ser usado para cifras encadeadas como adaptado para cifras de bloco em modo no seqencial (ECB). Usa uma chave de 160 bits para inicializar trs S-boxes 9x32, um ndice n semelhante ao VI das cifras de bloco e quatro registradores de 32 bits, para gerar iterativamente uma seqncia randmica de at 64KB, que pode funcionar como chave de padding do n-simo bloco de uma cifra. De arquitetura inovadora, foi projetado para implementao eficiente em processadores de 32 bits. Adota as seguintes estratgias: A chave grande usada apenas para derivar as trs S-boxes. O ndice usado na mistura de duas S-boxes para escolha da mudana nos registradores de iterao, e na mistura de outras duas para escolha da sequncia de operaes XOR ou soma dentro funo de mistura de cada rodada da iterao. Estados internos mantidos em metade dos registradores no se manifestam na cadeia de sada, sendo usados apenas para modificar o estado dos registradores de iterao.

Anlise do SEAL Requer 5 operaes de mquina para gerar cada byte de padding, alcanando 50 MB/seg num PC 486 de 50 MHz. Parece slido, e at 1996 no havia sido publicado nenhuma criptoanlise independente do algoritmo. Patente pendente e licena para implementao pela IBM.

Pedro Rezende 1998-2002

21

A5 Algoritmo adotado pelo consrcio mundial de telefonia mvel GSM (Global System for Mobile communication) para cifragem no elo entre o telefone e a central de comutao. Projetado na Frana, uma variao da composio de LFSRs tipo "para e segue" com trs registradores de deslocamento linear baseados em polinmios esparsos de grau 19, 22 e 23.

Anlise do A5 Houve uma disputa durante os anos 80 entre os membros do GSM, sobre o grau de robustez desejada para o padro (a Alemanha queria criptografia forte, mas sua opinio no prevaleceu). O algoritmo deveria ser restrito, mas um acordo do GAT com Bradford University para avaliao do algoritmo omitiu a restrio, e o A5 se tornou pblico. H um ataque simples ao algoritmo que requer 240 encriptaes. O algoritmo passa em todos os testes de randomicidade conhecidos, estando sua fragilidade concentrada nos pequenos tamanhos dos registradores e na rarefao dos bits de captura dos polinmios irredutveis escolhidos. O algoritmo bastante eficiente.

22

Criptografia e Segurana na Informtica

PKZIP (Roger Schafly) A cifragem (no a compresso) neste utilitrio, se presentes nas verses at 2.04g, por cifra encadeada em modo CBC que gera bytes. O algoritmo da cifra usa uma chave K3 de 8 bits e registradores de 32 bits K0, K1 e K2, que armazenam o estado interno do gerador, atualizados com o uso de uma tabela de 256 bytes pr-computada, em iteraes onde o CRC dos 32 bits anteriores calculado pelo polinmio 0xedb88320. Um vetor de inicalizao concatenado ao incio da mensagem. Na decriptao, invertem-se criptograma e mensagem no padding /*buffer de mensagem M[i], de criptograma C[i] */ int K0 = 305419896 int K1 = 591751049 int K2 = 878082192 for(i=1, ,i++) { C[i] = M[i]^K3; K0 = crc32(K0,M[i]); K1 = K1*134775813+1; K2 = crc32(K2,K1>>24); K3 = ((K2|2)*(K2|2)^1))>>8 } /*crc32(a,b)=(a>>8)^tabela[(a&0xff)^b]*/ /* padding */

Anlise do PKZIP Algoritmo bastante frgil. Um ataque simples de dicionrio com 40 a 200 bytes de texto pleno conhecido (cabealho de mensagens, por exemplo) desvela a chave em ~227 operaes, ou algumas horas num PC.

Pedro Rezende 1998-2002

23

Cript(1) (Unix, 1983) Algoritmo original de encriptao das primeiras verses do sistema operacional Unix, uma cifra encadeada baseada na mesma arquitetura da mquina eletromecnica, Enigma, usada pelos militares e diplomatas alemes da segunda guerra e quebrada pela equipe inglesa de analistas, liderada por Alan M. Turing. O algoritmo simula um rotor de 256 elemetos de substituio usado em srie com um rotor refletor (a mquina Enigma usava 3 dentre cinco rotores de substituio, mais um rotor de reflexo). Para um analista bem instrumentado, esta cifra fcil de atacar. Um utilitrio de domnio pblico, o Crypt Breakers Workbench (CBW), pode ser usado para quebrar arquivos encriptados com o Cript(1).

RAMBUTAN (Communications Eletronics Security Group) Algoritmo restrito, vendido apenas em implementaes em hardware inviolveis sob licena do governo Britnico para aplicaes classificadas como Confidential, no sendo encontrado no varejo. Usa chave de 112 bits e pode operar nos modos ECB, CBC e CFB de 8 bits.

XPD/KPD (Hughes Aircraft Corporation, 1986) Algoritmo usado em equipamentos de comunicao e rastreamento de aeronaves vendidas a pases estrangeiros aos EUA. Usa um LFSR de 61 bits inicializado com bits de captura de um dentre 210 polinmios primitivos armazenados em ROM, e oito filtros no-lineares na sada.

24

Criptografia e Segurana na Informtica

Funes de Hash
Premissas de um hash ou checksum criptogrfico seguro Como mecanismo principal na autenticao da integridade de dados, funes de hash h:M {0,1}n devem satisfazer as propriedades: 1. Propriedades bsicas (unidirecional e livre de coliso) Dado m, fcil calcular c = h(m) e dado c difcil calcular m; Dado m qualquer, difcil produzir uma coliso com m (encontrar m' tal que h(m) = h(m')). O valor de n deve dificultar a produo de coliso atravs de ataques por dicionrio em m'. 2. Propriedade adicional (resistncia coliso) Para algumas aplicaes, a funo de hash deve ser resistente a coliso: deve ser difcil encontrar, por meio de ataques "de aniversrio" ou tcnica melhor, qualquer coliso na funo h.

Ataques de aniversrio a funes de hash Descrio: Encontrar um par m e m' tal que h(m) = h(m'). Exemplo: Ao propor um contrato (protocolo tipo VII), o fraudador prepara outra verso que lhe seja vantajosa e prejudicial outra parte. Testa o hash de variaes de ambas verses, contendo combinaes de espaos adicionais (ASCII 32) onde h quebras de linha, at conseguir um par m (contrato), m' (fraude) que gerem mesmo hash. Assinam o hash de m e depois, em juzo, o fraudador protesta m'.

Pedro Rezende 1998-2002

25

Construo de funes de hash


Tamanho do hash A entropia n da imagem da funo de hash h:M {0,1}n deve ser maior que do espao de chaves das cifras (ao menos o dobro, n > 128 bits) Se n = n de testes no ataque por dicionrio com probabilidade = 1/2 de acerto, n1/2 testes no ataque de aniversrio tero igual probabilidade.

Encadeamentos de funo compressora As funes projetadas para hash, hoje em uso so construdas encandeando-se alguma funo de compresso (com entrada e sada de tamanhos fixos, N e n respectivamente), com entrada de blocos da mensagem e valores de compresso retroalimentados.

A mensagem formatada como concatenao de blocos de compresso, de tamanho N-n, e a sada da funo de hash (digesto da mensagem) a ltima sada da funo de compresso. Para melhorar a resistncia coliso, inclui-se |m| no enchimento do ltimo bloco de m.

26

Criptografia e Segurana na Informtica

MD5
Descrio do algoritmo MD5 (Ron Rivest, 1992) Hash de 128 bits, a mais recente da srie de funes de hash desenvolvidas pela RSA Data Security. MD5 refora a funo anterior MD4, depois da descoberta de formas de ataque a algumas partes desta. A mensagem preparada apondo-se sufixo com zeros seguidos da representao binria do comprimento da mensagem original em 64 bits, formando blocos de compresso com 16 subblocos de words (32 bits cada) Nas rodadas i = 0,..,3 (uma a mais que MD4), uma operao no-linear fi executada 16 vezes, cada execuo envolvendo trs das quatro variveis de encadeamento A, B, C e D, um subbloco e duas constantes distintas.

Pedro Rezende 1998-2002

27

Anlise da funo MD5 O subbloco mi,b(j) escolhido segundo tabela b(j), distinta para cada r. Um ano aps sua divulgao, den Boer e Bosselaers encontraram uma forma de derivao de colises mais eficiente que o ataque de aniversrio para a funo de compresso do MD5. Esta fragilidade na resistncia coliso no tem impacto nas propriedades bsicas do hash. (Eurocrypt '93)

MD2 Outra funo de hash do mesmo autor, usada alternativamente ao algoritmo MD5 nos protocolos PEM para correio eletrnico. baseada na permutao randmica de bytes, semelhante cifra encadeada RC4. tambm um hash de 128 bits, onde a funo de compresso recebe blocos de 128 bits e a mensagem preparada para resistir coliso com um sufixo checksum da mensagem de 16 bytes. Embora parea segura, mais lenta que a maioria das funes de hash em uso hoje.

28

Criptografia e Segurana na Informtica

SHA
Descrio do algoritmo SHA (NIST - NSA, 1992) Secure Hash Algorithm, de 160 bits, proposto como padro para o protocolo de assinatura digital DSA do governo dos EUA. Tambm baseado em variaes no algoritmo MD4, resiste ao ataque de De Boer. A mensagem preparada para hash como no algoritmo MD5, mas com um pre-processamento adicional dos subblocos, que so expandidos de 16 mi,j para 80 words wi,j de 32 bits, atravs da seguinte rotina:
Gerao dos subblocos para compresso

for j = 1 to 16 wi,j = mi,j for j = 1 to 16 wi,j = (wi,j-3wi,j-8wi,j-14wi,j-16)<<<1 Cada uma das 4 rodadas executa 20 operaes semelhantes s do MD4, e o aumento na entropia obtido com uma quinta varivel de encadeamento, E.

Pedro Rezende 1998-2002

29

Outros hashes por compresso encadeada


RIPE-MD (RACE - Primitives Evaluation Effort) Padro para algoritmo de hash proposto pelo grupo RACE (Research & Dev. in Advanced Communications Tecnologies in Europe), de 128 bits. Duas verses da funo de compresso semelhantes ao MD5, com rotaes e constantes de operaes distintas, executam em paralelo e os resultados so somados na retroalimentao das variveis de encadeamento, para dificultar a criptoanlise do algoritmo. Em 1997 foi divulgado uma verso de 160 bits, o RIPE-MD160, que tem as duas funes de compresso paralelas semelhantes do SHA.

HAVAL (Zheng, Pieprick & Seberry, 1993) Modificao de MD5, com sada de tamanho varivel: 128, 160, 192, 224 ou 256 bits. Usa 8 variveis de encadeamento, nmero varivel de rodadas (3 a 5) de 16 operaes, com funes no-linerares de 7 variveis. Rotaes em dois sentidos impedem o ataque de De Boer compresso.

Algoritmos Evitveis Knapsack hash (Damgard, 1989): quebrvel em 232 operaes; Cellular automata hash (Wolfram, 1991): inseguro; Fast Fourier transform hash (Schnorr, 1992): muito lento; Galois field GF(2593) hash (U. of Waterloo, 1992): lento.

30

Criptografia e Segurana na Informtica

Hash usando algoritmos para cifra de bloco


Casos para adaptao 1.

Cdigo de autenticao de mensagens (MAC): Em princpio, qualquer algoritmo criptogrfico para cifra de bloco poderia fornecer, em modo CBC ou CFB, o ltimo bloco do criptograma como autenticao da mensagem. Neste caso, existem outros tipos de ataque para fraudes.

2.

Funo de hash: Um algoritmo criptogrfico mais vulnervel em um hash que em uma cifra. Como no hash a chave conhecida, vrios truques podem ser usados para explorar com mais eficincia a anlise diferencial, e a escolha de texto pleno no apresenta dificuldades prticas.

Adaptaes para hash de mesmo comprimento do bloco Algoritmos criptogrficos superdimensionados ou de bloco longo podem ser adaptados para construo de hash, com diferentes esquemas de encadeamento, se o tamanho do bloco previne ataques por aniversrio. Esquema Davies-Meyer
mi hichave encriptao hi

Das 64 possveis combinaes que mapeiam mi, hi-1, (mihi-1) e h0 (Vetor de inicializao) no algoritmo, 13 so imprprios, 37 inseguros, 8 so seguros contra ataques conhecidos exceto o de ponto fixo, e 4 deles, descritos abaixo, so hoje seguros. (B. Preneel, U. Leuven, 1993).

Pedro Rezende 1998-2002

31

Esquemas de encadeamento
hi-1 mi hi-1 hi mi chave (*) encriptao

chave encriptao

hi

himi

chave encriptao hi

himi

chave encriptao hi

Anlise dos esquemas de encadeamento Estes quatro esquemas supem que o algoritmo criptogrfico tenha o tamanho do bloco idntico ao da chave, que ser o tamanho do hash. O segundo esquema acima, (*) foi proposto como padro ISO para hash baseado em algoritmo criptogrfico (ISO-IEC/JTC1/SC27/WG2). O esquema de Davies-Meyer foi modificado por Lai e Massey para usar o algoritmo IDEA na construo de um hash de 64 bits (Eurocript 92). Esquema Davies-Meyer modificado
mi hi64 bits 128 bits

chave IDEA encriptao

hi
64 bits

Para construo de hash de tamanho maior que o bloco do algoritmo, vrios esquemas foram propostos e poucos tm se mostrado seguros.

32

Criptografia e Segurana na Informtica

Esquema Davies-Meyer em tandem ou lado a lado Estes esquemas tm se mostrado seguros para construo de hash que duplica o tamanho do bloco, com algoritmos criptogrficos cuja chave tenha o dobro do tamanho do bloco (i.e., IDEA). Tandem
himi gi-1 encriptao chave chave encriptao

h(m1...ms) = hsgs hihi mi

Lado a lado
encriptao chave chave encriptao hi

gi

gi-1

gi

MDC-2 e MDC-4 (Merley-Schilling, IBM, 1988) Esquemas patenteados para construo de hash que duplicam o tamanho do bloco, sem restries ao algoritmo criptogrfico simtrico. Esto sendo considerados para padro ANSI, ISO e avaliados pelo RIPE. MDC-2
hi-1 chave encriptao

hi

mi encriptao chave

h(m1...ms) = hsgs gi

gi-1

Pedro Rezende 1998-2002

33

MDC-4
h(m1...ms) = hsgs hi-1 chave
encriptao encriptao

chave

hi

mi
encriptao

gi-1

chave

chave
encriptao

gi

Esquemas inseguros Preneel-Bosselaers-Govaerts, Quaisquater-Girault, LOKI Doubleblock e Davies-Meyer paralelo. Para estes esquemas foram recentemente descobertos mtodos de ataque que os tornaram inseguros na criptografia. O segundo desses esquemas foi proposto como padro ISO em 1989.

Comparao de performance ( Schneier, 80386 em 33 MHz) Algoritmo de hash Davies-Meyer (c/ DES) Davies-Meyer lado a lado (c/ IDEA) HAVAL (3 rodadas) HAVAL (4 rodadas) HAVAL (5 rodadas) MD2 MD4 MD5 RIPE-MD SHA Comprimento 64 128 varivel varivel varivel 128 128 128 128 160 KB/Seg 9 22 168 118 95 23 236 174 182 75

34

Criptografia e Segurana na Informtica

Cdigos de autenticao de mensagens


MACs usando cifras em modo CBC ou CFB MACs so hashes dependentes de chave no clculo, que podem ser gerados por uma cifra de bloco retroalimentada. O esquema que gera MACs encriptando a mensagem e depois o ltimo bloco do criptograma em modo CBC, constitui os padres ANSI (X9.9) e ISO (8731-1, 9797).

MACs usando funes de hash Dada uma funo de hash h qualquer, existem adaptaes possveis para torn-la dependente de chave. Dentre os esquemas que concatenam a mensagem m chave k, os mais seguros contra fraudes so h(k1,h(k2,m)) ou h(k,_,m,k), ou concatenao de bytes da chave a cada bloco de m.

Anlise dos esquemas de gerao de MACs MACs gerados por cifras apresentam um problema em potencial, no fato do verificador poder usar a chave para decriptar o hash de trs para frente, buscando construir uma coliso com a mensagem original. Esquemas com funes de hash que geram MACs por concatenao de chave mensagem podem permitir fraudes por quem no detm a chave mas conhece h. mais seguro usar ambos, cifrando o hash da mensagem. Usa-se MACs em situaes onde a verificao da integridade, sem sigilo da mensagem, necessria.

Pedro Rezende 1998-2002

35

Algoritmos criptogrficos de chave pblica


Histrico A descoberta em 1976 por Diffie, Hellman e Merkle de algoritmos criptogrficos assimtricos, onde a segurana se baseia nas dificuldades de 1. Deduzir a mensagem a partir do criptograma; 2. Deduzir uma chave de cifragem a partir da outra chave; possibilitou o desenvolvimento da criptografia moderna, onde os mecanismos de distribuio de chaves, autenticao de mensagens, e provas de identidade, alcanaram novos patamares de versatilidade. Protocolos que fazem uso de algoritmos assimtricos, podem dispensar o sigilo de uma das chaves do par. Os que usam esta opo so chamados protocolos de chave pblica, e devem ser bem projetados para serem seguros

Segurana dos sistemas de chave pblica Esses sistemas so desenhados para resistir a ataques de texto pleno escolhido, mas podem ser sensveis a ataques por criptograma escolhido. Portanto, nos sistemas onde a assinatura operao inversa da cifragem, pares distintos de chaves devem ser usados para estes dois servios. Dos algoritmos assimtricos at hoje propostos, apenas quatro so seguros e prticos para ambos servios: RSA, ElGamal, Rabin e ECC. Existe uma famlia de algoritmos teis apenas para assinatura, e outros pouco prticos por serem inseguros, muito lentos ou usarem chaves muito longas.

36

Criptografia e Segurana na Informtica

RSA
O mais usado e fcil de implementar dos algoritmos assimtricos, tem o nome formado com iniciais dos descobridores, Rivest, Shamir & Adleman. Resiste a quase 20 anos de anlise, sendo sua segurana supostamente baseada na dificuldade de se fatorar nmeros inteiros.
Gerao de parmetros e par de chaves do sistema: {t = tamanho} p = geraprimo(rand(t)) q = geraprimo(rand(t)) = (p-1)*(q-1) {p, q, secretos} n = p*q; e= rand(t) e = e / mdc(e,) [>1] eA = (e,n) d = euclext(e,,1) dA = (d,n) Cifragem (comea com eA pblica) c = m e mod n {encripta bloco} mi = cid mod n
i i

{decripta bloco}

Assinatura (comea com dA privada) x = h(m)d mod n {assina hash} h(m) = xe mod n ? {verifica hash}

d = e -1 mod : A segunda chave de um par, inversa da primeira no anel Z (n), calculada pelo algoritmo de Euclides extendido:
Algoritmo de Euclides extendido recursivo: Dados a, b, c onde mdc(a,b) divide c, retorna o menor x>0 tal que /* a*x = c mod b */ euclext(a, b, c) begin r = b mod a se r == 0 entao retorne( (c div a) mod (b div a) ) senao retorne( (euclext(r,a,-c)*b+c) div a mod b) end

Fermat: O algoritmo funciona devido ao Teorema de Fermat:


d e d 1+r(p-1)(q-1) r(p-1)(q-1) ci =(mi ) = mi = mi*mi = mi*1 mod n

A cifra funciona formatando m em blocos mi de representao binria < n.

Pedro Rezende 1998-2002

37

Anlise do RSA
Premissas sobre a segurana do algoritmo 1.

Qualquer dos parmetros p, q e (n) permite o clculo trivial de dA a partir de eA, devendo portanto serem protegidos juntamente com dA.

2.

O ataque por fora bruta mais eficiente ao algoritmo consiste em tentar fatorar n para se obter (n) e saber em que anel inverter eA. Pode-se tambm tentar adivinhar (n), mas o custo deste ataque to alto quanto o de fatorar n, sendo maior ainda o custo de se tentar adivinhar eA-1.

3.

Em princpio, poderia existir um mtodo de ataque mais eficiente ao RSA. Porm tal mtodo serviria tambm para fatorao de n, e o problema da fatorao vem sendo extensamente estudado desde 340 A.C., sendo seu melhor algoritmo de complexidade exponencial, O(ec+x1/3ln2(x)).

4.

Nmeros randmicos so selecionados como primos por um algoritmo probabilstico, para o mdulo n. Existem pseudo-primos, nmeros que passam em todos estes testes sem serem primos (nmeros de Carmichael) Pseudo-primos so muito raros e, se gerados, causaro falha na cifra.

Ataques a protocolos que usam o RSA Mtodos conhecidos exploram falhas nos protocolos (no diretamente no algoritmo), devido exponenciao preservar estruturas multiplicativas: Criptograma escolhido contra assinatura; Mdulo comum;

Expoente pequeno para encriptao; Ordem de operaes de cifra e assinatura.

Ataque por criptograma escolhido contra assinatura 38

Criptografia e Segurana na Informtica

Este ataque possvel contra protocolos que assinam a mensagem por extenso (e no um hash da mesma), e prescinde da conivncia ou negligncia do agente fraudado em assinar mensagens sem motivo aparente. Caso 1: Vazamento de mensagem
1: RSA, mesmo par de chaves de cifra e assinatura

Agente A: k=(e,d)
2: Recebe m cifrada... c = 4: Assina nova "mensagem"

2: c 3: y 5: u

Agente I
2: Gera n. randmico r < n ; Calcula x = r mod n Calcula y = xc mod n Solicita assinatura de y, 6: Calcula t = Desvela m =

me mod n

d y u = y mod n x = re mod n r = xd mod n

r-1mod n tu mod n

d d d d d tu mod n = r-1y mod n = r-1x c mod n = r-1rc mod n = c mod n = m

Caso 2: Autenticao fraudulenta


1: RSA, para servio de autenticao 2: A, e

Agente B
3: Gera mensagem expria M; Gera n. randmico r < n; Calcula x = r mod n Calcula m = xM mod n Solicita autenticao de m, 7: Calcula t = r-1mod n Autenticao de M = tu

Cartrio A:
5: Reconhece firma de m u =

4: m 6: u

md mod n
(rm)

d mod n = rdmd mod n

mod

Em servios de autenticao, a assinatura deve ser feita sobre o hash.

Ataque em mdulo comum -

Pedro Rezende 1998-2002

39

Este ataque possvel se a distribuio de chaves para a cifra que usa o RSA atribui chaves com o mesmo mdulo a usurios distintos. Qualquer mensagem encriptada por mais de um usurio pode ser facilmente vazada. Vazamento de mensagens em mdulo comum

1: RSA, mesmo mdulo para pares de chaves na cifra

Agentes A, B
2,3: A e B recebem a mesma mensagem m cifrada... ca

2: A, ca 3: B, cb

Agente I
4: Usa Euclides extendido para calcular x , y onde xeA + yeB = 1 5: Desvela m: Se x<0 ento m =

e mod n cb = me A B mod n
=m

Supe mdc(eA,eB)=1

(ca-1)-x eBy mod n seno m = (cb-1)-y e x mod n


A

Ataque com expoentes pequenos de encriptao Encriptao/verificao de assinatura no RSA mais rpido quanto menor for a chave pblica. Porm este tipo de ataque possvel com a encriptao de e(e+1)/2 mensagens linearmente dependentes, caso hajam

Ataque com assinatura de criptograma As operaes de assinatura e encriptao devem ser executadas nessa ordem, para evitar fraudes decorrentes deste tipo de ataque, onde nem mesmo o uso de funo de hash para assinatura pode evitar.

40

Criptografia e Segurana na Informtica

Fraude de assinatura em mensagem encriptada

1: RSA, usado para cifra e depois assinatura

Agente A: k=(e,d)
2: m cifrada para B... 3: e o criptograma assinado por A

2: B, eB 4: u 6: B,eB

Agente B
5: Verifica e decripta u; Gera mensagem expria M; Calcula x < nB tal que

c = meB mod nB

u = cdA mod nA

(meB mod nB)dA mod nA = (MxeB mod

7: Acusa A de ter lhe enviado M nB)dA mod nA = u

Mx = m mod nB; 6: Publica novo eB xeB

Este ataque possvel porque B tem como resolver o problema do logaritmo discreto para encontrar x, j que conhece a fatorao de nB. Se a assinatura antecedesse a encriptao, B buscaria x sem saber fatorar nA.

Preveno contra ataques conhecidos ao RSA 1. 2.

Conhecimento de um par (e,d) permite a fatorao do mdulo n. Conhecimento de um par (e,d) permite encontrar outros para mesmo n

3. Mdulo comum no deve ser usado em servios de rede.


4.

Mensagens devem ser preenchidas com bits randmicos enquanto < n.

5. O expoente pblico deve ser grande, e a assinatura anteceder a cifra.

Padronizao e patentes O RSA um padro de facto para criptografia assimtrica: Anexo da norma ISO 9796, draft de uma norma ANSI, padro bancrio na Frana e Austrlia. No padro nos EUA por problemas de disputa sobre direitos de patente. A patente, vlida somente nos EUA, expira em 20/9/2000.

Pedro Rezende 1998-2002

41

Rabin
Algoritmo assimtrico cuja segurana derivada da dificuldade de se extrair raiz quadrada em anis, com decriptao no determinstica. A ordem n do anel deve satisfazer n = pq onde p, q 3 mod 4 (M. Rabin, 79).
Gerao de parmetros: p = gerapr3mod4(rand( )) q = gerapr3mod4(rand( )) n = p*q {pblico} r = q*(q-1 mod p) s = p*(p-1 mod q) eA= 2 {k pblica} dA = (r,s) {k privada} Encriptao: c = m2 mod n Decriptao: t = c(p+1)/4 mod p u = c(q+1)/4 mod q m =(( r)*t +( s)*u) mod n

Anlise do algoritmo de Rabin A segurana deste algoritmo provadamente equivalente fatorao de inteiros. Entretanto a mensagem s pode ser recuperada, dentre as 4 possveis decriptaes, se contiver algum contedo semntico. Cifras que usam este algoritmo so inseguras contra ataques de criptograma escolhido, o que inviabiliza seu uso para assinatura em texto pleno. O uso de hash no protocolo enfraquece a equivalncia acima.

Variante de Williams (Hugh Williams, 1980) Alternativa do algoritmo com decriptao unvoca, usa p 3 mod 8, q 7 mod 8 e chave privada r = ((p-1)(q-1)/4+1)/2. O criptograma tem trs partes, sendo r usado na decriptao, como expoente em uma das partes.

42

Criptografia e Segurana na Informtica

ElGamal
Algoritmo assimtrico cuja segurana derivada da dificuldade de se extrair logaritmos discretos em corpos finitos. (T. ElGamal, 1984).
Gerao de parmetros, chaves assimtricas e chave de sesso: p = geraprimo(rand( )) g = rand(|p|) dA= x= rand(|p|) {chave privada} y = gx mod p eA= (p,g,y) {chave pblica} km = rand(|p|) k = km/mdc(km,p 1) {ch. sesso} a = gk mod p Assinatura: b = euclext(k,p 1,m x*a) {(a,b) = assinatura de m } (ya*ab) mod p =? gm mod p Cifragem: b = (yk*m) mod p {(a,b) = criptograma de m } m = (b*a-x) mod p

Anlise do algoritmo de ElGamal Cada assinatura ou encriptao requer um valor randmico para k. O conhecimento de pelo menos duas mensagens encriptadas ou assinadas como o mesmo k permite a recuperarao da chave privada x. Este algoritmo no patenteado, mas sua verso para cifragem uma variante do algoritmo de Diffie-Helmann. A detentora de patente para o D&H (PKP Inc.) reclama direitos para licenciar seu uso (at abril de 1997).

Variantes e generalizaes do algoritmo de ElGamal Prova de identidade (T. Beth, EUROCRIPT 88); Derivao de chaves (W. Jaburek, EUROCRIPT 89); Autentio de senhas (C. Chang & S. Huang, IEEE Carnahan Conf. 91); Esquema p/ protocolos de assinatura (Horster, Petersen, ASIACRIPT 94).

Pedro Rezende 1998-2002

43

Outros algoritmos assimtricos


Algoritmos baseados no problema da mochila Merkle-Hellman foi o primeiro algortmo assimtrico divulgado (78). Baseia-se no problema combinatrio de se encontrar uma partio em um conjunto fixo de inteiros onde a soma de elementos d igual ao argumento. A chave privada formada por um conjunto fixo supercrescente (verso trivial do problema) com a qual a funo decriptadora calcula a partio que representa a mensagem. A chave pblica um conjunto fixo genrico equivalente (obtido daquele por operaes modulares), no qual a mensagem mapeia uma partio, cuja soma seu criptograma. So inseguros, apesar de NP-completo o problema em que se baseiam: a chave privada pode ser obtida em tempo polinomial a partir da pblica.

Algoritmos baseados em cdigos de recuperao de erros Algoritmos de McEliece empregam cdigos de Goppa como se fossem cdigos lineares, baseado em ser NP-completo o problema de se encontrar uma palavra de distncia fixa ao argumento, em um cdigo linear. A chave pblica o produto de trs matrizes sobre GF(2): uma permutao, a matriz geradora de um cdigo de Goppa e uma matriz no singular. A chave privada a tripla das matrizes. Apesar de ser rpido e at hoje seguro, pouco usado por expandir m e usar chaves muito grandes.

Algoritmos baseados em automata finitos Tao Henji usa automata quasi-lineares em esquema semelhante aos baseados na fatorao de inteiros. Tambm requerem chaves muito longas.

44

Criptografia e Segurana na Informtica

6: Implementaes

Cenrio atual da criptografia (1998) Padronizao: busca de Por normatizao ou por foras de mercado

(interoperabilidade), a segurana na informtica tende naturalmente padres. Esta tendncia se torna mais imperativa com o advento das redes globais e ambientes de computao distribuda.

Padres interoperveis: Os critrios para escolha de algoritmos criptogrficos esto hoje relativamente estabilizados pela prtica. H um senso de urgncia para convergncia na escolha de protocolos que integrem vrios servios bsicos, e mecanismos de implementao independentes de plataforma ou arquitetura (ex: IPSec).

Limitaes: Sistemas legados cuja concepo no contemplava segurana e/ou interoperabilidade, legislao local e internacional omissa, desatualizada ou mal pensada e interesses paroquiais, so os maiores entraves ao avano do uso da criptografia na informtica.

Atualizaes: No cenrio da computao global e distribuda de hoje, a criptologia assimtrica parte fundamental. Como os limites tericos desta tecnologia ainda no esto bem delineados, suas implementaes precisam de constantes reavaliaes de risco.

Desafios:..... Cada nova aplicao ou tecnologia que exija proteo aos dados que trata, acumula desafios de complexidade crescente criptologia, em especial os sistemas de computao no assistida, viabilizados pela miniaturizao eletrnica.

Pedro Rezende 1998-2002

45

Implementao de servios de chave pblica


Algoritmo RSA Existem vrios fabricantes licenciados para implementao em chip VLSI. A mais eficiente no mercado em 1995 cifra a 64Kb/seg com mdulo de 512 bits (~1000x mais lenta que o DES). Implementaes em espao limitado (smartcards) so mais lentas.

Chips com RSA

Freq.

Velocidade

Ciclos p/

Tecnologia/

modulo mximo 1024 bits 298 bits 256 bits 593 bits 1024 bits 120 bits 1024 bits 512 bits 1024 bits 272 bits 512 bits

Companhia clock Alpha Technology 25 MHz AT&T British Telecom Calmos System CNET Cryptech Cylink GEC Marconi Pijnemburg Sandia Siemens 15 MHz 10 MHz 20 MHz 25 MHz 14 MHz 30 MHz 25 MHz 25 MHz 8 MHz 5 MHz

(bloco 512) bloco 512 transstores 13 Kbits/seg 0.98 M 2.0 / 180K 19 Kb/s 0.4 M 5.1 Kb/s 1 M 28 Kb/s 0.36 M 5.3 Kb/s 2.3 M 17 Kb/s 0.4 M 6.8 Kb/s 1.2 M 10 Kb/s 0.67 M 50 Kb/s 0.25 M 10 Kb/s 0.4 M 8.5 Kb/s 0.3 M 1.5 / 100K 2.5 / 2.0 / 95K 1.0 / 100K Gate array/ 33K 1.5 / 150K 1.4 / 160K 1.0 / 400K 2.0 / 86K 1.0 / 60K

Acelerao de sistemas que usam o RSA A escolha da chave pblica pode influir na velocidade de encriptao ou verificao. Valores fixos de eA com 2 bits ligados requerem apenas 17 multiplicaes para executar a exponenciao. Recomenda-se eA = 65537 = 216+1 (padro ANSI X.509 e padro PKCS) ou eA = 3 (PEM e PKCS)

46

Criptografia e Segurana na Informtica

Implementao de sistemas de chave pblica usando aritmtica de curvas elpticas


Verses distintas do problema do logaritmo discreto Avanos no estado da arte do problema de se fatorar nmeros inteiros comprometem a eficincia dos algoritmos assimtricos que usam aritmtica modular, pois demandam dessas implementaes chaves maiores para que manterem a mesma segurana. Alternativamente, pode-se implementar estes algoritmos usando operaes algbricas de uma estrutura distinta dos corpos finitos, onde o problema em que se baseiam os algoritmos continua bem posto, mas onde as tcnicas avanadas de fatorao de inteiros no se apliquem.

Aritmtica das curvas elpticas sobre corpos finitos Na geometria analtica, o conjunto de pontos de um espao vetorial com coordenadas (x,y) que satisfazem uma dada equao da forma. y2 = x3+ax+b chamado de curva elptica, caso os coeficientes satisfaam 4a3+27b2 0. Em 1985 N. Koblitz e V. Miller descobriram que, se aplicada a um espao onde as coordenadas so elementos de um corpo finito (ex: Zp), a definio de curva elptica seleciona pontos que, incluindo-se um "ponto no infinito", formam um grupo algbrico sob a operao de composio inspirada na geometria das secantes dos espaos mtricos. Esta operao substitui a operao de exponenciao em algoritmos assimtricos.

Pedro Rezende 1998-2002

47

Grupos de curvas elpticas E(Zp) E(Zp) = { P=(x,y) Zp Zp | y2 = x3+ax+b } {O}


onde a operao algbrica do grupo, denotada por +, assim definida:
1. 2. 3.

P+O = O+P = P Dado P =(x,y), denotamos -P =(x,-y), onde P+(-P) = O Dados P =(x1,y1), Q =(x2,y2), ento P+Q = (x3,y3) dado por x3 = 2-x1-x2 ; y3 = (x1-x3)-y1 onde = (y2-y1)/(x2-x1) se P Q , ou = (3x12+a)/(y1+y1) se P = Q .

4.

nP = P+P+...+P (n vezes)

Comparaes entre aritmticas de Zp e E(Zp) Operao Produto Exponenciao Logaritmo discreto Zp a*b mod p an mod p Encontrar n tal que an mod p = b P+Q nP Encontrar n tal que nP = Q E(Zp)

Chaves pblicas com nvel de segurana equivalentes Tempo p/ recuperar Fatorao em Zp: Logaritmo em E(Zp): chave privada Number field sieve Pollard - Rho 3x108 MIPS - ano 3x1018 MIPS - ano 3x1028 MIPS - ano ~960 bits ~1820 bits ~2500 bits 155 bits 210 bits 239 bits

48

Criptografia e Segurana na Informtica

Futuro da criptografia assimtrica


Dificuldades tcnicas na aritmtica de curvas elpticas O grupo de pontos de curva elptica fornece um cdigo de cifragem semelhante aos cdigos de recuperao de erros. Por isso uma porcentagem do espao de textos no pode ser cifrado, sendo esta porcentagem inversamente proporcional expanso na encriptao. Esta caracterstica impede seu uso como mero substituto da aritmtica modular em algumas aplicaes da criptografia.

Outras tcnicas Estruturas algbricas distintas da aritmtica modular e dos grupos de curvas algbricas podem em princpio fornecer formalismos tericos para a critografia assimtica. (ex: grupos semi-lineares). As alternativas que surgiram at hoje na literatura no oferecem apelo prtico devido ao grande tamanho das chaves robustas. De qualquer forma, uma nova rea da criptografia ps quntica se dedica ao estudo de algoritmos resistentes paralelizao quntica.

Computao Quntica Teoricamente um tomo pode funcionar como processador, onde o estado de excitao de um eltron codifica um bit. A superposio linear de estados na teoria quntica significa que uma malha de processamento paralelo pode colapsar para a soluo de um probrema massivamente distribuido, como o da fatorao de um inteiro, trivializando a criptografia assimtrica. A construo de computadores qunticos parece ainda remota.

Pedro Rezende 1998-2002

49

Implementao de servios de assinatura digital

Cenrio atual dos protocolos de assinatura digital (1997) Padronizao: Embora patenteado nos EUA, o RSA tornou-se

um padro internacional de facto para assinatura digital (SSL, ISO 9796). O governo dos EUA (NIST) props para si em 1991 um padro para assinatura digital, o DSS (Digital Signature Standard), que emprega o algoritmo DSA (Digital Signature Algorithm).

Restries:.. Apesar da possibilidade de infringir a patente do algoritmo de Schnorr (at 2008), sobre a qual o governo americano no possui nenhum direito, o padro DSS foi adotado em maio de 1994. O governo dos EUA promete auxlio para defesa legal de quem usar o DSA por fora de contrato.

Abrangncia: Existe um esquema para deduo de algoritmos de assinatura digital, do qual ElGamal, Schnorr e DSA so casos particulares. Como este esquema foi publicado mas no patenteado, pode esvaziar disputas sobre o DSA.

Limitaes:. O algoritmo DSA requer um gerador de seqncias pseudo-randmicas seguro. Repeties ou previso de seqncias podem permitir a fraude de assinaturas. O padro DSS especifica a assinatura sobre hash de 1024 bits da mensagem,

calculada pelo algoritmo SHA, e sugere a gerao de primos seguros atravs de algoritmo fornecido na especificao.

50

Criptografia e Segurana na Informtica

Digital Signature Algorithm


Algoritmo patenteado e licenciado pelo NIST para uso irrestrito.
Gerao de parmetros, chaves assimtricas e chave de sesso: q = geraprDSA (rand(160)) repeat p=geraprDSA(rand(512+64t)) until q | (p-1) repeat h = rand(512+64t) mod p g = h(p-1)/q mod p until g 1 x = rand(|q|) {chave privada} y = gx mod p eA= (p,q,g,y) {chave pblica} Assinatura de m = (r,s): repeat k = rand( ) mod q {ch. sesso} r = (gk mod p) mod q s = (k-1*(SHA(m)+xr)) mod q until s 0 Verificao: (r,s) assinatura de m u = (s-1*SHA(m)) mod q v = (s-1*r) mod q r =? (gu*yv mod p) mod q

Anlise do algoritmo DSA Os parmetros p, q e g podem ser compartilhados entre um grupo de usurios, onde p um primo de tamanho entre 512 e 1024 bits, q um primo de 160 bits. A chave de sesso k deve ser nica para cada assinatura. Lenstra & Haber descobriram em 1994 a ocorrncia de pares p, q com propriedades que facilitam a recuperao da chave privada x. A gerao aleatria de pares randmicos com essa propriedade muito rara. O NIST sugere, na especificao DSS (Digital Signature Standard), o uso de um gerador de primos para o DSA que evita estes pares. O protocolo DSS possibilita a construo de canal subliminar atravs da escolha da chave k do DES para sesso de assinatura. Em algumas implementaes, o DES pode ser usado tambm para emular a cifragem do algoritmo de ElGamal.

Pedro Rezende 1998-2002

51

Esquema Meta-ElGamal
O Meta-algoritmo de ElGamal um esquema para se derivar milhares de algoritmos assimtricos para assinatura digital (Horster, Petersen & Michels: 1994 ACM computer conference on communications security).
Gerao de parmetros, chaves assimtricas e chave de sesso: p=geraprimo(rand( )) repeat q = rand( ) until q | (p-1) repeat g = rand( ) mod p until gq mod p = 1 x = rand( ) mod q{chave privada} y = gx mod p eA= (p,q,g,y) {chave pblica} Assinatura de m = (r,s): repeat k = rand( ) mod q {ch. sesso} until mdc(k,q) = 1 r = gk mod p t = r mod q equao de assinatura ak = b + cx mod q equao de verificao: ra =? gbyc mod q

Coeficentes no esquema meta-ElGamal Tabela de possveis valores dos coeficientes a, b, c


t tm tm tm sm s s ms ts ts m

1 1 1 1

Exemplos: algoritmos derivados da 1 linha (+) da tabela acima Equao de assinatura (1) mk = s+tx mod q (2) tk = m+sx mod q (3) sk = t+mx mod q (4) sk = m+tx mod q (5) mk = s+tx mod q (6) mk = t+sx mod q Equao de verificao rt = gs*ym mod q rt = gm*ys mod q rs = gt*ym mod q rs = gm*yt mod q rm = gs*yt mod q rm = gt*ys mod q

52

Criptografia e Segurana na Informtica

Esquema de autenticao de Feige-Fiat-Shamir


Protocolos derivados deste esquema patenteado implementam provas de identidade baseadas em conhecimento zero e na dificuldade de extrao de raizes quadradas em anis finitos (Weizmann Institute, Israel, 1986). Feige-Fiat-Shamir
(Canal com integridade) 2: Gera e cadastra EA= v 1: p=geraprimo(rand(

)) q=geraprimo(rand( )) n = pq;

s = v-1/2 mod n

fornece DA = s onde

Servidor de chaves S

3: B solicita EA= v

4: B desafia A a provar que possui DA

Agente A
4.1: Gera n randomico rj; Calcula xj = rj 4.5: Se bj =
2

Repetem k iteraes: j de 1 at k 4.1: xj, n 4.4: bj 4.6: tj

Agente B
4.3: Gera bit randomico bj

mod n

1 ento calcula tj = rj*s mod n seno tj = rj

1 ento verifica xj =? tj2*v mod n seno xj =? tj2 mod n

4.5: Se bj =

Anlise do esquema Feige-Fiat-Shamir O nmero de iteraes pode ser reduzido por paralelizao, onde v, b se tornam vetores, mantendo-se o mesmo grau de certeza 1-2-k. O esquema pode ser adaptado para protocolo de assinatura transformando a funo do verificador B em uma funo de hash, sendo de 20 a 100 vezes menos intensivo em multiplicaes que o RSA.

Pedro Rezende 1998-2002

53

Outros esquemas de autenticao


Variaes do esquema Feige-Fiat-Shamir
(EUROCRIPT 90)-

O servidor de chaves pode ser abolido se cada usurio escolher seu mdulo e publicar sua chave em um banco de dados de acesso seguro. Existem implementaes paralelizadas com mdulos individuais onde o vetor v uma seqncia dos primeiros primos, onde o tempo de verificao otimizado, e verses para identificao de grupos de pessoas.

Ohta-Okamoto

(CRIPTO 88)

Variante do esquema de Feige-Fiat-Shamir, onde a segurana deriva da dificuldade de fatorao de inteiros. Uma de suas aplicaes implementa um protocolo de grupo de assinaturas, onde as assinaturas precisam ser aplicadas em ordem especfica, proposto para cartes inteligentes (smartcards).

Guillou-Quaisquater

(EUROCRIPT 88)

Esquema proposto para cates com processadores, , desenhado para trocas mnimas, implementa protocolos para prova de identidade, assinatura digital individual e mltipla. Emprega multiplicao e exponenciao, semelhante ao de Ohta-Okamoto.

Schnorr (CRIPTO 89)


Algoritmo patenteado, derivvel do exemplo (4) de Meta El-Gamal.

54

Criptografia e Segurana na Informtica

Padres para assinatura digital e gerenciamento de chaves


Histrico A segurana externa (redes e telecomunicaes abertas) s alcanvel com a adeso a padres interoperveis, desde o registro de algoritmos (ISO/IEC 9979) a esquemas de autenticao e de distribuio de chaves assimtricas. Estes padres descrevem detalhes sobre a escolha e implementao de protocolos criptogrficos independentes do transporte. A indstria financeira pioneira nesta padronizao, sendo atualmente este esforo liderado pelos comits ISO, ANSI, ITU, IETF.

Assinatura Digital Os padres de assinatura digital estabelecem formatos para incluso de autenticadores em arquivos de formato binrio ou texto, para a escolha e modo de operao de algoritmo ou funo de hash autenticador, visando a interoperabilidade de implementaes independentes (ex.: ANSI X9.9).

Distribuio de chaves Os padres de distribuio de chaves criptogrficas estabelecem, dentre outros, critrios de segurana para o armazenamento de chaves, ambiente de operao do utilitrio de gerncia de chaves, tcnicas de encriptao de chaves e gerao de vetores de inicializao, formato de mensagens de servios criptogrficos, uso pretendido, etc. (ex.: ISO 8732 para bancos)

Pedro Rezende 1998-2002

55

Principais padres de protocolos criptogrficos


Quadro resumo -

ISO/IEC JTC 1 ISO TC68 ANSI Information Instituies Technology Financeiras Modos de operao ISO/IEC 8372 X3.106 ISO/IEC 10116 Message ISO/IEC 9797 ISO 8730 (DSA) X9.9 Auth.Code (Geral) ISO 8731 (RSA) Mess. Auth. Code ISO 9807 X9.19 (Bancos) Algoritmos de ISO/IEC 9594.8 X9.30.1 (DSA) assinatura digital ISO/IEC 9796 X9.31.1 (RSA) Funes de hash ISO/IEC 10118 X9.30.2 (SHA) X9.31.2 (MDC) ISO/IEC 9594.8 ISO/IEC 9796 Gerncia de chaves ISO/IEC 11770.2 (simtrico) Gerncia de chaves (sim. multi-centro) Gerncia de chaves ISO/IEC 9594.8 (assimtrico) ISO/IEC 11770.3 Autenticao de agentes ISO 11131 ISO 8732 ISO 11568 ISO 11649 ISO 11166 X9.26 X9.17 X9.24 X9.28 X9.30.3

Tpico

U.S. Federal Government FIPS PUB 81 FIPS PUB 113

FIPS PUB tba (DSA) FIPS PUB 180 (SHA)

FIPS PUB 171

Outros padres A interface de uso de cartes inteligentes com 6 pontos de contato foi objeto de padronizao pelo comit tcnico do OSI, publicado como ISO/IEC 7816. So especificadas as caractersticas fsicas, posio dos contatos, natureza e protocolo de intercmbio dos sinais eletrnicos, dentre outros.

56

Criptografia e Segurana na Informtica

Certificados digitais de chave pblica


Definio (Abreviao: Certificado Digital)
Documento digital destinado distribuio de uma chave pblica titulada, contendo (alm da chave) informao sobre o titular, sobre o emitente (certificadora), e sobre o uso pretendido para a chave transportada. Este uso realizado por um conjunto de protocolos que compem uma ICP ou PKI (infraestrutura de chaves pblicas).

Histrico das Public Key Infrastructures (PKI)


O conjunto de formatos e protocolos PKCS (1 a 13), proposto pela indstria pioneira (RSADSI) tornou-se padro para PKIs. O padro ITU-T X.509 da International Telecommunications Union (PKCS 9) tem sido aceito como padro de fato para certificados digitais.

Formato bsico dos certificados X.509 Verso do modelo de certificado (v.3) Nmero de srie (nico para certificados assinados pelo emissor) Identificador do algoritmo de assinatura - Algoritmo - Parmetros usados na assinatura Emissor (Certification Authority) Perodo de validade - No antes de [DATA] - No depois de [DATA] Identificao do Titular da chave transportada (Distinguished name) Chave pblica do titular (public key) - Algoritmo a que se destina - Parmetros para uso do algoritmo - Chave pblica Assinatura do emissor neste certificado

Pedro Rezende 1998-2002

57

Mecanismos para uso de certificados digitais em redes abertas


Certification Authorities Confiana na integridade sinttica de uma chave pblica assinada oferecida pela entidade que assina o certificado usado para distribu-la. Existem dois modelos bsicos para induo de confiana:
1. 2.

Hierrquico...........proposto pelo padro PEM para correio eletrnico. Malha de confiana.....usado pelo utilitrio PGP p/ correio eletrnico.

Modelo Hierrquico de certificao Este modelo, proposto como padro Privacy Enhanced Mail pela IETF nos RFCs 1421 a 1424, prev identificao nica do sujeito em toda a internet. A verificao de certificados segue uma cadeia de autenticao por entidades certificadoras, com consulta a lista de revogao de certificados, com a assinatura final da IPRA (Internet Policy Registration Authority).

Redes de confiana O utilitrio de domnio pblico PGP para sigilo e assinatura digital de email (ndice de sites em http://www.mantis.co.uk/pgp/pgp.html), pressupe um mecanismo off-line no eletrnico de distribuio fim-a-fim de chave pblica, ou a distribuio por e-mail com assinatura de algum outro agente que permite a identificao confivel do titular. Teve aceitao maior que o PEM, devido a sua praticidade, disseminando o uso do RSA pela internet.

58

Criptografia e Segurana na Informtica

Entidades Certificadoras na Internet


Modelo hbrido atualmente em uso A necessidade urgente de estabelecimento de infra-estrutura de segurana que viabilize o comrcio e governo eletrnicos na internet, tem atropelado os mecanismos formais de padronizao e a regulamentao jurdica sobre a responsabilidade civil das entidades certificadoras (a MP 2200 ainda no foi juridicamente testada). Servios de emisso e controle de certificados X.509 e PKCS, cujas chaves pblicas so na prtica confiadas por serem distribudas junto com os utilitrios de navegao web (browsers), vem funcionando como autoridades certificadoras, distribuindo certificados de chaves pblicas para seus clientes.

Entidades Certificadoras em operao (Verisign, Certisign,etc)


Sites que assinam e distribuem certificados, contendo uma chave pblica de cuja inversa a posse foi verificada por meio de desafio.
1.

Certificados de e-mail.....validam o vnculo entre uma caixa postal de e-mail e uma chave pblica, com dados sobre a conta de e-mail.

2.

Certificados comercias . .validam o vnculo entre um estabelecimento comercial ento ativo, com sede e endereo eletrnico (www, e-mail, etc), e uma chave pblica, com dados sobre o estabelecimento tais como nome de domnio, endereo, caixa postal, registros cartoriais, etc..

No mbito da doutrina jurdica do common law (EUA, UK), entidades certificadoras estabeleceram o negcio da certificao de chaves pblicas segundo o modelo atuarial (aplice de seguro), incompatvel com o conceito de f pblica.

Pedro Rezende 1998-2002

59

Uso de Tokens em segurana externa


Definio Hardware porttil dedicado ao armazenamento de segredo identificador de agente (ex: senha, chave privada) e firmware para interoperao com plataformas que executam protocolos de autenticao e servios. Esquemas de autenticao baseados em desafio, em sequenciadores, em sincronizao de senhas descartveis ou em verificao de assinatura, para neutralizar ataques de dicionrio, escuta ou replay podem ser atacados com engenharia reversa, o firmware no for projetado para resisti-los.

Vulnerabilidade de tokens e smartcards Estas tecnologias no devem ser usadas como ponto crtico de falha em um sistema de segurana. Mesmo os chips para carto que trabalham com encriptao interna (ex.: IBM DS5002FP), onde bytes trafegam no barramento e so carregados encriptados em RAM e EPROM, so passveis de ataque, nos quais o material de chave armazenado ou gerado pode ser extrado. Ataques mais comuns a tokens de acesso livre so:
1.

Surtos de clock..........usados para introduzir instrues errneas nos registradores que podem causar o extravazamento em loops de leitura.

2.

Surtos de potncia.....podem causar comportamento anmalo em geradores randmicos de uso criptogrfico.

3.

Probing.......................violao do lacre eletrosttico possibilita avaria nas clulas de trava da EPROM, para leitura do material da chave.

4.

Dicionrio de cdigo. ataque no barramento criptografia interna.

60

Criptografia e Segurana na Informtica

Riscos segurana externa


Redes abertas As redes abertas (internet, telefonia celular) que funcionam pela aderncia ao conjunto padronizado de protocolos de comunicao denominado (ex: TCP/IP) so, por um lado, intrinsecamente inseguras devido aos objetivos originais na sua concepo, enquanto por outro lado oferecem o potencial de interconxo global atravs de ambiente legado (redes fechadas). Qualquer sistema computacional conectado por este tipo de tecnologia pode ser invadido para sabotagem ou explorao em apoio a ataques a outros ns da rede aberta. A busca de segurana neste cenrio impulsiona novas direes na cincia da computao, para vencer desafios no controle de trfego IP atravs de sistemas legados e interoperveis (IDSs).

Vulnerabilidade do TCP/IP O ambiente TCP/IP difcil de ser precisamente controlado. Vrios tipos de ataque via internet exploram falhas conceituais de segurana em seus servios, sendo o custo deste controle bastante alto. Busca-se o equilbrio entre disponibilizao de servios e controles de segurana.
Freqncia relativa de ataques na internet 1 2 3 4 5 6 sniffers (kits de anlise, troianos, exploits) spoofing de IP SMTP (sendmail) NFS (Network File System) NIS (Network Information Service) adivinhao de senhas

(Fonte: Computer Emergency Response Teams Anual Report, 1995)

Pedro Rezende 1998-2002

61

IPv4 Protocolo de rede em uso na internet desde 1981, no comporta mecanismo de autenticao. Sua nova verso IPv6 (rfc 1884), em testes desde 1992, permite autenticao simples e comporta uso de criptografia.

TCP Protocolo de transporte orientado a conexo da internet, autentica por

handshake simples, falsificvel se sua implementao for conhecida.

62

Criptografia e Segurana na Informtica

Ataque de nmero sequencial ao TCP

XXXII: Handshake para abertura de sesso TCP


0: B deseja servio oferecido via TCP por A

Endereo IP = A
3: Gera n sequencial SNA. 7: Se 6:ACK = SNA ento reconhece B

2: SYN:SNB 4: SYN:SNA, ACK:SNB 6: Se 5 ento ACK:SNA Se 7 ento sesso aberta em full duplex

Endereo IP = B
1: Gera n sequencial SNB ; 5: Se 4:ACK = SNB ento reconhece A

Embuste em XXXII para falsificar handshake


B recebe ataque de sobrecarga de X e pacotes TCP esprios de A B
4: SYN:SNA+, ACK:SN 3.j: SYN:SN+, j=1,2,3... 5:???

A oferece a B servio de acesso restrito


3: Gera n sequencial SNA+ 7: Se 6:ACK = SNA+ ento reconhece B

Agente em X finge estar em B fazendo spoof de IP


1: Gera n sequencial SN 5: Estima SNA+ a partir de SNA e tempo decorrido entre 0 e 5

2: Spoof B, SYN:SN 6: ACK:SNA+

Se 7 ento sesso aberta em half duplex 0: X abre sesso inqua com A ou usa sniffer para obter SNA

Detalhes:
a - RFC 693 determina que um contador de 32 bits para SN deve ser incrementado a cada 4 seg, mas nas implementaes do TCP dos sistemas Unix BSD, SN somado 1 a cada seg ou 128 a cada chamada. b - Conjugando-se este ataque aos de roteamento (RIP, Source Routing), fraudes ou espelhamento de sesses TCP completas podem ser feitas.

Pedro Rezende 1998-2002

63

Anlise comparativa de riscos (Internet)


Dificuldade do Ataque
Alta
2.1.3 2.1.1 2.3.2 1.1.3 2.1.2 1.1.1 1.2.2 1.1.2 1.3.2 2.3.1 1.3.1 1.2.3

2.3.3

Mdia

2.2.2 2.2.1

Baixa

1.2.1 1.2.4

Extenso do dano
Muito srio Desastroso

Mnimo

Pequeno

Srio

1- Ataques internos 1.1- Acesso indevido


1.1.1- Falha de autenticao 1.1.2- NFS 1.1.3- X-windows

2- Ataques externos 2.1- Acesso indevido


2.1.1- Ataque de nmero sequencial TCP Source Routing, RIP, ICMP Sequestro de sesso TCP

1.2- Sabotagem
1.2.1- Sobrecarga 1.2.2- Source Routing, RIP, ICMP 1.2.3- Depredao fsica 1.2.4- Virus

2.2- Sabotagem
2.2.1- Sobrecarga 2.2.2- Fragmentao

1.3- Vazamento
1.3.1- Sniffers 1.3.2- Engenharia Social

2.3- Vazamento
Sniffers Troianos Exploits Fonte: Othmar Kyas - Internet Security, 1997

64

Criptografia e Segurana na Informtica

Controles de segurana para a Internet


Planejamento integrado As tcnicas de proteo para redes TCP/IP, sem a qual investimentos em conectividade podero no compensar riscos decorrentes, podem amplificar ou neutralizar mutuamente suas funcionalidades, dependendo de como seu uso for planejado e integrado.

Mecanismos bsicos de controle As tcnicas de proteo s redes TCP/IP, sem as quais os protocolos criptogrficos podem ser incuos, devem ser implementadas segundo planejamento de segurana que especifica a natureza do trfego esperado:
1.

Demarcao do(s) permetro(s) de segurana da(s) subredes;

2. Seleo e alocao criteriosa dos servios demandados e oferecidos; 3. Definio do roteamento e estimativa de volume de trfego; 4. Especificao da filtragem de pacotes; 5. Desenho de topologia adequada para as escolhas anteriores; 6. Instalao, configurao e testes de filtros, utilitrios, patches e demais servios de segurana, de forma modular e em rede piloto. 7. Configurao das contas administrativas nos servidores e hosts;
8. 9.

Instalao e configurao dos servios em ambiente de produo; Treinamento, acompanhamento e monitoramento dos logs;

A filtragem deve incluir todo trfego que cruza o permetro da rede interna.

Pedro Rezende 1998-2002

65

Infra-estrutura para controle de trfego


Permetros de segurana A demarcao dos pontos de entrada e sada de trfego da rede interna para a internet (ou entre subredes) permite a instalao de mecanismos de controle que filtram pacotes e delimitam a rea de ao de outros mecanismos de segurana. Por outro lado a filtragem pode introduzir pontos singulares de falha e impactar na capacidade de vazo deste trfego.
Permetro

Controle de trfego

internet

Rede interna

Controladores de trfego O controle de trfego feito basicamente, a nvel de transporte por um roteador de triagem com componente de filtro (screening router), ou a nvel de aplicativo por um gateway ou proxy de aplicativo e/ou uma estao guardi (bastion host). Estes dispositivos tem sido chamados de firewalls.
Tipos de Firewall Camada de Aplicativo Camada de Presentao Camada de Sesso Camada de Transporte Camada de Rede Screening router Camada de Enlace Camada Fsica G Application gateway ou Bastion host

66

Criptografia e Segurana na Informtica

Tcnicas de filtragem
Critrios A filtragem de pacotes TCP/IP guiada por listas de regras. Uma regra de filtragem descreve critrios de deciso, tipicamente baseados em:

direo do trfego:........rede interna para externa, vice versa interface:........................subredes ou enlace de origem e de destino tipo de protocolo:..........IP, ICMP, TCP, UDP, IPX, etc. endereos:......................endereo IP de origem e de destino do pacote portas:............................nmero de porta de origem e de destino. Informao sobre o estado do TCP: ACK, SYN, RST, PSH, SN, etc

Mecanismo de filtragem 1 Operaes - qualquer regra determina uma das seguintes aes:

permit.........O pacote segue rota se satisfaz as condies descritas block...........O pacote descartado se satisfaz as condies descritas

2 Anlise - cada pacote seguidamente submetido s regras de uma lista ordenada, lida de um arquivo (geralmente em formato texto), at que alguma regra determine uma ao sobre o pacote. Se o fim da lista for atingido, tomada a ao default do filtro (geralmente o descarte). 3 Reaes - uma regra acionada e/ou um estado do filtro podem acionar:

log pacote descartado mais estado do filtro registrado. alarme........e-mail, beep ou mensagem de emergncia disparado.

Pedro Rezende 1998-2002

67

Operaes de filtragem
Modelo bsico de filtro de pacotes -

Subrede interna Screening Router


IP:x.y.w.z

internet

out in

IP:a.b.c.d in out

Lista de regras p/ interface externa

Lista de regras p/ interface interna

Funcionamento de um filtro tpico Obtm prximo pacote Seleciona lista aplicvel Aplica prxima regra nos cabealhos IP, TCP Roteia Pacote Aciona log ou alarme S Regra permite pacote? N Regra bloqueia pacote? N N ltima regra da lista? S S Descarta Pacote S N Caso de log ou alarme?

Exemplo de tabela com lista de regras para filtro TCP:


regra n 1 2 Ao block permit IP origem * 200.0.0.0 porta orig * * IP destino 198.10.12.3 * porta dest 80 25 opes IP flags TCP 3 * * ACK

68

Criptografia e Segurana na Informtica

Arquitetura de firewalls
1 Permeabilidade -

Como os servios TCP so full duplex, as regras de filtragem devem distinguir entre o trfego de servio demandado e o de servio oferecido:

servios demandados......iniciado na rede interna (mais permevel) servios oferecidos..........iniciado na rede externa (maiores riscos)

2 Granularidade Filtros podem diferir no conjunto de parmetros que compem as regras de filtragem, com impacto na capacidade de isolamento de padres de trfego.

interface: enlace de entrada ou sada (para filtragem de spoof) associao: protocolo, endereo e porta de entrada e de sada

Complexidade de anlise -

Um filtro de pacotes com lista esttica de regras no garante segurana na oferta e demanda de alguns servios que lhe entrecruzem, tais como:

transferncia de arquivos ........protocolo FTP; X-Windows protocolo X-11

Se a granularidade e topologia desejadas demandarem, o filtro pode incluir tabelas dinmicas, onde so mantidos estados das sesses ativas que filtra.

Funcionalidade Filtros de pacotes que mantm em tempo real informaes sobre sesses

exigem ambientes de sistema, e so chamados proxies ou gateways.

Pedro Rezende 1998-2002

69

Exemplos de configurao de filtragem


Selecionando trfego para subredes Suponha a poltica de segurana que especifique permisso de trfego para as subredes da rede 198.2.0.0 exceto a subrede 198.2.3.0, para a qual o trfego deve ser bloqueado com exceo daquele destinado ao host 198.2.3.4. A seguinte lista de regras implementaria sua filtragem:
regra n 1 2 3 Ao permit block permit IP origem * * * porta orig * * * IP destino 198.2.3.4 198.2.3.0 198.2.0.0 porta dest * * * protocolo TCP TCP TCP flags * * *

Servio customizado entre dois hosts Suponha que uma empresa desenvolveu software proprietrio que usa a mesma porta TCP no cliente e no servidor (ex: 4444), e sua poltica de segurana exige permisso em hosts especificados para cliente e servidor.

Num firewall que filtra associaes:


Ao permit IP origem 198.2.3.4 porta orig 4444 IP destino 200.5.8.2 porta dest 4444 protocolo TCP flags * 1

regra n

Cliente

0101 1010

0101 1010

Servidor

4444 TCP IP

4444 TCP IP 200.5.8.2

internet
198.2.3.4

Subrede interna

70

Criptografia e Segurana na Informtica

Servio customizado entre dois hosts (continuao) A granularidade de configurao pode afetar sutilmente a capacidade do filtro. Neste exemplo, uma lista que parece atender especificao de filtragem pode falhar, abrindo acesso no especificado ao host do servidor.

Num firewall que filtra apenas uma porta:


Ao permit permit IP origem 198.2.3.4 200.5.8.2 comentario clienteserv serv cliente IP destino 200.5.8.2 198.2.3.4 porta orig 4444 4444 protocolo TCP TCP flags * * 1 2

regra n

0101 1010

0101 1010

Cliente

Servidor

0101 1010

0101 0101 1010 1010

4444 TCP IP

4444 ???? ???? TCP IP 200.5.8.2

Outros servios

internet
198.2.3.4

Subrede interna

Filtrando spoofing de endereo interno Conforme funcione o filtro, bloqueia-se na sada da interface interna ou na entrada da interface externa, endereos de origem da subrede interna.

Num firewall com apenas duas interfaces:


Ao block IP origem 200.5.8.0 port orig * IP destino * port dest * interface e1 comentrio filtra sada e0 Spoof IP: Orig 200.5.8.3 Dest 200.5.8.2 filtra 1

regra

Subrede
200.5.8.0

.2

internet

198.2.3.4

e0

e1

.3

Pedro Rezende 1998-2002

71

Bloqueando spoofing de endereo interno (continuao) Num roteador ou bastion host com mltiplas interfaces, o bloqueio efetivo de spoofing de endereo interno exige do filtro granularidade para especificao da direo do trfego a ser filtrado.

Num firewall com mltiplas interfaces:


Ao block block IP origem 200.5.8.0 200.5.9.0 porta orig * * IP destino * * porta dest * * interface e0 e0 direao in in 1 2

regra n

Subrede
200.5.8.0 Spoof IP: Orig 200.5.9.3 Dest 200.5.8.2

.2

internet

e1 198.2.3.4 e0 e2

Subrede
200.5.9.0 .3

Se o firewall s filtra na sada da interface, neste caso perde informao sobre o enlace por onde entra o pacote, e a tentativa de filtrar spoofing de endereo interno isolar o trfego entre subredes internas:
regra 1 2 3 4 Ao block block block block IP origem 200.5.8.0 200.5.9.0 200.5.8.0 200.5.9.0 port orig * * * * IP destino * * * * port dest * * * * interface e1 e1 e2 e2 comentrio filtra sada filtra sada filtra sada filtra sada

200.5.9.3 no poder por exemplo estabelecer sesso TCP com 200.5.8.2.

72

Criptografia e Segurana na Informtica

Application gateways
Gateway de base mltipla (Dual, multi homed hosts)
Computadores que conectam trfego entre redes por meio de funes de roteamento em uma aplicao que acesse mais de uma interface instalada.
3-homed host Funo opcional de roteamento Placa de rede ou mode Placa de rede ou mode Placa de rede ou mode

Rede 1

internet

Rede 3

Configurao da mquina hospedeira de base mltipla O sistema operacional precisa ter seu roteamento automtico entre interfaces (ipforwarding) desabilitado, e outras precaues necessrias: Execuo de outros aplicativos que compartilham dados no deve ser nela permitida, pois poderiam desviar trfego da funo roteadora.

O modo de falha do gateway deve ser um estado em que o trfego bloqueado. Neste caso o ponto singular de falha (bloqueio de servio) prefervel perda de funcionalidade de filtragem do trfego.

Pedro Rezende 1998-2002

73

Servidores proxy
So vistos atravs de um permetro de segurana como servidor ou cliente do servio demandado ou oferecido, fazendo intermediao do servio e acrescentando funcionalidade aos gateways de base mltipla. Sua principal caracterstica de segurana permitir ocultar ao trfego externo as mquinas do permetro interno que hospedam servios oferecidos, pois ataques baseados em escuta requerem visibilidade do alvo.

proxy de aplicao........oferecem servios de intermediao de acesso a uma aplicao especfica, como ftp, telnet, www, etc.

proxy genrico...............funcionam como retransmissores de pacote com filtragem a nvel de portas baseada no estado das sesses TCP. Pressupe o uso recomendado de portas para os WKS.

proxy de circuito...........acrescentam

funcionalidade

aos

proxys

genricos, estabelecendo um circuito virtual fim-a-fim entre o usurio da rede interna e vrios servios de um destino. Requerem a instalao de programas-cliente que reconheam o intermediador (ex.: SOCKS).

Hospedeiro guardio (Bastion host)


Uma mquina que hospede um gateway ou funo de roteamento em um ponto crtico para a segurana da rede, chamado de bastion host. Para que a proteo desejada seja efetiva, os servios a serem providos pelo bastion host devem ser minima e criteriosamente selecionados. Um bastion host deve possuir recursos redundantes de armazenamento, no dispor de ferramentas de programao, de contas e servios desnecessrios, nem de programas com permisso SUID e SGID (unix).

74

Criptografia e Segurana na Informtica

Limitaes dos firewalls


A filtragem de pacotes no garante integridade, autenticidade, sigilo, nem proteo contra ameaas internas ou ataques por implantao: apenas a primeira linha de defesa, limitada pelas caractersticas dos protocolos.

Uso de portas: O bloqueio de servio por filtragem baseado em nmero de porta no efetivo, pois o vnculo de portas a servios que utilizam o TCP est apenas convencionado para os Well Known Services (RFC 1700)

Portas privilegiadas: A informao visvel no cabealho do pacote TCP sobre o estado da sesso e o critrio de portas privilegiadas (<1024) no so suficientes para bloqueios unidirecionais. (Ex: FTP).

Tunelamento: Regras de filtragem podem ser subvertidas por ataques de fragmentao ou tunelamento (RFC 1858), se o trfego dos servios demandados ou oferecidos requerer a habilitao destes recursos.

Sequestro de sesso TCP: Este tipo de ataque s pode ser evitado com uso de criptografia, viabilizada pela padronizao dos certificados de chave pblica, que possibilita autenticao contnua de sesses com envelopes digitais.

Exploits: A autenticao contnua de sesso pode ser subvertida em sistemas pouco seguros pelo vazamento de chaves privadas ou de sesso, atravs de ataques de exploits implantados via www ou e-mail.

Pedro Rezende 1998-2002

75

Algumas topologias para controle de trfego


Gateway host com triagem Servidor de autenticao Trfego de entrada da internet

Roteador com triagem

internet

Rede interna

Sub-rede com triagem Trfego de entrada para rede interna internet


Roteador com triagem

Servidores G FTP Servidor de autenticao

Web Rede interna

etc.

Belt and suspenders Trfego de entrada para rede interna internet


Roteador com triagem

Servidores FTP G
autenticao Proxies, DNS Gate de e-mail

Web Rede interna

etc.

76

Criptografia e Segurana na Informtica

7: Exemplos de Aplicaes
Histrico do e-mail O PGP foi o primeiro protocolo criptogrfico concebido para uso na internet que fazia uso de chaves pblicas. Implementado e distribuido pela internet por Phil Zimmerman em 1986, implementa o RSA e o IDEA para negociao de envelopes digitais na trasmisso de e-mail autenticado e encriptado. Devido ao uso de criptograifa robusta e infrao de patentes, o autor teve problemas com a justia americana, tendo posteriorment negociado acordos com as partes envolvidas e licenciado sua distribuio

Histrico do www O NCSA MOSAIC foi o primeiro navegador web a incorporar ganchos para adio de utilitrios de segurana, tais como o PGP e as implementaes de clientes SMTP com suporte especificao PEM. Em 1994, com o impulso do comrcio eletrnico na Web, a consolidao das tentativas de se incorporar sigilo e autenticao aos protocolos nela empregados foi iniciada. J existem cerca de 50 esquemas de aplicao criptogrfica para o comrcio eletrnico implementados ou propostos na literatura, em 1998.

S-HTTP (Secure HTTP, 1994)


Desenvolvido e proposto pela CommerceNet Consortium, usa

criptografia de chave pblica para sesses http de forma comparvel s do padro PEM, sendo compatvel com diversos gerenciadores de chave.

SSL (Secure Sockets Layer, 1994) 77

Pedro Rezende 1998-2002

Proposto e implementado pela Netscape em seus browsers e servidores Web, sob licena da RSADSI, oferece autenticao de servidor e opcionalmente do cliente com criptografia para servios genricos, protegendo toda a pilha TCP/IP para os protocolos de aplicaes. Sua execuo verifica certificados de chave pblica e negocia a escolha de envelope digital entre cliente e servidor, podendo utilizar certificados X509, algoritmos Diffie-Hellman, RSA, DES, MD5 segundo padres PKCS.

PCT (Private Communication Technology, 1995)


Proposta da Microsoft para segurana do TCP/IP. Compatvel e semelhante ao SSL, difere deste na implementao de um dos mecanismos de autenticao do SSL que continha falhas em sua verso 1.0.

SET (Secure Eletronic Transactions, 1996)


Um dos esquemas criptogrficos atualmente em uso para comrcio eletrnico, foi concebido com o objetivo de se tornar padro de fato no suporte da indstia financeira ao comrico eletrnico integrado. Desenvolvido e proposto em conjunto pela IBM, Visa e MasterCard, faz uso extensivo de certificados X509, sendo um protocolo complexo de 28 passos que procura oferecer garantias adicionais ao consumidor, geralmente o agente mais exposto a vulnerabilidades nos esquemas criptogrficos empregados no comrcio eletrnico. Suas vulnerabilidades se concentram em falsificaes de certificados.

78

Criptografia e Segurana na Informtica

Descrio resumida do SET


Participantes devem possuir certificados X.509

Consumidor valida certificados e submete pedido a C

Pedro Rezende 1998-2002

79

SET (continuao)
Comerciante no tem acesso a nmero de carto do cliente

8: EA(?,m,p,EV(vA),C) Agente A 6: EV(A,p,EV(vA),C,DC(vC)) VA N$ 7: V valida transao e verifica crdito em conta vA Comerciante C prepara fatura e confirma cliente

Banco B $$$ $

Instituio financeira V

Administradora s tem acesso ao valor da fatura

80

Criptografia e Segurana na Informtica

Ferramentas e utilitrios de segurana


Passwd+ (ftp://dartmouth.edu.pub.passw+.tar.Z)
Um filtro de senhas que impede os titulares de contas unix de criarem senhas fracas, suceptveis a ataques de dicionrio.

Crack (ftp://ftp.uu.net/usenet/comp.sources.misc/volume28/crack)
Uma ferramenta para ataque de dicionrio a arquivos de senhas unix.

COPS (ftp://cert.org/pub/cops)
Uma ferramenta para inspeo de segurana que verifica se o sistema unix est configurado de maneira segura (trust, rhost, /etc/passwd, etc.)

TCP Wrapper (ftp://cert.org/pub/tools/tcp_wrappers)


Uma ferramenta para gerenciamento de conexo e log.

Xinetd (ftp://mystique.cs.colorado.edu/pub/xinetd
Um substituto do inetd que inclui log e gerenciamento de conexes.

TAMU (ftp://net.tamu.edu/pub/security/tamu)
Uma ferramenta que contm filtro de pacotes, programas de verificao de configurao, de auditoria e de gerao de log.

TIS Firewall toolkit (ftp://ftp.tis.com/pub/firewalls/tollkit)


81

Pedro Rezende 1998-2002

Kit de software para criao e manuteno de firewalls entre redes, distribudo em cdigo- fonte em linguagem C.

SOCKS (ftp://ftp.inoc.dl.nec.com/pub/security/socks.cstc.4.0.tar.gz)
Implementao de um relay de circuitos para filrewalls.

WUarchive (ftp://ftp.uu.net/networking/ftp/wuarchive-ftpd)
Servidor mais usado na internet para ftp annimo.

CGIWrap (http://www.umr.edu/:tdciwrap)
Wrapper de CGI para identificao de scripts de usurios em unix.

Web Server Comparison (http://www.proper.com/servers-chat.html)


Discusso sobre produtos disponveis na internet para servidores web.

COAST archive (ftp://cs.coast.purdue.edu)


Repositrio variado de programas e informaes relacionadas segurana na internet.

82

Criptografia e Segurana na Informtica

Atualizao e informaes sobre segurana na internet


Request For Comments (http://www.isi.edu/rfc-editor/)
ndice dos documentos de discusso de propostas de padres para internet, e dos stios onde podem ser acessados.

CERT (http://www.cert.org)
Computer Emergency Response Team, disponibiliza um conjunto atualizado de patches de segurana, alertas de segurana, e diversas ferramentas distribudas pelos fornecedores.

Web Security FAQ (http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq)


Roteiro para implementao de segurana em servidores web.

Great Circle Associates (http://www.greatcircle.com)


Fonte de informaes atualizadas e tutoriais sobre firewalls e segurana na internet

AT&T Research archive (ftp:/research.att.com)


Repositrio de informaes sobre segurana na internet.

Pedro Rezende 1998-2002

83

Você também pode gostar