125
<<seu nome aqui!>> Universidade Federal de Ouro Preto DECEA / João Monlevade Criptografia Profa. Msc. Helen de Cássia S. da Costa Lima Universidade Federal de Ouro Preto CEA463 – SEGURANÇA E AUDITORIA DE SISTEMAS

CEA463 – SEGURANÇA E AUDITORIA DE SISTEMAS · PDF fileVisão Geral Objetivos A criptografia tem quatro objetivos principais: – Confidencialidade da mensagem Só o destinatário

  • Upload
    vunhi

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

<<seu nome aqui!>>

Universidade Federal de Ouro PretoDECEA / João Monlevade

Criptografia

Profa. Msc. Helen de Cássia S. da Costa LimaUniversidade Federal de Ouro Preto

CEA463 – SEGURANÇA E AUDITORIA DE SISTEMAS

Definição

● Estudo dos princípios e técnicas pelas quais a mensagem ou informação pode ser transformada da sua forma original para outra forma que seja ilegível para úsuários não autorizados, mas possa ser conhecida por seu destinatário

● A criptografia é feita por algoritmos que:

– Embaralham os bits dos dados ou mensagens

– Podem utilizar uma ou mais chaves (ou par de chaves), dependendo do sistema criptográfico escolhido

Histórico

● Estudo da Escrita (grafia) Secreta (cripto)

– Cifragem utilizada na troca de mensagens

– Em assuntos ligados à guerra , ao amor e à diplomacia

– Primeiro uso documentado da criptografia:

● 1900 a.c., no Egito● Uso de hieróglifos fora do padrão

Histórico

● Curiosidade

– O Disco de Phaistos (1600 a.c) ainda não foi decifrado

– Trata-se de um disco circular de barro, coberto com símbolos inscritos em ambos os lados, diferentes de quaisquer sinais de qualquer sistema de escrita conhecido

Histórico

● Entre 600 a.c. e 500 a.c.:

– Hebreus utilizaram cifras de substituição simples para escrever o Livro de Jeremias

● Cifrador de Júlio César, aproximadamente 60 a.c.

– O autor da cifragem trocava cada letra por outra situada a cinco posições à frente no alfabeto. Segundo o autor, esse algoritmo foi responsável por enganar muitos inimigos do Império Romano

– Normal: ABCDEFGHIJKLMNOPQRSTUVWXYZ

– Codificado: FGHIJKLMNOPQRSTUVWXYZABCDE

Histórico

● Thomas Jefferson e James Monroe cifravam as suas cartas para manter em sigilo as suas discussões políticas (1785) – roda criptográfica ou cilíndro de Jefferson

● Na sua forma original, é composto por 26 discos de madeira que giram livremente ao redor de um eixo central de metal

● As vinte e seis letras do alfabeto são inscritas aleatoriamente na superfície mais externa de cada disco de modo que, cada um deles, possua uma sequência diferente de letras

● Girando-se os discos pode-se obter as mensagens

Histórico

● Samuel Morse (1791-1872) desenvolve o código que recebeu o seu nome

● Na verdade não é um código, mas sim um alfabeto cifrado em sons curtos e longos

● Morse também foi o inventor do telégrafo

Histórico

● Gottfried Wilhelm von Leibniz (1646-1716) inventou o cálculo diferencial e integral, a máquina de calcular e descreveu minuciosamente o sistema binário

● Sua máquina de calcular usava a escala binária. Esta escala, obviamente mais elaborada, é utilizada até hoje e é conhecida como código ASCII (American Standard Code for Information Interchange) - permitiu que máquinas de diferentes fabricantes trocassem dados entre si

● Hoje em dia, a mensagem é

criptografada usando-se

algoritmos...

Visão GeralObjetivos

● A criptografia tem quatro objetivos principais:

– Confidencialidade da mensagem

● Só o destinatário autorizado deve ser capaz de extrair o conteúdo da mensagem da sua forma cifrada

– Integridade da mensagem

● O destinatário deverá ser capaz de determinar se a mensagem foi alterada durante a transmissão

– Autenticação do remetente

● O destinatário deverá ser capaz de identificar o remetente e verificar que foi mesmo ele quem enviou a mensagem

– Não-repúdio ou irretratabilidade do emissor

● Não deverá ser possível ao emissor negar a autoria da mensagem

Visão GeralObjetivos

Visão GeralAplicações

Visão GeralAplicações

● A criptografia hoje é a base para diversas tecnologias e protocolos:

– SSL (Secure Socket Layer) → compras online e bancos

– SSH (Secure Shell) → protocolo de acesso remoto

– WEP (Wired Equivalent Privacy) → protocolo de proteção de acesso de redes sem fio

– Redes VPN usam protocolos com o IPSec (IP Security) →

proteger as comunicações entre as organizações

– Certificados digitais

Visão GeralAplicações

● A criptografia hoje é a base para diversas tecnologias e protocolos:

– SSL (Secure Socket Layer) → compras online e bancos

– SSH (Secure Shell) → protocolo de acesso remoto

– WEP (Wired Equivalent Privacy) → protocolo de proteção de acesso de redes sem fio

– Redes VPN usam protocolos com o IPSec (IP Security) →

proteger as comunicações entre as organizações

– Certificados digitais

ConceitosTexto plano e cifrado

● Texto Plano

– É um arquivo qualquer (mensagem, texto, imagem, etc) que é conteúdo legível para todos

– É sinônimo de Texto Aberto, Texto Claro ou Texto Legível

● Texto Cifrado

– É resultado da passagem do Texto Plano por algum sistema criptográfico

– É sinônimo de Texto Criptografado, Texto Codificado

ConceitosCriptografia, criptoanálise e criptologia

● Criptografia

– Ciência ou arte que dispõe de mecanismos para transformar um Texto Plano em um Texto Cifrado e vice-versa

● Criptoanálise

– Ciência que estuda mecanismos para quebrar os textos cifrados, através de diversas técnicas e ferramentas de ataques a um sistema criptográfico

● Criptologia

– = Criptografia + Criptoanálise

ConceitosCifragem

ConceitosCifragem

ConceitosCifragem

● Exemplo: técnica de substituição

● O cifrador de César

● Considerando as 26 letras do alfabeto (a,b,c,d,e,f,g,h,I,j,k,m,n,o,p,q,r,s,t,u,v,x,w,y,z), faz um deslocamento

● Neste método, com deslocamento=3, a se torna d, b se torna e, c se torna f, ... ..., z se torna c

● Número de chaves: 26

ConceitosCifragem

● A transformação pode ser feita da seguinte forma:

● Atribuindo um equivalente numérico a cada letra:

ConceitosCifragem

● Então, o algoritmo de encriptação pode ser expresso da seguinte forma. Para cada letra em equivalente númerico p, substitua pela letra do texto cifrado c:

c = f(e,p) = (p + 3) mod 26

● E um deslocamento pode ser de qualquer quantidade, de modo que o algortimo generalizado é:

c = f(e,p) = (p + k) mod 26

– Onde k assume um valor entre 1 a 25

● O algoritmo de decriptação é simplesmente:

p = f(d,c) = e-1(c) = (c - k) mod 26

ConceitosCifragem

● Se for conhecido que determinado texto cifrado é uma cifragem de César, então uma criptoanálise pela força bruta será facilmente realizada. Basta experimentar todas as 25 chaves possíveis

● A força bruta é fácil porque:

– Os algoritmos de encriptar e decriptar são conhecidos

– Existem apenas 25 chaves a serem experimentadas

– A linguagem do texto claro é conhecida e facilmente reconhecível

O que realmente torna a criptoanálise com força bruta impraticável é o uso de algoritmos que empregam um grande

número de chaves

ConceitosCifragem

● O algoritmo DES, por exmeplo, utiliza uma chave de 128 bits, gerando 2128 combinações possíveis, o que demandaria tempo de processamento (força bruta) de 2.300 anos

● Além disso, a entrada pode ser abreviada ou compactada de alguma maneira, difucultando o reconhecimento. Ou seja, o texto claro não será reconhecido quando for descoberto pela criptoanálise com força bruta

Criptografia Simétrica

● Uma mesma chave é usada para criptografar e decriptografar os dados

– Vantagens: rápida

– Desvantagens: chave precisa ser transportada para o destino por meio inseguro

Criptografia Simétrica

Algoritmo Criptográfico

● É uma função matemática utilizada para encriptação / decriptação

● Se o algoritmo é secreto, o algoritmo é dito restrito

● Na criptografia moderna, a segurança está baseada na chave utilizada e não no algoritmo

Algoritmo Criptográfico

● O algoritmo SEMPRE é descoberto

● Ex: RC4, inventado em 1987, mas nunca publicado. Em 1994 foi descoberto por hackers. Atualmente é utilizado no Secure Socket Layer (SSL) e WEP

● Algoritmos públicos são examinados pela comunidade de criptografia parar encontrar suas fraquezas

● Um algoritmo secreto não é uma boa ideia, pois pode ter fraquezas conhecidas apenas pelos hackers

Chave criptográfica

● É um número ou conjunto de números

● O que é mais prático? Proteger uma chave ou um algoritmo?

– Se um algoritmo é quebrado, todos os segredos são descobertos

– Se uma chave é quebrada, apenas os dados protegidos por esta chave são descobertos

Gerando uma chave

● Deve ser um número escolhido aleatoriamente

● Se alguém souber os números atuais é possível prever os números seguintes? Então não é aleatório

● Para saber se são números aleatórios existem testes de aleatoriedade:

– Há aproximadamente a mesma contagem de “1s” e “0s”?

– Alguns padrões de “1s” e de “0s” aparecem com muita frequência?

● Por exemplo, Feminino (1), Masculino (0)

Gerando uma chave

● Impossível gerar números aleatórios no computador

– Usa-se geradores de números

pseudo-aleatórios (PRNG)

– O que torna esses números pseudo-aleatórios e não aleatórios é que eles são repetíveis

● Para gerar um conjunto de números muito grande, cada um dos 10 digitos é repetido com igual frequência

Gerando uma chave

● Mas, se os números são repetíveis, para que serve um PRNG ?

– É que pode-se alterar a saída utilizando uma entrada (chamada de semente) que precisamos nos certificar que é alterada todas as vezes que quisermos gerar novos números (considerado uma falha de um sistema criptográfico)

Gerando uma chave

● Entropia é a medida de incerteza de uma chave

● Uma chave com alta entropia significa uma chave difícil de ser quebrada

● O principal problema que reduz a entropia de uma chave é quando o que é codificado pelo algoritmo possui algum significado

– No caso de um texto, existe alta densidade de probabilidade da ocorrência de algumas letras (como as vogais A, E e O no português)

AtaquesAtacando a chave

● Ataque de força bruta: testar todas as possibilidades

– Chave de 40 bits: 0 a 1 trilhão

– Chave de 56 bits: 0 a 72 quatrilhões

● Cada bit adicionado dobra o número de chaves e o tempo gasto por um ataque de força bruta

● Existem aproximadamente 2300 átomos no universo. Se cada átomo fosse um computador que verificasse 2300 chaves por segundo, levaria 2162 milênios para pesquisar 1% do espaço de uma chave de 512 bits

AtaquesAtacando a chave

● Nos dias de hoje, o avanço da computação distribuída, principalmente pela Internet, contribuiu para o aumento exponencial da capacidade de processamento, que é essencial para a força bruta

– Deep Crack → máquina construída para executar uma busca por ataque por força bruta do espaço de chave de cifragem do DES (56 bits)

● É preciso considerar o tempo durante o qual a informação vai precisar ficar protegida, para que seja utilizado o tamanho ideal da chave

– Transferência eletrônica tem exposição curta

– Planos estratégicos corporativos necessitam do sigilo durante anos

– Fórmula da Coca-Cola precisa ser protegida por décadas ou séculos

AtaquesAtacando a semente

● Em vez de reproduzir a chave, reproduzir o programa gerador e a semente

● Se invasores adivinharem a semente, tentam reproduzir o gerador (PRNG) para criar a chave

– Solução: uma boa semente

● Semente da Netscape:

– Numa transação SSL, deve-se gerar uma chave. O gerador coletava como semente a hora do dia, o ID do processo e o ID do processo pai

– Para obter a semente, foi feito um teste de força bruta no ID (15 bits) e a hora era facilmente obtida

– Hoje: semente depende da posição do cursor, status da memória, último pressionamento da tecla, entre outros parâmetros

AtaquesAtacando ao algoritmo

● Ataque de texto cifrado: o criptoanalista tem a sua disposição uma grande quantidade de mensagens cifradas, mas desconhece as originais e as chaves utilizadas. Sua tarefa é recuperar as mensagens normais (deduzir as chaves utilizadas)

● Ataque de texto conhecido: o criptoanalista tem a sua disposição uma grande quantidade de mensagens criptografadas e também as mensagens originais equivalentes. Sua tarefa é deduzir as chaves utilizadas (ou um método para recuperar mensagens cifradas com a mesma chave)

● Ataque adaptativo do texto escolhido: o atacante escolhe e modifica o texto conhecido, analisa os resultados, fornece outro conjunto e assim por diante. Sua tarefa é deduzir as chaves utilizadas

Algoritmo de cifragem simétrica

● Exemplos de algoritmos que utilizam chaves simétricas:

– DES

– Triple DES

– IDEA

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Padronização em Criptografia

– Até 1970:● Não existiam padrões

– 1972:● National Institute of Standards and Technology, NIST

– Programa para proteção a computadores e comunicação de dados

– Estabelecimento de algoritmo criptográfico padrão para permitir interoperabilidade nas comunicações

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Padronização em Criptografia

– 1973:● NIST lança concurso para escolha de um algoritmo

padrão (IBM: vence com uma versão refinada do LUCIFER, criado por Feistel)

– 1977:● NIST lança o algoritmo padrão, com pequenas

alterações, com o nome DES

– 1981-1992:● DES adotado também por ANSI e ISO

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Conceito Cifra de Bloco

– Um bloco de texto claro é tratado como um todo e usado para produzir um bloco de texto cifrado com o mesmo tamanho

● Cifra de Feistel

– Cifra de produto: executada de 2 ou mais cifras simples em sequência

– Entradas: bloco com n bits e uma chave k bits

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Cifra de Feistel – Estrutura da Cifra

– Entrada: texto tamanho 2w e e uma chave K

– O bloco de texto é dividido em duas metades: L

0 e R

0

– Ocorrem n rodadas de processamento e depois elas se combinam para gerar o texto cifrado

– Cada rodada i possui como entradas L

i-1 , R

i-1 e uma chave K

i derivada de K

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Cifra de Feistel – Estrutura da Cifra

– Todas as rodadas são iguais:

● Uma substituição e feita na metade esquerda L

1) Aplica-se a função F na metade direita R

2) Aplica-se OU exclusivo na saída dessa função e a metade L

3) Ocorre uma permutação: troca das duas metades dos dados

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Cifra de Feistel – Considerações

– Tamanho do bloco e da chave: Tamanhos maiores significam mairo segurança, mas deixam o algoritmo mais lento, o tradicional é tamanho de 64 bits para o bloco e 128 bits para a chave

– Rodadas: o algoritmo de Feisel com maior número de rodadas oferece maior segurança. O típico são 16 rodadas

– Algortimo de subchave e função F: quanto mais complexo, maior será a dificuldade da criptoanálise

– Processo de decriptação: é o mesmo algoritmo de encriptação. Basta usar como entradas as subchaves K

i em ordem reversa e o bloco criptografado

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● Algoritmo DES

– No DES, os dados são codificados em blocos de 64 bits usando uma chave de 56 bits

– Ele transforma a entrada por uma série de etapas em uma saída de 64 bits e as mesmas etapas são usadas para reverter o processo (é o processo do Feistel)

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● AlgoritmoLado Esquerdo

1) Permutação Inicial (IP)

2) 16 rodadas

3) Permutação Inicial Reversa (IP-1)

Lado Direito

1) A chave K passa por uma permutação

2) Para cada rodada, um deslocamento e uma permutação

são feitas para gerar Ki

3) A função de permutação da chave é a mesma para todoas as rodadas, mas uma chave diferente é produzida, devido aos deslocamentos repetidos dos bits da chave

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● AlgoritmoPermutação Inicial

A permutação inicial (IP) e seu inverso (IP-1) são definidas através de tabelas

A interpretação é feita da seguinte forma:

A entrada consiste em 64 bits numerados de 1 a 64

A saída são os bits organizados conforme permutação indicada

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● AlgoritmoPermutação Inicial

A permutação inicial (IP) e seu inverso (IP-1) são definidas através de tabelas

A interpretação é feita da seguinte forma:

A entrada consiste em 64 bits numerados de 1 a 64

A saída são os bits embaralhados na ordem indicada pela permutação da tabela

entrada

saída

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)

● AlgoritmoDetalhes de uma rodada individual

Lado esquerdo:

Entrada dividida → L (left) e R (right)

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Função F:

A subchave Ki da rodada é de 48 bits e a entrada R é de 32 bits

R é expandida para 48 bits usando a permutação de expansão (E), que duplica 16 dos bits de R

Em seguida, é realizado um XOR dos 48 bits resultantes com os 48 bits da subchave Ki

Esse resultado passa por uma função de substituição que produz uma saída de 32 bits (caixas-S)

E a saída é permutada conforme a função de permutação (P)

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Caixas-S:

A substituição consiste em um conjunto de 8 caixas-S

Cada uma aceita 6 bits de entrada e produz 4 bits de saída

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Funcionamento de uma caixa Si:

O primeiro e o último bit da entrada de 6 bits formam um número binário de 2 bits para selecionar uma das 4 substituições representadas pelas 4 linhas da tabela

Os 4 bits do meio também formam um binário que seleciona uma das 16 colunas

O valor decimal da célula selecionada por linhaXcoluna é convertido em sua representação de 4 bits para produzir a saída da caixa

Exemplo de uma caixa-S

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Funcionamento de uma caixa Si: exemplo

Para a entrada: 011001

linha [índice de 0-3] = 012 = 110

coluna [índice de 0-15]= 11002 = 1210

célula = 910 = 10012

Exemplo de uma caixa-S

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Geração da subchave Ki:

A entrada é uma chave de 64 bits, porém cada 8 bit da entrada é ignorado:

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Geração da subchave Ki:

A chave resultante de 56 bits é primeiro submetida a uma permutação chamada Escolha Permutada Um (PC-1)

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Geração da subchave Ki:

A chave de 56 bits resultante é então tratada como duas de 28 bits C0 e D0

Em cada rodada, cada chave é deslocada à esquerda circular (rotação) 1 ou 2 bits, conforme tabela:

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Detalhes de uma rodada individual

Geração da subchave Ki:

Esses valores deslocados servem como entrada para a próxima rodada

Também servem como entrada para a Escolha Permutada Dois (PC-2), que produz uma saída de 48 bits que serve de entrada para a função F

Algoritmo de cifragem simétricaDES (Digital Encryption Standard)● Algoritmo

Exercício

Este problema fornece um exemplo numérico da criptografia usando uma versão de uma rodada da criptografia usando uma versão de uma rodada do DES. Começamos com o mesmo padrão de bits para a chave K e o texto claro:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

a) Derive K1.

b) Derive L0 e R0.

c) Expanda R0 para obter E[R0].

d) Calcule A = E[R0] XOR K1.

e) Agrupe os resultados de 48 bits de d) em conjuntos de 6 bits e gere as substituições caixas-S correspondetes.

f) Concatene os resultados de e) para obter um resultado de 32 bits, B.

g) Aplique a permutação para obter P(B).

h) Calcule R1 = P(B) XOR L0.

i) Escreva o texto cifrado.

Exercício

Este problema fornece um exemplo numérico da criptografia usando uma versão de uma rodada da criptografia usando uma versão de uma rodada do DES. Começamos com o mesmo padrão de bits para a chave K e o texto claro:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Algoritmo de cifragem simétricaTriple DES

● Realiza 3 vezes o algoritmo DES

● O 3DES - simples variação do DES, utilizando-o em três ciframentos sucessivos, podendo empregar uma versão com duas ou com três chaves diferentes

● O texto simples só aparece quando as três chaves forem corretas

● É seguro, porém muito lento para ser um algoritmo padrão

Algoritmo de cifragem simétrica

Vantagem

● Rapidez na criptografia e descriptografia da informação.

Desvantagens

● A chave deve ser trocada entre as partes e armazenada de forma segura, o que nem sempre é fácil de garantir

● A criptografia simétrica não garante a identidade de quem enviou ou recebeu a mensagem (autenticidade e não-repudiação)

● Cada par necessita de uma chave para se comunicar de forma segura. Em geral, se n pessoas querem se comunicar usando chave secreta, serão necessárias muitas chaves

Algoritmo de cifragem simétrica

Gerenciamento de chave simétrica

● A criptografia de chave simétrica pode manter seguro seus segredos, mas pelo fato de precisarmos das chaves para recuperar os dados criptografados, devemos mantê- las seguras

● Soluções para o armazenamento de chaves podem ser dispositivos pequenos, projetados para proteger chaves ou senhas

● Ou utilizar criptografia de chave simétrica para proteger os megabytes de informação e alguma outra técnica para proteger as chaves

Algoritmo de cifragem simétricaArmazenamento de chaves em hardware

● Tokens

– Um cartão inteligente

– Um pequeno anexo da porta USB

– Um anel de dedo

● A vantagem de se utilizar tokens é que um invasor não tem acesso a eles

● Quando precisar utilizar uma chave simétrica, transfere-se a chave do token para o computador

● Tokens podem armazenar senhas de várias contas

● Utilizar um token para gerar grandes senhas aleatórias e para armazenar essas senhas

● Não é preciso lembrar da senha

Criptografia Assimétrica ou deChave Pública

Criptografia Assimétrica ou deChave Pública

● Na criptografia assimétrica a chave utilizada para encriptar não é usada para decriptar

● As chaves são significativamente diferentes:

( ke,k

d )

● Elas são parceiras. E possuem um relacionamento matemático, o que uma chave encripta a outra decripta:

c = E(ke, m) D(k

d, c) = m

Criptografia Assimétrica ou deChave Pública

● Descrição do funcionamento

– Bob e todos os que desejam comunicar-se de modo seguro geram uma chave de ciframento e sua correspondente chave de deciframento

– Bob mantém secreta a chave de deciframento; esta é chamada de sua chave privada

– Bob torna pública a chave de ciframento: esta é chamada de sua chave pública

– Qualquer pessoa pode obter uma cópia da chave pública. Bob encoraja isto, enviando-a para seus amigos ou publicando-a em boletins. Eva não tem nenhuma dificuldade em obtê-la

Criptografia Assimétrica ou deChave Pública

● Descrição do funcionamento

– Alice deseja enviar uma mensagem a Bob: precisa primeiro encontrar a chave pública dele. Feito isto, ela cifra sua mensagem utilizando a chave pública de Bob, despachando-a em seguida

– Bob recebe a mensagem, a decifra facilmente com sua chave privada

– Eva, que interceptou a mensagem em trânsito, não conhece a chave privada de Bob, embora conheça sua chave pública. Mas, este conhecimento não a ajuda a decifrar a mensagem

– Mesmo Alice, que foi quem cifrou a mensagem com a chave pública de Bob, não pode decifrá-la agora

Criptografia Assimétrica ou deChave Pública

Desempenho

● Para informação em grande quantidade, algoritmos de chave pública são lentos

– Processam 20Kb a 200Kb por segundo

– Muito lento para processamento de dados em volume

● Algoritmos de chave simétrica podem encriptar informação em grande quantidade bem mais rapidamente

– 10Mb, 20Mb, 50 Mb ou mais por segundo

● Solução: usar a combinação de criptografia de chave simétrica e de chave pública

Criptografia Assimétrica ou deChave Pública

● Criptografando em envelope digital

Criptografia Assimétrica ou deChave Pública

● Criptografando em envelope digital

Criptografia Assimétrica ou deChave Pública

Vantagens do envelope digital

● Segredo não precisa ser compartilhado antecipadamente

● Segredo compartilhado através da chave simétrica de sessão

● Manter uma chave separada para cada pessoa (chave pública) que não precisa estar protegida

Criptografia Assimétrica ou deChave Pública

Algortimos

● Dos algoritmos assimétricos até hoje propostos, poucos são considerados seguros e práticos:

– RSA

– El Gamal

– ECC – Criptografia de Curva Elíptica

● Outros algoritmos:

– Inseguros, muito lentos ou requerem chaves muito longas

Criptografia Assimétrica ou deChave Pública

Algortimo RSA

● O nome é formado com iniciais dos autores: Rivest, Shamir & Adleman (1978)

● Mais usado e fácil de implementar entre os algoritmos assimétricos

● O algoritmo vem resistindo a quase 20 anos de análise

● Sua segurança é baseada na dificuldade de se fatorar números inteiros primos

– É fácil multiplicar dois números primos para obter um terceiro número, mas muito difícil recuperar os dois primos a partir daquele terceiro número – fatoração

Criptografia Assimétrica ou deChave Pública

Algortimo RSA

● Exemplo:

– Fatores primos de 3.337 são 47 e 71

– Geração da chave pública: multiplicar dois primos grandes; qualquer um pode fazer isto

– Derivar a chave privada a partir da chave pública: fatorar um grande número

– Se o número for grande o suficiente e bem escolhido, então ninguém pode fazer isto em uma quantidade de tempo razoável

Criptografia Assimétrica ou deChave Pública

Descrição de funcionamento do RSA

● Escolhe-se dois números primos extensos, p e q, (tipicamente maiores que 10100)

● Calcula-se:

n = p × q e z = (p - 1) × (q - 1)

● Escolher um número relativamente primo a z e chamá-lo de e (isto é, tal que e não tenha fatores primos comuns com z)

● Encontre d tal que:

e.d mod z = 1 e d < z

Criptografia Assimétrica ou deChave Pública

Descrição de funcionamento do RSA

● O texto simples (uma string de bits) é dividido em blocos, de modo que cada mensagem de texto simples, m , fique no intervalo 0 ≤ m < n

● Para encriptar um mensagem m, calcule

E(e,n,m) = c = me mod n

● Para decriptar, calcule

D(d,n,c) = m = cd mod n

● É possível provar que, para todo m na faixa especificada, as funções de criptografia e descriptografia são inversas entre si

● Para encriptar precisamos de e e n. Para decriptar precisamos de d e n. Assim, a chave pública consiste do par (e,n) e a chave privada do par (d,n)

Criptografia Assimétrica ou deChave Pública

Descrição de funcionamento do RSA

● Exemplo:

– Escolhe-se p = 3 e q = 11

– Calculando n = p × q e z = (p-1) × (q-1), n=33 e z=20

– Valor adequado como número primo, em relação a z é o 7, (7 e 20 não possuem fatores comuns), e = 7

– Obtenção do valor de d:

– Solução da equação (e × d) mod z = 1, d = 3

– Texto cifrado c para uma mensagem de texto simples m é dado por

● c = m7 (mod 33)

– O texto cifrado é decodificado pelo receptor usando a regra

● m = c3 (mod 33)

Criptografia Assimétrica ou deChave Pública

Segurança do algortimo RSA

● A segurança do método é baseada na dificuldade de se fatorar números grandes

● Se um cripto-analista puder fatorar n, ele poderia então descobrir p e q, e destes, z

● A RSA Corporation tem emitido uma série de desafios para fatorar números de mais de 100 dígitos decimais

● Números de até 174 dígitos decimais (576 bits) têm sido fatorados, e assim o uso do algoritmo RSA com chaves de 512 bits é inaceitável para muitos propósitos

Criptografia Assimétrica ou deChave Pública

Segurança do algortimo RSA

● RSA Corporation (que retém a patente do algoritmo RSA) recomenda um comprimento de chave de ao menos 768 bits (em torno de 230 dígitos decimais), por um período de segurança a longo prazo de aproximadamente 20 anos

● Os algoritmos de fatoração usados são os melhores disponíveis

● Algoritmos criptográficos assimétricos que usam multiplicação de números primos como função de uma via estarão vulneráveis quando um algoritmo de fatoração mais rápido for descoberto

Questões Decorrentes daCriptografia

Ameaças ao Ambiente Eletrônico

Ameaças ao Ambiente Eletrônico

Autenticação – Assinatura Digital

● Algumas vezes há a necessidade de se provar quem escreveu um documento e manter as informações desse documento sem modificações

● Solução: serviços de autenticação e integridade dos dados

● A autenticidade de muitos documentos é determinada pela presença de uma Assinatura Digital

Autenticação – Assinatura Digital

● Assinatura Digital – item que acompanha um determinado dado e apresenta as seguintes funções

– Confirmar a origem do dado

– Certificar que o dado não foi modificado

– Impedir a negação da origem

Autenticação – Assinatura Digital

● Vantagens do envio de mensagem “assinada”

– O receptor poderá verificar a identidade alegada pelo transmissor

– Posteriormente, o transmissor não poderá repudiar o conteúdo da mensagem

– O receptor não terá a possibilidade de forjar ele mesmo a mensagem

Autenticação – Assinatura Digital

● Cenários de preocupações legítimas

– Transferência eletrônica de fundos – o receptor aumenta a quantidade de fundos transferidos e afirma que o valor maior chegou do emissor

– Email com instrusões para uma transação que no futuro foi um fracasso – o emissor finge que o email nunca foi enviado

Autenticação – Assinatura Digital

● Tipos

– Assinaturas de Chave Pública

– Resumo da mensagem (hash)

Autenticação – Assinatura Digital

Autenticação – Assinatura Digital

● Assinaturas de Chave Pública – Problemas relacionados ao ambiente no qual operam

– Bob só poderá provar que uma mensagem foi enviada por Alice enquanto D

A permanecer

secreta.

– Se Alice revelar sua chave secreta, o argumento deixará de existir - qualquer um poderá ter enviado a mensagem

Autenticação – Assinatura Digital

● Assinaturas de Chave Pública – Críticas

– Reúnem sigilo e autenticação

– Em geral, o sigilo não é necessário

– Cifragem da mensagem inteira é lenta

● Solução:

– Resumo da mensagem (hash)

Autenticação – Assinatura Digital

● Resumo da mensagem (hash)

– Algoritmo Hash é usado quando a autenticação é necessária, mas o sigilo, não

– Resumo de mensagens é um método de autenticação que não exige a criptografia de um documento (mensagem) inteiro

– É um método para agilizar algoritmos de assinatura digital

Autenticação – Assinatura Digital

● Resumo da mensagem (hash)

– Representante de uma mensagem maior

– Verifica a integridade de dados

– O método se baseia numa função hash unidirecional que extrai um trecho qualquer do texto claro e a partir dele calcula uma string de bits de tamanho fixo

– Essa função de hash, chamada de resumo de mensagem, geralmente representada por MD (Message Digest), tem quatro propriedades

Autenticação – Assinatura Digital

● Propriedades

Autenticação – Assinatura Digital

● Resumo da mensagem (hash)

Autenticação – Assinatura Digital

● Resumo da mensagem - Geração

Autenticação – Assinatura Digital

● Resumo da mensagem – Geração

– Entra-se com os dados a serem resumidos e o algoritmo (SHA – Secure Hash Algorithm, por exemplo) gera um hash MD de 128 ou 160 bits (dependendo do algoritmo)

– Em seguida, computada uma MD, criptografa-se o hash gerado com uma chave privada

Autenticação – Assinatura Digital

● Resumo da mensagem – Verificação

Autenticação – Assinatura Digital

● Resumo da mensagem – Verificação

– 1. Executa-se a função MD (usando o mesmo algoritmo MD que foi aplicado ao documento na origem), obtendo-se um hash para aquele documento, e posteriormente, decifra-se a assinatura digital com a chave pública do remetente

– 2. A assinatura digital decifrada deve produzir o mesmo hash gerado pela função MD executada anteriormente

– 3. Se estes valores são iguais é determinado que o documento não foi modificado após a assinatura do mesmo, caso contrário, o documento ou a assinatura, ou ambos foram modificados

Autenticação – Assinatura Digital

● Resumo da mensagem – Verificação

– É importante perceber: a assinatura digital, como descrita no exemplo anterior, não garante a confidencialidade da mensagem

– Qualquer um poderá acessá-la e verificá-la, mesmo um intruso (Eva), apenas utilizando a chave pública do emissor (Alice)

Autenticação – Assinatura Digital

Autenticação – Assinatura Digital

Autenticação – Assinatura Digital

● Observações importantes

– A criptografia de chave simétrica fornece privacidade sobre os dados sigilosos

– A criptografia de chave pública resolve o problema da distribuição de chaves

– Resumo de mensagem assegura integridade

– Uma assinatura oferece autenticação e não-repúdio

Autenticação – Assinatura Digital

● Assinatura digital - É importante saber que...

Autenticação – Assinatura Digital

Assinatura digital é suficiente para garantir a segurança?

Autenticação – Assinatura Digital

● Assinatura digital é suficiente?

– As assinaturas digitais, por si só, servem muito bem à verificação de uma quantidade limitada de pessoas, com as quais você está familiarizado

– E se você receber uma mensagem de alguém que você não conheça ou de uma empresa desconhecida?

– O fato de a assinatura ter sido verificada não significa muita coisa. Afinal, qualquer pessoa pode obter um par de chaves e assinar uma mensagem, mas esta poderia estar se fazendo passar por outra

Autenticação – Certificados Digitais

● Justificativa

● Funcionamento

● Tipos de Certificados

● Exemplos

Autenticação – Certificados Digitais

Justificativa

● É necessário que o usuário tenha certeza de que a chave pública que está utilizando é autêntica

● Pequeno grupo – poderia trocar as chaves públicas e guardá-las de forma segura

● Grande grupo – troca manual de chave é impraticável

Autenticação – Certificados Digitais

● Certificado Digital - arquivo digital que contém as informações necessárias à identificação de um indivíduo ou programa, equipamento, componente, produto, etc, incluindo sua chave pública

● Principal função de um certificado – vincular uma chave pública ao nome de um protagonista (indivíduo, empresa, etc.)

● Os certificados em si não são secretos ou protegidos. Usualmente estão disponíveis em uma base de acesso livre na Internet

Autenticação – Certificados Digitais

Funcionamento

● Autoridade Certificadora (AC)

– Entidade que emite certificados para possuidores de chaves públicas e privadas (pessoa, dispositivo, servidor)

● Autoridades de Registro (AR)

– São as responsáveis pelo processo final na cadeia de Certificação Digital, responsáveis por atender os interessados em adquirir certificados, coletar os documentos para encaminhá-los às ACs, responsáveis pela emissão

Autenticação – Certificados Digitais

Funcionamento

Autenticação – Certificados Digitais

Funcionamento

Autenticação – Certificados Digitais

Funcionamento

● Atribuições de uma CA:

– Gerar, entregar e armazenar a chave privada de forma segura

– Distribuir a chave pública

– Atualizar o par de chaves

– Assinar a chave pública para gerar o certificado. Assinando certificados digitais, a CA garante sua validade

– Manter e divulgar uma lista com os certificados revogados (Certificate Revocation List – CRL)

● Exemplos de CAs: VeriSign, Cybertrust e Nortel

Autenticação – Certificados Digitais

Funcionamento

Autenticação – Certificados Digitais

Funcionamento

Autenticação – Certificados Digitais

Funcionamento

Autenticação – Certificados Digitais

Funcionamento

● Período de validade e revogação

– Os certificados definem períodos de validade para as chaves públicas

– Certificados podem ser revogados antes de sua expiração:

● Suspeita de corrupção da chave pública● Término de contrato● Mudança de nome

Autenticação – Certificados Digitais

Funcionamento

Autenticação – Certificados Digitais

Funcionamento

● Componentes básicos de um certificado digital

– A chave pública

– Nome e endereço de e-mail

– Data da validade da chave pública

– Nome da autoridade certificadora (CA)

– Número de série do Certificado Digital

– Assinatura Digital da Autoridade Certificadora

Autenticação – Certificados Digitais

Funcionamento

● Para que serve um Certificado Digital?

– Correio Eletrônico seguro

– Transações Bancárias sem repúdio

– Compras pela Internet sem repúdio

– Consultas confidenciais a cadastros

– Arquivo de documentos legais digitalizados

– Transmissão de documentos

– Contratos digitais

– Certificação de Equipamentos

– Certificação de Programas de Computador

Autenticação – Certificados Digitais

Tipos de Certificados

● Certificados de CA: utilizados para validar outros certificados; auto-assinados ou assinados por outra CA

● Certificados de servidor: utilizados para identificar um servidor seguro; contém o nome da organização e o nome DNS do servidor

● Certificados pessoais: contém nome do portador e, eventualmente, informações como endereço eletrônico, endereço postal, etc

● Certificados de desenvolvedores de software: utilizados para validar assinaturas associadas a programas

Autenticação – Certificados Digitais

Exemplos de uso

● PROUNI – O sistema é acessado pela instituição de ensino superior por meio de certificado digital, além disso, a Certificação Digital é exigida na tramitação de informações com as instituições de ensino

● Sisbacen – Sistema do Banco Central do Brasil. A certificação digital é utilizada na autenticação de remessa de informações das empresas com capital estrangeiro para o Banco Central

● Outros exemplos:

– http://www.beneficioscd.com.br/cartilha_online/?pagina=ap01

Autenticação – Certificados Digitais

ICP Brasil

● O Instituto Nacional de Tecnologia da Informação - ITI é um órgão federal vinculada à Casa Civil da Presidência da República

● O ITI é a Autoridade Certificadora Raiz - AC Raiz da Infraestrutura de Chaves Públicas Brasileira – ICP-Brasil

● Possui o papel de credenciar e descredenciar os demais participantes da cadeia, supervisionar e fazer auditoria dos processos

Autenticação – Certificados Digitais

ICP Brasil

● Qualquer instituição pode criar uma ICP, independente de seu porte

● Por exemplo, se uma empresa criou uma política de uso de certificados digitais para a troca de informações entre a matriz e sua filiais, não vai ser necessário pedir tais certificados a uma AC controlada pela ICP-Brasil

● A própria empresa pode criar sua ICP e fazer com que um departamento das filiais atue como AC ou AR, solicitando ou emitindo certificados para seus funcionários

Autenticação – Aplicações

Correio eletrônico

● Utilização

– Autenticação de origem

– Integridade do conteúdo

– Confidencialidade

– Não-repúdio

● Protocolos

– PEM (Public Enhanced Mail)

– Security Multiparts for MIME/MOSS (Mime Object Security Services)

– S/MIME (Secure/Multipurpose Internet Mail Extensions)

– PGP (Pretty Good Privacy)

Autenticação – Aplicações

WEB

● Utilização

– Autenticação do servidor

– Autenticação do cliente

– Integridade de conteúdo

– Confidencialidade

● Protocolos

– SSL (Secure Socket Layer)

– Secure HTTP (Secure HyperText Transfer Protocol)

– Kerberos (protocolo de autenticação)

Autenticação – Aplicações

WEB

● Secure Socket Layer (SSL)

– Protocolo para criptografia e autenticação baseado em sessão

– Fornece um canal seguro entre cliente e servidor

– Funciona na camada de transporte

– Certificados SSL são muito usados na web

Autenticação – AplicaçõesWEB

● Secure Socket Layer (SSL)

Bibliografia

● NAKAMURA, Emílio T.; de GEUS, Paulo L. Segurança de redes em ambientes cooperativos. 3a edição. Editora Novatec. Cap 9 e 11.

● Stallings, William. Criptografia e Segurança de Redes - Princípios e Práticas. 4a edição. Prentice-Hall. Parte I e II.

● Kleinschmidt J. H. Notas de aula. Segurança da Informação. Universidade do ABC, 2011.

● Ribeiro, F. N. Notas de aula. Segurança e Auditoria de Sistemas de Informação. UFOP, 2011.