Baixe o app para aproveitar ainda mais
Prévia do material em texto
Wireshark Lab: HTTP v8.0 Supplement to Computer Networking: A Top-Down Approach, 8th ed., J.F. Kurose and K.W. Ross “Tell me and I forget. Show me and I remember. Involve me and I understand.” Chinese proverb © 2005-2020, J.F Kurose and K.W. Ross, All Rights Reserved Neste laboratório, exploraremos vários aspectos do protocolo HTTP: a interação GET / resposta básica, formatos de mensagem HTTP, recuperação de grandes arquivos HTML, recuperação de arquivos HTML com objetos incorporados e autenticação e segurança HTTP. 1. A interação HTTP GET / resposta básica Vamos começar nossa exploração de HTTP baixando um arquivo HTML muito simples - um que é muito curto e não contém objetos incorporados. Faça o seguinte: 1. Inicie o seu browser. 2. Inicie o Wireshark, conforme descrito no laboratório introdutório (mas ainda não comece a captura de pacotes). Digite “http” (apenas as letras, não as aspas) na janela de especificação do filtro de exibição, de forma que apenas as mensagens HTTP capturadas sejam exibidas posteriormente na janela de listagem de pacotes. (Estamos apenas interessados no protocolo HTTP aqui e não queremos ver a desordem de todos os pacotes capturados). 3. Espere um pouco mais de um minuto (veremos o porquê em breve) e, em seguida, comece a captura de pacotes Wireshark. 4. Digite o seguinte no seu browser http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html 5. Seu navegador deve exibir um arquivo HTML muito simples de uma linha. 6. Pare a captura de pacotes Wireshark. A janela Wireshark deve ser semelhante à janela mostrada na Figura 1. 1 Figure 1: Wireshark Display after http://gaia.cs.umass.edu/wireshark-labs/ HTTP- wireshark-file1.html has been retrieved by your browser O exemplo na Figura 1 mostra na janela de listagem de pacotes que duas mensagens HTTP foram capturadas: a mensagem GET (de seu navegador para o servidor da web gaia.cs.umass.edu) e a mensagem de resposta do servidor para seu navegador. A janela de conteúdo do pacote mostra detalhes da mensagem selecionada (neste caso, a mensagem HTTP OK, que é destacada na janela de lista de pacotes). Lembre-se de que, como a mensagem HTTP era transportada dentro de um segmento TCP, que era transportado dentro de um datagrama IP, que era transportado dentro de um frame Ethernet, o Wireshark também exibe as informações do Frame, Ethernet, IP e pacotes TCP. Queremos minimizar a quantidade de dados não HTTP exibidos (estamos interessados em HTTP aqui, e investigaremos esses outros protocolos em laboratórios posteriores), portanto, certifique-se de que as caixas na extremidade esquerda de Frame, Ethernet, IP e as informações de TCP têm um sinal de mais ou um triângulo apontando para a direita (o que significa que há informações ocultas e não exibidas) e a linha HTTP tem um sinal de menos ou um triângulo apontando para baixo (o que significa que todas as informações sobre a mensagem HTTP são exibidas). Observando as informações nas mensagens HTTP GET e de resposta do servidor, responda às perguntas que se seguem. Ao responder às perguntas a seguir, deve imprimir 2 as mensagens GET e de resposta e indicar onde na mensagem encontrou as informações que respondem às seguintes perguntas. 1. Seu browser está executando HTTP versão 1.0 ou 1.1? Qual versão de HTTP o servidor está executando? 2. Quais idiomas (se houver) seu navegador indica que pode aceitar para o servidor? 3. Qual é o endereço IP do seu computador? Do servidor gaia.cs.umass.edu? 4. Qual é o código de status retornado do servidor para o navegador? 5. Quando o arquivo HTML que você está recuperando foi modificado pela última vez no servidor? 6. Quantos bytes de conteúdo estão sendo retornados ao seu browser? 7. Ao inspecionar os dados brutos na janela de conteúdo do pacote, você vê algum cabeçalho nos dados que não são exibidos na janela de listagem de pacotes? Se sim, diga um. Em sua resposta à pergunta 5 acima, você pode ter se surpreendido ao descobrir que o documento que acabou de recuperar foi modificado pela última vez um minuto antes de você fazer o download. Isso porque (para este arquivo em particular), o servidor gaia.cs.umass.edu está definindo a hora da última modificação do arquivo como a hora atual, e está fazendo isso uma vez por minuto. Assim, se você esperar um minuto entre os acessos, o arquivo parecerá ter sido modificado recentemente e, portanto, seu navegador fará o download de uma “nova” cópia do documento. 2. A interação HTTP GET / resposta CONDICIONAL A maioria dos browser web executa o cache de objetos e, portanto, executa um GET condicional ao recuperar um objeto HTTP. Antes de realizar as etapas abaixo, verifique se o cache do seu navegador está vazio. (Para fazer isso no Firefox, selecione Ferramentas-> Limpar histórico recente e marque a caixa Cache, ou para o Internet Explorer, selecione Ferramentas-> Opções da Internet-> Excluir arquivo; essas ações removerão os arquivos em cache do cache do seu navegador.) Agora faça o seguinte: Inicie o browser web e certifique-se de que o cache do navegador esteja limpo, conforme discutido acima. Insira o seguinte URL em seu navegador http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html Seu browser deve exibir um arquivo HTML de cinco linhas muito simples. Insira rapidamente a mesma URL em seu browser novamente (ou simplesmente selecione o botão Atualizar em seu browser) Pare a captura de pacotes do Wireshark e digite “http” na janela de especificação do filtro de exibição, de forma que apenas as mensagens HTTP capturadas sejam exibidas posteriormente na janela de listagem de pacotes. Responda as seguintes perguntas: 3 1. Inspecione o conteúdo da primeira solicitação HTTP GET de seu browser para o servidor. Você vê uma linha “IF-MODIFIED-SINCE” no HTTP GET? 2. Inspecione o conteúdo da resposta do servidor. O servidor retornou explicitamente o conteúdo do arquivo? Como você sabe? 3. Agora inspecione o conteúdo da segunda solicitação HTTP GET de seu navegador para o servidor. Você vê uma linha “IF-MODIFIED-SINCE:” no HTTP GET? Em caso afirmativo, quais informações seguem o cabeçalho “IF- MODIFIED-SINCE:”? 4. Qual é o código de status HTTP e a frase retornada do servidor em resposta a este segundo HTTP GET? O servidor retornou explicitamente o conteúdo do arquivo? Explicar. 3. Recuperando Documentos Longos Em nossos exemplos até agora, os documentos recuperados eram arquivos HTML simples e curtos. Vamos ver a seguir o que acontece quando baixamos um arquivo HTML longo. Faça o seguinte: No seru broser web e certifique-se de que o cache do navegador esteja limpo, conforme discutido acima. Insira o seguinte URL em seu navegador http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html Seu browser deve exibir a Declaração de Direitos dos EUA. Pare a captura de pacotes Wireshark e digite “http” na janela de especificação do filtro de exibição, de forma que apenas as mensagens HTTP capturadas sejam exibidas. Na janela de listagem de pacotes, você deve ver sua mensagem HTTP GET, seguida por uma resposta TCP de vários pacotes à sua solicitação HTTP GET. Essa resposta de pacote múltiplo é explicado melhor a seguir. A mensagem de resposta HTTP consiste em uma linha de status, seguida por linhas de cabeçalho, seguida por uma linha em branco, seguida pelo corpo da entidade. No caso de nosso HTTP GET, o corpo da entidade na resposta é todo o arquivo HTML solicitado. Em nosso caso aqui, o arquivo HTML é bastante longo e com 4500 bytes muito grande para caber em um pacote TCP. A mensagem de resposta HTTP é, portanto, dividida em várias partes pelo TCP, com cada parte contida em um segmento TCP separado. Responda as seguintes questões: 1. Quantas mensagens de solicitação HTTP GET seu browser enviou? Qual número de pacote no rastreamentocontém a mensagem GET para o “Bill or Rights”? 2. Qual número de pacote no rastreamento contém o código de status e a frase associada à resposta à solicitação HTTP GET? 4 3. Qual é o código de status e a frase na resposta? 4. Quantos segmentos TCP contendo dados foram necessários para transportar a única resposta HTTP e o texto da Declaração de Direitos? 4. Documentos HTML com objetos incorporados Agora que vimos como o Wireshark exibe o tráfego de pacote capturado para grandes arquivos HTML, podemos ver o que acontece quando seu browser baixa um arquivo com objetos incorporados, ou seja, um arquivo que inclui outros objetos (no exemplo abaixo, arquivos de imagem ) que estão armazenados em outro (s) servidor (es). Faça o seguinte: • No seu browser web, certifique-se de que o cache do navegador esteja limpo, conforme discutido acima. • Insira o seguinte URL em seu broser http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html Seu browser deve exibir um pequeno arquivo HTML com duas imagens. Essas duas imagens são referenciadas no arquivo HTML de base. Ou seja, as próprias imagens não estão contidas no HTML; em vez disso, os URLs das imagens estão contidos no arquivo HTML baixado. Conforme discutido no livro, seu navegador terá que recuperar esses logotipos dos sites indicados. O logotipo de nosso editor é obtido no site gaia.cs.umass.edu. A imagem da capa de nossa 5ª edição (uma de nossas capas favoritas) está armazenada no servidor caite.cs.umass.edu. (Esses são dois servidores web diferentes dentro de cs.umass.edu). • Pare a captura de pacotes Wireshark e digite “http” na janela de especificação do filtro de exibição, de forma que apenas as mensagens HTTP capturadas sejam exibidas. Responda as seguintes questões: 1. Quantas mensagens de solicitação HTTP GET seu browser enviou? Para quais endereços de Internet essas solicitações GET foram enviadas? 2. Você pode dizer se o seu broser baixou as duas imagens em série ou se elas foram baixadas dos dois sites em paralelo? Explicar. 5 Autenticação HTTP Finalmente, vamos tentar visitar um site protegido por senha e examinar a sequência de mensagens HTTP trocadas por esse site. O URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html 5 http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html é protegido por senha. O nome de usuário é “threadshark-students” (sem as aspas), e a senha é “network” (novamente, sem as aspas). Então, vamos aceder este site "seguro" protegido por senha. Faça o seguinte: Certifique-se de que o cache do browser esteja limpo, conforme discutido acima, e feche o navegador. Volte a iniciar seu browser e insira o seguinte URL http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark- file5.html Digite o nome de usuário e a senha solicitados Pare a captura de pacotes do Wireshark e digite “http” na janela de especificação do filtro de exibição, para que apenas as mensagens HTTP capturadas sejam exibidas posteriormente na janela de listagem de pacotes. Agora vamos examinar a saída do Wireshark. Deverá primeiro ler sobre autenticação HTTP revisando o material disponível em “Estrutura de autenticação de acesso HTTP” no Classroom ou em em http://frontier.userland.com/stories/storyReader$2159 Responda as seguintes questões: 1. 5. Qual é a resposta do servidor (código de status e frase) em resposta à mensagem HTTP GET inicial do seu browser? 2. 6. Quando o seu browser envia a mensagem HTTP GET pela segunda vez, qual novo campo é incluído na mensagem HTTP GET? O username (wireshark-students) e a password (network) que inseriu são codificados na sequência de caracteres (d2lyZXNoYXJrLXN0dWRlbnRzOm5ldHdvcms =) seguindo o cabeçalho "Autorização: Básico" na mensagem HTTP GET do cliente. Embora possa parecer que seu nome de usuário e senha estão criptografados, eles são simplesmente codificados em um formato conhecido como formato Base64. O nome de usuário e a senha não são criptografados! Para ver isso, vá para http://www.motobit.com/util/base64-decoder-encoder.asp e insira a string codificada em base64 d2lyZXNoYXJrLXN0dWRlbnRz e decodifique. Você traduziu da codificação Base64 para a codificação ASCII e, portanto, deve ver seu nome de usuário! Para ver a senha, digite o restante da string Om5ldHdvcms = e pressione decodificar. Uma vez que qualquer um pode baixar uma ferramenta como o Wireshark e pacotes sniff (não apenas os seus) passando pelo adaptador de rede, e qualquer um pode traduzir de Base64 para ASCII (você acabou de fazer isso!), Deve ficar claro para você que senhas simples na WWW os sites não são seguros, a menos que sejam tomadas medidas adicionais. 6 http://frontier.userland.com/stories/storyReader$2159 http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wireshark-file5.html
Compartilhar