¿Cómo asegurar que HTTPS se utiliza para enviar credenciales?


1

Como usuario, ¿cómo sé si mi nombre de usuario y contraseña enviados a un servidor están cifrados con HTTPS? Permítame anticipar la respuesta de "buscar el pequeño bloqueo" o "buscar https en la URL" con los siguientes dos ejemplos:

Primero, digamos que navego al sitio web de bank.com. Cuando llego a la página de inicio de sesión, la URL en la barra de direcciones dice " https://www.bank.com/login.php ". Escribo mi nombre de usuario y contraseña, y presiono enviar.

Sin embargo, el formulario para la autenticación dice esto:

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

Obviamente, mis credenciales no se están enviando a través de HTTPS. El segundo ejemplo es todo lo contrario, como puedes imaginar. Navego a bank.com y me presentan el " http://www.bank.com/login.php ". Sin embargo, el formulario esta vez usa HTTPS:

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

De esto queda claro que no podemos confiar en el símbolo de bloqueo en el navegador ni en los "https" en la barra de direcciones.

Creo que realmente tengo dos preguntas que se extienden entre SO y SU:

  1. SU: ¿Cómo puede un usuario normal (no HTML / experto en programación) realizar una verificación de este tipo de manera efectiva?
  2. SO: ¿Cómo pueden los sitios web (o navegadores) proporcionar ayuda a los usuarios para realizar esta comprobación?

Creo que la mayoría de los navegadores lanzarán una advertencia de "envío de datos sin cifrar desde un sitio web encriptado" en el primer caso, pero actualmente no tienen ninguna evidencia para entregar para respaldar eso.
DMA57361

@ DMA57361: si el sitio (como bank.example.com) se agregó anteriormente a su lista de "Sitios de confianza", ¿seguirá recibiendo la advertencia en todos los navegadores (modernos)?
Kevin Fegan

(Jeremy, al parecer, Chrome e IE no avisan en absoluto; mira mi respuesta actualizada. Eso me sorprendió mucho ... CC: @ DMA57361)
Arjan

Respuestas:


3
  1. Para usuarios no expertos en tecnología, no hay mucho que pueda hacer. Habilitar las advertencias en su navegador para publicar a través de HTTP desde HTTPS, es su mejor opción. Si está disponible, es probable que esté habilitado por defecto. Sin embargo, es común que el formulario no especifique el sitio o el protocolo, y se envíe de vuelta al servidor que envió el formulario utilizando el sitio y el protocolo en el que se proporcionó el formulario. En este caso, si el formulario se entregó a través de HTTPS, el envío también lo será.
  2. Los sitios web deben ejecutar pruebas de certificación que garanticen que el formulario de inicio de sesión requiere HTTPS. Esto es relativamente fácil de hacer en la mayoría de los servidores web. Si tratan con tarjetas de crédito, existen requisitos para certificar el sitio y la infraestructura. También deben asegurarse de que el formulario de inicio de sesión solo se sirva utilizando HTTPS.

HTTPS no indica necesariamente que sus datos estén bien cifrados. Hay protocolos de seguridad relativamente bajos que se pueden habilitar. El servidor y el navegador negocian el nivel de encriptación. Donde esté permitido (algunos países tienen límites), puede desactivar los protocolos de menor seguridad en su navegador. (La pantalla para hacer esto no siempre es fácil de encontrar). Por lo general, es más fácil verificar la seguridad de la conexión en particular.


Aún más: Apache tuvo una falla importante hace algunos años, al permitir el cifrado de cero bits ... Las computadoras públicas compartidas a las que se cambió la configuración de su navegador para permitir ese "SSL" no cifrado también podrían engañar al servidor para que acepte eso. .
Arjan

No lo mencioné, pero un protocolo disponible es ninguno (cifrado de 0 bits). Normalmente necesita estar habilitado.
BillThor

2

está claro que no podemos confiar en el símbolo de bloqueo en el navegador ni en los "https" en la barra de direcciones

Esperaba que un navegador sano te avisara cuando un formulario en un sitio HTTPS se envía a una URL que no es HTTPS (tu primer ejemplo). Pero algunas pruebas más revelan que tal es solo en parte verdad . Abril 2013:

  • Safari 6.0.4, Mobile Safari y Firefox 20 (en OS X 10.8 y Windows 7) muestran una advertencia (tanto al enviar a la misma URL como al enviar a otro dominio).

  • Chrome 26 (en OS X 10.8, Android 4.1 y Windows 7) e Internet Explorer 9 y 10 (en Windows 7) no avisan en absoluto.

Por lo tanto, para la mejor experiencia de usuario en los navegadores que muestran una advertencia, la página de inicio de sesión en sí también debe ser atendida por HTTPS. Cualquier banco hará eso. En los sitios que no lo hacen, los usuarios deben realizar la validación ellos mismos, instalar un complemento o usar algún script de Greasemonkey para decorar formularios seguros o mostrar alguna advertencia. Para cromo una extensión de terceros Está disponible también, pero nunca usé eso.

__________
Pensando en ello, tal vez me guste el cambio: podría hacer Más las personas habilitan HTTPS en su sitio, sin tener que preocuparse por las advertencias cuando interactúan con sitios de terceros que aún no usan HTTPS.


Si el sitio (como bank.example.com) se ha agregado previamente a su lista de "Sitios de confianza", ¿seguirá recibiendo la advertencia en todos los navegadores (sanos)?
Kevin Fegan

@kevin, no lo sé, ya que no uso los navegadores que usan el concepto de sitios de confianza. Pero: puedes probar fácilmente en este ejemplo . Sin embargo, parece que el Chrome actual en una Mac (ya no) advierte sobre el envío a una URL no segura. Firefox y Safari hacen bien sin embargo.
Arjan

Probé su página de ejemplo en Windows 7 x64 usando IE9 x32 y x64. Para cada versión de IE9, abrí la página de ejemplo y hice clic en cada botón. Después de hacer clic en cada botón, volví a la página original y hice clic en el botón siguiente. Al hacer clic en los botones HTTP, el fondo de la página cambió de verde a rojo, pero en todos los casos HTTP y HTTPS, no recibí advertencias del navegador. Mi IE9 en esta máquina está altamente personalizado, por lo que podría explicar por qué no hay advertencias. También probé esto en FireFox 14.0.1 y de hecho recibo una advertencia del navegador como se sugiere (cuando el objetivo es HTTP). - & gt;
Kevin Fegan

No tengo ningún sitio ( dikidiki.net o iana.org ) en mi lista de sitios de confianza.
Kevin Fegan

No tengo Chrome (o Safari) instalado en ninguna máquina, por lo que no puedo probar Chrome en este momento. Puedo probar esto en el futuro, pero tal vez alguien más lo intentará en Chrome e informará aquí.
Kevin Fegan

1

Force-TLS requiere que especifique los sitios que desea que requieran comunicaciones https. Un artículo sobre el uso y por qué está aquí: http://techcrunch.com/2010/10/25/firesheep/ Creo que esto podría responder a ambas preguntas.


De hecho, SSL no solo se requiere al enviar las credenciales. (Para garantizar que, además de usar las URL correctas, una aplicación web sana también debe enviar las cookies con secure bandera.)
Arjan

Esto es verdad...
RobotHumans
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.