Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 20 de junho de 2013 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 1 / 30
Conceitos de Segurança Conceitos de Segurança Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 2 / 30
Conceitos de Segurança Definições de Segurança Segurança de computação previne atacantes de atingir seus objetivos através do acesso não autorizado e uso não autorizado de computadores e redes de computadores; Um sistema seguro é aquele que fornece informações íntegras somente a usuários autenticados e autorizados, no momento em que elas são pedidas através de requisições válidas e identificadas, não permitindo que estas informações sejam recebidas, observadas ou alteradas por terceiros não autorizados. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 3 / 30
Conceitos de Segurança Conceitos Fundamentais Confidenciabilidade: Garante que as informações armazenadas em um sistema de computação ou transmitidas através de uma rede de computadores sejam acessadas ou manipuladas somente pelos usuários devidamente autorizados. Integridade: Garante que a informação processada ou transmitida chegue ao seu destino exatamente da mesma forma em que partiu da origem. Disponibilidade: Garante que o sistema de computação continue operando sem degradação de acesso e provê recursos aos usuários autorizados quando necessário. Legitimidade: Garante que os recursos não sejam utilizados por pessoas não autorizadas ou usados de forma não autorizada. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 4 / 30
Conceitos de Segurança Introdução A segurança em sistemas distribuídos pode ser dividida em 2 partes: 1 Comunicação segura entre processos, possivelmente em execução em máquinas diferentes; 2 Autorização, que visa garantir que os processos terão acesso somente a recursos de acordo com direitos de acesso previamente estabelecidos. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 5 / 30
Conceitos de Segurança Classificação de Ameaças 1 Interceptação: entidade não autorizada obtêm acesso a serviço ou dados; 2 Interrupção: situação na qual serviços ou dados tornam-se indisponíveis; 3 Modificação: alteração de dado ou serviço de forma não autorizada de forma a não atender a suas especificação original; 4 Fabricação: situação na qual dados ou atividades que normalmente não existiriam são geradas. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 6 / 30
Conceitos de Segurança Poĺıtica e Mecanismos de Segurança Poĺıtica de Segurança: define as regras que controlam o acesso autorizado aos recursos de computação e informações armazenadas; Mecanismos de Segurança: disponibiliza os meios através dos quais a poĺıtica de segurança pode ser implementada. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 7 / 30
Conceitos de Segurança Canais Seguros de Comunicação Um canal seguro proteje emissores e receptores contra interceptação, modificação e fabricação de mensagens. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 8 / 30
Conceitos de Segurança Canais Seguros de Comunicação: Autenticação e Integridade Autenticação e integridade da mensagem devem ser providas em conjunto; Considere um sistema que provê autenticação mas não integridade: Bob tem como saber se foi Alice que enviou uma mensagem m mas do que serve isso se ele não tem garantias que m foi modificada durante a transmissão? Considere que agora o sistema provê apenas integridade: do que adianta Bob ter certeza que uma mensagem que informa que ele ganhou R$ 1.000.000,00 se ele não tem como verificar se a mensagem veio da loteria? Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 9 / 30
Introdução a Criptografia Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 10 / 30
Introdução a Criptografia Encriptação e decriptação são realizadas utilizando-se métodos criptográficos parametrizados por chaves; A mensagem original é chamada de texto claro (plaintext) e é representada por P; O texto cifrado é representado por C; C = E K (P) denota que o texto cifrado C é obtido encriptando-se o texto claro P usando a chave K; P = D K (C) expressa que a decriptação do texto cifrado C usando a chave K resulta no texto claro P; Existem três diferentes ataques dos quais precisamos nos proteger: 1 Interceptação de mensagens; 2 Alteração de mensagens; 3 Inserção de mensagens. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 11 / 30
Introdução a Criptografia Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 12 / 30
Sistemas Criptográficos Simétricos A mesma chave é utilizada para criptografar e descriptografar a mensagem: P = D K (E K (P)); Denotaremos por K A,B a chave compartilhada por A e B. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 13 / 30
Requisitos de Sistemas Criptográficos 1 Para qualquer função de criptografar E, deve ser computacionalmente inviável encontrar a chave K dado um texto claro P e o texto cifrado C = E K (P); 2 Dado um texto claro P e a chave K deve também ser inviável encontrar outra chave K tal que E K (P) = E K (P). Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 14 / 30
Sistemas Criptográficos: DES DES (Data Encryption Standard); Usado em sistemas criptográficos simétricos; Projetado para operar em blocos de 64 bits de dados; Usado como sistema padrão de criptografia por anos, foi recentemente substituído pelo algoritmo Advanced Encryption Standard (AES) que opera em blocos de 128 bits; O algoritmo AES foi projetado para ser rápido o suficiente para ser implementado em cartões inteligentes (smart cards). Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 15 / 30
Autenticação Baseada em Chave Compartilhada 1 Alice envia seu identificador a Bob indicando que deseja estabelecer um canal de comunicação; 2 Bob envia o desafio R B a Alice, que pode ser um número aleatório; 3 Alice criptografa o desafio com a chave K A,B compartilhada com Bob e retorna o desafio ao mesmo; 4 Bob descriptografa a mensagem e verifica se ela contêm R B. Se este for o caso, ele sabe que Alice está do outro lado: quem poderia ter encriptado R B com K A,B a não ser Alice? 5 Agora Alice deve ter certeza que conversa com Bob. Para tanto, Alice envia o desafio R A. Ao descriptografar a mensagem retornada por Bob K A,B, ela terá certeza que Bob está do outro lado. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 16 / 30
Autenticação Baseada em Chave Compartilhada Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 17 / 30
Autenticação Usando Central de Distribuição de Chaves Um dos problemas com o protocolo de Autenticação Baseada em Chave Compartilhada é a escalabilidade: se o sistema contêm N nós, cada um deve compartilhar uma chave secreta com N 1 nós, o que requer um total de N(N 1)/2 chaves; Uma alternativa é utilizar uma Central de Distribuição de Chaves (KDC) que compartilha uma chave secreta com cada nó. Neste caso, será necessário gerenciar ao todo apenas N chaves; O Protocolo utilizado na figura é o seguinte: 1 Alice envia uma mensagem ao KDC informando que deseja conversar com Bob; 2 O KDC retorna uma mensagem contendo a chave secreta K A,B encriptada por K A,KDC ; 3 O KDC também envia uma mensagem a Bob contendo a chave secreta K A,B encriptada por K B,KDC Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 18 / 30
Autenticação Usando Central de Distribuição de Chaves Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 19 / 30
Autenticação Usando Central de Distribuição de Chaves A desvantagem desta abordagem é que Alice pode iniciar a inicialização do canal seguro mesmo antes de Bob ter recebido a chave secreta a ser compartilhada (K A,B ) do KDC; Uma alternativa é fazer com que o KDC envie K B,KDC (K A,B ) à Alice e permitir que ela se preocupe em contactar Bob, conforme ilustrado na figura a seguir; A mensagem K B,KDC (K A,B ) também é conhecida como um tíquete. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 20 / 30
Autenticação Usando KDC onde Alice inicia a conexão com Bob Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 21 / 30
Problema: Reprodução de Mensagem Considere que Chuck roubou uma chave velha de Bob K old B,KDC e que interceptou uma resposta velha K A,KDC (K A,B ),K old B,KDC (K A,B) Bob já negociou uma nova chave secreta compartilhada com o KDC; Chuck, paciente, espera até que Alice solicite novamente o estabelecimento de um canal seguro com Bob; Chuck reproduz a mensagem velha e engana Alice, que passa a acreditar que está falando com Bob porque ele pode decifrar o tíquete e provar que conhece K A,B. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 22 / 30
nonce Nonce é um número aleatório usado somente uma vez. Por exemplo, um número escolhido de um conjunto muito grande; Seu propósito é relacionar duas mensagens exclusivamente uma com a outra; Ele pode ser utilizado para proteger o protocolo do ataque de reprodução de mensagem, como ilustrado no protocolo a seguir; No exemplo, a mensagem 1 é relacionada com a mensagem 2 e Alice saberá, com certeza, que a mensagem 2 é enviada como uma resposta à mensagem 1 e que não é, por exemplo, uma reprodução de uma mensagem mais velha. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 23 / 30
Protocolo de Autenticação Needham-Schoeder Figura: A reprodução de mensagem mais velha será descoberta imediatamente, já que o nonce na mensagem de resposta não combinará com o nonce na requisição original. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 24 / 30
Protocolo de Autenticação Needham-Schoeder Na mensagem 4, retornando-se R A2 1 e não apenas R A2, Bob não somente prova que conhece a chave secreta compartilhada, mas também que decifrou o desafio propriamente dito; Isso também vincula a mensagem 4 à mensagem 3 do mesmo modo que o nonce R A vinculou a mensagem 2 à mensagem 1; Portanto, o protocolo possui esta proteção adicional contra reproduções. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 25 / 30
Proteção Contra Reutilização de Chave de Sessão Se Chuck se apossar de uma chave velha K A,B, ele poderia reproduzir a mensagem 3 e fazer com que Bob estabeleça um canal; Bob acreditará que está falando com Alice quando, na verdade, é Chuck quem está na outra extremidade; Precisamos relacionar a mensagem 3 com a mensagem 1, isto é, fazer com que a chave dependa da requisição inicial de Alice para estabelecer um canal com Bob; O truque é incorporar um nonce na requisição enviada por Alice a KDC; Contudo, o nonce tem que vir de Bob, conforme o protocolo a seguir. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 26 / 30
Proteção Contra Reutilização de Chave de Sessão Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 27 / 30
Estabelecimento de Chave Através de Canais Inseguros Uma forma elegante e muito utilizada para o estabelecimento de chaves através de canais inseguros é o protocolo Diffie-Hellman (1976); Alice e Bob desejam estabelecer uma chave secreta. O primeiro requisito é que ambos devem concordar em dois números grandes n e g que podem ser públicos; Alice escolhe aleatoriamente um número aleatório grande (x) que ela mantêm em segredo. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 28 / 30
Estabelecimento de Chave Através de Canais Inseguros Bob por sua vez também escolhe um número (y); 1 Alice envia a Bob g x mod n, juntamente com n e g. Esta informação pode ser enviada como texto limpo, já que é computacionalmente impossível computar x dado g x mod n; 2 Bob, ao receber a mensagem, calcula (g x mod n) y que equivale a g xy mod n. Ele também envia g y mod n à Alice, que pode computar (g y mod n) x = g xy mod n. Consequentemente, ambos (e somente eles) possuem agora a chave secreta g xy mod n; Perceba que não foi necessário tornar os números secretos x e y conhecidos. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 29 / 30
Estabelecimento de chave Diffie-Hellman Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 20 de junho de 2013 30 / 30