Administração e Projeto de Redes Material de apoio Segurança de Redes Cap.15 25/01/2010 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores da disciplina irão focar alguns dos tópicos da bibliografia assim como poderão adicionar alguns detalhes não presentes na bibliografia, com base em suas experiências profissionais. O conteúdo de slides com o título “Comentário” seguido de um texto, se refere a comentários adicionais ao slide cujo texto indica e tem por objetivo incluir alguma informação adicional aos conteúdo do slide correspondente. Bibliografia básica: KUROSE, James F.; ROSS, Keith. Redes de Computadores e a INTERNET - Uma nova abordagem. Pearson. : , 2004. 3 O que é Segurança na Rede? Confidencialidade (Sigilo): apenas o remetente e o destinatário pretendido devem “entender” o conteúdo da mensagem. remetente cifra (codifica) msg. destinatário decifra (decodifica) msg. Autenticação: destinatário quer confirmar a identidade do remetente. Integridade e não-repudiação de Mensagem: remetente e destinatário querem garantir que a mensagem não seja alterada (em trânsito ou após) sem que isto seja detectado. Disponibilidade e Controle de Acesso: os serviços devem estar acessíveis e disponíveis para os usuários. 4 Amigos e Inimigos: Alice, Bob e Trudy Bob e Alice (amantes!) querem se comunicar de modo “seguro”. Trudy, a “intrusa” pode interceptar, apagar e/ou acrescentar mensagens. Quem são Alice e Bob: Browser/servidor web para transações eletrônicas (ex., compras on-line). Cliente/servidor home banking. Servidores DNS. Roteadores trocando atualizações de tabelas de roteamento. 5 Há muitos criminosos digitais por aí! P: O que eles podem fazer? R: um monte de coisas! grampo: interceptação de mensagens. inserir ativamente mensagens na conexão. falsidade ideológica: pode imitar/falsificar endereço de origem de um pacote (ou qualquer campo de um pacote). seqüestro: assumir conexão em andamento removendo o transmissor ou o receptor, colocando-se no lugar. negação de serviço: impede que o serviço seja usado por outros (ex. sobrecarregando os recursos). 6 A linguagem da criptografia Criptografia de chaves simétricas: as chaves de criptografia do remetente e de decriptografia do destinatário são idênticas. Criptografia de chaves públicas: Sigilo: Cifra com chave pública e decifra com chave privada (que é secreta). Autenticação: Cifra com chave privada e decifra com chave pública. 7 Criptografia de chaves simétricas Código de substituição: substitui um caractere por outro: Código monoalfabético: substitui uma letra por outra. Texto aberto: abcdefghijklmnopqrstuvwxyz Texto cifrado:mnbvcxzasdfghjklpoiuytrewq Texto aberto: bob. eu te amo. Alice Texto cifrado: nkn. cy uc mhk. mgsbc Criptografia de chave simétrica: Bob e Alice compartilham a mesma chave (simétrica): KA-B. Chave KA-B onde KA = KB 8 Criptografia de chave simétrica DES - Data Encryption Standard Padrão americano de cifragem [NIST 1993]. Tornando o DES mais seguro: 3-DES (Tripple DES) Criptografa a mensagem repetindo o processo usando três chaves seqüencialmente (3-DES) (é usado no PPP [RFC 2420]). AES – Advanced Encription Standard Algoritmo de chave simétrica padronizada pelo NIST, para substituir o DES (Nov. 2001). 9 Criptografia de chave pública A criptografia de chaves simétricas requer que o remetente e destinatário compartilhem a mesma chave secreta. Criptografia de chave pública (visando comunicação com Sigilo): Abordagem é radicalmente diferente [Diffie-Hellman76, RSA78]. Remetente e destinatário não compartilham uma mesma chave privada (secreta). A chave de cifragem é pública (conhecida por todos). A chave de decifragem é privada (conhecida apenas pelo destinatário). Comunicação com SIGILO 10 Autenticação Objetivo: Bob quer que Alice “prove” sua identidade para ele. Protocolo ap1.0: Alice diz “Eu sou Alice”. Cenário de falha?? Sim, Trudy pode dizer: “Eu sou Alice”. Bob pode ser confundido. 11 Autenticação: outra tentativa Protocolo ap2.0: Alice diz “Eu sou Alice” e envia seu endereço IP junto como prova. Cenário de falha?? Sim, Trudy pode criar um pacote “trapaceando” (IP spoofing) o endereço de Alice. IP spoofing 12 Autenticação: outra tentativa (cont.) Protocolo ap3.0: Alice diz “Eu sou Alice” e envia sua senha secreta como prova. Cenário de falha?? Sim: Ataque de playback: Trudy grava o pacote de Alice e depois o envia de volta para Bob. 13 Autenticação: ainda uma outra tentativa Protocolo ap3.1: Alice diz “Eu sou Alice” e envia a sua senha secreta cifrada como “prova”. Gravar e reproduzir ainda funciona! É possível o ataque de playback. end IP de Alice senha cifrada “Sou Alice” end IP de Alice OK end IP de Alice senha cifrada “Sou Alice” 14 Autenticação: ainda uma outra tentativa Meta: evitar ataque de reprodução (playback). Nonce: número (R) usado apenas uma vez na vida. ap4.0: para provar que Alice “está ao vivo”, Bob envia a Alice um nonce. Alice deve devolver R, criptografado com a chave secreta comum. Alice está ao vivo e apenas Alice conhece a chave para criptografar o nonce, então ela deve ser Alice! 15 Autenticação: Assinaturas Digitais Técnica criptográfica análoga às assinaturas à mão. Remetente (Bob) assina digitalmente o documento, atestando que ele é o dono/criador do documento. Verificável, não forjável: destinatário (Alice) pode verificar que Bob e ninguém mais assinou o documento. Assinatura digital simples para a mensagem m: Bob assina mensagem “m” cifrando-a com a sua chave privada “K”, criando mensagem “assinada”, K (m). Integridade das mensagens: Função Hash (Resumo de mensagens) 16 Meta: integridade da mensagem ao acrescentar um pacote de comprimento fixo facilmente computável. Para verificação de Integridade ou “impressão digital” da informação. Aplicar função hash H à mensagem m, para obter um resumo de tamanho fixo, H(m). Propriedades das funções de Hash: O resultado do cálculo da função Hash pode ser igual para mensagems m diferentes (Muitas-para-1). Não é uma função 1 para 1. Produz um resumo da mensagem de tamanho fixo (impressão digital). Dado um resumo da mensagem x, é computacionalmente impraticável encontrar m tal que x = H(m). Só permite validar e não recuperar erro. Assinatura digital c/ Função Hash: Assinatura do resumo da mensagem 17 Bob envia mensagem assinada digitalmente ao criptografar o Hash da mensagem com sua senha privada: Mensagem grande m H: função de Hash Alice verifica a assinatura e a integridade da mensagem assinada digitalmente: resumo de msg criptografado H(m) - KB(H(m)) chave privada de Bob K - B assinatura digital (criptografada) resumo de msg criptogrado + K-B(H(m)) mensagem grande m H: função de Hash chave pública de Bob + KB assinatura digital (decriptografada) H(m) H(m) igual? 18 Algoritmos para gerar a Função de Hash MD5 (RFC 1321) (1991). Está quebrada desde 2005. SHA-1 (1995). padrão americano [NIST, FIPS PUB 180-1]. Está quebrada desde 2005. SHA-2 (variação do SHA-1). WHIRLPOOL. Algorítmo brasileiro-belga (padrão Comunidade Européia e Asiática). 19 Intermediários de confiança Problema com chave simétrica Como duas entidades escolhem chave secreta compartilhada pela rede? Solução: Centro confiável de Distribuição de chaves (KDC) agindo como intermediário entre as entidades que querem manter comunicação segura. O KDC autentica as entidades. Problema com chave pública: Quando Alice obtém a chave pública de Bob (da web, email ou disquete), como ela vai saber se a chave pública é mesmo de Bob e não de Trudy? Solução: Autoridade Certificadora (CA) confiável. CA armazena as chaves públicas e disponibiliza-as aos solicitantes. 20 Autoridades Certificadoras (1/2) Autoridade certificadora (CA): associa uma chave pública a uma entidade em particular, denominada “E”. “E” (pessoa ou roteador) registra sua chave pública com CA: “E” fornece “prova de identidade” ao CA. CA cria um certificado associando “E” a sua chave pública. CA emite um Certificado contendo a chave pública de “E” digitalmente assinada pela CA: CA diz que “esta é a chave pública de E”. 21 Autoridades Certificadoras (2/2) Quando Alice precisa da chave pública de Bob: Obtém o certificado de Bob (de Bob ou de outro lugar) na CA que guarda a chave de Bob. Alice aplica a chave pública da CA ao certificado de Bob, para extrair a chave pública de Bob. + KB assinatura digital (decifra) Chave pública da CA + KCA Chave pública + KB de Bob 22 Firewalls Isola a rede interna da organização da área pública da Internet, permitindo que alguns pacotes passem e outros não. 23 Firewalls: Para que servem? Prevenir ataques de negação de serviço: Inundação de SYNs: atacante estabelece muitas conexões TCP “falsas” e não deixa nenhum recurso para as conexões “reais”. Prevenir modificação/acesso ilegal aos dados internos. ex., o atacante substitui a homepage da CIA com outra coisa. Permitir apenas acessos autorizados ao interior da rede (conjunto de usuários/hospedeiros autenticados). Tipos de firewalls: Filtragem de pacotes. Camada de aplicação (Gateways de Aplicação). 24 Firewall Filtro de pacotes Rede interna conectada à Internet via roteador firewall. Filtro de pacotes. A decisão de enviar ou descartar pacotes que chegam no Firewall baseia-se regras que podem considerar: Endereço IP de origem e/ou endereço IP de destino. Número de portas TCP/UDP de origem e/ou de destino. Tipo de mensagem ICMP. Bits TCP: SYN e ACK (para bloquear tentativas de criação de uma sessão TCP). Exemplo 1: Bloqueia datagramas de entrada e saída com campo de protocolo IP = 17 e com porta de origem ou destino = 23. Todos os fluxos UDP de entrada e saída e conexões telnet são bloqueadas. Exemplo 2: Bloqueia segmentos TCP de entrada com ACK=0. Previne que clientes externos estabeleçam conexões TCP com clientes internos, mas permitem que clientes internos se conectem com o exterior. 25 Gateways de Aplicação Filtra pacotes em função de dados de aplicação, assim como de campos do IP/TCP/UDP. Exemplo: permite selecionar usuários internos que podem usar o Telnet. Exige que todos os usuários Telnet se comuniquem através do Gateway. Para os usuários autorizados, o gateway estabelece conexões Telnet com o hospedeiro de destino. O Gateway repassa os dados entre as duas conexões. O filtro do roteador bloqueia todas as sessões Telnet que não se originam no Gateway. 26 Limitações dos Firewalls e Gateways IP spoofing: roteador não tem como saber se os dados “realmente” vêm da fonte alegada. Se múltiplas aplicações necessitam tratamento especial, cada uma deve ter o próprio Gateway. O software do cliente deve saber como contactar o Gateway: Por exemplo, deve setar o endereço IP do proxy no browser. Compromisso: grau de comunicação com o mundo externo, nível de segurança: Muita segurança limita as formas de comunicação. Muita flexibilidade para se comunicar cria riscos para a segurança. Muitos sites altamente protegidos ainda sofrem ataques. 27 Ameaças à segurança na Internet (1/4) Mapeamento (Reconhecimento do terreno): antes de atacar: descobrir quais serviços estão implementados na rede. Use Ping para determinar quais hosts estão ativos na rede. Varredura de portas (Port-scanning): tentar estabelecer conexões TCP para cada porta em seqüência (para ver o que acontece). mapeador nmap (http://www.insecure.org/nmap/): “exploração da rede e auditoria de segurança”. Contramedidas: Registrar o tráfego que entra na rede. procurar atividade suspeita (endereços IP, portas sendo varridas seqüencialmente). 28 Ameaças à segurança na Internet (2/4) Packet sniffing: Meio broadcast. NIC em modo promíscuo lêem todos os pacotes que passam na rede. Exemplo: C captura os pacotes de B na comunicação A-B e pode obter a senha. Packet sniffing – contramedidas: Todos os hospedeiros na organização executam software que examina periodicamente se a interface do hospedeiro está operando em modo promíscuo Um host em cada porta de SWITCH na LAN (rede Ethernet). Não usar HUB na rede LAN. 29 Ameaças à segurança na Internet (3/4) IP Spoofing: Pode gerar pacotes IP “puros” diretamente da aplicação, colocando qualquer valor do endereço IP no campo de endereço de origem. IP Spoofing - contramedidas: filtro de entrada: Receptor não sabe se a fonte é verdadeira ou se foi forjada Ex.: C finge ser B. Roteadores não devem repassar pacotes para a saída quando esses têm endereço IP de origem inválido (exemplo, endereço de origem do datagrama que tenha valor fora da faixa de endereçamento da rede local). Essa medida é restrita aos roteadores que transmitem os pacotes IP e sua adoção não é obrigatória. 30 Ameaças à segurança na Internet (4/4) Negação de serviço (DoS): Inundação de pacotes maliciosamente gerados que invadem o receptor. DoS Distribuído (DDoS): múltiplas fontes coordenadas atacam simultaneamente o receptor. exemplo: C e um hospedeiro remoto atacam A com inundação de SYN (pacotes de estabelecimento de sessão TCP). Negação de serviço (DoS) contramedidas: Filtragem de pacotes de inundação (ex., SYN) antes de atingirem o alvo: corta os pacotes bons e os maus. Rastrear em busca da fonte da inundação (mais provavelmente uma máquina inocente que foi invadida). 31 E-mail seguro: Sigilo Alice quer enviar e-mail confidencial, m, para Bob. Então: Gera uma chave privada simétrica, KS. Codifica a mensagem com KS (por eficiência). Também codifica KS com a chave pública de Bob. Envia tanto KS(m) (msg criptografada com a chave KS) como KB(KS) (chave simétrica KS criptografada com a chave pública de Bob) para Bob. Bob: Usa sua chave privada para decodificar e recuperar KS. Usa KS para decodificar KS(m) e recuperar m. 32 E-mail seguro: Autenticação e Integridade Alice quer fornecer autenticação de emissor e integridade de mensagem. Alice assina digitalmente a mensagem (calcula Hash da msg m e criptografa com sua chave privada). Envia tanto a mensagem (aberta) quanto a assinatura digital. Bob valida a autenticidade (decriptografa o Hash recebido com chave pública de Alice obtendo o Hash original) e a integridade da mensagem recebida (calcula o Hash da mensagem m recebida), caso essas duas informações sejam iguais. Hash Hash original recuperado Hash criptografado Hash calculado de m 33 SSL - Secure Sockets Layer (1/2) SSL trabalha na camada de transporte. Provê segurança para qualquer aplicação baseada em TCP que use os serviços SSL. SSL: usado entre clientes e servidores www para comércio eletrônico (https). Serviços de segurança SSL: autenticação do servidor. codificação dos dados. autenticação do cliente (opcional). Autenticação do servidor: Cliente habilitado com SSL inclui chaves públicas das CAs confiáveis. Cliente solicita certificado do servidor, emitido por CA confiável. Cliente usa a chave pública da CA para extrair a chave pública do servidor a partir do seu certificado. Visite o menu de segurança do seu browser para verificar quais são as suas CAs confiáveis. 34 SSL - Secure Sockets Layer (2/2) Sessão SSL criptografada: Browser gera chave simétrica para a sessão, cifra-a com a chave pública do servidor, envia a chave cifrada para o servidor. O servidor decifra a chave simétrica da sessão usando a sua chave privada. Browser e servidor concordam que as msgs futuras serão cifradas com a chave simétrica gerado pelo Browser. Todos os dados enviados para o socket TCP (pelo cliente ou servidor) são cifrados com a chave da sessão. SSL: base para a Segurança da Camada de Transporte do IETF (TLS). SSL pode ser usado para aplicações não Web, ex., IMAP. Autenticação do cliente pode ser realizada com certificados do cliente. IPSec Segurança de Camada de Rede 35 Sigilo na camada de rede: host transmissor cifra os dados num datagrama IP. segmentos TCP e UDP, mensagens ICMP e SNMP. Autenticação da camada de rede: host destino pode autenticar o endereço IP da origem. Dois protocolos principais: Protocolo de cabeçalho de autenticação (AH). Protocolo de encapsulamento de segurança da carga (ESP). Tanto para AH como ESP tem negociação origem-destino: Criação de um canal lógico de camada de rede chamado de acordo de serviço (SAservice agreement) Cada SA é unidirecional. Determinado univocamente por: Protocolo de segurança (AH ou ESP). Endereço IP da origem. ID da conexão de 32-bits.