Carregando
0xB0Lição 12 de 15

Acompanhe uma requisição web com segurança

Conecte DNS, transporte, HTTP e TLS em uma requisição do navegador.

30 min Questionário com 8 perguntas
Ao final desta lição, você saberá
  • Ler uma requisição e uma resposta HTTP.
  • Acompanhar uma negociação inicial TLS e explicar o que ela protege.
  • Explicar como uma cadeia de certificados prova a identidade de um servidor.

Chegamos ao topo da pilha, onde os dados finalmente significam algo para uma pessoa. O HTTP é a língua da web. É um simples pedido e resposta: o cliente pergunta e o servidor responde.

A forma de uma mensagem HTTP

GET /lessons?page=2 HTTP/1.1Host: learn.exampleAccept: text/htmlCookie: session=7f3a(sem corpo)Método, alvo, versãoCabeçalhos: metadadosGET em geral não tem corpoHTTP/1.1 200 OKContent-Type: text/htmlCache-Control: max-age=60Content-Length: 1024<!doctype html><title>Lessons</title>…Versão, status, motivoCabeçalhos: metadadosCorpo: o conteúdo
Mensagens HTTP/1.1 são texto legível: uma primeira linha, cabeçalhos, uma linha em branco e um corpo opcional. HTTP/2 e HTTP/3 mantêm o mesmo significado em forma binária.

Um método diz o que o cliente quer fazer: GET lê, POST envia, PUT substitui e DELETE remove. Um código de status diz o que aconteceu, e seu primeiro dígito mostra de quem é o problema.

Experimente

Até 15 XP

Leia o código de status

O primeiro dígito é a chave: 2 significa sucesso, 3 significa procurar em outro lugar, 4 significa que o cliente errou algo e 5 significa que o servidor errou. Classifique cada um conforme quem deve agir em seguida.

0 de 6 classificadosPontuação 0/0
  • “200 OK”

  • “301 Moved Permanently”

  • “404 Not Found”

  • “401 Unauthorized”

  • “503 Service Unavailable”

  • “500 Internal Server Error”

O problema do HTTP simples

Todo roteador, switch e rede Wi-Fi entre você e um servidor manipula seus pacotes. Com HTTP simples, qualquer um deles poderia ler sua senha ou alterar a página. O TLS resolve três coisas de uma vez:

  • Confidencialidade: ninguém no caminho consegue ler os dados.
  • Integridade: ninguém consegue alterá-los sem ser detectado.
  • Autenticação: você sabe que está falando com o servidor verdadeiro.

O HTTPS é simplesmente HTTP rodando dentro de uma conexão TLS.

Experimente

Até 15 XP

Observe uma negociação inicial TLS 1.3

Isto acontece logo depois da negociação inicial do TCP. Repare em como os dois lados chegam a um segredo compartilhado mesmo que qualquer pessoa possa ver as mensagens.

Mensagem 1 de 5Previsões 0/0
Navegador
Servidor

Por que confiar em um certificado?

Qualquer pessoa pode criar um certificado que diz “sou o seu banco”. O que importa é quem o assinou. Seu navegador ou sistema operacional vem com uma lista curta de autoridades certificadoras confiáveis, e todo certificado válido leva a uma delas.

CA raizExample Root CANo SO ou no navegadorCA intermediáriaExample Issuing CAEnviada pelo servidorCertificado do sitelearn.exampleEnviado pelo servidorassinaassinaO que o navegador verificaO certificado nomeia o host da barra de endereços.Hoje está dentro das datas de validade.Toda assinatura leva de volta a uma raiz confiável.
O navegador confia em uma lista curta de autoridades raiz. Cada certificado é assinado pelo anterior, então a confiança desce até o site.

Experimente

Até 15 XP

Encontre o problema na conexão

Cada cartão mostra uma conexão. Clique no que deveria preocupar você e depois confira sua resposta.

Uma página de login (rodada 1 de 3)Sinais encontrados 0/0

Clique em todos os trechos suspeitos. São 2.

URL: http://learn.example/login Certificado: nenhum O formulário envia: password=hunter2

Veja tudo com curl

curl -v imprime cada etapa de uma requisição. Linhas que começam com * são anotações do curl, > é o que ele enviou e < é o que voltou.

Experimente

Até 15 XP

Leia uma requisição de verdade

Clique na linha que responde a cada pergunta.

Rodada 1 de 4: Encontre a versão do protocoloPontuação 0/0

Qual linha mostra a criptografia negociada?

$ curl -v https://learn.example/lessons

Principais conclusões

  • O HTTP é requisição e resposta, e os códigos de status dizem quem deve agir em seguida.

  • O TLS fornece confidencialidade, integridade e autenticação do servidor.

  • Uma cadeia de certificados liga um nome a uma chave, mas não garante a honestidade do site.

Quiz da aula

8 perguntas · aprovação com 6 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…