Protocolo HTTPs
HTTPs (Hyper Text Transfer Protocol Secure) é a versão segura do HTTP, que é utilizado para a transferência de dados na web.
O HTTPs utiliza criptografia SSL/TLS (Secure Sockets Layer/Transport Layer Security) para garantir que a comunicação entre o cliente e o servidor seja segura e protegida contra interceptações.
Vamos detalhar passo a passo como uma conexão HTTPs é estabelecida e como as informações são trocadas:
Client Hello:
O cliente (por exemplo, um navegador web) envia uma mensagem "Client Hello" para o servidor. Esta mensagem inclui uma lista de algoritmos de criptografia (ciphers) que o cliente suporta e algumas outras informações necessárias para iniciar a comunicação segura.
Server Hello:
O servidor responde com uma mensagem "Server Hello", na qual escolhe um dos algoritmos de criptografia propostos pelo cliente. O servidor também envia seu certificado digital, que inclui a chave pública do servidor e a identidade do servidor.
Troca de Chaves:
O cliente verifica a validade do certificado do servidor. Se o certificado for considerado válido, o cliente gera uma chave secreta aleatória e a criptografa usando a chave pública do servidor. Esta chave secreta criptografada é então enviada ao servidor.
O servidor utiliza sua chave privada para decriptografar a chave secreta enviada pelo cliente. Agora, tanto o cliente quanto o servidor possuem a mesma chave secreta.
Estabelecimento da Sessão Segura:
Com a chave secreta em comum, o cliente e o servidor estabelecem uma conexão segura e criptografada. Todos os dados transmitidos após este ponto são criptografados usando essa chave secreta, garantindo a confidencialidade e a integridade dos dados.
Requisição HTTP GET:
O cliente envia uma requisição HTTP GET criptografada, solicitando um recurso específico do servidor (por exemplo, uma página HTML).
Resposta HTTP:
O servidor responde com uma mensagem HTTP criptografada que inclui o código de status HTTP 200 OK e o conteúdo HTML solicitado pelo cliente.
O TLS é o protocolo de criptografia que garante a segurança das comunicações na web. Ele substituiu o antigo SSL (Secure Sockets Layer) e é amplamente utilizado para proteger dados transmitidos entre clientes e servidores. O TLS fornece autenticação, privacidade e integridade dos dados, tornando as comunicações seguras contra ataques e interceptações.