Prévia do material em texto
Christiane Borges Santos christiane.santos@ifg.edu.br Redes de Computadores e Segurança da Informação Camada de Aplicação 2020 Páginas Web consistem de objetos Objeto pode ser arquivo HTML, imagem JPEG, Java applet, arquivo de áudio,… A página Web consiste de arquivo-HTML base, que inclui vários objetos referenciados Cada objeto é endereçado por uma URL Exemplo de URL: www.someschool.edu/someDept/pic.gif Nome do hospedeiro Nome do caminho Web e HTTP HTTP: hypertext transfer protocol ● Protocolo da camada de aplicação da Web ● Modelo cliente/servidor Cliente: browser que solicita, recebe e apresenta objetos da Web Servidor: envia objetos em resposta a pedidos Visão geral do HTTP PC executa Explorer Servidor rodando um servidor Web Mac executa Navigator pedido http pedido http resposta http resposta http HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2616 Visão geral do HTTP Usa serviço de transporte TCP: ● cliente inicia conexão TCP (cria socket) ao servidor, porta 80 ● servidor aceita conexão TCP do cliente ● mensagens HTTP (mensagens do protocolo da camada de apl) trocadas entre browser (cliente HTTP) e servidor Web (servidor HTTP) ● encerra conexão TCP HTTP é “sem estado” ● servidor não mantém informação sobre pedidos anteriores do cliente Protocolos que mantêm “estado” são complexos! história passada (estado) tem que ser guardada Caso caia servidor/cliente, suas visões do “estado” podem ser inconsistentes, devem ser reconciliadas Nota Conexões HTTP HTTP não persistente ● No máximo um objeto é enviado numa conexão TCP ● HTTP/1.0 usa o HTTP não persistente HTTP persistente ● Múltiplos objetos podem ser enviados sobre uma única conexão TCP entre cliente e servidor ● HTTP/1.1 usa conexões persistentes no seu modo default Formato de mensagem HTTP: pedido Dois tipos de mensagem HTTP: pedido, resposta - request, response mensagem de pedido HTTP: ● ASCII (formato legível por pessoas) GET /somedir/page.html HTTP/1.0 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr (carriage return (CR), line feed(LF) adicionais) linha de requisição (comandos GET, POST, HEAD, PUT, DELETE) linhas do cabeçalho Carriage return e line feed, linha em branco, indicam fim de mensagem ASC II - American Standard Code for Information Interchange II 256 caracteres codificados em 8 bits Formato de mensagem HTTP: pedido Códigos de estado da resposta HTTP 200 OK ● sucesso, objeto pedido segue mais adiante nesta mensagem 301 Moved Permanently ● objeto pedido mudou de lugar, nova localização especificado mais adiante nesta mensagem (Location:) 400 Bad Request ● mensagem de pedido não entendida pelo servidor 404 Not Found ● documento pedido não se encontra neste servidor 505 HTTP Version Not Supported ● versão de http do pedido não usada por este servidor Alguns códigos típicos: Formato de mensagem HTTP: resposta HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html dados dados dados dados ... linha de estado (protocolo, código de estado, frase de estado) linhas de cabeçalho dados, p.ex., arquivo html solicitado Quando o objeto foi criado ou modificado Número de bytes do objeto HTTP HTTP HTTP HTTP Cookies: manutenção do “estado” cliente servidor msg usual pedido http resposta usual http + Set-cookie: 1678 msg usual pedido http cookie: 1678 resposta usual http msg usual pedido http cookie: 1678 resposta usual http ação específica do cookie ação específica do cookie servidor cria a ID 1678 para o usuário entrada no BD de apoio acesso ac es so arquivo de Cookies amazon: 1678 ebay: 8734 arquivo de Cookies Host - ID ebay: 8734 arquivo de Cookies amazon: 1678 ebay: 8734 uma semana depois: Cookies O que os cookies podem fazer: ∙ Autorização após armazenamento do registro da pessoa ∙ Registro da lista de compras no Ecommerce ∙ Sugestões - recomendar produtos ∙ estado da sessão do usuário (Web email) – identificação do usuário ∙ Eles armazenam coisas que você acessou, sites que você viu Cookies e privacidade: cookies permitem que os sites aprendam muito sobre você mecanismos de busca usam redirecionamento e cookies para aprender ainda mais sobre você agências de propaganda obtêm perfil a partir dos sites visitados e oferecem produtos perturbando os usuários (ex. DoubleClick) nota Cache Web (servidor proxy) usuário configura browser: acessos Web via proxy (representante) cliente envia todos pedidos HTTP ao proxy se objeto está no cache , este o devolve imediatamente na resposta HTTP senão, solicita objeto do servidor de origem, depois devolve resposta HTTP ao cliente Meta: atender pedido do cliente sem envolver servidor de origem cliente Servidor proxy cliente pedido http pedido http resposta http resposta http pedido http resposta http Servidor de origem Servidor de origem Mais sobre Caches Web Cache atua tanto como cliente quanto como servidor Tipicamente o cache é instalado por um ISP (universidade, empresa, ISP residencial) Para que fazer cache Web? Redução do tempo de resposta para os pedidos do cliente Redução do tráfego no canal de acesso de uma instituição A Internet cheia de caches permitem que provedores de conteúdo “pobres” efetivamente forneçam conteúdo! HTTPS ● Combinação do protocolo HTTP com o SSL (Secure Sockets Layer) ● Utiliza a porta 443 e o protocolo TCP. ● Diferença: encriptação de dados dentro da seção ● No HTTPS é utilizado um certificado digital que possibilita a privacidade e a autenticidade dos dados, além de prover integridade de mensagem SSL Camada que fica entre a camada de aplicação e a camada de transporte Desenvolvido pela Netscape Communications Função: prover comunicação segura na Internet, através da autenticação e encriptação dos pacotes entre o servidor e o cliente HTTPS ● Um site seguro, que usa o HTTPS, deve possuir: ∙ Servidor ∙ Software seguro (faz o trabalho de criptografia) ∙ Certificado de assinatura (assinatura digital). ● Endereço é apontado por HTTPS, geralmente não divulgado, mas redirecionado a partir do site principal. ● O cliente envia ao servidor sua versão do SSL, informações geradas randomicamente ou que o servidor precisa conhecer. ● O servidor envia uma resposta ao cliente com as mesmas informações e então o seu certificado e pede também que o cliente envie o seu. Continua enviando, e manda sua chave pública, que será usada mais tarde para que o cliente encripte a mensagem de resposta HTTPS ● O cliente usa a informação enviada pelo servidor para autenticá-lo, garantindo que estará trocando dados com o servidor correto. Caso o certificado do cliente tenha sido solicitado, este o envia, caso contrário, envia uma mensagem de "não certificado". ● Usando a informação recebida, o cliente cria a chave premaster (premaster secret) para a sessão, encripta com a chave pública do servidor e envia a premaster encriptada para o servidor. HTTPS ● Cliente autenticado, o servidor usa a sua chave privada para desencriptar a chave premaster, e faz uma série de procedimentos para gerar a chave mestra (master secret). O cliente repete os mesmos procedimentos e gera também a chave mestra, e utilizam para gerar as chaves de sessão (session keys), simétricas, para encriptar e desencriptar informação trocada durante a sessão SSL. ● Cliente e servidor trocam mensagens encriptadas avisando um ao outro que o handshake terminou e que a partir de então as mensagens trocadas estarão encriptadas com a chave de sessão. HTTPS Analisador de Rede Wireshark – Captura HTTP FTP: o protocolo de transferência de arquivos ● transferir arquivo de/para hospedeiro remoto ● modelo cliente/servidor ∙ cliente:lado que inicia transferência (pode ser de ou para o sistema remoto) ∙ servidor: hospedeiro remoto ● ftp: RFC 959 ● servidor ftp: portas 20 e 21 transferência do arquivo FTP servidor Interface do usuário FTP cliente FTP sistema de arquivos local sistema de arquivos remoto usuário na estação FTP: conexões separadas para dados e controle ● Cliente FTP contata servidor FTP na porta 21, especificando o TCP como protocolo de transporte ● O cliente obtém autorização através da conexão de controle ● O cliente consulta o diretório remoto enviando comandos através da conexão de controle ● Quando o servidor recebe um comando para a transferência de um arquivo, ele abre uma conexão de dados TCP para o cliente ● Após a transmissão de um arquivo o servidor fecha a conexão ● O servidor abre uma segunda conexão TCP para transferir outro arquivo ● Conexão de controle: “fora da faixa” ● Servidor FTP mantém o “estado”: diretório atual, autenticação anterior cliente FTP servidor FTP conexão de controle TCP, porta 21 conexão de dados TCP, porta 20 FTP: comandos, respostas Comandos típicos: ∙ enviados em texto ASCII pelo canal de controle ∙ USER nome ∙ PASS senha ∙ LIST devolve lista de arquivos no diretório atual ∙ RETR arquivo recupera (lê) arquivo remoto ∙ STOR arquivo armazena (escreve) arquivo no hospedeiro remoto Códigos de retorno típicos ∙ código e frase de status (como para http) ∙ 331 Username OK, password required ∙ 125 data connection already open; transfer starting ∙ 425 Can’t open data connection ∙ 452 Error writing file FTP Wireshark – Captura FTP TELNET ∙ Aplicação do tipo cliente-servidor que utiliza o protocolo TCP para transportar os dados, na porta 23. ∙ O serviço de terminal remoto estabelece uma sessão de login remoto interativo permitindo que um usuário conecte-se a uma máquina e tenha acesso a todos os seus recursos (ou pelo menos aqueles que sua senha permite) como se estivesse trabalhando nesta máquina fisicamente. ∙ É possível executar um programa utilizando os recursos de hardware da máquina remota. TELNET TELNET Correio eletrônico Três componentes principais: ● Agentes de usuário ● Servidores de correio ● Simple mail transfer protocol: SMTP Agente de usuário ● “leitor de correio” ● Composição, edição, leitura de mensagens de correio ● Ex.: Thunderbird, Outlook, Netscape Messenger ● Mensagens de entrada e de saída são armazenadas no servidor Correio eletrônico ● Quando as pessoas compõem mensagens de e-mail, elas normalmente utilizam uma aplicação chamada Mail User Agent (MUA), ou cliente de e-mail. ∙ Permite que mensagens sejam enviadas e coloca as mensagens recebidas na caixa de correio do cliente, ambos sendo processos diferentes. ● Para receber mensagens de e-mail de um servidor de e-mail, o cliente de e-mail pode utilizar o POP ou IMAP. ● Enviar e-mail de um cliente ou servidor utiliza formatos de mensagem e cadeias de comandos definidos pelo protocolo SMTP. Correio eletrônico Correio eletrônico SMTP: protocolo para trocar mensagens de e-mail RFC 822: padrão para mensagens do tipo texto: linhas de cabeçalho, ex.: ● To: ● From: ● Subject: ● diferente dos comandos HTTP corpo ● a “mensagem”, ASCII somente com caracteres header body linha em branco Formato da mensagem de correio Correio eletrônico: SMTP [RFC 821] ● Usa TCP para transferência confiável de mensagens de correio do cliente ao servidor, porta 25 ● Transferência direta: servidor que envia para o servidor que recebe ● Três fases de transferência ● Handshaking (apresentação) ● Transferência de mensagens ● Fechamento ● Interação comando/resposta ● Comandos: texto ASCII ● Resposta: código de status e frase ● Processos de Servidor de E-mail: MTA e MDA ● O servidor de e-mail opera dois processos separados: ● Mail Transfer Agent (MTA) ● Mail Delivery Agent (MDA) ● O processo MTA é utilizado para encaminhar e-mail. Com base no cabeçalho da mensagem, ele determina como uma mensagem tem de ser encaminhada para chegar a seu destino. ● Se a correspondência for endereçada a um usuário cuja caixa de correio fique no servidor local, ela será passada para o MDA. ● Se o e-mail for para um usuário fora do servidor local, o MTA o encaminha para o MTA no servidor em questão. SMTP: entrega e armazena no servidor do destino Protocolo de acesso: recupera mensagens do servidor ●POP: Post Office Protocol [RFC 1939] – Porta 110 Autorização (agente servidor) e download ●IMAP: Internet Mail Access Protocol [RFC 1730] Porta 143 Mais recursos (mais complexo) Manipulação de mensagens armazenadas no servidor ●HTTP: Hotmail, Yahoo! Mail etc. Protocolos de acesso ao correio IMAP POP3 SMTP ● Vírus de E-Mail ● São enviados anexados ao e-mail, comprimidos (.ZIP), documentos (macros) ou executáveis (.EXE). Infecta a vítima quando é acessado ● Antivírus, correções do fabricante e programas comerciais são boas contra-medidas ● Apenas o antivírus não garante a segurança ● Atualização de assinaturas, “Bom Senso” e desconfiança Segurança de E-Mail: Vulnerabilidades • SPAM ● Acrónimo derivado da expressão em inglês Sending and Posting Advertisement in Mass (Enviar e Postar Publicidade em Massa) ● É uma mensagem eletrônica que chega ao usuário sem a sua permissão ou sem seu desejo em recebê-lo. ● Tem um fundo geralmente comercial, mas também pode assumir um viés criminoso. Segurança de E-Mail: Vulnerabilidades Boatos ou Lendas – HOAX • Trata-se de boatos recebidos por e-mail ou compartilhados em redes sociais. Em geral, são mensagens dramáticas ou alarmantes que acompanham imagens chocantes, falam de crianças doentes ou avisam sobre falsos vírus. • Se o hoax for do tipo phishing, o usuário que clicar pode ter seus dados pessoais ou bancários roubados por golpistas. Segurança de E-Mail: Vulnerabilidades ● Assim como os seres humanos, os hosts da Internet podem ser identificados de várias maneiras. ● Por nome de batismo (Fácil de lembrar) ● Por CPF (Fácil de gerenciar) ● Na Internet: por nome do host e por IP ● Um roteador prefere identificar um host pelo endereço IP: ● Por ter comprimento fixo ● Por ser estruturado hierarquicamente DNS: Domain Name System DNS ● O DNS traduz nomes de hosts em endereços IP ● As mensagens DNS normalmente utilizam o protocolo UDP durante a comunicação, através da porta 53 ● É um banco de dados distribuído implementado em: ● Uma hierarquia de servidores de nome e; ● Um protocolo da camada de aplicação que permite que hospedeiros consultem o banco de dados distribuídos. DNS ● É implementado por meio de uma aplicação cliente-servidor. ● Cliente: resolver (conjunto de rotinas em uma implementação de TCP/IP que permite a consulta a um servidor). Ele envia perguntas relativas a informações contidas no DNS a servidores de nomes (nameservers). ● Servidor: geralmente o programa bind ou uma implementação específica de um servidor de DNS (Windows NT). ● No Unix, o serviço DNS é implementado através do software BIND. 64.233.163.99 DNS ● Existem 3 classes de servidores de nomes: ● Servidores de nome raiz (root servers) ● Servidores de alto nível (TLD – Top-Level Domain) ● Servidores DNS com autoridade DNS Servidores Raízes (Root Servers) - Existem 13 espalhados pelo mundo denominados de “A” a “M” ● 10 na América do norte ● 2 na Europa ● 1 no Japão Cada um dos root servers é constituído por um conglomerado de servidores replicados para fins de segurança e confiabilidade. DNS: Servidores de Nomes Raiz ● São contatados pelos servidores de nomes locais que não podem resolver um nome ● Servidores de nomes raiz: ● buscam servidores de nomes autoritativos se o mapeamento do nome não for conhecido ● conseguem o mapeamento ● retornam o mapeamento para o servidor de nomes local b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA e NASA Mt View,CA f Internet Software C. Palo Alto, CA i NORDUnet Stockholm k RIPE London m WIDE Tokyo a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA DNS ● A estrutura de nomes na Internet tem o formato de uma árvore invertida onde a raiz não possui nome. ● Os ramos imediatamente inferiores à raiz são chamados de TLDs (Top-Level Domain Names). ● Responsáveis pelos domínios de alto nível, como por exemplo: com, org, net, edu etc ● Os TLDs que não designam países são utilizados nos EUA. ● Os diversos países utilizam a sua própria designação para as classificações internas: br, uk, fr, ca, jp. ● Cada ramo completo até a raiz é chamado de domínios. ● Um domínio é a área administrativa englobando ele próprio e os subdomínios abaixo dele. DNS ● Os domínios principais genéricos, chamados de GTLDs (Generic Top Level Domain Names) que são .net, .com e .org são administrados pelo Internic (Internet Network Information Center) que também é responsável pela administração do espaço de endereçamento IP. ● Os domínios são completamente independentes da estrutura de rede utilizada, não existe necessariamente algum relacionamento entre eles. DNS ● Servidores com autoridade: Abriga os registros de endereços endereços das organizações. ● Podem ser mantidos por uma organização ou provedor de serviços ● Normalmente, por questões de segurança, são mantidos servidores primários e secundários de DNS DNS Serviços DNS ● Apelidos de hospedeiros ● Nome canônico: ● relay.west-coast.enterprise.com ● Apelido: ● www.enterprise.com ● Apelidos de servidor de correio ● Pode ser chamado para obter o nome canônico a partir de um apelido ● Distribuição de Carga ● Realiza distribuição de carga entre servidores replicados. http://www.enterprise.com/ DNS DNS DNS DNS DNS DNS DNS DNS DNS No exemplo anterior foram enviadas 8 mensagens de DNS: - 4 de consulta - 4 de resposta Consulta recursiva: ∙ Transfere a tarefa de resolução do nome para o servidor de nomes consultado Consulta encadeada: ∙ Servidor contatado responde com o nome de outro servidor de nomes para contato ∙ “Eu não sei isto, mas pergunte a este servidor” Consultas recursivas Mensagens DNS (Name, Value, Type, TTL) Ex.: (ifg.br, 200.17.56.16, NS, 86400) ● TTL: Tempo de atualização da cache (1 dia) Se Type=A, então ● Name=Nome de hospedeiro ● Value=Endereço IP para para o nome dos host Se Type=NS, então ● Name=domínio ● Value=Nome de um servidor com autoridade Mensagens DNS ● (Name, Value, Type, TTL) ● Se Type=CNAME, então ● Name=apelido ● Value=nome canônico de host ● Se Type=MX, então ● Name=apelido ● Value=nome canônico de servidor de email Dúvidas? Contato: christiane.santos@ifg.edu.br