Sobes.tech
Junior

Como funciona o HTTPS?

sobes.tech IA

Resposta da IA

O HTTPS (Protocolo de Transferência de Hipertexto Seguro) é um protocolo que garante a transmissão segura de dados entre o cliente (por exemplo, um navegador) e o servidor. Baseia-se no HTTP, mas utiliza criptografia para proteger as informações transmitidas.

O funcionamento do HTTPS baseia-se na utilização do protocolo TLS (Transport Layer Security), anteriormente chamado SSL (Secure Sockets Layer). TLS/SSL garante três aspetos-chave de segurança:

  1. Criptografia: Os dados entre o cliente e o servidor são cifrados, tornando-os ilegíveis para observadores externos.
  2. Integridade dos dados: Verifica-se que os dados não foram alterados durante a transmissão.
  3. Autenticação: O servidor confirma a sua autenticidade ao cliente.

O processo de estabelecimento de uma ligação HTTPS inclui várias etapas, chamadas "TLS/SSL Handshake":

  1. Client Hello: O cliente envia ao servidor um "Client Hello" contendo:
    • A versão de TLS suportada.
    • A lista de algoritmos de cifragem suportados.
    • Um número aleatório.
  2. Server Hello: O servidor responde com um "Server Hello", escolhendo entre as opções propostas pelo cliente:
    • A versão de TLS.
    • Uma das algoritmos de cifragem.
    • Um número aleatório.
    • O certificado do servidor.
  3. Certificate: O cliente recebe e verifica a autenticidade do certificado do servidor:
    • Verifica a assinatura digital do certificado usando a chave pública da autoridade de certificação (CA).
    • Verifica a validade do certificado.
    • Verifica se o nome de domínio no certificado corresponde ao solicitado.
  4. Client Key Exchange: O cliente gera um pré-mestre secreto, cifra-o com a chave pública do certificado do servidor e envia ao servidor.
  5. Change Cipher Spec (Client): O cliente informa ao servidor que está pronto para começar a trocar dados cifrados.
  6. Finished (Client): O cliente envia uma mensagem cifrada com um hash de todas as mensagens anteriores do Handshake para verificar a integridade.
  7. Change Cipher Spec (Server): O servidor decifra o pré-mestre secreto usando a sua chave privada e gera chaves simétricas para cifrar a sessão. Depois, informa o cliente que está pronto para trocar dados cifrados.
  8. Finished (Server): O servidor envia uma mensagem cifrada com um hash de todas as mensagens anteriores do Handshake.
  9. Transferência de dados cifrados: Após completar com sucesso o Handshake, o cliente e o servidor usam as chaves simétricas geradas para cifrar todos os dados posteriores.

Desta forma, o HTTPS fornece um canal de comunicação seguro, tornando a navegação na web mais segura.