Como garantir que o HTTPS seja usado para enviar credenciais?

1

Como usuário, como sei se meu nome de usuário e senha enviados para um servidor estão criptografados com HTTPS? Deixe-me antecipar a resposta de "procurar o pequeno bloqueio" ou "procurar por https na URL" com os dois exemplos a seguir:

Primeiro, digamos que eu navegue para o site do bank.com. Quando chego à página de login, o URL na barra de endereços diz " link ". Eu digito o meu nome de usuário e senha e clico em enviar.

No entanto, o formulário para a autenticação diz isto:

<form action="http://www.bank.com/login.php"> ... </form>

Obviamente, minhas credenciais não estão sendo enviadas por HTTPS. O segundo exemplo é exatamente o oposto, como você pode imaginar. Eu navego até bank.com e sou apresentado com a página " link ". No entanto, a forma desta vez usa HTTPS:

<form action="https://www.bank.com/login.php"> ... </form>

Com isso, fica claro que não podemos confiar no símbolo de bloqueio no navegador nem nos "https" na barra de endereço.

Acho que tenho duas perguntas que abrangem SO e SU:

  1. SU: Como um usuário normal (não conhecedor de HTML / programação) pode realizar essa verificação de forma eficaz?
  2. SO: Como os websites (ou navegadores) podem ajudar os usuários a realizar essa verificação?
por Jeremy Powell 23.11.2010 / 19:30

3 respostas

3
  1. Para usuários menos experientes, não há muito o que fazer. Ativar avisos no seu navegador para postagem via HTTP de HTTPS é sua melhor opção. Se disponível, isso provavelmente está ativado por padrão. No entanto, é comum que o formulário não especifique o site ou o protocolo e envie de volta para o servidor que enviou o formulário usando o site e o protocolo em que o formulário foi fornecido. Nesse caso, se o formulário foi veiculado por HTTPS, o envio também será feito.
  2. Os sites da Web devem executar testes de certificação que garantam que o formulário de login requeira HTTPS. Isso é relativamente fácil de fazer na maioria dos servidores da web. Se eles lidam com cartões de crédito, há requisitos que certificam o local e a infraestrutura. Eles também devem garantir que o formulário de login seja exibido apenas por meio de HTTPS.

HTTPS não indica necessariamente que seus dados estão bem criptografados. Existem protocolos de segurança relativamente baixos que podem ser ativados. O servidor e o navegador negociam o nível de criptografia. Onde permitido (alguns países têm limites) você pode desativar protocolos de segurança mais baixos em seu navegador. (A tela para fazer isso nem sempre é fácil de encontrar). Geralmente, é mais fácil verificar a segurança na conexão específica.

    
por 23.11.2010 / 19:56
2

it's clear we can't trust the lock symbol in the browser nor the "https" in the address bar

Eu esperava que um navegador sensato avisasse você quando um formulário em um site HTTPS enviasse para um URL não HTTPS (seu primeiro exemplo). Mas mais alguns testes revelam que isso é apenas parcialmente verdadeiro . Abril de 2013:

  • O Safari 6.0.4, o Mobile Safari e o Firefox 20 (no OS X 10.8 e Windows 7) mostram um aviso (tanto ao enviar para o mesmo URL quanto ao enviar para outro domínio).

  • O Chrome 26 (no OS X 10.8, Android 4.1 e Windows 7) e o Internet Explorer 9 e 10 (no Windows 7) não avisam de forma alguma.

Portanto, para obter a melhor experiência do usuário em navegadores que exibem um aviso, a página de login em si também deve ser veiculada por HTTPS. Qualquer banco fará isso. Nos sites que não o fazem, os usuários precisam fazer a validação por conta própria, ou instalar um plugin ou usar algum script Greasemonkey para decorar formulários seguros ou mostrar algum aviso. Para uma extensão de terceiros também está disponível, mas nunca usei isso.

por 23.11.2010 / 19:49