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:
- Criptografia: Os dados entre o cliente e o servidor são cifrados, tornando-os ilegíveis para observadores externos.
- Integridade dos dados: Verifica-se que os dados não foram alterados durante a transmissão.
- 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":
- 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.
- 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.
- 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.
- 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.
- Change Cipher Spec (Client): O cliente informa ao servidor que está pronto para começar a trocar dados cifrados.
- Finished (Client): O cliente envia uma mensagem cifrada com um hash de todas as mensagens anteriores do Handshake para verificar a integridade.
- 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.
- Finished (Server): O servidor envia uma mensagem cifrada com um hash de todas as mensagens anteriores do Handshake.
- 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.