Como funciona HTTPS

Com todo o barulho nos últimos dois anos sobre atualizar todos os sites para usar HTTPS e SSL , e por um bom motivo.

Se você precisa saber por que usar HTTPS, há vários motivos.

Há muitos benefícios em atualizar para HTTPS, incluindo melhores listagens e desempenho de mecanismos de pesquisa. Você também poderá usar mais funcionalidades nos navegadores. HTTPS é um dos três requisitos principais para ser um aplicativo da web progressivo.

Mais “seu site não será marcado como”não seguro”pelo Chrome e outros navegadores .

HTTPS também é necessário para desbloquear recursos modernos do navegador, como service workers e APIs de hardware, como WebUSB e acesso Bluetooth.

SSL significa camada de soquete segura. Mas esse protocolo foi preterido e substituído pelo Transport Layer Security (TLS). Como muitos se acostumaram a usar a sigla SSL que ainda usamos, os dois são intercambiáveis ​​hoje, mas a criptografia real é TLS, não SSL hoje.

No passado, os certificados SSL eram caros. Isso mudou hoje, pois a maioria dos certificados é gratuita. Se você pagar por um certificado, estará comprando um certificado com um processo de triagem mais rigoroso e possivelmente seguro.

Então, como HTTPS ou SSL funcionam?

HTTPS é uma forma segura do protocolo HTTP. Ele envolve uma camada criptografada em torno de HTTP, Transport Layer Security (TLS). Clientes e servidores se comunicam usando HTTP, agora é seguro por causa do wrapper TLS.

Por que HTTPS é importante?

Qual é a diferença entre HTTPS e HTTP?

O HTTPS é seguro?

O HTTPS é criptografado?

Os invasores não podem ler os dados que cruzam o fio e você sabe que está falando com o servidor que pensa estar falando também.

HTTPS é uma sigla que significa Hyper Text Transport Protocol Secure. A parte’segura’é importante porque faz uma grande diferença.

HTTP é um’texto simples’ou um arquivo binário (como uma imagem) que qualquer um pode ler ou ver.

HTTPS é baseado em criptografia de chave pública/privada. Existe um par de chaves:

  1. A chave pública é usada para criptografia
  2. A chave privada secreta é necessária para a descriptografia

Um certificado é uma chave pública com um rótulo que identifica o proprietário.

Por que usar HTTPS? Quais são as vantagens?

A confiança do consumidor é a primeira vantagem. Estar seguro online é importante, ninguém quer que suas informações privadas cheguem aos bandidos.

Os navegadores agora indicam visualmente quando uma página da web é protegida por HTTPS. Quando não está seguro, os navegadores exibem mensagens como’Não seguro’ao lado do seu domínio. Nada diz mais para apertar o botão Voltar do que o navegador dizendo ao usuário que não é seguro.

Exemplo de navegador não seguro
Exemplo de navegador não seguro

HTTPS desbloqueia novos recursos. A web adicionou muitos recursos novos e muitos exigem uma conexão segura para proteger os dados do usuário. Alguns desses recursos incluem service workers (um recurso importante de aplicativo da web progressivo), Bluetooth, USB, WebRTC, notificações push e muito mais. Você deseja utilizar muitos desses novos recursos para envolver os clientes.

HTTP/2, uma reformulação moderna do protocolo HTTP, requer conexões seguras. Com HTTP/2 seu site pode carregar mais rápido porque otimiza as solicitações. HTTP/1.x permitia 2-6 conexões paralelas. HTTP/2 multiplexa as solicitações para que mais solicitações possam ser processadas de uma vez.

Os mecanismos de pesquisa estão usando HTTPS como um sinal de classificação. Isso ocorre porque os consumidores desejam sites seguros e os mecanismos de pesquisa desejam recomendar sites seguros em vez de destinos não seguros.

Ultimamente, o Bing tem exibido um ícone’seguro’para cada página da web HTTPS nos resultados. O Google também experimentou ícones seguros.

Bing Secure Search Result Label
Etiqueta de resultado da pesquisa segura do Bing

Como funciona o HTTP

Antes de nos aprofundarmos em como o HTTPS funciona, vamos revisar como o HTTP funciona.

HTTP é um protocolo de solicitação de resposta para se comunicar de forma assíncrona entre cliente e servidor.

Para sites e páginas, o navegador atua como um cliente e um servidor da web como o Apache ou IIS atua como servidor. O servidor hospeda os arquivos (como arquivos html, áudio, vídeo, etc.) e os retornos respondem às solicitações do cliente com os dados. Dependendo da solicitação, uma resposta contém o status da solicitação.

O processo envolve uma série de mensagens que vão e vêm entre o cliente e o servidor. O processo começa com o início de uma conexão. Depois disso, um processo conhecido como início lento do TCP entra em ação. Nesse ponto, os dados são passados ​​entre as duas partes por meio de pacotes de dados e geralmente requerem várias viagens de ida e volta.

O início lento do TCP foi projetado para expandir gradualmente a quantidade de dados que cruzam o fio a cada viagem de ida e volta. O tamanho do pacote inicial é de 16 kb e dobra nas viagens de ida e volta subsequentes até que um tamanho máximo seja alcançado. Isso pode variar, mas tende a ser em torno de 4 MB para a maioria das conexões.

Este processo é usado porque o servidor não sabe quanta largura de banda o cliente pode suportar. Em vez de sobrecarregar o cliente, o servidor usa um tamanho suave e continua a aumentar até que um limite seja encontrado.

Conforme os dados ou corpos de solicitação se movem entre o cliente e o servidor, isso é feito usando texto claro ou simples. Isso pode ser visto por qualquer pessoa ou software que observe o tráfego da rede.

Isso não é tão importante para conteúdo geral. No entanto, hoje, mesmo quando você não acha que dados confidenciais estão se movendo entre as duas partes, mais sessões transportam informações de identificação. É por isso que todo site deve usar TLS para proteger conexões HTTP.

A pilha HTTPS

HTTPS requer a instalação de um certificado TLS em seu servidor. Você pode aplicar certificados a diferentes protocolos, como HTTP (web), SMTP (e-mail) e FTP. Um certificado SSL ou TLS funciona armazenando suas chaves geradas aleatoriamente (públicas e privadas) em seu servidor. A chave pública é verificada com o cliente e a chave privada usada no processo de descriptografia.

HTTP é apenas um protocolo, mas quando emparelhado com TLS ou segurança da camada de transporte, torna-se criptografado.

A pilha HTTPS
A pilha HTTPS

Você pode conhecer TLS por outra sigla, SSL. Secure socket layer ou SSL era a maneira original de proteger a Internet. À medida que desenvolvemos nossos padrões, retiramos o SSL, mas a sigla continua sendo o termo mais popular para TLS.

Se você olhar para um diagrama de pilha de rede, o HTTP está no topo, no topo do TLS, que fica no topo das camadas TCP e IP.

Sei que são muitas siglas, mas não se preocupe.

Quando HTTP é combinado com TLS, você obtém HTTPS, esta versão segura de HTTP.

O handshake HTTPS

Quando seu navegador se conecta a um servidor HTTPS, o servidor responderá com seu certificado. O navegador verifica se o certificado é válido:

  1. as informações do proprietário devem corresponder ao nome do servidor que o usuário solicitou
  2. o certificado deve ser assinado por uma autoridade de certificação confiável

Se uma dessas condições não for atendida, o usuário será informado sobre o problema.

Diagrama de sequência de conexão HTTPS
Diagrama de sequência de conexão HTTPS

Quando o HTTP é usado, uma série de apertos de mão ocorre.

A solicitação inicial é enviada ao servidor para verificação. Quando o servidor responde que é o servidor desejado, o cliente envia uma mensagem de olá.

Nesse ponto, a comunicação torna-se criptografada.

É para trocar chaves de criptografia ou cifras.

Neste ponto, a comunicação do leitor pode prosseguir. As etapas iniciais de handshakes ocorrem em questão de milissegundos.

Quando HTTPS é usado, qual elemento da comunicação é criptografado?

Assim que o handshake HTTPS for concluído, todas as comunicações entre o cliente e o servidor serão criptografadas. Isso inclui o URL completo, dados (texto simples ou binário), cookies e outros cabeçalhos.

A única parte da comunicação não criptografada é qual domínio ou host o cliente solicitou uma conexão. Isso ocorre porque, quando a conexão é iniciada, uma solicitação HTTP é feita ao servidor de destino para criar a conexão segura. Depois que o HTTPS é estabelecido, o URL completo é usado.

Esta inicialização só precisa ocorrer uma vez para cada conexão exclusiva. É por isso que HTTP/2 tem uma vantagem distinta sobre HTTP/1.1, já que multiplexa conexões em vez de abrir várias conexões.

O atacante passivo

Primeiro, precisamos ver como o HTTP funciona. Isso significa protocolo de transporte de hipertexto e é como movemos os dados pela Internet.

dados
Ataque HTTP passivo

Por padrão, o HTTP não é criptografado. Isso significa que os dados que se movem pela rede ficam visíveis para qualquer pessoa que tenha acesso.

Os bandidos podem ler passivamente pacotes que se movem pela Internet. Isso significa que eles podem ler o texto que você está enviando e recebendo. É por isso que usar um protocolo seguro é importante ao transferir dados pessoais e confidenciais.

Vejamos um exemplo comum, a cafeteria. Muitos de nós vão a cafeterias, restaurantes e outros locais públicos com Wi-Fi público para trabalhar e simplesmente passear.

Mas se você soubesse o que os bandidos podem ver, você pode pensar duas vezes sobre a estratégia.

O Wi-Fi é o único suscetível porque está bem, transportado pelo ar. Isso significa que qualquer pessoa com a intenção de pode ver o tráfego passando pelo ar.

Os invasores costumam ficar em configurações públicas de Wi-Fi e apenas absorvem o tráfego da Internet ao seu redor. Eles podem usar análises sofisticadas para determinar dados confidenciais que você pode não ter considerado.

Você está fazendo pesquisas sobre preços de ações importantes?

Talvez você esteja pesquisando dados para um projeto de trabalho importante e que, por acaso, sou um espião corporativo.

É claro que isso é inventado, mas deve servir ao propósito de fazer sua mente pensar sobre o que pode acontecer.

Portanto, usando HTTP, suas sessões de Internet são de domínio público. Você não tem privacidade verdadeira.

Bloqueando o atacante passivo

Ao usar HTTPS, o invasor passivo que descrevi anteriormente não consegue mais ler seus dados. Isso ocorre porque os dados reais são agrupados por uma camada de criptografia.

As únicas duas partes que podem ler os dados ou o servidor e o seu navegador.

A camada TLS (a sigla para Transport layer Security) age como um escudo, impedindo que olhos indesejados vejam sua conversa.

O atacante ativo ou ataque homem no meio

Às vezes, os invasores são mais agressivos. Eles configuraram suas próprias infraestruturas para redirecionar a solicitação. Isso é conhecido como Ataque do Homem no Meio.

Man in the Middle Attack
Ataque do Homem no Meio

Sem usar HTTPS, você não tem certeza de que está falando com o servidor desejado. E o servidor não consegue determinar se ele realmente está falando com você.

Com HTTPS, existe um nível de integridade de dados que protege você de um invasor que intercepte suas solicitações e as respostas do servidor. Os certificados exigem que cada extremidade saiba como criptografar e descriptografar os dados e só eles sabem fazer isso.

Se você está se perguntando qual protocolo TCP/IP é uma forma segura de HTTP, é o HTTPS.

Acho que entrar nos detalhes de como os algoritmos de criptografia realmente funcionam está um pouco acima do objetivo deste post. Mas vamos apenas dizer que será apenas um monte de gobbledygook sem as chaves para descriptografar e criptografar os pacotes.

Ao estabelecer uma conexão segura com um servidor remoto, você está efetivamente bloqueando este ataque ativo. Um saco que não consigo instalar em um roteador de Internet, por exemplo, que interceptaria pedido e os encaminhasse para seu servidor.

Bloqueando o homem no meio Ataque
Bloqueando o Ataque do Homem no Meio

Caso você ache que o bandido falsificou um certificado, ele não pode, pelo menos ele não pode falsificar o certificado ou tentar descriptografar os dados com a chave pública. Ele não terá acesso à chave privada.

Veja, eu disse a você que a criptografia pode ser complexa!

O certificado contém a chave pública do servidor da web. O proxy do invasor não possui a chave privada correspondente.

Se o proxy encaminhar o certificado real para o cliente, ele não poderá descriptografar as informações que o cliente envia ao servidor da web.

O invasor pode tentar forjar o certificado e fornecer sua própria chave pública. Isso destruirá a assinatura das autoridades de certificação. O navegador avisará sobre o certificado inválido.

HTTPS é seguro?

De um sentido puramente técnico, sim. Existem maneiras de atacar e potencialmente hackear o protocolo, mas exigem componentes comprometedores fora do controle do cliente e do servidor. E esses ataques não são ataques simples.

  1. Invadir qualquer autoridade de certificação
  2. comprometer um roteador próximo a qualquer autoridade de certificação
  3. comprometer o servidor DNS recursivo de uma autoridade de certificação
  4. Ataque algum outro protocolo de rede, como TCP ou BGP
  5. Um governo pode ordenar que uma autoridade de certificação produza um certificado malicioso (apenas especulativo)

Esses ataques significam essencialmente que a autoridade emissora está comprometida. Embora os CAs tendam a ser mais estranhos com relação à segurança, nada é absolutamente perfeito, mas como eu disse, o ataque a esses pontos não é um ataque simples.

Você também deve observar que o TLS não protege o seu servidor, ele protege as conexões entre o seu servidor e o cliente. Se um hacker entrar em seu servidor, provavelmente será outro tipo de ataque. Eles simplesmente não conseguem farejar os dados que estão sendo transferidos entre os dois nós.

Tipos diferentes de certificados HTTPS/TLS

Existem três níveis diferentes de certificados:

  1. Domínio validado
  2. Organização validada
  3. Extended Validado

Não há diferença técnica entre os 3 níveis, pelo menos como funcionam criptografando a comunicação HTTP.

A diferença está em como o proprietário do site é validado. Os certificados gratuitos de hoje são validados por domínio. Isso normalmente é feito enviando um e-mail de verificação para o proprietário de acordo com o registro WHOIS do domínio. Também pode ser validado por meio de registros DNS. Este é o meu método preferido com AWS Route 53 e o AWS Certificate Manager. Eles trabalham juntos para verificar o certificado em alguns segundos.

Organização e validação estendida requerem mais documentação. Esses certificados também custam dinheiro. O dinheiro normalmente cobre o custo para a autoridade de certificação verificar a papelada, além de oferecer mais cobertura de seguro.

Para a maioria dos sites, um certificado validado de domínio é tudo que você precisa. Eu renuncio ao valor de um certificado OV ou EV, mas percebo que é o certo para alguns sites.

Resumindo

HTTPS deve ser usado em qualquer lugar. As desculpas do passado não são mais válidas.

Ao usar HTTPS, você oferece aos visitantes uma conexão segura. Eles também podem ter certeza de que a comunicação é com o seu servidor e não com alguém passivamente ou ativamente espiando.

Compartilhe este artigo com seus amigos!

Source link

Categories: Wordpress