HTTP ou HTTPS? Veja 4 vantagens e desvantagens!

Se você já desenvolveu um website ou um sistema web, ou melhor, pensa em desenvolver algo e hospedar na web. Bom, é bem provável que você tenha se deparado com o seguinte dilema: usar HTTP ou HTTPS?

Sim, essa é uma das dúvidas mais comuns nessas horas. Isso porque o HTTP e o HTTPS são os protocolos padrões para navegação na Internet e eles possuem certas diferenças.

Essas diferenças geram consequências na utilização do site/aplicação. A escolha entre HTTP e HTTPs influencia em fatores como: segurança, velocidade e ranqueamento.

Sendo assim, como saber quais são as vantagens e desvantagens de cada um? Quando usar um ou outro? E em quais situações? Bom, é basicamente sobre isso que iremos tratar neste artigo. Então, continue lendo!

O que é o HTTP?

Imagem abstrata ilustrando o protocolo HTTP

A sigla HTTP vem do termo em inglês HyperText Transfer Protocol (ou Protocolo de Transferência por Hipertexto). Ele funciona como o protocolo padrão para a navegação web. Com ele, os navegadores solicitam páginas na internet e tratam do seu recebimento.

Devido a este mecanismo, é o protocolo HTTP quem define os parâmetros de cada requisição de páginas, como exemplo, como os dados inseridos pelo usuário são enviados e de que forma o servidor envia possíveis mensagens de erro.

Apesar de serem dados sensíveis, eles são tratados de forma textual, já que o HTTP é um protocolo baseado em texto. Dessa forma, os dados que são enviados podem ser acessados no meio do tráfego, prejudicando (e muito!) a segurança da informação.

Sendo assim, tais dados podem ser acessados ou lidos. No pior cenário, o resultado da requisição pode ser alterado, te levando para uma outra página. Um exemplo que pode ser dado é o de um home banking

Se o sistema bancário utiliza HTTP, é possível que um hacker altere as transações feitas pelo site. Ele pode conseguir, por exemplo, que quantias transferidas sejam desviadas para sua conta (hacker). Dessa forma, alterando os parâmetros que o protocolo HTTP processa.

Percebe-se, dessa forma, que o protocolo HTTP não oferece nenhuma camada de segurança em sua implementação. Para algumas aplicações e sites, isso pode não ser tão importante. Agora, para um homebanking (exemplo acima), ou para um ecommerce, claramente o protocolo HTTP não é a melhor solução, certo?

“Então, como resolver isso?” – Pensaram os gênios da época
“Simples! Vamos criar o protocolo HTTPS!” – Disseram os gênios

Então, vamos descobrir o que esse tal de HTTPS faz e como ele funciona.

IMPORTANTE: se você não está familizarizado com os termos client-side (lado do cliente) e server-side (lado do servidor), recomendo que primeiro você dê uma lida nesse nosso outro artigo sobre o assunto.

O que é HTTPS?

Imagem de cadeado ilustrando o protocolo HTTPS

O “S” nessa nova sigla significa justamente “Segurança”. Ou seja, o HTTPS é um HTTP seguro, já que são adicionadas camadas de segurança ao HTTP tradicional. Com isso, garante-se a integridade, confidencialidade e autenticação.

Vamos explicar cada um desses requisitos:

  • Integridade: garante que as mensagens não foram alteradas/
  • Confidencialidade: a mensagem será lida apenas pelo destinatário real;
  • Autenticação: comprovação de que o servidor é realmente o servidor esperado.

Para que esses princípios sejam cumpridos, o HTTPS utiliza uma série de mecanismos que serão explicados abaixo. São eles:

  • TLS e SSL
  • Criptografia
  • MAC
  • Certificados digitais

TLS e SSL

Em poucas palavras, o que faz o HTTP ser seguro são os protocolos SSL (Secure Sockets Layer) e sua versão mais recente, o TLS (Tansport Layer Security). Ambas as tecnologias são camadas de segurança que garantem integridade e confidencialidade a sistemas web. O que faz com que esses dois protocolos garantam tais princípios é a famosa criptografia dos dados.

Criptografia

A criptografia no HTTPS funciona com um par de chaves, sendo uma chave pública e outra privada. Estas chaves são criadas pelo administrador do site. Cada vez que um usuário solicita uma conexão ao site, o servidor envia a chave pública para este usuário. Com esta chave, o usuário tem a garantia de que toda a comunicação chegará apenas para o servidor, já que a chave privada se encontra no servidor.

Estas chaves só funcionam em conjunto, como um par. Se o servidor perceber que uma outra chave pública quer se conectar a ele, ele fecha a conexão automaticamente, pois percebe que pode ser uma fraude.

No caso do HTTP, toda essa história de criptografia não existe, o que faz com que ele seja um modelo obsoleto e altamente arriscado para se trabalhar. Isso, é claro, quando se fala de aplicações que precisam de segurança. Se seu site for um trabalho da faculdade, por exemplo, não há a necessidade de implementar HTTPS, certo?

MAC (Message Authentication Code)

A integridade do HTTPS é garantida através da adição de um código em cada mensagem TLS/SSL. Esse código leva o nome de MAC. Basicamente, o MAC é quem permite que o destinatário saiba se houve alterações na mensagem. A forma como esse código é gerada é um pouco complexa, mas podemos dizer que ela envolve cálculos.

Um cálculo é feito no envio da mensagem, tendo como base o seu tamanho. No destino, outro cálculo é feito e esses dois valores precisam “bater”. Se não der “match”, significa que a mensagem foi alterada, fazendo com que a comunicação seja abortada.

Certificados digitais

Mesmo com tudo isso, ainda é possível que um hacker consiga atrapalhar a comunicação entre client-side e server-side. Isto porque a chave pública é gerada pelo servidor web. Ou seja, se alguém mal intencionado conseguir se colocar entre o servidor e o usuário, ele pode enganar o usuário. Mas para evitar isto, é usado o conceito de certificados.

Quando o administrador de um site cria um par de chaves, ele deve registrar estas chaves em alguma autoridade certificadora da Internet. Este órgão funciona como um tipo de cartório digital. Ele é o responsável por gerar um certificado digital que confirma a autenticidade da chave pública.

No caso de certificados de alta confiabilidade, este processo chega a ser físico. Um representante da empresa vai até uma localização física da autoridade certificadora, a fim de comprovar a identidade da empresa por meio de documentos legais.

Após este processo de certificação digital, o procedimento é simples. Cada vez que o servidor envia a chave pública para o cliente, ele envia também o certificado com suas informações. Dessa forma, é possível que o cliente consulte a validade da chave pública.

Vantagens e desvantagens do HTTPS

A partir de tudo que foi dito, sem terminar a leitura desse post, talvez até você queira comentar:

“OK OK! Me convenceu, a partir de agora só irei hospedar usando o protocolo HTTPS”

Realmente, parece até que estou fazendo uma propaganda de incentivo ao uso do protocolo HTTPS, mas vamos com calma. Para tudo na vida existe vantagens e desvantagens. Para os tipos de protocolo, isso não muda.

Portanto, agora chegou o momento de analisarmos os prós e contras do uso do HTTPS. A análise a seguir é baseada em quatro principais fatores: SEO (rankeamento no Google), experiência do usuário (UX), velocidade de carregamento e custos de contratação.

SEO (rankeamento no Google)

Google, SEO e o protocolo HTTPS | Becode

Se você busca ter um site relevante na web, SEO é uma palavra que deve fazer parte do seu vocabulário. A sigla SEO significa Search Engine Optimization e representa uma série de boas práticas para que um site alcance os melhores posicionamentos em rankings de sistemas de busca, como Google, Bing e Youtube.

Convenhamos, estar nas primeiras páginas do Google é extremamente vantajoso. Isso representa acessos, fluxo de usuários constantes, vendas e por aí vai.

“OK, mas aonde entra o protocolo HTTPs nessa história?”

O Google, que é de longe o principal sistema de busca do mundo, recentemente afirmou que sites com HTTPs têm maior relevância em suas buscas. Sim, ter um site seguro é um fator de rankeamento.

Então, se o seu sistema visa estar bem posicionado no Google e em outros mecanismos de busca, usar HTTPS é praticamente uma obrigação.

Portanto, na categoria SEO, ponto para o protocolo HTTPS

Experiência do Usuário (UX)

O protocolo influência na experiência do usuário? Será?

A resposta é sim! Se você parar para observar, dependendo do navegador que você estiver utilizando, alguns sites costumam exibir telas de alerta ou pop-ups informando que o determinado site não é seguro. Muitas vezes esse aviso aparece não porque existe uma ameaça real (como spams e malwares), mas simplesmente pela falta de HTTPS no servidor.

Dessa forma a UX (User Experience) é prejudicada. Ter um feedback como este é ruim. Pense comigo. O usuário irá se sentir prejudicado ao utilizar aquele site, o que pode levá-lo a sair e buscar uma alternativa. Provavelmente o concorrente.

“Na dúvida é melhor não correr riscos, certo?” Isso que pensa o usuário.

Afinal, a maioria dos usuários no mundo não sabem o que são protocolos HTTP. Portanto, pode ter certeza, eles ficarão assustados com qualquer mensagem dizendo que o site não é seguro. Resumo da história, você perderá um possível cliente e o seu site ficará tachado como spammer ou algo pior ainda.

Além de tudo isso, ainda há a questão dos e-commerces. O fato de ter um certificado digital entrega mais credibilidade para o site e confiança para o usuário. Principalmente na hora de inserir os dados do cartão de crédito, não é? Sendo assim, é fácil concluir que utilizar o protocolo HTTP em uma loja virtual prejudica diretamente o lucro de um e-commerce.

Velocidade de carregamento

Chegamos ao calcanhar de aquilos do protocolo HTTPS. A maior limitação do protocolo é a queda brusca no desempenho da comunicação web. Apesar de ser mais seguro, o HTTPS deixa os sites mais lentos. Isso acaba sendo um fator limitante na hora de se optar – ou não – pela tecnologia.

Para driblar esse problema, muitas empresas tem deixado o HTTPS apenas para sistemas críticos, como logins e transações internas. Essa estratégia deu muito certo por muito tempo. Contudo, conforme os dois itens acima (SEO e UX) ilustram, a internet está se moldando para um formato que visa priorizar a segurança do cliente final.

Sendo assim, optar por um site/sistema sem HTTPS, apesar de proporcionar mais velocidade e, por consequência, uma melhor experiência para o usuário. Por outro lado, prejudica a experiência do usuário quando o assunto é confiança e segurança, como vimos no item anterior.

Sendo assim, a não ser que o seu site (ou sistema) precise de muita velocidade, o HTTPS ainda será a melhor opção. Até porque é possível desenvolver sistemas rápidos, mesmo usando o protocolo HTTPS. Não é fácil, mas é possível.

Custos de contratação

Logotipo e slogan do certificado SSL gratuito, o Let's Encrypt

Antigamente, os custos de aplicação do HTTPS eram extremamente elevados, principalmente para pequenas empresas. Alguns tipos de certificado precisavam ser renovados anualmente, com valores altos quando comparado com o que as empresas estão acostumadas a investir em segurança. Dessa forma, é fácil dizer que o HTTP era muito mais comum, barato e prático entre os websites do mundo.

Contudo, hoje em dia, graças ao povo da TI, já existem certificados open source. Exato, certificados gratuitos para aplicação e uso! Talvez o principal exemplo seja o Let’s Encrypt que é um projeto da Linux Foundation em parceria com diversos patrocinadores que visam deixar a web mais segura!

Além do certificado gratuito, existem empresas de hospedagem que já estão incluindo o protocolo HTTPS em seus serviços mais básicos (hospedagens de nível I e II, por exemplo).

Portanto, se antes o custo do certificado era um empecilho, atualmente isso não é mais verdade. Claro que os certificados open source são os de nível 1, ou seja, os que proporcionam menor segurança, por assim dizer. Entretanto, para a grande maioria das empresas, isso já será mais do que suficiente. Já, se você gerencia o site ou sistema web de uma aplicação maior e mais robusta, sugerimos a contratação de um certificado HTTPS com um nível de segurança mais elevado.

O veredicto!

Por enquanto, o placar está 3 a 1 a favor do certificado HTTPS, correto? Então, vamos ao veredicto final:

Por mais que o certificado HTTPS deixe a comunicação mais lenta entre client-side e server-side, a utilização desse protocolo promove segurança, melhor experiência para o usuário final e ainda por cima você ganha uns pontinhos no ranking do Google e de outros buscadores. Além de tudo isso, ainda é possível “driblar” a lentidão com um código organizado e otimizado.

Diversas empresas e órgãos que basicamente ditam o futuro da internet já falaram: “Queremos uma internet mais segura”

Portanto, podemos afirmar que, em algum momento, seremos basicamente forçados a migrar do HTTP para o HTTPS. O Google, ao favorecer sites com o certificado de segurança, já está fazendo isso, não concorda? Então, é questão de tempo até que outras empresas da área adotem uma postura semelhante.

Então, para responder a pergunta do início do post, se você estiver em dúvida entre HTTP e HTTPS no seu novo projeto ou manutenção de um sistema antigo, adote o HTTPS! Tenho certeza que você não irá se arrepender.

Espero que você tenha gostado desse artigo e se ficou alguma dúvida, fique a vontade para deixar o seu comentário aqui embaixo. Teremos prazer em responder você. Abraços e até a próxima!

 

[Ebook] Guia do HTML e CSS

Written by Erick Scudero

Especialista em Marketing Digital e apaixonado por tudo que envolve o universo de tecnologia e comunicação. Durante sua jornada na terra dos cangurus (Austrália), atuou em diversos projetos prestando consultoria em questões de UX, SEO, Marketing Digital e modelos de negócio com foco em startups. É cofundador da Becode, da M2up e instrutor de cursos presenciais na TargetTrust.

O que é PHP e porque você precisa aprender HOJE! | Becode

O que é PHP e porque você precisa aprender HOJE!

A imagem mostra uma tela, um código em PHP e os diversos frameworks existentes para PHP

6 frameworks PHP que você precisa conhecer!