Protocolos Criptográficos

Slides:



Advertisements
Apresentações semelhantes
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
Advertisements

SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
Prof. Celso Gramática.
Introdução a Resolução Numérica de Equações Diferenciais Ordinárias
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
Vetores (2) Continuação.
XP - Continuous Integration Leonardo Pereira Demilis.
Críticas sobre Extreme Programming Francisco Hillesheim.
Criptografia de chave única
Sistemas criptográficos
Criptografia de chave pública
Criptografia de chave única
Criptografia Quântica : Um Estudo
Segurança Raul Fernando Weber Instituto de Informática
Criptografia Raul Fernando Weber Instituto de Informática
Compressão de Voz Francisco Socal Tiago Peres Leonardo Silveira.
(Como implementar multiplicação e divisão uma vez só :-)
Gustavo Vieira Pereira
Twofish Leonardo H. Furlan.
Canal Sub-liminar. Algoritmo de assinatura digital modificado para que duas pessoas troquem segredos através do uso aparentemente normal deste algoritmo.
Criptoanálise Integral Criptoanálise diferencial: diferença (subtração) entre duas cifragens Criptoanálise integral: efeito cumulativo (soma) entre várias.
Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se.
MARS The IBM Candidate Cipher for AES
Criptografia Criptografia & Segurança.
Serpent-1 O Serpent-0 refinado Paulo Estima Mello
Abertura: o pequeno traço vertical interrompendo uma das extremidades indica o limite da abertura abertura: indica o local onde deverá ser feita uma abertura.
Publicidade e Propaganda – Conceitos e Categoria
Introdução à VPN (Virtual Private Network)
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Geração de Código Otimizações independentes de máquina.
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Conceitos iniciais Hardware/Software
1 Oi BlackBerry. 2 Índice 1Configurando o seu aparelho BlackBerry 2Formatando o seu aparelho BlackBerry 3Solicitando senha de ativação empresarial 4Indicador.
Capítulo 8 Segurança em rede
1 Rejane Ramos Uma Estrutura para Protocolos Maleáveis de Roteamentos na Internet CURITIBA 2004 Trabalho apresentada à Disciplina de Comunicação de Dados.
Planejando seu site Objetivos Abordagem Sílvia Dota.
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
Prof: Encoder Angular Prof:
Técnicas de Amostragem
A Árvore dos meus COLEGAS e por que não, AMIGOS..
Probabilidade e Esperança Condicional
FRASE TODO ENUNCIADO LINGUÍSTICO DE SENTIDO COMPLETO ATARVÉS DO QUAL TRANSMITIMOS NOSSAS IDEIAS.
I – Comunicação – Redes – Segurança Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP-018 – O Produto Internet e suas Aplicações.
Curso Técnico em Informática La Salle - Canoas
BlastPhen Aluno: Ricardo Nishikido Pereira
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012.
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
Introdução à Codificação de Canal Evelio M. G. Fernández
Interpolação Introdução Conceito de Interpolação
Resolução de Sistemas Não-Lineares- Parte 1
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
7. INTEGRAÇÃO NUMÉRICA Parte 1
Mensagens curtas sobre prevenção da dengue
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Teorias da Comunicação Breve roteiro introdutório ao campo de estudo Aciepe Análise Crítica de Mídia.
PRODUTOS E FATORES: UMA QUESTÃO NOTÁVEL Professor: Graciano Pianezzer Beletti.
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Internet Aula 03. Histórico Durante a guerra fria, os EUA tiveram a necessidade de interligar laboratórios que trabalhavam para os militares; Essa interligação.
Baseado no documento do Prof. Ronaldo Martins da Costa
Conceitos Básicos de Redes de Computadores e acesso a Internet
Comunicação CLP através do Driver OPC
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
8. Uma Função de duas Variáveis Aleatórias
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
Protocolos Criptográficos. Comunicação Alice Bob Características desejadas –Privacidade: Alice e Bob usam uma chave simétrica secreta comum (“chave de.
Transcrição da apresentação:

Protocolos Criptográficos

Comunicação Alice Bob Características desejadas M Privacidade: Alice e Bob usam uma chave simétrica secreta comum (“chave de sessão”) chaves assimétricas são muito lentas Autenticidade: Alice e Bob assinam as mensagens com suas chaves assimétricas secretas Integridade: Alice e Bob utilizam funções de hash (com chave) Função de hash sem chave pode ser manipulada, se transmitida junto com a mensagem

Criptografia simétrica Chave única Ke = Kd Extremamente rápida Ke Kd A C Método de cifragem E Método de decifragem D M M E(M,Ke) = C D(C,Kd) = M

Criptografia Assimétrica Alice Bob Pub Priv Pub A Pub +dOJJVEqkmDJZ1S+X8UzGNN+uLDy6aheTS2tiOF7VW5IT+/8 Ace4tG2shAHLnXCwpdPggMAhj8qsB90R3uLkuhvYumU/xn5zuFHnMAJ76R6J6dnx Esta mensagem é secreta, pois contém dados da mais alta importância para a nossa empresa. DECIFRAGEM +dOJJVEqkmDJZ1S+X8UzGNN+uLDy6aheTS2tiOF7VW5IT+/8 Ace4tG2shAHLnXCwpdPggMAhj8qsB90R3uLkuhvYumU/xn5zuFHnMAJ76R6J6dnx CIFRAGEM +dOJJVEqkmDJZ1S+X8UzGNN+uLDy6aheTS2tiOF7VW5IT+/8 Ace4tG2shAHLnXCwpdPggMAhj8qsB90R3uLkuhvYumU/xn5zuFHnMAJ76R6J6dnx Esta mensagem é secreta, pois contém dados da mais alta importância para a nossa empresa. TRANSMISSÃO

Funções Unidirecionais (Hash) Resumo matemático de tamanho fixo 128, 160, 256,... Bits M pode ter qualquer tamanho Detecta alterações intencionais Resistência a colisões H(M,K) = h K Função de Hash H M 538294DF1EC334CCF2A8 H(M) = h

Assinatura Digital Alice Bob Pub Pub Priv Pub Pub Priv DECIFRAGEM + h25c924fed23 Esta mensagem é secreta, pois contém dados da mais alta importância para a nossa empresa. 4932uvf9vbd8bbfgbfg hAHLnXCwpdPggMAhj8qsB9+dOJJVEqkmDJZ1S+X8UzGNN+uLDy6aheTS2tiOF7VW5IT+/8n5zuFHAce4tG2shAHLnXCwpdPggMAhj8qsB90R3uLkuhvYumU/xn5zuFHnMAJ76R6J6dnxB9+dOwpdPgg8UzGG2shAHjsGshdsS 4932uvf9vbd8bbfgbfg hAHLnXCwpdPggMAhj8qsB9+dOJJVEqkmDJZ1S+X8UzGNN+uLDy6aheTS2tiOF7VW5IT+/8n5zuFHAce4tG2shAHLnXCwpdPggMAhj8qsB90R3uLkuhvYumU/xn5zuFHnMAJ76R6J6dnxB9+dOwpdPgg8UzGG2shAHjsGshdsS Esta mensagem é secreta, pois contém dados da mais alta importância para a nossa empresa. h25c924fed23 DECIFRAGEM + verificação da ASSINATURA CIFRAGEM + ASSINATURA

Protocolos Criptográficos Segurança não depende só do algoritmo de criptografia Exemplo: HTTPS (SSL) CA CA Site Site.com Site Cliente

Chave de sessão Alice Bob Como gerar? M Transmissão em claro Eve pode estar escutando Alice gera a chave Como enviar para Bob? Como saber se Alice gera boas chaves? Eve

Chave de sessão Alice Bob M Alice Bob Alice conhece a chave pública de Bob (e vice-versa) Alice gera uma chave: Ka Alice envia para Bob cifrando com a chave pública de Bob E(Ka,KPubB) Bob decifra com sua chave secreta Ka = D(E(Ka, KPubB),KSecB) Bob repete os passos, enviando para Alice sua chave Kb Kb = D(E(Kb, KPubA),KSecA) Alice e Bob fazem uma operação comum sobre as chaves Chave de sessão: K = Ka xor Kb KPubB Eve KPubA

Prova de identidade Alice Bob Como Alice pode se autenticar com Bob? M Alice e Bob nunca se encontraram antes Eve pode estar escutando, gravando a conversa e depois fazer um ataque de repetição de bloco Eve

Prova de identidade Alice Bob M Alice Bob Alice conhece a chave pública de Bob (e vice-versa) Bob gera um desafio Rb e envia para Alive Alice assina o desafio, cifrando com sua chave secreta E(Rb,KsecA) Bob decifra com a chave pública de Alice Rb = D(E(Rb, KsecA),KPubA) Alice repete os passos, enviando para Bob seu desafio Ra Ra = D(E(Ra, KsecB),KPubB) Alice e Bob nunca devem reutilizar o desafio! Senão Eve pode fazer o ataque de repetição de bloco KPubB Eve KPubA

Ataque do homem-no-meio Alice Bob Alice Mallory Bob Se Alice e Bob conhecem a chave pública um do outro, Mallory não tem chances! Mallory não pode obter a chave de sessão, mesmo observando todo tráfego, pois não pode decifrar as mensagens (chaves secretas de Alice e Bob são necessárias) Mallory não pode responder a um desafio da Alice, personificando Bob, porque não conhece a chave secreta de Bob (e vice-versa M N

Ataque do homem-no-meio Alice Bob Alice Mallory Bob Mas e se Alice e Bob não possuem a chave pública do outro? Soluções: Enviar “metade” da mensagem de cada vez Enviar Hash da mensagem antes Enviar Mensagem cifrada antes e Chave depois Usar um “Terceiro Confiável” (Trent) M N

Autenticação (1) Alice envia ao computador sua senha (S) (2) O computador calcula um hash desta senha: H(S) (3) O computador calcula este hash com o valor previamente armazenado Problema: Senha S enviada em claro Sujeito ao ataque ativo (Mallory) ou passivo (Eve) Vantagem: Senha não é armazenada no computador Somente H(S) é armazenado

Chave de sessão Protocolo de três passos Utiliza uma função Ou-exclusivo (1) Alice escolhe uma chave K, cifra com uma chave randômica A (C1 = K exor A), e envia para Bob (2) Bob cifra a mensagem recebida com uma chave randômica B (C2 = C1 exor B), e envia para Alice (3) Alice cifra novamente com a chave A (C3 = C2 exor A = K exor A exor B exor A = K exor B) e envia o resultado para Bob (4) Bob cifra novamente com sua chave B e obtém C3 exor B = K exor B exor B = K

Chave de sessão Problema: Atacante que intercepta as três mensagens recupera a chave: C1 exor C2 exor C3 = (K exor A) exor (K exor A exor B) exor (K exor B) = K exor K exor K exor A exor A exor B exor B = K exor K exor K = K

Chave de sessão Troca de chave via Diffie-Hellman É o protocolo mais antigo (1977), e permite que Alice e Bob gerem uma chave secreta K sem a necessidade de intermediários (1) Alice e Bob escolhem um número primo n e um número g. Estes números não necessitam ser secretos, e podem ser trocados através de um canal inseguro (2) Alice escolhe um número x qualquer e envia para Bob o número X = f(x,n,g) (3) Bob escolhe um número y qualquer e envia para Alice o número Y = f(y,n,g) (4) Alice calcula Ka = g(x,Y,n,g) (5) Bob calcula Kb = g(y,X,n,g) Funciona se g(x,Y,n,g) = g(y,X,n,g), pois então Ka = Kb = K

Chave de sessão Diffie-Hellman aditivo (1) Alice e Bob escolhem um número primo n e um número g. Estes números são trocados através de um canal inseguro (2) Alice escolhe um número x qualquer e envia para Bob o número X = x + g mod n (3) Bob escolhe um número y qualquer e envia para Alice o número Y = y + g mod n (4) Alice calcula K = x + Y mod n = x + y +g mod n (5) Bob calcula K = y + X mod n = y + x + g mod n Mas Eve conhece n, g, X e Y: Eve calcula o inverso aditivo de g: (n - g) Eve calcula X + Y + (n - g) mod n = x + g + y + g + n - g mod n Eve obtém x + y + g + n mod n = x + y + g mod n

Chave de sessão Diffie-Hellman multiplicativo (1) Alice e Bob escolhem um número primo n e um número g. Estes números são trocados através de um canal inseguro (2) Alice escolhe um número x qualquer e envia para Bob o número X = x * g mod n (3) Bob escolhe um número y qualquer e envia para Alice o número Y = y * g mod n (4) Alice calcula K = x * Y mod n = x * y * g mod n (5) Bob calcula K = y * X mod n = y * x * g mod n Mas Eve conhece n, g, X e Y: Eve calcula o inverso multiplicativo de g: g-1 mod n Eve calcula X * Y * g-1 mod n = x * g * y * g * g-1 mod n Eve obtém x * y * g * 1 mod n = x * y * g mod n

Chave de sessão Diffie-Hellman exponencial (1) Alice e Bob escolhem um número primo n e um número g. Estes números são trocados através de um canal inseguro (2) Alice escolhe um número x qualquer e envia para Bob o número X = gx mod n (3) Bob escolhe um número y qualquer e envia para Alice o número Y = gy mod n (4) Alice calcula K = Yx mod n = (gy mod n)x mod n = gxy mod n (5) Bob calcula K = Xy mod n = (gx mod n)y mod n = gxy mod n Mas Eve conhece n, g, X e Y: Eve deve resolver x = logg X mod n ou Eve deve resolver y = logg Y mod n (Eve vai demorar um pouco :-)

Chave de sessão Diffie-Hellman modificado Cada usuário possui uma chave secreta S e uma chave pública (n,g,T), onde T = gS mod n (1) Alice calcula K1=(gB)SA mod nB e K2=(TB)SA mod nB (2) Alice escolhe uma chave de sessão K, e cifra esta chave com o valor K2: X = E(K,K2) (3) Alice envia K1 e X para Bob (4) Bob calcula (K1)SB mod nB= ((gB)SA mod nB)SB mod nB = (gBSA)SB mod nB) = TBSA mod nB = K2 (5) Bob decifra X usando K2 e obtém K

Chave de sessão Wide-Mouth Frog O protocolo é simples (1) Alice cifra o nome de Bob, uma chave randômica de sessão e um carimbo de tempo, e envia para Trent junto com seu nome: A,EA(B,K,Ta) (2) Trent decifra a mensagem, e cifra uma mensagem para Bob com o nome de Alice, a chave K e outro carimbo de tempo: EB(A,K,Tb) O protocolo é simples Assume que Alice é capaz de gerar boas chaves

Chave de sessão Kerberos (1) Alice para Trent o seu nome e o de Bob: A,B (2) Trent gera uma chave de sessão, um tempo de validade, um carimbo de tempo e prepara duas mensagens, que ele envia para Alice: EA(K,L,T,B),EB(K,L,T,A) (3) Alice decifra sua mensagem, obtém K e envia para Bob: EB(K,L,T,A), EK(A,T) (4) Bob decifra sua mensagem, obtém K, decifra a mensagem de Alice e envia para ela: EK(T+1) Kerberos assume que os relógios de Trent, Alice e Bob estão sincronizados

One-Time Password (1) Alice, através de um canal seguro, envia ao computador uma senha S (2) O computador calcula h[1]=H(S), h[2]=H(h[1]), h[3]=H(h[2]), ...., h[n]=H(h[n-1]), h[n+1]=H(h[n]) e armazena somente h[n+1] (3) Da primeira vez que se autenticar, Alice envia h[n]. O computador calcula h[n+1]=H(h[n]). Ele então descarta h[n+1] e substitui por h[n]. De uma maneira genérica, Alice envia h[i]; o computador calcula H(h[i]) e compara com h[i+1]; o computador armazena h[i] no lugar de h[i+1] (4)Quando Alice utilizar toda a seqüência, ela deve reinicializar o protocolo

Divisão de segredo Dividir um segredo S entre várias pessoas Todas as pessoas devem se reunir para recompor o segredo Uso do ou-exclusivo (xor) Para dividir um segredo S entre duas pessoas escolhe-se um randômico R e calcula-se: S xor R = Rr Alice recebe R e Bob recebe Rr. Eles devem se reunir para restaurar M: R xor Rr = S Para dividir entre n pessoas, escolhe-se n-1 randômicos e faz-se o ou-exclusivo de todos eles com a mensagem M. Distribui-se o resultado e os n-1 randômicos entre as n pessoas: R1 xor R2 xor …. xor Rn-1 xor S = Rr

Compartilhamento de segredo Compartilhar um segredo entre n pessoas, de tal forma que no mínimo m destas pessoas (m<n) devam se reunir para restaurar o segredo Um método para implementar este compartilhamento utiliza polinômios Escolhe-se um número primo p e um polinômio de grau m-1 Por exemplo, para compartilhar M de tal forma que três pessoas possam restaurá-lo, escolhe-se um polinômio do segundo grau: a.x2 + b.x + M mod p

Compartilhamento de segredo Por exemplo, para compartilhar M de tal forma que três pessoas possam restaurá-lo, escolhe-se um polinômio do segundo grau: a.x2 + b.x + M mod p Os coeficientes a e b podem ser quaisquer; p deve ser primo e maior que qualquer um dos coeficientes. A seguir calculam-se os valores desta equação para diversos pontos: ki = F(xi) = a.i2 + b.i + M mod p Cada pessoa recebe um deste valores. Como existem três incógnitas (a, b e M), são necessários no mínimo três pontos para resolver a equação Observe-se que a e b devem ser mantidos em segredo

Compartilhamento de segredo Por exemplo, seja M=11. Escolhe-se aleatoriamente a=7 e b=8, assim como p=13. Então a equação fica: F(x) = 7.x2 + 8.x + 11 mod 13 Se o segredo deve ser compartilhado entre cinco pessoas, basta calcular cinco pontos: F(1) = 7 + 8 + 11 mod 13 = 0 F(2) = 28 + 16 + 11 mod 13 = 3 F(3) = 63 + 24 + 11 mod 13 = 7 F(4) = 112 + 32 + 11 mod 13 = 12 F(5) = 175 + 40 + 11 mod 13 = 5