redes ii p2

30
Redes de Computadores II Parte II

Upload: redesinforma

Post on 04-Jul-2015

1.552 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Redes ii p2

Redes de Computadores II

Parte II

Page 2: Redes ii p2

SumárioCriptografia

ConceitosAplicaçãoChave SimétricaChave PúblicaAlgoritmos

Cifrário MonoalfabéticoDESRSA

VPNConceitosAplicação

Page 3: Redes ii p2

Criptografia- Conceitos• Criptografia é o estudo das técnicas matemáticas

relacionadas aos aspectos da Segurança da Informação como Sigilo, Integridade de Dados, Autenticação de origem

• O estudo da criptografia consiste de um número de primitivas (Tarefas Básicas e Algoritmos) que podem ser combinadas para prover um completo nível de serviços para segurança da Informação

Page 4: Redes ii p2

Segurança em RedesCriptografia

Embora a criptografia tenha uma longa história que remonta, no mínimo, a Júlio César (cifrário de César), as modernas técnicas de criptografia, incluindo muitas das usadas na Internet de hoje, são baseadas em progressos feitos nos últimos 30 anos.

O livro de Kahn The codebreakers [Kahn, 1967] nos oferece um fascinante panorama dessa longa história. [Kaufman, 1995] apresenta uma Discussão técnica detalhada (mas interessante e de fácil leitura) sobre criptografia, sobretudo do ponto de vista da rede. [Diffie, 1998] fornece uma análise atraente e atualizada das questões políticas e sociais (a respeito, por exemplo, da privacidade) que hoje estão inextricavelmente entrelaçadas com a criptografia. Uma discussão completa sobre a criptografia exige um livro inteiro [Kaufman, 1995; Schneier, 1995];

Portanto, apenas trataremos de seus aspectos essenciais, em particular do modo como as técnicas criptográficas são postas em prática na Internet de hoje. Dois excelentes sites são [Kessier, 1998] e a página de perguntas e respostas mais freqüentes (FAQ) do RSA Labs [RSA FAQ, 1999].

Page 5: Redes ii p2

Segurança em RedesCriptografia

As técnicas criptográficas permitem que um remetente disfarce os dados de modo que um intruso não consiga obter nenhuma informação com base nos dados interceptados. O destinatário, é claro, deve estar habilitado a recuperar os dados originais a partir dos dados criptografados.

Page 6: Redes ii p2

Segurança em RedesCriptografia

Suponha agora que Alice queira enviar uma mensagem a Bob. A mensagem de Alice em seu modelo original (por exemplo, "Bob, I Love you. Alice") é conhecida comotexto aberto ou texto claro.

Alice criptografa sua mensagem em texto aberto usando um algoritmo de criptografia, de modo que a mensagem criptografada, conhecida como texto cifrado,pareça ininteligível para qualquer intruso. O interessante é que em muitos sistemas criptográficos modernos, incluindo os usados na Internet, a técnica de codificação é conhecida — publicada, padronizada, ] e disponível para qualquer um, mesmo para um intruso em potencial!

Page 7: Redes ii p2

Segurança em RedesCriptografia

Evidentemente, se todos conhecem o método para codificar os dados, então deve haver algum pedaço de informação secreta que impede que um intruso decifre os dados transmitidos. É aqui que entra o segredo da chave. Na Figura anterior, Alice fornece uma chave, KA, uma cadeia de números ou de caracteres como entrada para o algoritmo de criptografia. O algoritmo de criptografia pega essa chave KA e o texto aberto como entrada e produz o texto cifrado como saída. De maneira semelhante, Bob fornecerá uma chave KB aoalgoritmo de decriptografia que pega o texto cifrado e a chave KB de Bob como entrada e produz o texto original como saída.

Page 8: Redes ii p2

Segurança em RedesChave Simétrica e Chave Pública

Nos denominados sistemas de chaves simétricas, as chaves de Bob e Alice são idênticas e secretas. Nos sistemas de chaves públicas, é usado um par de chaves. Uma das chaves é conhecida por Bob e por Alice (na verdade é conhecida pelo mundo inteiro). A outra chave é somente conhecida por Bob ou por Alice (mas não por ambos). Nas duas subseções seguintes, veremos em detalhes os sistemas de chaves simétricas e de chaves públicas.

Page 9: Redes ii p2

Segurança em RedesChave Simétrica

Todos os algoritmos criptográficos envolvem a substituição de um dado por outro, como, por exemplo, tomar um trecho de um texto e então, calculando e substituindo esse texto por outro cifrado, criando uma mensagem cifrada. Antes de examinarmos o sistema criptográfico moderno baseado em chaves, vamos abordar um velho algoritmo de chaves simétricas muito simples —atribuído a Júlio César — conhecido como cifra de César (uma cifra é um método para criptografar dados).

Page 10: Redes ii p2

Segurança em RedesChave Simétrica

Vocabulário termos comuns:Criptografia (kriptós = escondido, oculto; grápho = grafia) : é a arte ou ciência de escrever em cifra ou em códigos, de forma a permitir que somente o destinatário a decifre e a compreenda. Criptoanálise (kriptós = escondido, oculto; análysis = decomposição) : é a arte ou ciência de determinar a chave ou decifrar mensagens sem conhecer a chave. Uma tentativa de criptoanálise é chamada ataque. Criptologia (kriptós = escondido, oculto; logo = estudo, ciência) : é a ciência que reúne a criptografia e a criptoanálise. Cifrar – codificar ou criptografar uma mensagemDecifrar – oposto ao acimaCifrário – Técnica específica para codificar ou decodificar mensagens

Page 11: Redes ii p2

Segurança em RedesChave Simétrica – Cifra de César

A cifra de César funciona tomando cada letra da mensagem do texto aberto e a substituindo pela k-ésima letra sucessiva do alfabeto (permitindo a alternância das letras do alfabeto, isto é, a letra 'z' seria seguida novamente da letra 'a'). Por exemplo, se k = 3, então a letra 'a' do texto aberto fica sendo 'd' no texto cifrado; 'b' no texto aberto se transforma em 'e' no texto cifrado, e assim por diante.

alfabeto puro: a b c d e f g h i j k l m n o p q r s t u v x y w z alfabeto Cesar: D E F G H I J K L M N O P Q R S T U V X Y Z A B C D

Page 12: Redes ii p2

Segurança em RedesChave Simétrica – Cifra de César

No cifrário de César o valor de k serve de chave. Por exemplo, a mensagem "bob, I Love youalice." se toma "ere, l oryh brx. dolfh." em texto cifrado. Embora o texto cifrado realmente pareça não ter nexo, você não levaria muito tempo para quebrar o código se soubesse que foi usada a cifra de César, pois há somente 25 valores possíveis para as chaves.

Page 13: Redes ii p2

Segurança em RedesChave Simétrica – Cifra Monoalfabética

Um aprimoramento da cifra de César é a denominadacifra monoalfabética, que também substitui uma letra do alfabeto por outra. Contudo, em vez de substituir as letras seguindo um padrão regular (por exemplo, substituição por um deslocamento de k para todas as letras), qualquer letra pode ser substituída por qualquer outra, contanto que cada letra tenha uma letra substituta exclusiva e vice-versa. A regra de substituição apresentada abaixo mostra uma regra possível para codificar textos abertos:

alfabeto puro: a b c d e f g h i j k l m n o p q r s t u v x y w z Monoalfabético: m n b v c x z a s d f g h j k l p o i u y t r w e q

Page 14: Redes ii p2

Segurança em RedesChave Simétrica – Cifra Monoalfabética

A mensagem do texto aberto "bob, i love you. alice. " se torma "nkn , s gktcwky. mgsbc." Como aconteceu no caso da cifra de César, o texto parece sem nexo. A cifra monoalfabética também parece ser melhor que a cifra de César, pois há 26! (1O26) possíveis pares de letras, em vez de 25 pares possíveis!

Usar a 'força bruta' para experimentar 1O26 pares demandaria um esforço demasiadamente grande e impediria que esse fosse um método exeqüível para quebrar o algoritmo criptográfico e decodificar a mensagem.

Contudo, fazendo-se a análise estatística do texto aberto, por exemplo, e sabendo quais letras e grupos de letras são mais freqüentes nos textos do idioma em questão, toma-se relativamente fácil quebrar esse código.

Se o intruso tiver algum conhecimento sobre o possível texto da mensagem, então ficará mais fácil ainda quebrar o código. Por exemplo, se a intrusa Trudy for a esposa de Bob e suspeitar que ele está tendo um caso com Alice, ela poderá imaginar que os nomes 'bob' e 'alice' aparecem no texto.

Page 15: Redes ii p2

Segurança em RedesChave Simétrica – D E S

DES (data encryption standard — padrão para criptografia de dados)

É um padrão de criptografia de chaves simétricas desenvovido em 1977 e atualizado mais recentemente em 1993 pelo U.S. National Bureau of Standards para uso comercial e não confidencial do governo norte-americano.

O DES codifica o texto aberto em porções de 64 bits usando uma chave de 64 bits. Na verdade, oito desses 64 bits da chave são bits de paridade ímpar (há um bit de paridade para cada um dos 8 bits), de modo que a chave DÊS tem efetivamente 56 bits de comprimento.

O National Institute of Standards (sucessor do National Bureau of Standards) assim estabelece o objetivo do DÊS: "O objetivo é embaralhar completamente os dados e a chave, de modo que todos os bits do texto cifrado dependam de todos os bits de dados e de todos os bits da chave (...) com um bom algoritmo, não deverá haver nenhuma correlação entre o texto cifrado e os dados originais e a chave"

Page 16: Redes ii p2

Segurança em RedesChave Simétrica – D E S - Operação

A operação básica do DES é ilustrada na Figura a seguir.

DES consiste em dois estágios de permutação (o primeiro e o último passo do algoritmo), nos quais todos os 64 bits são-permutados, havendo 16 'rodadas' idênticas de operação entre eles. Estas rodadas ocorrem da seguinte forma:

1- A operação de cada rodada é idêntica e toma a saída de dados da rodada anterior como entrada. 2- Durante cada rodada, os 32 bits da extrema direita da entrada são deslocados para os 32 bits da esquerda da saída. 3- Toda a entrada de 64 bits até a i-ésima rodada e a chave de 48 bits para a i-ésima rodada (derivada da chave DES maior de 56 bits) são tomadas como entrada para uma função OU exclusivo com a chave Ki de 48 bits4- A saída de 32 bits resultante da função é então usada como os 32 bits da extrema direita da saída de 64 bits da rodada, como mostra a Figura.

Obs.: A decriptografia funciona pela reversão das operações dos algoritmos.

Page 17: Redes ii p2
Page 18: Redes ii p2

Segurança em RedesChave Simétrica – D E S - Operação

Até que ponto o DES funciona? Até que ponto ele é seguro? Ninguém pode ter certeza a RSA Data Security Inc., lançou um desafio (DES Challenge) para 'quebrar' (decodificar) uma frase curta que tinha sido criptografada usando o DES de 56 bits. A frase "Strong cryptography makes the world a safer place." (a boa criptografia faz do mundo um lugar mais seguro) foi decodificada em menos de quatro meses por uma equipe que usou voluntários por toda a Internet para explorar sistematicamente o espaço de chaves. DES Challenge III que aconteceu em 1999, foi vencido no tempo recorde de pouco mais de 22 horas por uma rede de voluntários e um computador especialmente construído para a ocasião, que custou menos de 250 mil dólares (apelidado de 'Deep Crack') e está documentado na Internet Se o DES de 56 bits for considerado muito inseguro, pode-se simplesmente rodar o algoritmo de 56 bits múltiplas vezes, tomando a saída de 64 bits de uma iteração do DÊS como entrada para a iteração DÊS seguinte e usando uma chave criptográfica diferente para cada rodada. Por exemplo, o chamado DÊS triplo (3DES), um padrão proposto pelo governo norte-americano [Nist, 1999b], é o padrão de criptografia para o PPP [RFC 2420] para a camada de enlace

Page 19: Redes ii p2

Segurança em RedesChave Pública

O uso da criptografia de chaves públicas é bastante simples. Suponha que Alice queira se comunicar com Bob. Ao invés de Bob e Alice compartilharem uma única chave secreta (como no caso dos sistemas de chaves simétricas), Bob (o destinatário das mensagens de Alice) tem duas chaves — uma chave pública, que está à disposição do mundo todo (inclusive à disposição de Trudy, a intrusa), e uma chave privada, que apenas ele (Bob) conhece. Para se comunicar com Bob, Alice busca primeiramente a chave pública de Bob. Em seguida, ela criptografa sua mensagem usando a chave pública de Bob e um algoritmo criptográfico conhecido

Bob recebe a mensagem criptografada de Alice e usa sua chave privada e um algoritmo de decriptografia conhecido para decifrar a mensagem de Alice. Dessa maneira, Alice pode enviar uma mensagemsecreta a Bob sem que nenhum deles tenha de permutar alguma chave secreta!

Page 20: Redes ii p2

Segurança em RedesChave Pública

Com duas chaves, não precisamos ficar presos a uma "troca" para o processo de decodificação. Cada um poderá possuir sua chave pública e sua chave privada. Como o próprio nome já diz, a chave privada é de conhecimento único e exclusivo seu. Já a pública deve estar disponível a quem quiser lhe enviar informações encriptadas.Como a encriptação/decriptação depende das duas chaves, se você quiser, por exemplo, enviar uma mensagem criptografada, deve encriptá-la com a nossa chave pública. Como dito anteriormente, a única chave que decripta esta mensagem é o par da chave pública, ou seja, nossa chave privada! Presto! Somente nós conseguiremos ler a mensagem (desde que nossa chave privada seja mantida em um lugarseguro).Continuando nosso exemplo, caso nós queiramos mandar uma mensagem criptografada para você, nós primeiro consiguimos uma cópia da SUA chave pública e a uso na encriptação. Somente sua chave privada poderá decriptar esta mensagem, e mesmo que a mensagem tenha sido interceptada, não passará de um conjunto de caracteres malucos...

Page 21: Redes ii p2

Segurança em RedesChave Pública

Usando a notação da figura, para qualquer mensagem m, dg(eg(m)) = m, isto é, aplicando a chave pública de Bob, eg, e em seguida a chave privada de Bob, dg, à mensagem m, recuperamos m. Veremos em breve que podemos permutar as chaves criptográficas pública e privada e obter o mesmo resultado, isto é, e^d^m)) = dg(eg(m)) = m.

Page 22: Redes ii p2

Segurança em RedesChave Pública - RSA

Em 1978 foi criado o algoritmo RSA (dos nomes dos seus autores Rivest, Shamir e Adleman), que até o momento é a forma mais usada de criptografia assimétrica. Mas foi apenas nos anos 90 que seu uso se tornou amplo em comunicação entre desconhecidos, como em transações seguras na Internet, e no correio eletrônico seguro. Estas aplicações requerem a intermediação de "cartórios eletrônicos", como aqueles operados pelas empresas Verisign ou Certisign, esta última brasileira, responsáveis pela certificação dos donos das chaves públicas.

Page 23: Redes ii p2

Segurança em RedesChave Pública - RSA

O RSA é basicamente o resultado de dois cálculos matemáticos. Um para cifrar e outro para decifrar. O RSA usa duas chaves criptográficas, uma chave pública e uma privada. No caso da criptografia assimétrica tradicional, a chave pública é usada para criptografar a mensagem e a chave privada é usada para decriptografar a mensagem.A segurança desse método se baseia na dificuldade da fatoração de números inteiros extensos. Em 1977, os criadores do RSA achavam que uma chave de 200 bits requereriam 1015 anos, porém chaves com 155 bits foram atacadas em menos de 8 meses. A saída é que na medida que os algoritmos se tornem melhores e os computadores se tornem mais velozes, maiores serão as chaves. Atualmente chaves com 300 dígitos (1000 bits) nos dão uma tranqüilidade por algum tempo. Em níveis críticos, chaves com 2000 bits começam a ser usadas.

Page 24: Redes ii p2

Segurança em RedesChave Pública - RSA

Para tanto vale lembrar que “M” é a mensagemque queremos cifrar (plaintext), “C” é amensagem cifrada, “e” é a chave pública, “d” é a chave privada e “n” é um número que é calculado e que todos sabem (público).

Criptografar: C = Me mod nDecriptografar: M = Cd mod n

Page 25: Redes ii p2

Segurança em RedesChave Pública - RSA

Para gerar a chave precisamos de algumas coisas:1. Selecionar dois números primos p e q grandes (geralmente maior que10100)2. Calcule o valor de n = p . q

3. Calcule øn= (p-1) (q-1)4. Selecione um inteiro “d” relativamente primo à øn

5. Calculamos “e” de forma: (e . d) mod øn = 1

Page 26: Redes ii p2

Segurança em RedesChave Pública - RSA

Vejamos um exemplo:1. p = 3 e q = 112. n = 3 * 11, logo n = 33

3. øn (3-1) (11-1), portanto øn =20

4. d é um inteiro relativamente primo à øn mdc(d, øn)=1,

e atende 1 < d < øn , assim d = 7 (Chave Privada)(9, 11, 13, 15, 17 e 19 seriam outras opções)

(não seria possível 5 já que 5 vezes 4 = øn que é (20))

Page 27: Redes ii p2

Segurança em RedesChave Pública - RSA

5. Calculamos “e” de forma que (e . 7) mod 20 = 1e = 1 => (1.7) = 7 mod 20 ≠ 1 => falsoe = 2 => (2.7) = 14 mod 20 ≠ 1 => falsoe = 3 => (3.7) = 21 mod 20 = 1 => verdadeiro

(outros múltiplos de 3 seriam possíveis (6,9,12, etc)).Portanto teríamos

Chave Pública = {3, 33} e Chave Privada = {7, 33}.

Page 28: Redes ii p2

Segurança em RedesChave Pública - RSA

Lembrando que neste caso e, d e n tem menos de 26, então temosapenas 6 bits.

Se tivéssemos um texto com o número 20, uma mensagemcifrada seria:

C = Me mod nC = 203 mod 33C = 8000 mod 33C = 14

Page 29: Redes ii p2

Segurança em RedesChave Pública - RSA

E para decifrar:M = Cd mod nM = 147 mod 33M = 105.413.504 mod 33 M = 20

“Para calcular o módulo dividir na calculadora o valor dejado pelo módulo, pegar o resto e multiplicar pelo módulo.”

Page 30: Redes ii p2

Segurança em RedesAssinatura Digital - Autenticidade

Assinatura DigitalA criptografia por chaves assimétricas vale para ambos os

lados: Pública » Privada e Privada » Pública. Vamos supor que nós ciframos uma mensagem com a nossa chave PRIVADA! Qual é a única chave capaz de decriptá-la? “A chave PÚBLICA". O que aparentemente não é muita vantagem,

pois todos têm acesso à nossa chave pública e poderão ler a mensagem. Mas...

Aí está! Realmente, todos os que possuírem nossa chave pública poderão ler nossa mensagem, mas também é verdadeiro que, se foi possível decifrar com nossa chave pública, éporque ela foi cifrada com nossa chave privada! Como as únicas pessoas que sabem a nossa chave privada somos nós, está assegurada a nossa identidade como autores daquela mensagem.