Segurança em Redes de Computadores Capítulo 4 Aplicações de Autenticação Slides por H. Johnson & S. Malladi; Modificados por S. J. Fritz, 2006 Modificados e traduzidos por P.S. Nicolletti, 2007; Modificados / Revisados, 2015 1
Resumo Preocupações de segurança Autenticação Serviço de autenticação X.509 Infraestrutura de chave pública 2
Preocupações de segurança Preocupações principais são: garantir confidencialidade e evitar oportunismo Para fornecer confidencialidade Deve-se criptografar informação de identificação e de chave de sessão Que requer o uso de chave secreta ou chave pública previamente distribuída Proteção contra oportunismo é necessária para evitar ataques de réplica (replay attacks) como The Man in the Midle É fornecida pelo uso de números de sequência, marcas de tempo (timestamps) ou desafio/resposta, de modo a evitar a falsa autenticação 3
Autenticação O que é? Autenticação é a ligação de uma identidade a uma entidade Uma entidade externa deve prover informação para permitir ao sistema confirmar sua identidade O que a entidade conhece (senhas, etc.) O que a entidade tem (identidade, cartão, etc.) O que a entidade é (impressão digital, imagem de retina, etc.) Onde a entidade está (em um terminal particular) Processo Consiste em obter informação da entidade, analisá-la e determinar se a mesma está ou não verdadeiramente associada com a entidade Exemplo: usuário é autenticado fornecendo seu login e sua senha que é comparada com o registro [login, senha] armazenado pelo sistema 4
Kerberos Na mitologia Grega, um cão de três cabeças, o guardião das portas do Inferno É um serviço de autenticação em redes de computadores que permite a individuos (entidades) se comunicando sobre uma rede insegura provar suas identidades um ao outro de modo confiável Previne a espionagem e ataques de replicação, e garante a integridade dos dados 5
Kerberos Usa criptografia de chave simétrica Requer um terceiro confiável chamado Centro de Distribuição de Chave (Key Distribution Center - KDC), composto de Servidor de Autenticação (Authentication Server - AS) Servidor de Autorização de Uso (Ticket Granting Server - TGS) Baseado em autorizações (tickets) para provar a identidade de usuários 6
Kerberos Usuário solicita autorização de uso para algum serviço; prova sua identidade Kerberos (KDC) conhece todas as senhas de usuários e servidores Usuário Usuário recebe autorização Autorização é usada para acessar o serviço desejado na rede Servidores 7
Kerberos Requisitos Seguro contra espionagem e falsa identificação Confiável Importante porque Kerberos é a única ligação entre usuários e servidores Transparente Usuário fornece somente senha; tudo o o mais é desconhecido para ele Escalável Deve funcionar para um grande número de computadores em rede 8
Kerberos No lugar de protocolos de autenticação em cada servidor, fornece um servidor de autenticação centralizado que A) autentica usuários para servidores B) autentica servidores para usuários Usa criptografia de chave secreta / Duas versões: V.4 e V.5 / Versão 4 usava DES 9
Kerberos Duas versões correntes: V.4 : restrita a um único domínio V.5 : permite autenticação inter-domínios V.5 : foi um padrão Internet (RFC 1510), usado por muitos serviços Para usar Kerberos: Tem de ter um KDC na sua rede Tem de ter aplicações com suporte a Kerberos em todos os sistemas participantes Problema principal restrições de exportação dos EUA (eles deixam exportar para o Iraque? ) Kerberos não podia ser distribuído para fora dos EUA em fontes (versões binárias devem disfarçar os pontos de chamada das rotinas de criptografia que devem ser implementadas localmente) Em resumo, era complexo (logo perdeu espaço para algo mais simples) 10
Serviço de Autenticação X.509 Introdução X.509 é recomendação ITU-T, parte da série X.500, que define um serviço de diretório conjunto de um ou mais servidores com base de informação de usuários E.g. nome, endereço de rede, etc. X.509 define um modelo para o provisionamento de serviços de autenticação de usuários, sendo um repositório de certificados de chaves públicas (do tipo discutido no cap. 3) Cada certificado contém a chave pública do usuário e é assinado pela chave privada de uma Autoridade Certificadora (CA) de confiança Pode usar outros protocolos de autenticação, baseados no uso de certificados de chaves públicas X.509 é padrão importante, usado em S/MIME (e-mail seguro), IPsec (IP seguro), SSL/TLS e SET (e-comerce seguro) X.509 é baseado no uso de criptografia de chave pública e assinatura digital Recomenda RSA para criptografia, mas não obriga Não define esquema específico para assinatura V.1 em 1988, V.3 em 1995, revisada em 2000 (atual) 11
Serviço de Autenticação X.509 Certificados O coração do X.509 é o certificado de chave pública associado a cada usuário Criado por alguma autoridade certificadora de confiança (CA) e colocado na estrutura de diretório pela CA ou pelo usuário O servidor de diretório não tem responsabilidade pela criação de chaves públicas ou pela certificação ele simplesmente fornece uma localização facilmente acessível para usuários obterem certificados 12
Serviço de Autenticação X.509 Certificados Um certificado contém: Versão 1 (default), 2 ou 3 (atual) Número de Série único para cada usuário da CA Identificador do Algoritmo de Assinatura algoritmo usado para assinar o certificado Nome do Emitente Identificador X.500 da CA que criou e assinou o certificado Período de Validade data de início e fim de validade do certificado Nome do Sujeito nome do usuário para qual o certificado foi emitido Informação da chave pública do sujeito chave pública do sujeito, mais a indicação da finalidade de uso da chave Identificação Única do Emitente sequência opcional de bits para identificar unicamente a CA emitente do certificado Identificador Único do Sujeito - sequência opcional de bits para identificar unicamente o usuário para o qual o certificado foi emitido Extensões conjunto de um ou mais campos de extensão Assinatura gerada sobre os campos anteriores, criptografada com a chave privada da CA 13
Serviço de Autenticação X.509 Certificados Version: V3 Serial number: 4d 4d 3b 4a ee 27 fe 84 f2 27 f7 14 ee a6 57 16 Signature algorithm: sha1rsa Issuer: CN = UTN-USERFirst - Client Authentication and Email OU = http://www.usertrust.com O = The USERTRUST Network L = Salt Lake City S = UT C = US Valid from: quinta-feira, 6 de novembro de 2015 21:00:00 Valid to: sábado, 5 de novembro de 2016 20:59:59 Subject: E = peter @ computacao.ufcg.edu.br CN = Pedro S. Nicolletti OU = (c)2016 Comodo Limited OU = Terms and Conditions of use: http://www.comodo.net/repository U = Comodo Trust Network - PERSONA NOT VALIDATED 14
Serviço de Autenticação X.509 Certificados Public key: RSA (2048 Bits) 30 82 11 06 59 13 12 56 04 02 91... 09 11 45 14 06 63 01 Authority Key Identifier: KeyID=89 82 67 7d c4 9d 26 70 00 4b b4 50 48 7c de 3d ae 04 6e 7d Subject Identifier: bd bb d4 d6 33 9d fc dd 4b 6f ec 34 bc ba 48 7d 9b 3a da ac Enhanced Key Usage: Secure Email (1.3.6.1.5.5.7.3.4) Netscape Cert Type: SMIME (20) (...) Authority Information Access: [1]Authority Info Access Access Method=Certification Authority Issuer (1.3.6.1.5.5.7.48.2) Alternative Name: URL=http://crt.comodoca.com/UTNAAAClientCA.crt [2]Authority Info Access Access Method=On-line Certificate Status Protocol (1.3.6.1.5.5.7.48.1) Alternative Name: URL=http://ocsp.comodoca.com Subject Alternative Name: RFC822 Name=peter @ computacao.ufcg.edu.br (...) 15
Serviço de Autenticação X.509 Certificados Notação para definir um certificado CA<<A>> = CA{V, SN, AI, CA, Ta, A, Ap} Cerficado do usuário A, emitido pela autoridade certificadora CA V Versão SN Número de Série AI Identificação do Algoritmo CA Identificação da Autoridade Certificadora Emitente Ta Validade A Usuário Ap Chave pública do usuário A CA assina o certificado com sua chave privada qualquer usuário A com a chave pública e o certificado de um usuário B pode verificar a autenticidade da chave pública de B consultando a CA 16
Serviço de Autenticação X.509 Obtendo Certificados Uma Autoridade Certificadora (CA) é a entidade que emite certificados X<<Y>> significa X gera certificado para Y Duas CAs são ditas inter-certificadas se cada uma emitiu um certificado para a outra Assim, se CAa<<CAb>>, CAb<<CAa>>, CAa<<João>> e CAb<<José>>, então João pode obter o certificado de José de forma segura com a sequência CAa<<CAb>> CAb<<José>> É necessário somente que cada certificado seja validado por uma CA Ninguém, exceto a CA emitente, pode modificar um certificado Usuários de uma mesma CA tem uma relação de confiança mútua Muitos usuários de muitas CAs podem verificar certificados diversos facilmente se as CAs forem inter-cerficadas 17
Serviço de Autenticação X.509 Hierarquia 18
Serviço de Autenticação X.509 Revogação de Certificados Razões para revogação: A chave privada do usuário foi comprometida O usuário não é mais certificado pela CA (e.g. expirou a validade do certificado) O certificado foi comprometido CA deve manter uma lista de certificados revogados Usuários devem verificar a lista de certificados revogados antes de validar um certificado 19
Leituras Obrigatória Stallings, W., Network Security Essentials, 3rd Ed., Cap. 4 Recomendada Bryant, W., Designing an Authentication System: A Dialogue in Four Scenes, Projeto Athena (http://web.mit.edu/kerberos/www/dialogue.html) 20
Questões de Revisão Quais são três ameaças associadas com autenticação de usuários de uma rede? Liste três enfoques para autenticação segura de usuários em um ambiente distribuído Qual é a finalidade do padrão X.509? O que é uma cadeia de certificados? Como um certificado X.509 é revogado? 21