You are on page 1of 7

Wireshark Lab: HTTP

Verso 1.1 2005 KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2008 BATISTA, O. M. N. Traduo e adaptao para Wireshark. Tendo molhado os nossos ps com o Wireshark no laboratrio introdutrio, agora estamos prontos para utilizar o Wireshark para investigar protocolos em operao. Neste laboratrio, exploraremos vrios aspectos do protocolo HTTP: a interao bsica GET/resposta do HTTP, formatos de mensagens HTTP, baixando arquivos grandes em HTML, baixando arquivos em HTML com objetos includos, e autenticao e segurana HTTP. Antes de iniciar este laboratrio, voc deve reler a seo 2.2 do livro. 1. A Interao Bsica GET/Resposta do HTTP Vamos iniciar a nossa explorao do HTTP baixando um arquivo em HTML simples bastante pequeno, que no contm objetos includos. Faa o seguinte: inicie o navegador; inicie o Wireshark, como descrito no laboratrio introdutrio (mas no inicie a captura de pacotes ainda). Digite http.request or http.response (somente as letras, sem as aspas) na caixa de texto de especificao do filtro de exibio, de tal forma que apenas as mensagens HTTP capturadas sero exibidas na janela de listagem de pacotes. (S estamos interessados em HTTP desta vez, e no desejamos ver todos os pacotes capturados);

inicie a captura de pacotes digite o seguinte URL no navegador (figura 1) http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file1.html pare a captura de pacotes.

Figura 1. Janela do navegador.

A janela do Wireshark deve estar parecida com a janela exibida na figura 2.

Figura 2. Requisio e Resposta HTTP.

O exemplo da figura 2 mostra na janela de listagem de pacotes duas mensagens HTTP

capturadas:

mensagem

GET

(do

seu

navegador

para

servidor

web

gaia.cs.umass.edu.web) e a mensagem de resposta do servidor para o seu navegador. A janela de contedos de pacotes mostra detalhes da mensagem selecionada (neste caso a mensagem HTTP GET, que est em destaque na janela de listagem de pacotes). Lembrese de que a mensagem HTTP transportada em um segmento TCP, que carregado em um datagrama IP, que levado em um quadro Ethernet. O Wireshark exibe informaes sobre o quadro, IP, TCP e HTTP. Voc deve expandir as informaes do HTTP clicando na seta ao lado esquerdo de Hypertext Transfer Protocol. Observando as informaes das mensagens HTTP GET e de resposta, responda s seguintes perguntas. Quando responder s questes, voc deve imprimir as mensagens GET e a resposta (veja a aula introdutria para saber como fazer isso) e indicar em que parte da mensagem voc encontrou a informao que responde s questes. 1. O seu navegador executa HTTP 1.0 ou 1.1? Qual a verso de HTTP do servidor? 2. Quais linguagens (se alguma) o seu navegador indica que pode aceitar ao servidor? 3. Qual o endereo IP do seu computador? E do servidor gaia.cs.umass.edu? 4. Qual o cdigo de status retornado do servidor para o seu navegador? 5. Quando o arquivo em HTML que voc baixou foi modificado no servidor pela ltima vez? 6. Quantos bytes de contedo so retornados ao seu navegador? 7. Inspecionando os dados na janela de contedo do pacote, voc v algum cabealho dentro dos dados que no so exibidos na janela de listagem de pacotes? Caso a resposta seja afirmativa, indique um. Na sua resposta questo 5 acima, voc deve ter se surpreendido em descobrir que o documento que voc recebeu foi modificado pela ltima vez cerca de um minuto antes de voc baix-lo. Isso ocorre porque (para este arquivo particular), o servidor gaia.cs.umass.edu est atribuindo a hora de ltima modificao do arquivo para a hora atual, e faz isso uma vez por minuto. Assim, se voc aguardar um minuto entre os acessos, o arquivo aparecer como modificado recentemente, e desta forma o seu navegador baixar uma nova cpia do documento. 2. A Interao HTTP GET Condicional/Resposta Lembre-se da seo 2.2.5 do livro que a maioria dos navegadores web tem um cache e, desta forma, realizam GET condicional quando baixam um objeto HTTP. Antes de realizar

os passos a seguir, apague o contedo do cache do seu navegador: inicie o navegador web, e certifique-se de que o cache seja apagado; inicie o Wireshark; digite o URL no navegador http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file2 seu navegador deve exibir um arquivo em HTML muito simples com cinco linhas;

pressione o boto refresh no navegador (ou digite o URL novamente); pare a captura de pacotes, e digite http na caixa de texto de especificao de filtro, para que apenas as mensagens HTTP sejam apresentadas na janela de listagem de pacotes.

Responda s seguintes questes: 8. Inspecione o contedo da primeira mensagem HTTP GET do seu navegador para o servidor. Voc v uma linha IF-MODIFIED-SINCE? 9. Inspecione o contedo da resposta do servidor. O servidor retornou explicitamente o contedo do arquivo? Como voc pode dizer isso? 10. Agora inspecione o contedo da segunda mensagem HTTP GET do seu navegador para o servidor. Voc v uma linha IF-MODIFIED-SINCE? Caso a resposta seja afirmativa, qual informao segue o cabealho IF-MODIFIED-SINCE? 11. Qual o cdigo de status e a frase retornada do servidor na resposta segunda mensagem HTTP GET? O servidor retornou explicitamente o contedo do arquivo? Explique. 3. Baixando Documentos Longos Nos exemplos at agora, os documentos baixados foram simples e pequenos arquivos em HTML. Vamos ver o que acontece quando baixamos um arquivo em HTML grande. Faa o seguinte: inicie o navegador web, certifique-se de que o cache seja apagado; inicie o Wireshark; digite o URL no navegador http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file3 seu navegador deve exibir um documento bastante longo;

pare a captura de pacotes, e digite http na caixa de texto de especificao de filtro, para que apenas as mensagens HTTP seja exibidas.

Na janela de listagem de pacotes, voc deve ver a sua mensagem HTTP GET, seguida por uma reposta em vrios pacotes. Esta resposta em vrios pacotes merece uma explicao. Lembre-se da seo 2.2 do livro (veja a figura 2.9) que a mensagem de resposta HTTP consiste de uma linha de status, seguida por zero ou mais linhas de cabealhos, seguida por uma linha em branco, seguida pela carga til. No caso da nossa HTTP GET, a carga til na resposta o arquivo HTTP completo. No nosso caso aqui, o arquivo em HTML bastante longo, e a 4500 bytes muito grande para caber em um segmento TCP. A resposta HTTP simples ento quebrada em vrios pedaos pelo TCP, com cada pedao sendo contido dentro de um segmento TCP separado (veja a figura 1.22 no livro). Cada segmento TCP capturado em um pacote separado pelo Wireshark, e o fato de que uma simples resposta foi fragmentada em vrios segmentos TCP indicada pela palavra Continuation exibida no Wireshark. Vale salientar que no h uma mensagem Continuationem HTTP! Responda s seguintes questes: 12. Quantas mensagens HTTP GET foram enviadas pelo seu navegador? 13. Quantos segmentos TCP foram necessrios para carregar a resposta? 14. Qual o cdigo de status e a frase associada com a resposta mensagem HTTP GET? 15. H alguma linha de status HTTP nos dados transmitidos associados com um Continuation TCP? 4. Documentos HTML com Objetos Includos Agora que vimos como o Wireshark mostra o trfego capturado para arquivos em HTML grandes, ns podemos observar o que acontece quando o seu browser baixa um arquivo com objetos includos, no nosso exemplo, imagens que esto armazenadas em outros servidores. Faa o seguinte: inicie o navegador web, certifique-se de que o cache seja apagado; inicie o Wireshark; digite o URL no navegador

http://gaia.cs.umass.edu/ethereal-labs/HTTP-ethereal-file4 seu navegador deve exibir um arquivo pequeno em HTML com duas imagens includas. Estas duas imagens esto referenciadas no arquivo em HTML. Isto , as imagens no esto no arquivo em HTML, ao invs disso, h um URL para cada imagem no arquivo em HTML. Como discutido no livro, seu navegador ter que baixar estas imagens dos locais correspondentes. A imagem com a logomarca da editora est em www.awl.com. A imagem com a capa do livro est em maniac.cs.umass.edu;

pare a captura de pacotes, e digite http na caixa de texto de especificao de filtro, para que apenas as mensagens HTTP seja exibidas.

Responda s seguintes questes: 16. Quantas mensagens HTTP GET foram enviadas pelo seu navegador? Para quais endereos na Internet estas mensagens foram enviadas? 17. Voc consegue dizer se o seu navegador baixou as duas imagens em seqncia, ou se foram baixadas dos dois locais distintos em paralelo? Explique. 5. Autenticao HTTP Finalmente, vamos tentar visitar um local na web que protegido por senha e examinar a seqncia de mensagens HTTP trocadas com este local. O URL http://gaia.cs.umass.edu/ ethereal-labs/protected_pages/HTTP-ethereal-file5 protegido por senha. O usurio eth-students (sem as aspas), e a senha networks (novamente, sem as aspas). Ento vamos acessar o local protegido por senha. Faa o seguinte: inicie o navegador web, certifique-se de que o cache seja apagado; inicie o Wireshark; digite o URL no navegador http://gaia.cs.umass.edu/ethereal-labs/protected_pages/HTTP-ethereal-file5 seu navegador deve exibir um documento bastante longo;

pare a captura de pacotes, e digite http na caixa de texto de especificao de filtro, para que apenas as mensagens HTTP seja exibidas.

Agora vamos examinar a sada do Wireshark. Voc pode querer primeiro ler sobre a

autenticao HTTP revisando o material fcil de ler (em ingls) HTTP Access Authentication Framework em http://frontier.userland.com/stories/storyReader$2159 Responda s seguintes questes: 18. Qual a resposta do servidor (cdigo de status e frase) para a primeiro mensagem HTTP GET do seu navegador? 19. Quando o seu navegador envia a mensagem HTTP GET pela segunda vez, qual o novo campo que est includo na mensagem? O nome de usurio (eth-students) e a senha (network) que voc digitou foram codificados na cadeia de caracteres (ZXRoLXN0dWRlbnRzOm5ldHdvcmtz) aps o cabealho Authorization: Basic na mensagem HTTP GET. Parece que o nome e senha esto criptografados, mas na verdade esto simplesmente codificados em um formato denominado Base64. O nome do usurio e a senha no esto criptografados! Para ver isso, v para http://www.securitystats.com/tools/base64.php e digite o texto ZXRoLXN0dWRlbnRzOm5ldHdvcmtz e pressione decode. Voil! Voc traduziu de Base64 para ASCII, e desta forma consegue ver o nome de usurio e a senha! Sabendo que algum pode baixar o Wireshark e capturar pacotes (no somente os prprios), e algum pode traduzir de Base64 para ASCII (voc acabou de faz-lo!), deve estar claro para voc que o uso de senhas apenas em locais na web no garantem segurana, a no ser que medidas adicionais sejam tomadas. No tema! Como veremos no captulo 7, h meios de fazer o acesso WWW ser mais seguro. Contudo, ns claramente precisamos de algo que v alm do framework bsico de autenticao HTTP!

You might also like