CEA463 – SEGURANÇA E AUDITORIA DE SISTEMAS · PDF fileVisão Geral...
Transcript of CEA463 – SEGURANÇA E AUDITORIA DE SISTEMAS · PDF fileVisão Geral...
<<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 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
● 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
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
● 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
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
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
● 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
● 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
– 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
● 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 é 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
● 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
● 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
● 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
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.