Anda di halaman 1dari 7

Tendo nos molhado com o farejador de pacotes Wireshark no laboratório introdutório, agora

estamos prontos
usar o Wireshark para investigar protocolos em operação. 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 HTML
arquivos, recuperar arquivos HTML com objetos incorporados e autenticação e segurança
HTTP. Antes
Ao começar esses laboratórios, você pode querer revisar a Seção 2.2 do texto.

1. A interação básica HTTP GET / response

Vamos começar nossa exploração do 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 navegador da web.
2. Inicie o sniffer de pacotes Wireshark, conforme descrito no laboratório introdutório (mas
não ainda começar a captura de pacotes). Digite "http" (apenas as letras, não as aspas) em
a janela de especificação de filtro de exibição, de modo que somente mensagens HTTP
capturadas exibido posteriormente na janela de listagem de pacotes. (Estamos interessados
apenas no HTTP protocolo aqui, e não quer ver a desordem de todos os pacotes capturados).
3. Espere um pouco mais de um minuto (vamos ver o porquê), e então comece o Wireshark
captura de pacotes.
4. Digite o seguinte no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
Seu navegador deve exibir o arquivo HTML simples e de uma linha.
5. Pare a captura de pacotes Wireshark.
Sua janela do Wireshark deve ser semelhante à janela mostrada na Figura 1. Se você não
para executar o Wireshark em uma conexão de rede ativa, você pode baixar um rastreamento
de pacote que foi criado quando os passos acima foram seguidos.
O exemplo na Figura 1 mostra na janela de listagem de pacotes que duas mensagens HTTP
foram capturadas: a mensagem GET (do seu navegador para o servidor web gaia.cs.umass.edu)
e a mensagem de resposta do servidor para o seu navegador. A janela do conteúdo do pacote
mostra detalhes da mensagem selecionada (neste caso, a mensagem HTTP OK, que é
destacada na janela de listagem de pacotes). Lembre-se de que desde que a mensagem HTTP
foi transportada dentro de um segmento TCP, que foi transportado dentro de um datagrama
IP, que foi transportado dentro de um quadro Ethernet, o Wireshark exibe o Frame, Ethernet,
IP e TCP informações de pacotes também. Queremos minimizar a quantidade de dados não
HTTP exibidos (estamos interessado em HTTP aqui, e estará investigando esses outros
protocolos é mais tarde laboratórios), então certifique-se as caixas na extremidade esquerda
das informações de Quadro, Ethernet, IP e TCP têm um sinal de mais ou um ponto de
triângulo (o que significa que há informações ocultas, não exibidas), e a linha HTTP tem um
sinal de menos ou um triângulo apontando para baixo (o que significa que toda a informação
sobre a mensagem HTTP é exibido).

Faça o download do arquivo zip http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip


e extraia o arquivo httpethereal-trace-1.
Os traços neste arquivo zip foram coletados pelo Wireshark em execução em um dos
computadores do autor, enquanto executando as etapas indicadas no laboratório Wireshark.
Depois de ter baixado o rastreamento, você pode carregá-lo Wireshark e visualizar o
rastreamento usando o menu suspenso Arquivo, escolhendo Abrir e, em seguida, selecionando
o http-ethereal-trace1 arquivo de rastreio. A exibição resultante deve ser semelhante à Figura
1. (A interface do usuário do Wireshark exibe apenas um pouco diferentemente em diferentes
sistemas operacionais e em diferentes versões do Wireshark).
(Nota: Você deve ignorar qualquer HTTP GET e resposta para favicon.ico. Se você ver uma
referência a este arquivo, é o seu navegador perguntando automaticamente ao servidor se ele
(o servidor) tem um pequeno arquivo de ícone que deve ser exibido ao lado do URL exibido em
seu navegador. Ignoraremos as referências a esse arquivo desagradável neste laboratório.
Observando as informações nas mensagens HTTP GET e de resposta, responda às perguntas a
seguir. Ao responder as perguntas a seguir, você deve imprimir as mensagens GET e de
resposta (consulte o introdutório do Wireshark Lab para obter uma explicação de como fazer
isso) e indicar em que parte da mensagem você encontrou as informações que respondem às
perguntas a seguir. Ao entregar sua tarefa, anote a saída para que fique claro onde, na saída,
você está obtendo as informações da sua resposta (por exemplo, para nossas turmas,
solicitamos que os alunos marquem cópias em papel com uma
caneta ou anotar cópias eletrônicas com texto em uma fonte colorida).

1. O seu navegador está executando a versão 1.0 ou 1.1 do HTTP? Qual versão do HTTP o
servidor está executando?
2. Que idiomas (se algum) 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 seu 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 navegador?
7. Ao inspecionar os dados brutos na janela de conteúdo do pacote, você vê algum cabeçalho
dentro dos dados que não são exibidos na janela de listagem de pacotes? Se sim, nomeie um. .

Na sua resposta à pergunta 5 acima, você pode ter ficado surpreso ao descobrir que o
documento que você acabou de recuperar foi modificado pela última vez dentro de um minuto
antes de você fazer o download do documento. Isso é porque (para esse arquivo em
particular), o servidor gaia.cs.umass.edu está definindo a hora da última modificação do
arquivo para ser 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, o seu navegador baixará uma “nova” cópia do
o documento.

2. A interação GET / response HTTP CONDITIONAL

Lembre-se da Seção 2.2.6 do texto, que a maioria dos navegadores da Web realiza o cache de
objetos e, assim, executa um GET condicional ao recuperar um objeto HTTP.Antes de executar
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, no Internet
Explorer, selecione Ferramentas-> Opções da Internet-> Excluir arquivo; essas ações
removerão os arquivos em cache do cache do navegador). Os seguintes:

 Inicie o seu navegador da Web e verifique se o cache do seu navegador está limpo, como
discutido acima.
 Iniciar o sniffer de pacotes Wireshark
 Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file2.html
Seu navegador deve exibir um arquivo HTML de cinco linhas muito simples.

5000
 Insira rapidamente o mesmo URL no seu navegador novamente (ou simplesmente selecione
o botão Atualizar seu navegador)
 Pare a captura de pacotes Wireshark e digite “http” na janela de especificação do filtro de
exibição, que apenas mensagens HTTP capturadas serão exibidas posteriormente na janela de
listagem de pacotes.
 (Nota: Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você
pode usar o httpethereal-trace-2 rastreamento de pacotes para responder as perguntas
abaixo; veja a nota de rodapé 1. Este arquivo de rastreamento foi reunidos ao executar as
etapas acima em um dos computadores do autor.)

Responda as seguintes questões:


8. Inspecione o conteúdo da primeira solicitação HTTP GET do seu navegador para o
servidor. Faz você vê uma linha "IF-MODIFIED-SINCE" no HTTP GET?
9. Inspecione o conteúdo da resposta do servidor. O servidor retornou explicitamente o
conteúdo do arquivo? Como você sabe?
10. Agora inspecione o conteúdo da segunda solicitação HTTP GET do seu navegador para o
servidor. Você vê uma linha “IF-MODIFIED-SINCE:” no HTTP GET? Se sim, o que informações
segue o cabeçalho “IF-MODIFIED-SINCE:”?
11. Qual é o código de status HTTP e a frase retornada do servidor em resposta a isso?
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 foram arquivos HTML simples e
curtos. Vamos em seguida, veja o que acontece quando baixamos um longo arquivo
HTML. Faça o seguinte:

Inicie o seu navegador da Web e verifique se o cache do seu navegador está limpo, como
discutido acima.
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
Seu navegador deve exibir a extensa lista de direitos dos EUA.
Interrompa a captura de pacotes Wireshark e digite “http” na janela de especificação de
filtro de exibição, para que apenas as mensagens HTTP capturadas sejam exibidas.
(Observação: Se você não conseguir executar o Wireshark em uma conexão de rede ativa,
poderá usar o rastreamento de pacote httpethereal-trace-3 para responder às perguntas
abaixo; consulte a nota de rodapé 1. Esse arquivo de rastreio foi coletado durante as etapas
acima em um dos computadores do autor.)

Na janela de listagem de pacotes, você deve ver sua mensagem HTTP GET, seguida por uma
resposta TCP de vários pares à sua solicitação HTTP GET. Essa resposta de múltiplos pacotes
merece um pouco de explicação. Lembre-se da Seção 2.2 (veja a Figura 2.9 no texto) que 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 do
nosso HTTP GET, o corpo da entidade na resposta é todo o arquivo HTML solicitado. No nosso
caso aqui, o arquivo HTML é bastante longo e a 4500 bytes é muito grande para caber em um
pacote TCP. A única resposta HTTP a mensagem é assim dividida em várias partes por TCP,
com cada parte sendo contida dentro de um separado Segmento TCP (veja a Figura 1.24 no
texto). Nas versões recentes do Wireshark, o Wireshark indica cada
Segmento TCP como um pacote separado e o fato de que a única resposta HTTP foi
fragmentada vários pacotes TCP são indicados pelo "segmento TCP de uma PDU remontada"
na coluna Informações da tela do Wireshark. Versões anteriores do Wireshark usavam a frase
“Continuação” para indicar que todo o conteúdo de uma mensagem HTTP foi quebrado em
vários segmentos TCP. Aqui que não há mensagem "Continuação" em HTTP!

Responda as seguintes questões:


12. Quantas mensagens de solicitação HTTP GET seu navegador enviou? Qual número de
pacote no rastreio contém a mensagem GET para a conta ou direitos?
13. Qual número de pacote no rastreio contém o código de status e a frase associados a
a resposta à solicitação HTTP GET?
14. Qual é o código de status e a frase na resposta?
15. Quantos segmentos TCP contendo dados eram necessários para transportar o único HTTP
resposta e o texto da Carta de Direitos?

4. Documentos HTML com objetos incorporados

Agora que vimos como o Wireshark exibe o tráfego de pacotes capturados para grandes
arquivos HTML, podemos observar o que acontece quando o navegador faz o download de um
arquivo com objetos incorporados, ou seja, um arquivo que inclui outros objetos (no exemplo
abaixo, arquivos de imagem ) armazenados em outro (s) servidor (es).

Faça o seguinte:
Inicie o seu navegador da Web e verifique se o cache do seu navegador está limpo, como
discutido acima.
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
Seu navegador deve exibir um arquivo HTML curto com duas imagens. Essas duas imagens são
referenciadas no arquivo HTML base. Ou seja, as imagens em si não estão contidas no HTML;
em vez disso, as URLs das imagens estão contidas no arquivo HTML baixado. Como discutido
no livro, seu navegador terá que recuperar esses logotipos dos sites indicados. O logotipo de
nosso editor é recuperado no site www.aw-bc.com. A imagem da capa do nosso quinto
edição (uma das nossas capas favoritas) é armazenada em manic.cs.umass.edu
servidor. Interrompa a captura de pacotes Wireshark e digite “http” na janela de
especificação de filtro de exibição, para que apenas as mensagens HTTP capturadas sejam
exibidas.
(Nota: Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você
pode usar o rastreamento de pacotes httpethereal-trace-4 para responder às perguntas
abaixo; ver nota de rodapé 1. Este arquivo de rastreamento foi recolhida durante a execução
dos passos acima em um
dos computadores do autor.)

Responda as seguintes questões:


16. Quantas mensagens de solicitação HTTP GET o seu navegador enviou? Para quais
endereços da Internet essas solicitações GET foram enviadas?
17. Você pode saber se o seu navegador baixou as duas imagens em série ou se elas foram
baixadas dos dois sites em paralelo? Explicar.

5 Autenticação HTTP

Por fim, 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/wiresharklabs/protected_pages/HTTP-wireshark-file5.html
é protegido por senha. O nome de usuário é
“wireshark-students” (sem as aspas) e a
senha é “network” (novamente, sem as aspas).
Então, vamos acessar esse site "protegido" protegido por senha. Faça o seguinte:
Verifique se o cache do seu navegador está limpo, como discutido acima, e feche o
navegador. Então, inicie seu navegador
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wiresharkfile5.html
Digite o nome de usuário e a senha solicitados na caixa pop-up.
Interrompa a captura de pacotes Wireshark e insira “http” na janela de especificação de
filtro de exibição, para que somente as mensagens HTTP capturadas sejam exibidas
posteriormente na janela de listagem de pacotes.
(Nota: Se você não conseguir rodar o Wireshark em uma conexão de rede ativa, você pode
usar o rastreamento de pacotes httpethereal-trace-5 para responder as perguntas abaixo;
consulte a nota de rodapé 2. Esse arquivo de rastreio foi reunido durante as etapas acima em
um dos computadores do autor.)

Agora vamos examinar a saída do Wireshark. Você pode querer primeiro ler a autenticação
HTTP revisando o material de fácil leitura em “HTTP Access Authentication Framework” em
http://frontier.userland.com/stories/storyReader$2159

Responda as seguintes questões:


18. Qual é a resposta do servidor (código de status e frase) em resposta à mensagem HTTP GET
inicial do seu navegador?
19. Quando o seu navegador envia a mensagem HTTP GET pela segunda vez, que novo campo
é incluído na mensagem HTTP GET?
http://gaia.cs.umass.edu/wireshark-labs/protected_pages/HTTP-wiresharkfile5.html

Digite o nome de usuário e a senha solicitados na caixa pop-up.


Interrompa a captura de pacotes Wireshark e insira “http” na janela de especificação de
filtro de exibição, para que somente as mensagens HTTP capturadas sejam exibidas
posteriormente na janela de listagem de pacotes.
(Nota: Se você não conseguir rodar o Wireshark em uma conexão de rede ativa, você pode
usar o rastreamento de pacotes httpethereal-trace-5 para responder as perguntas abaixo;
consulte a nota de rodapé 2. Esse arquivo de rastreio foi reunido durante as etapas acima em
um dos computadores do autor.)
Verifique se o cache do seu navegador está limpo, como discutido acima, e feche o
navegador. Então, inicie seu navegador
Iniciar o sniffer de pacotes Wireshark
Insira o seguinte URL no seu navegador
O nome de usuário (wireshark-students) e a senha (rede) que você digitou estão codificados na
cadeia 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 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. Voila! Você
traduziu da codificação Base64 para a codificação ASCII e, portanto, deve ver seu nome de
usuário! Para visualizar a senha, insira o restante da string Om5ldHdvcms = e pressione
decodificar. Já que qualquer um pode baixar uma ferramenta como o Wireshark e cheirar
pacotes (não apenas os seus próprios) passando pelo seu adaptador de rede, e qualquer um
pode traduzir de Base64 para ASCII (você acabou de fazê-lo!), deve ficar claro para você que
senhas simples em sites WWW não são seguras a menos que medidas adicionais sejam
tomadas.
Não tenha medo! Como veremos no Capítulo 8, existem maneiras de tornar o acesso à WWW
mais seguro. No entanto, precisamos claramente de algo que vai além da estrutura básica de
autenticação HTTP!