Redes II : Segurança Prof. Dr. Amine BERQIA [email protected] http://w3.ualg.pt/~bamine / Links http://www.securityfocus.com http://www.linuxsecurity.com http://www.openssh.org O que é segurança de rede ? Confidencialidade: apenas o remetente e o receptor desejado, deverão “entender” a mensagem. • remetente codifica a msg • receptor descodifica msg Autenticação: remetente e o receptor querem confirmar a identidade um do outro Integridade de mensagem: remetente e o receptor querem assegurar que a mensagem não tenha sido alterada (em trânsito, ou depois) sem conhecimento Ameaças de segurança na Internet Packet sniffing: • meio por difusão • NIC promíscuo lê todos os pacotes que passam na rede • pode ler todos os dados não codificados (por exemplo passwords) • por exemplo: C captura pacotes de B's C A src:B dest:A payload B Ameaças de segurança na Internet IP Spoofing: • pode-se gerar pacotes de IP directamente duma aplicação, introduzindo qualquer valor no campo de endereço IP origem • o receptor não destingue se origem for spoofed • por exemplo: C finge ser B C A src:B dest:A payload B Ameaças de segurança na Internet Denial of service (DOS): • Grande volume de pacotes gerados com fim maléfico inundam o receptor • DOS distribuído (DDOS): múltiplas fontes coordenadas inundam o receptor • por exemplo, C e anfitrião remoto fazem SYN-attack a A C Um SYN SYN SYN SYN SYN B SYN SYN Assinaturas digitais (1) Assinatura digital simples Técnica criptográfica análogo a assinaturas para mensagem m: escritas à mão. O Bob codifica m com a Remetente (o Bob) assina digitalmente documento, estabelecendo que ele é dono/criador do documento. A recipiente (a Alice), verificável e não falsificável: pode verificar que Bob, e mais ninguém, assinou o documento. chave pública dele dB, criando assim a mensagem assinada, dB(m). Bob envia m e dB(m) para Alice. Assinaturas digitais (2) Suponha que a Alice Alice verifica então que: recebe msg m, e assinatura • Bob assinou m. digital dB(m) • Ninguém mais assinou m. Alice verifica que m • Bob assinou m e não m.' assinada por Bob Não repudiação: aplicando chave pública • Alice pode usar m, e eB a dB(m) então confere assinatura dB(m) em eB(dB(m)) = m. tribunal para provar que Se eB(dB(m)) = m, quem Bob assinou m. assinou m deve ter usado a chave privada de Bob. Pretty good privacy (PGP) Mecanismo de encriptação de email da Internet, uma norma de-facto . Utiliza criptografia de chaves simétrica, criptografia de chaves públicas, função de hash, e assinatura digital como descrito. Fornece confidencialidade, autenticação de remetente e integridade. Inventor, Phil Zimmerman, foi alvo investigação federal de 3anos. Uma mensagem assinada por PGP : ---BEGIN PGP SIGNED MESSAGE-Hash: SHA1 Bob:My husband is out of town tonight.Passionately yours, Alice ---BEGIN PGP SIGNATURE--Version: PGP 5.0 Charset: noconv yhHJRHhGJGhgg/12EpJ+lo8gE4vB3 mqJhFEvZP9t6n7G6m5Gw2 ---END PGP SIGNATURE--- Secure sockets layer SSL (1) PGP fornece segurança para um app de rede específica. SSL funciona na camada de transporte. Fornece segurança a qualquer app baseada em TCP que utilize serviços de SSL. SSL: usado entre browsers de WWW, servidores para de comércio (shttp). Serviços de segurança SSL : autenticação de servidor criptografia de dados autenticação de cliente (opcional) Autenticação de servidor: Browser com SSL habilitado inclui chaves públicas para CAs em que confia. Browser pede certificado de servidor, emitido por CA confiada. Browser utiliza a chave pública de CA para extrair a chave público de servidor do certificado. Visite o menu de segurança de seu browser para ver os CAs confiados. SSL (2) Sessão de SSL codificada: Browser gera chave de sessão simétrica, codifica-a com a chave pública do servidor, envia chave codificada ao servidor. Usando sua chave privada, servidor decifra chave de sessão. Browser e servidor concordam que msgs de futuro serão codificados. Todos os dados enviados por socket TCP (por cliente ou servidor) são codificados com chave de sessão. SSL: base de Transport Layer Security (TLS) do IETF. SSL pode ser usado para aplicações não Web, por exemplo, IMAP. Autenticação de cliente pode ser feita com certificados de cliente. Arquitetura da Camada de Secure Sockets Operação de Registros SSL Formato do registro de SSL (1) Formato do registro de SSL (2) Um Exemplo e Análise Temporal de Autenticação de SSL Apenas do Servidor Firewall Vários tipos: Filtro de Pacote, aplicação, nível de circuito, O tipo mais usado é Filtro de Pacotes Exemplo # default Policy -P input REJECT -P output ACCEPT -P forward REJECT # Allow DNS response so that DNS verification works -A input -p tcp -s 0/0 -d 128.36.229.182 domain -j ACCEPT -A input -p udp -s 0/0 -d 128.36.229.182 domain -j ACCEPT # end of DNS # ICMP rules -A input -p icmp --icmp-type echo-request -s 0/0 -d 128.36.229.182 -j ACCEPT -A input -p icmp --icmp-type echo-reply -s 0/0 -d 128.36.229.182 -j ACCEPT # end of ICMP # ssh rules # yale.edu -A input -p tcp -s 128.36.229.80/16 -d 128.36.229.182 22 -j ACCEPT # log attempts to ssh -A input -p tcp -s 0/0 -d 128.36.229.182 22 -l -j REJECT # end ssh rules # ftp rules # leg 1: our client will send a SYNC to the server outside, thus establishing a state # leg 2: after our attempt, the server connects from outside to inside # Here -y means sync, and ! negates the meaning, namely have state -A input -p tcp -s 0/0 21 -d 128.36.229.182 1024:65535 -j ACCEPT ! -y # leg 3: our client will initiate a data connection when issuing ls get put, # leg 4: after our data request, the server connects from outside to inside # with source ftp-data. Here again -y mean sync, and ! negate the # meaning, namely have state -A input -p tcp -s 0/0 ftp-data -d 128.36.229.182 1024:65535 -j ACCEPT ! -y # end ftp . Ipsec: Segurança de Camada de rede Confidencialidade de camada de rede: anfitrião remetente codifica os dados num datagrama IP Segmentos TCP e UDP; mensagens de ICMP e SNMP. Autenticação de camada de rede anfitrião de destino pode autenticar endereços fonte IP Dois protocolos principais : protocolo de cabeçalho de autenticação (AH) protocolo de encapsulação de segurança da carga útil (ESP) Tanto para AH e ESP, existe negociação de origem e destino: cria canal lógico de camada de rede chamado acordo de serviço (o SÁ) Cada SÁ é unidirecional. Exclusivamente determinado por: protocolo de segurança (AH ou ESP) endereço de IP origem ID conexão de 32 bits Segurança e Internet Segurança na camada rede : Ipsec Segurança na camada transporte : SSL Correio eletrônico : PGP Execução de ordens remotas de UNIX : SSH Segurança e estrutura nas camadas (1) Onde colocar os serviços da segurança ? Na camada de rede: IPSec, VPNs Virtual private Networks Na camada de transporte: SSL (Netscape), PCT (Microsoft)? Na camada de aplicação: Secure HTTP (htpps), o PGP, o SSH, o S/MIME Segurança e estrutura nas camadas (2) Estruturas da segurança para IP (IPSec) : para IPv6 (IPnG) mas pode também ser integrado em IP tradicional (IPv4); Constituído por dois blocos fundamentais: Authentication Header (AH) etEncapsulating Security Payload (ESP) Depende dos algoritmos usados, diversos serviços da segurança: Authentication (host-baseado) Confidentiality Integridade … Descrição geral em RFC 1825 Segurança e estrutura nas camadas (3) Protocolo de Autenticação Cabeçalho (AH) Cabeçalho de AH inclui: Fornece autenticação de identificador de conexão anfitrião de origem, integridade de dados, mas não dados de autenticação: sumário(digest) da mensagem confidencialidade. assinada, calculado em cima de Cabeçalho de AH está inserido entre o cabeçalho IP datagrama IP original, fornecendo assim autenticação de origem, e o campo de dados de IP. integridade de dados. Campo Protocolo = 51. Próximo campo de cabeçalho: Routers intermediários especifica tipo de dados ( TCP, UDP, processam datagramas ICMP, etc.) normalmente. Protocolo ESP Fornece confidencialidade, autenticação de anfitrião, integridade de dados. Dados, campo de fim de ESP codificados. Próximo campo de cabeçalho está em campo de fim de ESP. Campo de autenticação do ESP é semelhante ao campo de autenticação AH. Protocolo = 50. IPSec: Algumas conclusões oferece uma proteção básica ao tráfego IP com algumas dificuldades: ambigüidade usuários-endereços, Integração dos primitivos da segurança nos sistemas operativos (transparência); Escolha de uma política da gerência das chaves; Esforço da proteção não sempre proporcional às necessidades para a aplicação; Competido com as soluções VPN. Secure Socket Layer (SSL) (1) Produto Netscape; É ficado situado entre a camada de transporte (TCP) e os protocolos da camada da aplicação (não so HTTP mas também smtp, ftp, etc.!) Ofereça os seguintes serviços da segurança: Confidentiality Integridade Authentication do servidor (do cliente) Baseado em algoritmos do cryptografia públicos (RSA, Diffie-Hellmann) SSL (2) MAC = Message Authentication Code: reserva para assegurar a integridade e authenticity do pacote SSL State Variables Session Connexion • session identifier • client/server random • peer certificate byte sequences for key gen. • compression method • c/s write MAC secret • cipher specification encryption algo. + secret key used to generate MACs by the client (resp. the server) authentication algo. + • c/s write key secret crypto attributes • master secret secret key used by the client (resp. the server) to encrypt application data secret shared between client and server • sequence numbers • is resumable indicates if new connections may be initiated under this session keep track of received/sent messages • initialization vectors uma sessão pode conter diversas conexões! SSL: Geração das chaves (1) master_secret = MD5(pre_master_secret + SHA(’A’ + pre_master_secret + ClientHello.random + ServerHello.random)) + MD5(pre_master_secret + SHA(’BB’ + pre_master_secret + ClientHello.random + ServerHello.random)) + MD5(pre_master_secret + SHA(’CCC’ + pre_master_secret + ClientHello.random + ServerHello.random)); SSL: Geração das chaves (2) key_block = MD5(master_secret + SHA(‘A’ + master_secret + ServerHello.random + ClientHello.random)) + MD5(master_secret + SHA(‘BB’ + master_secret + ServerHello.random + ClientHello.random)) + MD5(master_secret + SHA(‘CCC’ + master_secret + ServerHello.random + ClientHello.random)) + [...]; until enough output has been generated. Then the key_block is partitioned as follows: client_write_MAC_secret[CipherSpec.hash_size] server_write_MAC_secret[CipherSpec.hash_size] client_write_key[CipherSpec.key_material] server_write_key[CipherSpec.key_material] client_write_IV[CipherSpec.IV_size] /* non-export ciphers */ server_write_IV[CipherSpec.IV_size] /* non-export ciphers */ Secure SHell SSH Para segurar os comandos remotos : rlogin, rsh, rcp, … Authentication SSH: O cliente tem um certificado da chave pública do servidor (.ssh/known_hosts) e: usa este para emitir ao servidor o password encryptado por RSA o se um certificado do cliente é reconhecido http://www.ssh.fi pelo servidor, uma authentication Bibliografia • [Men97]: Menezes, A et al. Handbook of Applied Cryptography. CRC press series on discrete mathematicsand its applications. 1997. URL (Mars 2002): http://cacr.math.uwaterloo.ca/hac/ • [Sch96]: Schneier, B. Applied Cryptography. Second Edition.John Wiley & Sons. 1 996. • [Sti95]: Stinson, D.R. Cryptography: Theory and Practice. CRC Press Series on Discrete Mathematics and Its Applications. CRC Press, Inc. 1995. • [Kau95]: Kaufman, C. et al. Network Security. Private Communication in a Pubic World. Prentice-Hall PTR. 1995. • [Sta95]: Stallings, W. Network and Internetwork Security, Prentice-Hall International, 1995. Os firewalls (1) Restrição do acesso à rede num ponto preciso Impedir os agressores aproximar-se os outros defesas Que pode fazer um firewall Que não pode fazer um firewall Centralização das decisões de segurança; Reforçar a segurança dos serviços Internet propostos; Determinar uma regulamentação de acesso para e desde a Internet; Isolar uma parte da rede (firewall internos); Controlar e registar a actividade Internet. Impossibilidade de proteger as conexões que não passam pelo firewall; Não protecção contra as ameaças novas; Não de protecção contra os vírus; Impossibilidade de proteger-se dos utilizadores. Os firewalls (2) O firewall é apenas um actor de uma política de segurança; não pode resolver todos os problemas de segurança. Utilização antivirus, a sensibilização do pessoal, a protecção física das máquinas é tantos problemas que um firewall não pode resolver. Os firewalls (3) Duas políticas de segurança: autorizá-lo todo excepto alguns serviços conhecidos que quer-se recusar pr oibi-lo todo excepto certos serviços que pode-se/deseja-se proteger Sempre utilizar "software" provados ou corrigindo buracos de segurança de versões anteriores Examinar o code source tão possível para evitar os cavalos Troie política mais restritiva é geralmente a mais certa. Os firewalls (4) serviços a proteger: o correio electrónico (SMTP tcp/25, POP3 tcp, udp/110), a transferência de ficheiros (FTP tcp/21, TFTP udp/69, SFTP tcp/115), o acesso por terminal (Telnet tcp/23) e a execução de encomendas a distância, les News Usenet (NNTP tcp/119), o World Wide Web (HTTP tcp, udp/80), os outros serviços de informações (gopher tcp, udp/70), Os firewalls (5) as informações sobre as pessoas (finger tcp/79), os serviços de conferência em tempo real, o serviço de nome (DNS, tcp, udp/53), os serviços de administração rede (SNMP udp/161,162), os serviços temporais (NTP tcp, udp/123), os sistemas de ficheiros rede (NFS sobre RPC tcp/udp/111), os serviços de impressão (impressora tcp/515) Qualquer serviço da rede é a priori filtrável por um firewall. Firewall screening router À arquitectura mais barata que permite fazer uma filtragem simple mas eficaz. Firewall com proxy Permite de ter um muito bom controlo sobre os serviços retransmitidos (relayed). Ideal para fazer da tradução de endereço e mascarar os seus endereços IP internos ao exterior. Existe varios proxies com funções mais ou menos evoluidas. Aquilo pode ir do simple proxy ftp ao proxy cache web como Squid. Firewall com bastion host Todas as conexões provenientes da Internet passam necessariamente por Bastion que se encontra sobre a rede interna. Os clientes da rede interna podem aceder directamente à Internet para serviços não mandatados pelo bastião, se não passa obrigatoriamente por proxies do bastion. Firewall com DMZ Utilização duma subnet para isolar os bastions: é a zona DMZ Demilitarized Zone. Ainda que o bastiion é furado, o pirata é isolado no DMZ e não pode aceder a rede interna facilemente. Firewalls hierárquicos Frequentemente utilizado para isolar uma rede de teste interna numa empresa. Os endereços IP privados são definidos no RFC 1918: - classe A: 10.0.0.0 à 10.255.255.255 - classe B: 172.16.0.0 à 172.31.255.255 - classe C: 192.168.0.0 à 192.168.255.255 Exemplos de firewall no mercado Fabricando Produto URL Cisco Systems IBM SUN CHECK PONTO PIX IBM Firewall v3 SUNScreen FIREWALL-1 http://www.cisco.com http://www.ics.raleigh.ibm.com http://www.sun.com http://www.checkpoint.com Bibliografia “Building Internet Firewalls” O ’Reilly & Associates, www.vitels.ch, Firewall Management Module.