Rastreo de contraseñas para los principales sitios web a través de Internet

1

Tenía curiosidad acerca de cómo las contraseñas rellenadas en los campos de contraseña viajan del lado del cliente al lado del servidor. Entonces, comencé a explorar artículos en línea y utilizando mi propio conocimiento sobre redes y criptografía, llegué a una cierta conclusión. Pero sigo pensando que no entiendo el mecanismo completo. Esto es lo que sé y me corrija si estoy equivocado.

Hoy en día, la mayoría de los navegadores web utilizan HTTPS, que es TLS a través del protocolo HTTP. En este caso, se crea una sesión entre los dos lados mediante el protocolo de intercambio de contactos en el que se intercambian las claves para cifrar los datos. Por lo tanto, cuando inicio sesión o creo una nueva cuenta en Google, Facebook u otra parte, estas claves se utilizan para cifrar los datos antes de la transferencia. ( incluida la contraseña ).

Cuando el paquete llega al servidor, descifra los datos (incluida la contraseña). Si se trata de una cuenta nueva, el servidor almacena el valor hash de la contraseña o el valor hash con sal. Estoy pensando que durante este tiempo la contraseña está en forma de texto. En caso de que sea una cuenta antigua, el servidor simplemente verifica el valor hash de la contraseña con el valor hash almacenado del cliente.

Es que todos o los sitios web toman especial cuidado con las contraseñas para la transferencia ? ¿Cuál es la situación cuando solo se usa HTTP? ¿Cuál fue el escenario antes de que HTTPS entrara en escena?

    
pregunta Ugnes 20.06.2017 - 08:41
fuente

1 respuesta

2

Desde la generalización de HTTPS, la mayoría de los sitios se basan en el cifrado SSL / TLS entre el cliente y su sitio. Entonces, como dijiste, solo almacenan un hash de la contraseña. Es cierto que entre el punto final de SSL y el procesamiento real, la contraseña está en texto claro, pero se supone que es la misma zona de seguridad.

En los días anteriores (solo HTTP), se habían utilizado dos formas, ninguna de las cuales era perfecta.

  1. Variante de resumen de la autenticación BASIC.

    El protocolo HTTP tiene una disposición para transmitir credenciales en los campos de encabezado, la autenticación basic . El nombre de usuario y la contraseña se combinan con dos puntos y se codifican en una variante de Base64. Y puede ser robado por cualquiera que tenga acceso a los datos de la red.

    Para agregar algo de privacidad, las personas imaginaron enviar solo un hash de las credenciales. Esta fue la autenticación de resumen especificada en RFC 2617. En este modo, un hash (MD5) de las credenciales se combinó con una excepción. Dada por el servidor se transmite. Como MD5 no es invertible, un atacante no puede robar la contraseña original. Pero el principal inconveniente es que la contraseña debe mantenerse en forma invertible en el servidor.

  2. Encriptación de Javascript de los formularios de inicio de sesión

    Esta es principalmente una variante de la anterior para los formularios de inicio de sesión. Las credenciales son hash del lado del cliente, normalmente con un nonce transmitido en un campo oculto. Aquí, nuevamente, las contraseñas deben mantenerse en el servidor de forma invertible.

Como ahora se acepta generalmente que es más seguro intercambiar la contraseña de texto sin formato a través de una línea segura que solo un hash en uno inseguro, esas dos formas ya no se usan realmente.

    
respondido por el Serge Ballesta 20.06.2017 - 09:29
fuente

Lea otras preguntas en las etiquetas