Introdução à Segurança e Primitivas Criptográficas

Documentos relacionados
Mecanismos Criptográficos Esquemas

PLANO DE DISCIPLINA DISCIPLINA: Segurança da Informação

Técnicas de criptografia. Funções Hash Criptografia com chave secreta Criptografia com chave pública Assinatura digital Protocolos

Aula 5 - Integridade e Criptografia autenticada. 10 de Maio de 2016

Códigos de Autenticação de Mensagens. Instituto de Computação - UNICAMP

Prof. M.Sc. Charles Christian Miers

UTILIZAÇÃO DE HASH CRIPTOGRAFADA PARA TRANSPORTE DE MENSAGENS (MAC), NO USO DO HMAC

Criptografia. Aula 4: Autenticação de mensagens e canais seguros. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Criptografia. Criptografia de Chave Pública. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Criptografia Simétrica e Assimétrica, Hash, e Assinatura Digital

Criptografia Assimétrica e Funções de Síntese

Segurança Informática em Redes e Sistemas

Segurança conceitos básicos. Sistemas Distribuídos

SEGURANÇA CRIPTOGRAFIA E SEGURANÇA DE DADOS. As funções de cifra são consideradas totalmente seguras se:

Engloba os criptossistemas clássicos. Outros nomes: (Criptografia...)

Auxilio a Resolução da Lista de Exercícios

Virtual Private Network (VPN)

Autenticação por par de. chaves assimétricas. Bruno Follmann

Segurança de Sistemas de Informação

Tópicos de Ambiente Web Segurança

Criptografia e Segurança de Redes Capítulo 5. Quarta Edição por William Stallings

Algoritmos probabilísticos

Criptografia Aplicada LESI / LMCC Exame de Recurso Fevereiro de 2008

Criptograa e Segurança

AULA 5: Criptografia e Esteganografia

Esteganografia em Vídeos Digitais Comprimidos Tópicos em Hipermídia

PTC Aula Autenticação do ponto final 5.5 Exemplo de aplicação: tornando o seguro. (Kurose, p ) (Peterson, p.

Integridade. Segurança Engenharia de Software Ricardo Couto A. da Rocha

PTC Aula 19. (Kurose, p ) (Peterson, p ) 09/06/ O que é segurança de rede? 5.2 Princípios de criptografia

(2010/11/17) P. Quaresma. Criptografia. Cifras Fieiras. Cifras por Blocos. Cifras de Chaves. Cifras de Chaves. MDCs. MACs 185 / 248 (2010/11/17)

Desenvolvimento de Aplicações Distribuídas

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia

Segurança da Informação Aula 6 Principais Algoritmos Simétricos. Criptografia Assimétrica.

Capítulo 8. Segurança de redes

Aula 5 - Integridade e Criptografia autenticada. 9 de Maio de 2016

Segurança em Redes de Computadores

Segurança Sistemas Distribuídos. junho de 2017

Segurança da Informação Aula 5 Criptografia. Objetivos e Tipos. Cifras de Bloco e Fluxo

Redes de Computadores Aula 23

Criptografia e Segurança em Rede Capítulo 3. William Stallings

(2012/09/17 (v23)) P. Quaresma. Criptografia. Cifras Fieiras. Cifras por Blocos. Cifras de Chaves. Cifras de Chaves. MDCs.

Segurança de Redes de Computadores. Ricardo José Cabeça de Souza

Já sabemos como determinar todas as soluções de uma equação diofantina linear, caso esta seja resolúvel. Para conguências temos:

Sumário: Paradigmas de Segurança

Segurança e Auditoria de Sistemas. Confiança Mútua Assinatura Digital Certificado Digital

Campos de estudo Algoritmos Aplicações e praticas de privacidade

Configurar um perfil da segurança de protocolo do Internet (IPSec) em um roteador do RV34x Series

Informática. Segurança da Informação

Criptografia. Criptografia de Chave Pública. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Cripto Academia Como funciona a criptografia?

Capítulo 3 - Cifras de Blocos e Data Encryption Standard Por toda a tarde, Mungo tinha trabalhado no código de Stern, principalmente com a ajuda das ú

TSeg. Ivan Sendin. Aula 10. Ivan Sendin. FACOM - Universidade Federal de Uberlândia 27 de setembro de 2017

4 ÍNDICE Exemplo de redundância e distância de unicidade... 41

Complexidade de Algoritmos

Redes de Computadores

Criptografia Pós-Quântica Corretores de Erros

Configurando perfis IPSec (auto modo fechando) no RV160 e no RV260

WEP, WPA e EAP. Rodrigo R. Paim

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC

Faculdade de Engenharia da Computação

OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC

INE5680 SEGURANÇA DA INFORMAÇÃO E DE REDES Prova 1 04/10/2013 Turmas A e B Prova A NOME : MATRÍCULA :

Desvendando os mistérios do criptossistema RSA. Grasiele Cristiane Jorge. Pós-Doc - IMECC - UNICAMP

Sistemas e Plataformas Seguras

Software de Telecomunicações. Cifras simétricas por blocos

Referências. Criptografia e Segurança de Dados. Criptoanálise. Outras Referências. Criptoanálise - Custos. Criptoanálise

TÓPICOS ESPECIAIS EM SEGURANÇA DA INFORMAÇÃO

Implementação de Protocolos Criptográficos. Manuel DI Universidade do Minho Setembro de

Segurança em Redes de Computadores

Aula 16. Ivan Sendin. 17 de outubro de FACOM - Universidade Federal de Uberlândia Seg. Ivan Sendin. News!

Instituto Superior de Tecnologia em Ciências da Computação de Petrópolis VPN Virtual Private Network

Segurança em Redes de Computadores

Ficha da Unidade Curricular (UC)

Codificação de Informação 2010/2011

Controlo de Acesso. Mecanismos de Controlo de Acesso. Conjunto de recursos que estão sujeitos ao mecanismo de controlo de acesso

quem utiliza esse processo para envio de s, por exemplo, está bem protegido de fraudes.

Criptografia em redes de computadores. Gabriel Stefen e Thiago Stefen

Segurança da Informação Aula 7 Assinaturas Digitais e HASH.

3DES e AES - Noções Fortes de Segurança - InfoSec. 20 de Abril de 2016

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Criptografia, VPN, IPsec Protocolos de Roteamento

Transcrição:

Introdução à Segurança e Primitivas Criptográficas November 17, 2009 Sumário Introdução Criptografia Primitivas Criptográficas Encriptação com Chave Partilhada Encriptação com Chave Pública Funções de Hashing Criptográficas Assinaturas Digitais Conclusão

Segurança: Definição Segurança em Sistemas Computacionais: deals with the prevention and detection of unauthorised actions by users of a computer system, Dieter Gollmann in Computer Security, John Wiley & Sons, 1999 Autorização requer autenticação e controlo de acesso. Prevenir acções não autorizadas nem sempre é possível/economicamente viável, nesse caso teremos que nos contentar com a detecção dessas acções. Essencial para garantir a segurança dum sistema é definir a política de segurança, i.e. quais são as acções autorizadas e quais são as acções não autorizadas. Segurança: Mais Definições Por vezes define-se segurança em termos de garantir: Integridade: impedir modificação não autorizada de informação; Confidencialidade: impedir o acesso não autorizado a informação; Disponibilidade: impedir que o acesso autorizado a informação seja negado. Esta definição é mais restrita e aplica-se apenas a informação, embora possa ser generalizada. Em última análise, para que servem os computadores senão para aceder a informação (possivelmente processada)? Tal como na definição anterior, é notório que para garantir segurança é essencial definir o que é e o que não é autorizado.

Segurança: Processo Não há sistemas 100% seguros. Mesmo que tecnicamente seja possível, tal poderá não se justificar em termos económicos. Implementar segurança requer uma análise de risco, formal ou não. É essencial determinar as ameaças à segurança a que um sistema computacional pode estar sujeito. Desta análise resulta a especificação da política de segurança. Para implementar a política de segurança, recorre-se a mecanismos de segurança. Para verificar a conformidade da implementação com a política de segurança recorre-se à auditoria e à monitorização da operação através de logs. Segurança: Ameaças Internas vs. externas; Passivas vs. activas; Ou ainda, quanto ao tipo de acção: Intercepção p.ex. ouvir a comunicação entre 2 entidades; Interrupção p.ex. impedir o acesso a um serviço Web, através dum ataque de denial of service; Modificação p.ex. alterar o conteúdo duma mensagem ou dum registo duma BD; Fabricação p.ex. acrescentar uma password a uma conta. Contrariar as ameaças de forma a satisfazer as políticas (requisitos) de segurança requer o recurso a mecanismos de segurança.

Segurança: Concepção A segurança não deve ser acrescentada no fim do projecto como mais uma camada: Nessa altura, decisões previament tomadas podem restringir seriamente as opções. Alguns aspectos de projecto a considerar são: Camada em que camada dum sistema computacional (p.ex. sistema de comunicações, SO, aplicação) se deve implementar os mecanismos de segurança? Complexidade vs. Simplicidade o sistema deverá ter muita funcionalidade ou é importante garantir um grau de confiança elevado? Centralização vs. Descentralização De que componentes depende a segurança do sistema? Por outras palavras, qual a sua Trusted Computing Base (TCB)? Criptografia É um dos mecanismos de segurança mais usados em sistemas distribuídos: Permite proteger a comunicação entre entidades contra diferentes ameaças:

Primitivas Criptográficas 1. Algoritmos para Encriptação/Descodificação 2. Funções para Verificação de Integridade (funções de hashing criptográficas) 3. Algoritmos para Assinatura Digital Princípio Fundamental Os algoritmos devem ser públicos. A segurança é obtida parametrizando os algoritmos com chaves. Tipos de Sistema Criptográfico Dois: Simétricos (ou de chave partilhada) usam uma única chave que é partilhada (K); Assimétricos (ou de chave pública) usam duas chaves uma das quais é pública (K + ) e a outra privada (K ). Algoritmos para Cifrar/Decifrar K e K d P E C D P Simétricos, ou de chave partilhada: neste caso, as chaves para cifrar e decifrar são iguais: K e = K d = K A chave deverá ser partilhada por todas as entidades autorizadas a aceder à informação. A chave deverá ser do conhecimento apenas dessas entidades. Assimétricos, ou de chave pública: neste caso, as chaves para cifrar e para decifrar são diferentes: K e K d Uma das chaves é pública e a outra privada. Qual é o quê?

Encriptação com Chave Partilhada: DES (1/3) Data Encryption Standard (DES) é uma norma dos EE.UU. para encriptação considerada vulnerável desde os meados dos anos 90: Foi derrotada pela lei de Moore, como os seus conceptores previram. O algoritmo em si é relativamente simples e baseia-se na aplicação repetida de 2 operações básicas: Permutação de bits dum bloco; Substituição de subblocos de 6 bits, por outros sub-blocos de 4 bits. P-box S-box Product cipher Decoder: 3 to 8 Encoder: 8 to 3 S 1 S 5 S 9 S 2 P 1 P 2 P 3 P 4 S 3 S 6 S 10 S 7 S 11 S 4 S 8 S 12 (a) (b) (c) Encriptação com Chave Partilhada: DES (2/3) O algoritmo básico opera sobre blocos de 64 bits, que são transformados em blocos com o mesmo comprimento. O processo de encriptação dum bloco exige 16 passos (rounds). Em cada passo usa-se uma chave diferente de 48 bits, gerada a partir da chave principal (master) de 56 bits. 64-bit input Initial permutation K 1 Round 1 L i-1 R i-1 56-bit key Generate 16 keys K16 Round 16 L i-1 f(r i-1,k i ) Final permutation 64-bit output L i R i (a) (b)

Encriptação com Chave Partilhada: DES (3/3) A permutação final é a inversa da permutação inicial. O verdadeiro trabalho é feito pela função não linear (mangler function) (f) 1. Expande R i 1 para um bloco de 48 bits; 2. Faz o XOR do resultado com a chave do passo, K i ; 3. Parte o resultado em 8 subblocos de 6 bits cada; 4. Cada subbloco é processado por uma função de substituição diferente que o converte num subbloco de 4 bits. 5. O conjunto de 8 subblocos de 4 bits é combinado num único de 32-bis, que é permutado. Esta mesma função pode ser usada para decifrar uma mensagem encriptada. DES foi substituída como norma por AES. Encriptação com Chave Pública: RSA (1/3) RSA baseia-se na seguinte propriedade de aritmética módulo n: Sejam p e q dois números primos Sejam n = p.q e z = (p 1)(q 1) Sejam d e e dois números tais que: d.e = 1 mod z Então, para qualquer x (0 x < n): x d.e = x mod n

Encriptação com Chave Pública: RSA (2/3) O algoritmo para cifrar vem: 1. Dividir a mensagem a enviar em blocos de comprimento fixo pré-estabelecido, tal que cada bloco m i, interpretado como um número binário, seja menor do que n. 2. Calcular para cada bloco: c i = mi e mod n O algoritmo para decifrar a mensagem, vem: 1. Decompor a mensagem recebida em blocos de comprimento fixo, 2. Calcular: m i = ci d mod n Assim, para garantir confidencialidade com RSA: A chave para decifrar, K d = (d, n), deve ser secreta; A chave para encriptar, Ke = (e, n), deve ser pública. Encriptação com Chave Pública: RSA (3/3) Como calcular as chaves? 1. Escolher p e q, 2 números primos muito grandes, e.g. > 10 100 ; 2. Calcular n = pq e z = (p 1)(q 1) 3. Escolher um valor d arbitrário. 4. Usar o algoritmo de Euclides para calcular e: ed = 1 mod z A segurança de RSA está relacionada com a dificuldade da determinação dos factores dum número (n) muito grande.

Funções de Hashing Criptográficas São usadas para verificar a integridade de dados. Propriedades desejáveis duma função de hashing (h): Compressão mapeia a entrada de comprimento arbitrário num valor de hashing de comprimento fixo; Facilidade de Computação Não Inversibilidade (One-way) dado um valor de hashing, y é computacionalmente inviável determinar um valor x tal que y = h(x) Fracamente Resistente a Colisões dado um valor x é computacionalmente inviável encontrar um valor x diferente, tal que h(x) = h(x ) Fortemente Resistente a Colisões é computacionalmente inviável encontrar dois valores x e x tal que x x e h(x) = h(x ) Funções de Hashing Criptográficas: MD5 O algoritmo é executado em k fases, sendo k o número de blocos de 512 bits: A entrada é pré-processada para garantir que o seu comprimento é múltiplo de 512 bits. Cada fase usa como entrada um número de 128 bits e um bloco de 512 bits, sendo a saída um número de 128 bits. 128-bit constant Padded message (multiple of 512 bits) Digest 512 bits Digest 512 bits Message digest Uma fase consiste em 4 passos (rounds) de computação;

MD5: Primeira Ronda duma Fase Cada sequência de 512 bits é decomposta em 16 blocos (b 0, b 1,..., b 15 ) de 32 bits. As operações executadas na primeira ronda são: Iterations 1-8 Iterations 9-16 p (p + F (q, r, s) + b 0 + C 1 ) 7 p (p + F (q, r, s) + b 8 + C 9 ) 7 s (s + F (p, q, r) + b 1 + C 2 ) 12 s (s + F (p, q, r) + b 9 + C 10 ) 12 r (r + F (s, p, q) + b 2 + C 3 ) 17 r (r + F (s, p, q) + b 10 + C 11 ) 17 q (q + F (r, s, p) + b 3 + C 3 ) 22 q (q + F (r, s, p) + b 11 + C 12 ) 22 p (p + F (q, r, s) + b 4 + C 5 ) 7 p (p + F (q, r, s) + b 12 + C 13 ) 7 s (s + F (p, q, r) + b 5 + C 6 ) 12 s (s + F (p, q, r) + b 13 + C 14 ) 12 r (r + F (s, p, q) + b 6 + C 7 ) 17 r (r + F (s, p, q) + b 14 + C 15 ) 17 q (q + F (r, s, p) + b 7 + C 8 ) 22 q (q + F (r, s, p) + b 15 + C 16 ) 22 p, q, r e s são variáveis de 32 bits no total 128 bits que são passadas duma fase para a seguinte. Os C i são constantes, no total 64 delas C 1 a C 64 F é F(x,y,z) = (x AND y) XOR ((NOT x) AND z); Em cada um dos outros 3 passos usam-se funções semelhantes G, H, I; Autenticação com Funções de Hashing Se a função de hashing além da mensagem/dados tomar como entrada uma chave, pode ser usada também para autenticar a fonte. O valor de hashing, e por vezes a função, é conhecido por message authentication code (MAC). Neste caso a função de hashing deve satisfazer uma propriedade adicional: Resistência Computacional para qualquer valor de k desconhecido, dados os valores (x, h k (x)) é computacionalmente inviável calcular h k (y) para um valor y diferente. Porquê? A chave deve ser partilhada por ambos os lados Um MAC não é equivalente a uma assinatura digital.

Assinaturas Digitais Uma assinatura digital deverá: 1. Identificar o seu autor; 2. Ser verificável por outros; MACs permitem identificar o autor duma mensagem face ao receptor, mas não permitem que um terceiro identifique o autor O MAC pode ser gerado por qualquer entidade que conheça a mensagem e a chave em princípio, as 2 entidades comunicantes. I.e., MACs não permitem não-repudiação. Primitivas para assinatura digital baseiam-se, tipicamente, em sistemas de encriptação assimétricos. Assinaturas Digitais com RSA Algoritmos de encriptação de chave pública, e.g. RSA, podem ser usados para gerar assinaturas digitais. Na sua forma mais básica, a assinatura é a própria mensagem cifrada (C) A obtenção de P usando a chave pública para decifrar, é prova suficiente. Na prática: 1. Calcula-se um valor de hash da mensagem a assinar; 2. Encripta-se esse valor o resultado é a assinatura. Algoritmos para assinatura digital não precisam ser invertíveis, p.ex. DSA. Signature sign(message m, Key K ) Boolean check(message m, Signature s, Key K + )

Força dos Mecanismos Criptográficos (1/2) Empiricamente seguro, usa o teste do tempo. P.ex. DES. Não tem falhas óbvias; Embora não haja provas da sua segurança, é reconhecido seguro pela comunidade criptográfica. Demonstravelmente seguro, usa a teoria da complexidade. Se quebrá-lo for tão difícil como resolver um problema conhecido como NP hard, p.ex. RSA A complexidade é medida em termos assimptóticos: quanto é suficientemente grande? Na realidade, não há prova de que a factorização não pode ser feita em tempo polinomial. Este tipo de algoritmos pode ser quebrado por um atacante com capacidade de processamento suficiente. É uma questão de tempo;... e de comprimento das chaves. Força dos Mecanismos Criptográficos (2/2) Incondicionalmente seguro usa a teoria da informação. Um algoritmo é seguro se um atacante não conseguir extrair informação sobre a informação cifrada a partir da observação da cifra. A história mostra que algoritmos criptográficos publicados são quebrados normalmente por uma gestão inadequada das chaves e não tanto por vulnerabilidades intrínsecas aos algoritmos. E estas últimas normalmente aparecem quando se consideram cenários de ataque que violam os pressupostos usados na sua concepção. Com algoritmos não publicados normalmente a história é outra. DeCSS é talvez o exemplo mais recente e mais publicitado.

A Última Palavra aos Peritos If you think cryptography will solve your problem then you don t understand cryptography... and you don t understand your problem., Bruce Schneier Cryptography is rarely ever the solution to a security problem. Cryptography is a translation mechanism, usually converting a communications security problem into a key management problem and ultimately into a computer security problem., Dieter Gollmann in Computer Security, John Wiley & Sons, 1999 Leitura Adicional Capítulo 9 de Tanenbaum e van Steen, Distributed Systems, 2nd Ed. Secção 9.1: Introduction to Security