Introdução
Nos últimos anos, vimos a Web e a variedade de indústrias que a impulsionam (por exemplo, navegadores, mecanismos de pesquisa etc.) começando a levar a segurança do usuário mais a sério. Chrome agora alertando usuários contra sites HTTP com mais navegadores prontos para seguir, enquanto a Pesquisa Google confirmou que dá aumentos de classificação do mecanismo de pesquisa para HTTPS websites.
Desenvolvimentos como esses motivaram uma parte significativa dos proprietários de sites a mudar seus servidores do HTTP antigo e inseguro para o HTTPS alternativo mais seguro. (HTTPS é considerado mais seguro porque requer que os servidores sejam autenticados por meio de certificados SSL como um meio de proteger os usuários da maioria dos tipos de ataques de rede.)
No entanto, a maioria dos sites implementou apenas HTTPS para seus componentes mais críticos, como solicitações de logon ou POST, mas ainda pode usar HTTP para outras funções "não críticas".
Isso fazia sentido nos primeiros dias do HTTPS, pois as conexões criptografadas são mais caras em termos computacionais devido à necessidade de executar apertos de mão para cada nova conexão. Além disso, naquela época, muitas plataformas, bibliotecas e ambientes de desenvolvimento da web amplamente usados não estavam prontos para HTTPS - um fato que causou aos administradores e desenvolvedores dores de cabeça intermináveis na forma de travamentos de aplicativos noturnos ou erros obscuros de tempo de execução.
Claro, isso não é mais verdade - na verdade, como este artigo irá argumentar, não usando HTTPS para todos os as conexões do seu site são realmente ruins para os seus negócios.
Conteúdo misto
Os sites que não veiculam todo o seu conteúdo por HTTPS são chamados conteúdo misto sites. Um acadêmico papel publicado em 2015 constatou que mais de 43% de sua amostra dos 100,000 principais da Alexa exibia pelo menos um tipo de conteúdo misto.
Embora isso não pareça grande coisa, o conteúdo misto pode ser bastante perigoso para os usuários, mas também pode ter efeitos negativos nos sites.
Questões de segurança
O motivo mais importante para usar HTTPS em todo o site é a segurança. Uma única conexão HTTP desprotegida é tudo o que os hackers precisam. Atacantes do homem do meio (MITM) pode substituir qualquer conteúdo HTTP em sua página para roubar credenciais e sessões, adquirir dados confidenciais ou iniciar explorações de navegador e instalar malware nos computadores dos visitantes.
Ficar comprometido pelo seu site naturalmente fará com que seus usuários desconfiem e evitem isso no futuro, danificando efetivamente sua reputação online.
Firefox e Chrome começou para bloquear conteúdo misto por padrão, permitindo que os usuários optem manualmente por carregar conteúdo por HTTP. No entanto, como o conteúdo misto é um risco à segurança, os dois navegadores mostram um aviso de conteúdo misto aos usuários, o que também pode afetar negativamente a reputação do seu site.
Problemas de desempenho
Além da segurança, a adoção cada vez maior de HTTP / 2 O setor trouxe inúmeras atualizações de desempenho e segurança para a Web.
Embora o aumento no desempenho pareça contra-intuitivo, já que o HTTP / 2 só funciona em conexões HTTPS criptografadas, o protocolo permite que os navegadores usem uma única conexão criptografada com um servidor da web HTTPS para todas as suas comunicações.
Reutilizar a mesma conexão remove a sobrecarga imposta pelo estabelecimento repetido de novas (ou seja, aquele aperto de mão novamente). Isso significa que saltar de conexões HTTPS criptografadas para HTTP não criptografado em um site com conteúdo misto é de fato mais lento e exige mais recursos do que visitar um site completamente protegido usando uma única conexão HTTPS.
O HTTP / 2 também implementa o 0-RTT
modo de retomada de sessão, permitindo que os navegadores continuem uma sessão pausada com um site HTTPS que eles visitaram antes, usando apenas uma única solicitação (em vez de um handshake completo). Isso faz com que o reinício do HTTP / 2 seja pelo menos tão rápido quanto uma conexão HTTP não criptografada, enquanto fornece todos os benefícios do HTTPS. A veiculação de conteúdo misto significa que seu site não pode tirar o máximo proveito deste ou de qualquer outro ótimo recurso do HTTP / 2.
Em ambos os casos, o HTTP / 2 melhora a velocidade de conexão do visitante ao seu site - e a velocidade é importante. Casos demonstraram ao longo dos anos que a capacidade de resposta e a velocidade de carregamento da página são requisitos críticos de design da interface do usuário. Quanto menor o tempo de resposta de um site, menor a probabilidade de os usuários permanecerem envolvidos, e o envolvimento do usuário afeta diretamente a experiência do usuário do site (e consequentemente as taxas de conversão).
O conteúdo misto também pode afetar o desempenho no nível das tecnologias da Web subjacentes usadas no seu site. Navegadores agora limitar recursos javascript como trabalhadores de serviços e notificações push apenas para proteger contextos, porque eles poderiam ser abusados por hackers para fins maliciosos. Isso novamente significa que seu site não pode tirar proveito de nenhuma dessas tecnologias ao exibir conteúdo misto.
Questões de SEO
Otimização de motor de busca (SEO) é o pão com manteiga dos profissionais de marketing on-line. SEO refere-se à prática de melhorar o ranking de um site em um página de resultados do mecanismo de pesquisa (SERP), que afeta diretamente o volume do tráfego do site.
O Google confirmou que seu algoritmo de classificação de resultados de pesquisa dá um pequeno aumento de classificação para sites que são servidos por HTTPS. Como o aumento é em tempo real e por URL, veicular um site em sua totalidade por HTTPS resultará em um aumento de SEO para todo o site (em vez de apenas os URLs que são servidos por HTTPS). Concedido, esse aumento de sinal de classificação é bastante leve quando comparado a outros, como conteúdo de qualidade ou tráfego do usuário, mas ainda recompensa seu investimento na remoção de conteúdo misto.
O Google também recentemente anunciou a velocidade de carregamento da página e o desempenho geral do site são considerados (pesados) ao decidir a classificação. Isso significa que as otimizações de desempenho do HTTP / 2 e a remoção de conteúdo misto podem trabalhar juntas para aumentar a visibilidade do seu site na web.
Finalmente, se você deseja aproveitar ao máximo o SSL no SEO do seu site, você pode considerar Certificados EV de SSL.com, que oferece as mais altas garantias aos visitantes por meio de indicadores de segurança (como aquela barra verde no navegador) para mantê-los seguros e engajados com seu conteúdo - e visitas mais longas equivalem a classificações mais altas.
Avisos de conteúdo misto do navegador
Os visitantes de sites protegidos por SSL esperam (e merecem) proteção contínua. Quando um site não protege totalmente todo o conteúdo, um navegador exibe um aviso de “conteúdo misto”. Quando seus clientes veem esse aviso, eles podem reagir de duas maneiras. Se eles não leve a segurança a sério, eles a ignoram, clicam e presumem que tudo ficará bem (muito ruim). Se eles do levar a segurança a sério, eles prestarão atenção a ela, sairão do site e assumirão que Você não leve a segurança a sério (pior ainda).
Além disso, todos os navegadores modernos bloquearão os tipos mais maliciosos de conteúdo misto - e, ao fazer isso, podem corromper seu site.
A melhor solução, claro, é ter certeza de que esses avisos e / ou bloqueios não ocorrerão em primeiro lugar, configurando corretamente seu site para servir apenas conteúdo seguro.
Por que estou vendo este aviso?
Um aviso de conteúdo misto significa que os elementos protegidos e não protegidos estão sendo exibidos em uma página que deve ser completamente criptografada. Qualquer página que use um endereço HTTPS deve ter todo o conteúdo proveniente de uma fonte segura. Qualquer página vinculada a um recurso HTTP é considerada insegura e sinalizada pelo seu navegador como um risco de segurança.
Os avisos de conteúdo misto se enquadram em duas categorias: conteúdo passivo misto e a conteúdo ativo misto.
Conteúdo passivo misto
Conteúdo passivo refere-se a itens que podem ser substituídos ou alterados, mas não podem alterar outras partes da página - por exemplo, um gráfico ou fotografia. Provavelmente, a causa mais comum de todos os avisos de conteúdo misto é quando um site (teoricamente) seguro é configurado para obter imagens de uma fonte não segura.
Solicitações HTTP passivas são atendidas por meio dessas tags:<audio>
(src
atributo)<img>
(src
atributo)<video>
(src
atributo)<object>
sub-recursos (quando um <object>
executa solicitações HTTP)
Conteúdo ativo misto
O conteúdo ativo pode alterar a própria página da web. Um ataque man-in-the-middle pode permitir que uma solicitação de conteúdo HTTP em qualquer página HTTPS seja interceptada e / ou reescrita. Isso torna o conteúdo ativo malicioso muito perigoso - as credenciais do usuário e os dados confidenciais podem ser roubados ou o malware pode ser instalado no sistema do usuário. Por exemplo, um pouco de JavaScript em uma página de criação de conta projetada para ajudar os usuários a gerar uma senha aleatória pode ser substituído por um código que fornece uma que parece aleatória, mas pré-gerada, ou para fornecer uma senha segura secretamente para um terceiro .
O conteúdo misto ativo pode ser explorado para comprometer dados particulares confidenciais, mas mesmo as páginas da web voltadas para o público que parecem inócuas ainda podem redirecionar os visitantes para sites perigosos, fornecer conteúdo indesejado ou roubar cookies para exploração.
<script>
(src
atributo)<link>
(href
atributo) (isso inclui folhas de estilo CSS)XMLHttpRequest
solicitações de objeto<iframe>
(src
atributos)Todos os casos em CSS em que um valor de URL é usado (
@font-face
, cursor
, background-image
, Etc)<object>
(data
atributo)Todos os navegadores modernos bloquearão o conteúdo misto ativo por padrão (o que pode interromper um site configurado incorretamente)
Por que e como corrigir avisos de conteúdo misto
Proteger seu site permite que seus visitantes confiem em você, o que é de vital importância. No entanto, eliminar todo o conteúdo inseguro de seu site tem um bônus ainda maior de eliminar avisos de falsos positivos - se seu site configurado corretamente for comprometido, qualquer elemento inseguro inserido por um invasor acionará o aviso de conteúdo misto, dando a você um tripwire extra para detectar e resolver esses problemas.
Novamente, a melhor maneira de evitar problemas de conteúdo misto é veicular todo o conteúdo via HTTPS em vez de HTTP.
Para seu próprio domínio, sirva todo o conteúdo como HTTPS e corrija seus links. Frequentemente, a versão HTTPS do conteúdo já existe e isso requer apenas a adição de um “s” aos links - http://
para https://
.
Para outros domínios, use a versão HTTPS do site, se disponível. Se HTTPS não estiver disponível, você pode tentar entrar em contato com o domínio e perguntar se eles podem disponibilizar o conteúdo via HTTPS.
Como alternativa, o uso de “URLs relativos” permite que o navegador escolha automaticamente HTTP ou HTTPS, dependendo de qual protocolo o usuário está usando. Por exemplo, em vez de vincular a uma imagem usando um link com o “caminho absoluto” de:
O site pode usar um caminho relativo:
Isso permite que o navegador adicione automaticamente http:
or https:
para o início do URL, conforme necessário. (Observe que o site vinculado ao site precisará oferecer o recurso por HTTP e HTTPS para que URLs relativos funcionem.)
Chrome
Firefox
Internet Explorer
Excelentes ferramentas para ajudar a rastrear links não SSL em seu código-fonte são as ferramentas de desenvolvedor integradas ao Firefox e a Chrome navegadores. As informações sobre como forçar um servidor Apache a lidar apenas com HTTPS podem ser encontrado aqui.
O primeiro problema de solicitação
Esperamos que, até o momento, este artigo tenha apresentado alguns bons argumentos contra conteúdo misto, embora, mesmo que você decida migrar seu site totalmente para HTTPS, ainda existem algumas melhorias que você pode fazer.
Quando os usuários digitam o URL do seu site em um navegador, eles geralmente nunca digitam completamente o nome do protocolo (por exemplo, https://
) Naturalmente, o navegador não sabe em qual protocolo seu site é veiculado e o padrão é HTTP.
Se o seu site estiver configurado corretamente, ele redirecionará (por meio de respostas HTTP 301/302) o navegador para sua instância HTTPS; embora isso signifique que os navegadores devem executar duas solicitações em vez de uma única solicitação HTTPS quando visitam seu site pela primeira vez.
Isso pode ser problemático porque os usuários podem perceber o atraso, obtendo uma má primeira impressão do site. Como tal, eles terão menos probabilidade de permanecer, o que pode levar à diminuição do tráfego de visitantes.
Além disso, os hackers podem interceptar a primeira solicitação HTTP para lê-la ou modificá-la antes de chegar ao servidor. Uma ocorrência comum para esse tipo de casos é executar um ataque de rede chamado Remoção de SSL que permite ao invasor substituir uma conexão HTTPS por uma conexão HTTP desprotegida.
HTTP Strict Transport Security para o resgate
Segurança de Transporte Restrita HTTP or HSTS é uma tentativa de resolver esse problema. Implementado pela Internet Engineering Task Force (IETF) na RFC 6797, o HSTS é um cabeçalho HTTPS que os servidores da Web podem incluir em suas respostas. Este cabeçalho instrui os navegadores compatíveis a sempre usar HTTPS ao visitar um site. O HSTS se aplica a todas as solicitações, incluindo imagens, folhas de estilo CSS e qualquer outro recurso da web.
Como você pode imaginar, o navegador deve primeiro Vejo o cabeçalho HSTS para honrá-lo, o que significa que o HSTS depende de os invasores não serem capazes de interceptar a primeira solicitação HTTP. Como resultado, o HSTS por si só não é uma solução completa, mas uma solução simples para a remoção de SSL.
Pré-carregamento do HSTS
Felizmente, o projeto Chromium apresentou uma solução que eles chamaram Pré-carregamento do HSTS, que consiste em manter uma lista pública de sites que solicitaram a funcionalidade de pré-carregamento do HSTS. Ao visitar um site, os navegadores Chromium consultam a lista e, se o site for encontrado lá, eles continuarão a se comunicar com ele por HTTPS (incluindo a primeira solicitação), independentemente do histórico anterior ou da entrada do usuário.
Como consequência, o pré-carregamento pode melhorar o desempenho e a segurança do seu site removendo a solicitação HTTP inicial. Além disso, pode indiretamente aprimorar a classificação SERP do seu site e a experiência do usuário.
Todos os principais navegadores (Chrome do Google, IE / Edge da Microsoft, Safari da Apple, Firefox e Opera da Mozilla) também consultam a lista de pré-carregamento HSTS do Chromium, o que significa que ingressar nesta lista fornecerá os benefícios de pré-carregamento aos visitantes, independentemente do navegador que eles estejam usando.
No entanto, seríamos negligentes se não mencionássemos que existem preocupações sobre a escalabilidade da solução de lista de pré-carregamento HSTS - Ela não pode incluir todos os sites na Internet devido ao tamanho prático e limitações de complexidade computacional e, consequentemente, a entrada pode se tornar cada vez mais difícil conforme o tempo passa e o pré-carregamento HSTS torna-se mais amplamente adotado.
Como posso participar?
Se você estiver interessado em participar da lista de pré-carregamento do HSTS, lembre-se de que seu site deve seguir determinadas regras. O projeto Chromium publicou a lista de requisitos de envio para sites que desejam ingressar no site do projeto. Os requisitos estão incluídos literalmente na lista a seguir, mas você pode encontrar mais detalhes no HSTS RFC 6797.
Para ser aceito na lista de pré-carregamento do HSTS, seu site deve:
- Servir um certificado válido.
- Redirecione de HTTP para HTTPS no mesmo host, se você estiver ouvindo na porta 80.
- Servir todos os subdomínios por HTTPS. Em particular, você deve suportar HTTPS para o
www
subdomínio se existir um registro DNS para esse subdomínio. - Sirva um cabeçalho HSTS compatível com RFC 6797 no domínio base para solicitações HTTPS:
- O
max-age
deve ter pelo menos 31536000 segundos (1 ano). - O
includeSubDomains
diretiva deve ser especificada. - O
preload
diretiva deve ser especificada.
- O
- Se você estiver veiculando um redirecionamento adicional do seu site HTTPS, esse redirecionamento deverá tb ter um cabeçalho HSTS compatível (assim como a página para a qual ele redireciona).
Aqui está um exemplo de um cabeçalho HSTS válido.
Segurança de transporte estrita: max-age = 63072000; includeSubDomains; pré-carga
Você pode testar a elegibilidade do seu site visitando o site da lista de pré-carregamento e inserindo seu domínio na caixa de entrada. O aplicativo da Web indicará quais problemas (se houver) você precisa corrigir.
Infelizmente, a complexidade dos sites modernos não permite criar uma configuração de servidor de tamanho único para pré-carregamento do HSTS para incluir neste artigo. Pode haver problemas de tempo de execução com componentes personalizados de terceiros ou outros que devem ser resolvidos individualmente.
Embora o projeto Chromium tenha incluído algumas recomendações de implantação no site de pré-carregamento, estamos sempre felizes em ajudar nossos clientes a melhorar sua segurança de comunicações. Basta enviar um e-mail para suporte@ssl.com e um especialista terá prazer em discutir o melhor caminho a seguir para suas necessidades de segurança.
Conclusão
O HTTPS está se tornando o protocolo de comunicação da Web padrão e o comprometimento total com ele só pode ter efeitos positivos para os proprietários e visitantes do site. Recomendamos remover qualquer conteúdo misto de seus sites para evitar problemas desnecessários (e usuários insatisfeitos).
Como sempre, obrigado por escolher SSL.com, onde acreditamos que uma Internet mais segura é uma Internet melhor.