Qual a diferença entre HTTP e HTTPS?

, , No Comments

Quando acessamos sites de banco ou lojas virtuais para realizar transações financeiras, recebemos inúmeros avisos para verificar o cadeado de segurança ou observar a sigla HTTPS na barra de endereços do navegador. Nesse artigo, o TechTudo explicou a importância do HTTPS na Internet e quais as principais vantagens e desvantagens de usar o HTTPS, tanto para o usuário quanto para o servidor do serviço na Web.

Exemplo de sites com HTTPS e certificado (Foto: Reprodução / Cert.br)Exemplo de sites com HTTPS e certificado (Foto: Reprodução / Cert.br)




O protocolo de transferência de hipertexto (HTTP – HyperText Transfer Protocol) é o protocolo padrão para a Web. Através dele, os navegadores requisitam as páginas da Web e as recebem. Dessa forma, o HTTP define, entre outras formalidades, como são requisitadas as páginas da Web, como são enviados os dados que o usuário insere em formulários e como o servidor envia mensagens de erro para o navegador do usuário. No entanto, como o HTTP é um protocolo baseado em texto, ou seja, toda a informação transmitida está em texto, os dados do usuário e do servidor podem ser interceptados ou alterados no meio do caminho.
Nesse contexto, um usuário na rede pode interceptar os seus dados e lê-los ou, pior, alterar a página que você recebe ou a informação que envia para o servidor. De fato, problemas mais graves e imediatos podem acontecer com transações financeiras, como é o caso de uma transferência bancária. Se o site do banco fosse com HTTP e um usuário mal-intencionado desejasse alterar uma ordem de transferência para depositar o dinheiro na conta dele, esse usuário poderia fazer tranquilamente, pois não há nenhum mecanismo de segurança no protocolo HTTP.
Tirinha ilustrando um usuário sendo enganado por um usuário malicioso (Foto: Reprodução / Eilicito.wordpress.com)Tirinha ilustrando um usuário sendo enganado
por um usuário malicioso (Foto: Reprodução)
Com o uso do HTTPS, que é o HTTP seguro, adiciona-se alguns princípios de segurança, como confidencialidade, integridade e autenticação. Por confidencialidade, entende-se que a mensagem só é lida pelo destinatário real da mensagem. A integridade representa que a mensagem não foi alterada e o princípio da autenticação prova que o servidor é realmente quem diz ser. Nesse artigo, apresenta-se, portanto, os mecanismos utilizados pelo HTTPS para atingir esses três princípios básicos.
A maioria das explicações resume o HTTPS como um HTTP com o SSL (Secure Sockets Layer) ou, seu sucessor, o TLS (Transport Layer Security). TLS ou SSL são camadas de segurança que fornecem confidencialidade e integridade. No entanto, a autenticação dos sites da Web é feita pelos certificados e pela infraestrutura de chaves públicas da Internet. No entanto, neste artigo, abordaremos as questões mais conceituais. A base do TLS/SSL e dos certificados da Internet é a criptografia.
Para a construção de um Website com HTTPS, o administrador do site precisa criar um par de chaves, uma pública e uma privada. Assim, quando um usuário solicita uma conexão com esse site, o servidor envia a sua chave pública para o usuário. De posse da chave pública, o usuário pode se comunicar com o servidor, garantindo que todas as mensagens enviadas para o servidor somente serão lidas pelo servidor, pois apenas o servidor possui a chave privada. Basta, para isso, que o navegador do usuário encripte todas as requisições e decripte as respostas recebidas com a chave pública do servidor.
Dessa forma, garante-se a confidencialidade, pois o usuário tem certeza que apenas o servidor vai receber suas mensagens e que foi o servidor quem enviou aquela mensagem. De fato, o procedimento na prática é mais complexo, pois utilizar o par de chaves assimétricas para a troca de dados demanda muito processamento. Então, no início da conexão, o servidor e o usuário combinam uma chave simétrica única e aleatória para a conexão. Na prática, é a mesma segurança, pois só os dois conhecem a chave simétrica.
Para garantir a integridade, o TLS/SSL adiciona a cada mensagem, seja ela requisição ou resposta, um código. Esse código é denominado MAC (Message Authentication Code) e busca permitir ao destinatário detectar se a mensagem foi alterada. Seu funcionamento é simples. Calcula-se um resumo (Hash) de cada mensagem e envia-se esse resumo junto com a mensagem. Assim, quando o destinatário receber a mensagem, deve calcular o mesmo resumo e verificar se o resumo calculado é igual ao recebido. Se for igual, a mensagem não foi alterada, mas se for diferente, o destinatário deve descartar a mensagem e pedir uma nova.
Exemplo de site com HTTPS, mas com certificado não autenticado (Foto: Reprodução / Microsoft.com)Exemplo de site com HTTPS, mas com certificado não autenticado (Foto: Reprodução/Microsoft.com)
Assim, com o TLS/SSL adicionado ao HTTP, o HTTPS garante tanto a confidencialidade quanto a integridade das requisições e respostas do protocolo. No entanto, apenas com o TLS/SSL não é possível garantir que o servidor é realmente quem ele diz ser. Isso ocorre, pois a chave pública é enviada para o navegador pelo próprio servidor Web. Dessa forma, se o usuário malicioso falar com o usuário como se fosse o servidor, o usuário envia os dados para o usuário malicioso pensando que está conversando com o servidor legítimo. Para evitar esse problema, na Internet, criou-se uma infraestrutura de chaves públicas.

Assim, após criar o seu par de chaves, o administrador do Website deve registrar esse par de chaves em uma autoridade certificadora da Internet. A autoridade certificadora funciona como um cartório do mundo real e emite um certificado confirmando que aquela chave pública é realmente do site. Esse processo, nos certificados mais fortes, envolve, inclusive, o sócio do site indo pessoalmente até a sede da autoridade certificadora portando os documentos legais da empresa. Dessa forma, quando um site possui um certificado, o navegador o exibe com todas as informações da empresa que o emitiu.
O funcionamento é simples, quando o servidor envia a chave pública para o usuário, ele também envia o certificado que atesta a validade da chave pública. Assim, o usuário consulta a autoridade certificadora para verificar o certificado, que pode inclusive ter sido revogado. Caso a autoridade certificadora ateste a validade do certificado, o navegador confia na chave pública recebida e se comunica com o servidor tendo a certeza de que é o servidor legítimo.
Exemplo de certificado de servidor legítimo do banco do brasil (Foto: Reprodução / Pedro Pisa)Exemplo de certificado de servidor legítimo do banco do brasil (Foto: Reprodução/Pedro Pisa)
Para o usuário, o site com HTTPS oferece a vantagem da segurança. No entanto, podemos nos perguntar por que todos os sites não utilizam HTTPS. A resposta é custo e desempenho. Primeiramente, a validação do certificado pela autoridade certificadora é cobrada, custando, em algumas modalidades, mais de R$ 3.000,00 (três mil reais) por ano. Nem todos os serviços na Web desejam ou podem pagar quantias como essas.

Além disso, utilizar HTTPS nos serviços web reduz drasticamente o desempenho da comunicação. Por esses motivos, os sites evitam utilizar o HTTPS, reservando-o apenas para as transações mais sensíveis, como as financeiras. No entanto, não esqueça de observar o uso correto do HTTPS também em redes sociais, serviços de e-mail, discos virtuais e outras aplicações que exijam senhas ou o envio de dados pessoais. Essas informações também são sensíveis e requerem cuidado ao serem enviadas na Internet.
Finalizamos este artigo deixando o espaço de comentários para nossos leitores. Utilize esse espaço para deixar comentários, dúvidas ou mesmo contar experiências com serviços na Internet que não utilizam ou utilizam erradamente o HTTPS. Esse espaço é seu e até a próxima.

0 comentários:

Enviar um comentário