¿Se almacenan las contraseñas en la cookie? cifrado?

9

Siempre que me conecto a security.stack.exchange, me conecto automáticamente. No he permitido que el navegador almacene mi contraseña. Cuando borro todas las cookies almacenadas por security.stack.exchange, debo iniciar sesión por mi cuenta ingresando el nombre de usuario y la contraseña. Por lo tanto, llegué a la conclusión de que stack.exchange debe almacenar un identificador único o contraseñas en las cookies que permiten el inicio de sesión automático.

Cuando verifiqué las cookies almacenadas por Stack Exchange, encontré el contenido de la cookie llamado "usuario de seguridad" que contiene t="algo" & s="algo". ¿Es este mi nombre de usuario y contraseña? ¿Las contraseñas guardadas en la cookie están encriptadas?

Usando el navegador Chrome, encontré que hay 3 cookies almacenadas por stackexchange.
yo. "gauteado"
ii. "usuario de seguridad" que contiene t="" & s=""
iii. "sgt" que contiene ID

Eliminando la cookie "sgt" que creo que almacena mi identificador único, todavía estoy conectado automáticamente. Por lo tanto, desconfío de la cookie "usuario de seguridad".

Además, si no he permitido que mi navegador almacene mi contraseña, ¿por qué debería un sitio web almacenar la información de inicio de sesión sin mi consentimiento? ¿Es este un comportamiento correcto?

    
pregunta Curious 13.11.2014 - 05:05
fuente

1 respuesta

19

Por lo general, la contraseña no se almacena en la cookie. Inicia sesión en example.com con tu nombre de usuario y contraseña, se verifica que estos te pertenecen (generalmente, al escribir tu contraseña y verificar que el hash de tu contraseña coincida con el hash de un usuario con ese nombre de usuario), y el servidor te envía un Número de token largo aleatorio como un identificador secreto para usted.

Digamos que eligen 24 caracteres aleatorios de 62 caracteres (26 letras mayúsculas, 26 letras minúsculas, 10 números). Almacenan este identificador en su base de datos como válido y asociado a usted. Cada vez que realiza una solicitud mientras está conectado, envía la cookie a su sitio web. Cada vez que se envía una solicitud con este identificador, buscan si está asociada con un usuario que haya iniciado sesión y si es que proporcionan la información sobre ese usuario.

Hay 62 24 ~ 10 43 ~ 2 142 posibilidades. Si su sitio web tiene mil millones (10 ^ 9) de usuarios registrados en cualquier momento a los que se les emitieron tokens, tendría que probar aproximadamente 10 ^ 37 posibilidades hasta que tuviera la suerte de adivinar una al azar. (Si cada intento toma 1 nanosegundo, le tomaría aproximadamente 10 11 mil millones de años antes de que tuviera la suerte de adivinar un token válido).

Por lo general, la cookie de su sesión solo es válida durante un cierto período de tiempo, que también se almacenará en la base de datos del lado del servidor.

Hay otras variaciones en este tema, por ejemplo, usando HMAC (códigos de autenticación de mensajes hash) con una marca de tiempo almacenada basada en un secreto del lado del servidor. Es decir, cuando inicia sesión, el servidor le proporciona una marca de tiempo, así como un fuerte hash de esa marca de tiempo y su nombre de usuario que se combina con un secreto del lado del servidor. Es decir, el servidor calcula h = HMAC (secreto + marca de tiempo + nombre de usuario) cuando inicia sesión, le devuelve la h calculada, y luego envía (h, nombre de usuario y marca de hora) como información de inicio de sesión. (Y el servidor toma su nombre de usuario y su marca de tiempo, recalcula h y lo compara con la h que dio, y se asegura de que la marca de tiempo todavía sea válida y no sea muy antigua).

Ahora no estoy particularmente familiarizado con los detalles de cómo lo hace stackexchange (por ejemplo, qué es la parte t=...&s=.... de .security.stackexchange.com ), pero es probable que sea una variación de este esquema. Es decir, no cifra su nombre de usuario o contraseña de forma recuperable, ya sea que se almacena en una base de datos o se basa en una función hash de una sola vía que se basa en un secreto del lado del servidor.

    
respondido por el dr jimbob 13.11.2014 - 05:30
fuente

Lea otras preguntas en las etiquetas