Logins com apenas HTTP - eles são tão inseguros quanto eu estou pensando?

3

Recentemente, eu estava pensando em como sites como o Gmail e a Amazon usam HTTPS durante o processo de login ao acessar sua conta. Isso faz sentido, obviamente, já que você está digitando o nome de usuário e a senha da sua conta e deseja que isso seja seguro. No entanto, no Facebook, entre inúmeros outros sites, seus logins são feitos com HTTP simples. Isso não significa que meu nome de login e senha estão completamente descriptografados? O que, pior ainda, significa que todas as pessoas que acessam seus sites do Facebook (ou sites semelhantes) em um ponto de acesso Wi-Fi em público são suscetíveis a alguém obter suas credenciais usando um simples sniffer de pacotes (ou algo similar)? é realmente tão fácil? Ou estou entendendo mal a segurança da Internet?

Eu sou um engenheiro de software trabalhando em algumas coisas relacionadas à web, e embora no momento não esteja muito envolvido com o aspecto de segurança de nosso software, eu sabia que provavelmente deveria saber a resposta para essa pergunta, já que é extremamente fundamental para a segurança do site.

Obrigado!

    
por JoeCool1986 02.02.2011 / 15:49

3 respostas

6

Sim. Qualquer coisa feita através de WiFi aberto usando HTTP é completamente aberta para interceptação, replay, etc.

Dito isto, os sites que usam HTTPS para negociar login e trocar o cookie de autenticação resultante por HTTP são muito abertos ao seqüestro de sessão também, como o desenvolvedor de firesheep mostrou.

Se você quiser segurança decente, faça tudo sob o HTTPS. Os servidores agora são rápidos o suficiente e os certificados SSL são baratos o suficiente (se você comprar ao redor) que isso é prático; não há mais desculpas para os desenvolvedores da web, colocando em risco seus usuários.

    
por 02.02.2011 / 16:07
1

Se você realmente logar em um site com HTTP simples, é completamente inseguro, sim, e qualquer um em uma WLAN pública poderia farejar seus dados. É por isso que o Facebook faz o login real via HTTPS (observe o código-fonte da página inicial do Facebook e você o verá) e, em seguida, continue sem criptografia para economizar poder computacional. Isso pelo menos protege sua senha, mas ainda permite todos os tipos de ataques, como o Session Hijacking (eles detectam o cookie da sessão e o usam).

    
por 02.02.2011 / 16:08
0

Os sites que transmitem dados confidenciais (como credenciais ou cookies que atuam como proxy para credenciais), claramente colocam seus usuários em risco. Qualquer método que possa ser usado para interceptar e registrar tráfego (sniffers, NICs Wi-Fi em modo monitor, etc) será adequado para reunir essas credenciais. As sessões podem ser sequestradas, as respostas de servidores remotos podem ser falsificadas, etc. Todos os tipos de maldade resultam da movimentação de dados à distância.

Apenas mover dados de credenciais do usuário por HTTPS não é suficiente. Se você estiver usando cookies que substituem as credenciais do usuário, você também não poderá movê-los por HTTP ou corre o risco de comprometer a sessão do usuário.

Como desenvolvedor, você está fazendo um desserviço aos seus usuários, caso não esteja usando HTTPS para movimentar suas credenciais. Isso geralmente significa mais utilização da CPU em alguma camada de sua infraestrutura e opacidade do tráfego à medida que se aproxima da borda da rede. Isso significa criar uma arquitetura de software que permita a entrega de conteúdo "em massa" (imagens estáticas, scripts estáticos, etc.) em texto não criptografado, mas fornecendo conteúdo personalizado (ou seja, conteúdo para o qual a composição é controlada pelo recebimento de credenciais do usuário remoto ) através de meios que permitam a transmissão segura de credenciais.

    
por 02.02.2011 / 16:07