Auditoria e Segurança da Informação GSI536 Prof. Rodrigo Sanches Miani FACOM/UFU
Revisão Criptografia de chave simétrica; Criptografia de chave pública; Modelo híbrido de criptografia.
Criptografia Definições básicas
Criptografia - Classificação Criptografia de chave privada ou simétrica; Criptografia de chave pública ou assimétrica; Modelo híbrido.
Criptografia de chave privada/ simétrica
Criptografia de chave privada/ simétrica Utiliza uma chave secreta para a codificação e decodificação; Algoritmos de chave simétrica são extremamente rápidos em sua execução; São utilizados para prover SOMENTE o sigilo das informações.
Criptografia de chave privada/ simétrica- Problemas Necessidade de distribuição de chaves secretas a serem utilizadas pelos usuários; Como enviar a chave para o outro usuário? Complexidade do gerenciamento das chaves.
Criptografia de chave privada/ simétrica- Problemas
Criptografia de chave pública ou assimétrica Revolução na criptografia; Baseada em funções matemáticas; Métodos anteriores funcionavam somente utilizando permutações e substituições de bits; Chaves diferentes para cifrar e decifrar.
Criptografia de chave pública ou assimétrica Dois pares de chaves diferentes, uma privada e uma pública para cada entidade envolvida;
Criptografia Modelo híbrido Criptografia simétrica: Vantagem: boa performance computacional; Desvantagem: troca de chaves; Criptografia assimétrica: Vantagem: permite a troca segura de chaves; Desvantagem: desempenho computacional ruim; Porque não unir os dois modelos?
Criptografia Modelo híbrido Vamos supor que Alice quer trocas mensagens cifradas com Bob, utilizando o modelo híbrido de criptografia; Descrição dos passos: 1) Alice gera uma chave K, que será utilizada para cifrar todo o tráfego de mensagens entre eles, por meio de criptografia simétrica; 2) Alice obtêm a chave pública do destinatário, no caso Bob (Pub_Bob); 3) Utilizando a chave pública de Bob, Alice envia a chave K, criptografia assimétrica; 4) Do outro lado, Bob recebe a mensagem cifrada e utiliza a sua chave privada para decifrar a mensagem enviada por Alice. A mensagem contém a chave de suas trocas de mensagens, K ; 5) Alice utiliza um algoritmo simétrico, com a chave K, e inicia a troca de mensagens com Bob.
Autenticação
Recordando Já vimos como uma mensagem pode ser trocada com sigilo; Vimos também como distribuir chaves criptográficas; Próxima aplicação de criptografia: como autenticar as mensagens?? Ou seja, como garantir que a identidade afirmada pelo emissor é válida?
Autenticação de mensagens Iremos estudar dois métodos de autenticação de mensagens: Código de autenticação de mensagens (MAC Message Authentication Code): CheckSum criptográfico; Funções de Hash: Uma função que relaciona uma mensagem de qualquer tamanho a um valor de hash de tamanho fixo;
MAC - Message Authentication Code Envolve o uso de uma chave secreta para gerar um pequeno bloco de dados de tamanho fixo, conhecido como MAC, que é anexado à mensagem; Devemos assumir que os envolvidos compartilham a chave secreta; Na figura abaixo, o sigilo da mensagem não pode ser garantido!
MAC - Message Authentication Code Uma cifragem intermediária pode ser feita para garantir o sigilo da messagem; Exemplos de algoritmos: UMAC, VMAC.
Funções de Hash Funções similares a MAC; Uma função de hash aceita uma mensagem de comprimento variável como entrada e produz uma saída de comprimento fixo, conhecida como código de hash. Hash MAC; MAC necessita de duas entradas (chave e mensagem), hash necessita de somente uma entrada; Mudança de 1 bit na mensagem resulta em um valor de Hash totalmente diferente; Funções de Hash possuem inúmeras aplicações. Exemplos de funções amplamente utilizadas: MD-5, SHA-1, SHA-2.
Funções de Hash - Utilização Autenticação;
Funções de Hash - Utilização Sigilo e autenticação;
Funções de Hash
Funções de Hash
Assinatura Digital
Assinatura digital Motivações Suponha que Bob envie uma mensagem autenticada a Alice; Possíveis problemas: Alice pode forjar uma mensagem diferente e alegar que veio de Bob; Bob pode negar o envio da mensagem. Se Alice pode forjar a mensagem, não há como provar que Bob realmente a enviou. Em situações nas quais não existe confiança mútua entre emissor e destinatário, é necessário algo a mais que autenticação não repúdio;
Assinatura digital Funcionamento básico Principal solução adotada envolve: Uso de funções de hash; Uso de criptografia assimétrica. Passos: 1) O emissor aplica a função de hash na mensagem M, o resultado será H(M); 2) O emissor cifra o resultado do passo 1) usando a própria chave privada, o resultado será Kpr(H(M)); 3) O emissor envia a mensagem M, concatenada com Kpr(H(M)); 4) O receptor recebe a mensagem e calcula o hash da mensagem M, resultando H(M); 5) O receptor decifra Kpr(H(M)) com a chave pública do emissor e compara o hash do passo 4); 6) Se forem iguais, a mensagem está corretamente assinada pelo emissor.
Assinatura digital Funcionamento básico Kpr = Chave privada e Kp = Chave pública;
Secure Socket Layer(SSL) / Transport Layer Security(TLS)
SSL/TLS Breve histórico SSL 1.0 (1994-1995?) ; SSL 2.0 (1995); SSL 3.0 (1996); TLS 1.0 Upgrade da versão anterior (1999); TLS 1.1 (2006); TLS 1.2 (2008) Usa SHA-256, AES e RSA;
SSL/TLS - Definições Desenvolvido originalmente pela Netscape (1995); São protocolos criptográficos que fornecem comunicações segura na Internet; É composto basicamente de uma camada que adiciona criptografia à pilha TCP/IP;
SSL/TLS - Definições Protocolo cliente-servidor; Exemplos: HTTPS e SMTP;
SSL/TLS - Definições Passos: 1) O cliente inicia a conexão; 2) O servidor responde e envia seu certificado (chave pública), assinado por uma autoridade certificadora (AC); 3) O cliente cria uma chave simétrica que será utilizada ao longo da sessão; 4) O cliente envia a chave simétrica ao servidor cifrada com a chave pública do mesmo; 5) O servidor decifra a senha com a sua chave privada e inicia o tráfego cifrado utilizando criptografia simétrica e a chave trocada nos passos anteriores.
SSL/TLS Autoridades certificadoras Autoridades certificadoras = espécie de cartórios virtuais; Após analisar a documentação da empresa, passam a assinar a chave pública do estabelecimento, certificando que a chave pública da empresa é legítima; Como transferir essa segurança para a Internet?
SSL/TLS Autoridades certificadoras Solução: Incorporar aos navegadores as chaves públicas (certificados) das autoridades certificadoras mais conhecidas; Assim, como o certificado (chave pública) que foi enviado pelo servidor HTTPS já é assinado pela chave privada da AC, o navegador pode conferir a autenticidade da chave enviada de forma automática.
Leitura recomendada William Stallings Criptografia e segurança de redes Princípios e Práticas, 4ª Edição, Pearson, 2010; Capítulo 11 11.1, 11.2, 11.3, 11.4 Capítulo 13 13.1 Emilio Tissato Nakamura, Paulo Lício de Geus Segurança de Redes em Ambientes Cooperativos, Editora Novatec; Capítulo 9 Criptografia e a PKI Capítulo 9.5 Capítulo 9.6 Capítulo 11 Autenticação Capítulo 11.1