¿Cómo almacena Quora las contraseñas de los usuarios?

Bueno, no estoy muy seguro si eso es completamente correcto. Quora puede almacenar (espero que sí) el valor cifrado o hash de su contraseña, pero aún así parece que cuando inicia sesión, su contraseña de texto sin cifrar se envía como datos de formulario a los servidores de Quora, donde se manejarán en texto claro en un momento a tiempo. Para hacer PBKDF2, tendría que recibir un valor de sal, que debería ser enviado a su primero (o un valor de sal basado en su nombre de usuario, como alternativa).

La forma segura de manejar los inicios de sesión es SHA256 el nombre de usuario, enviar ese valor hash al servidor, que responde con el valor de sal correspondiente para ese usuario. Ese valor hash se usa junto con la contraseña para generar el PBKDF2. Solo se envía el PBKDF2 (como el formulario de datos / datos POST) al servidor. Con esta configuración, el servidor receptor no maneja su contraseña (y su nombre de usuario para seguridad adicional) en texto claro. Esto puede ser algo menor, pero hay muchos registros que se ejecutan en segundo plano, a veces no están encriptados / protegidos, que revelarán su contraseña sin darse cuenta.

Además, el servidor debe usar bcrypt, etc. para encriptar los SHA256 y PBKDF2 recibidos con su propia contraseña para otra capa de seguridad (para datos en reposo, etc.).

Si realmente quiere ir un paso más allá, puede “etiquetar” su computadora con un valor único que se envía junto con sus datos de inicio de sesión. Si la etiqueta no está presente (inicio de sesión desde una computadora nueva) o incorrecta (computadora compartida), el servidor activa un proceso de autenticación de dos factores que envía un mensaje de texto o correo electrónico para que ingrese otro código para identificarlo claramente.

Bueno, así es como lo hacemos de todos modos …

Lo creas o no, las contraseñas son la cadena más débil en algunos sitios web. Dado que Quora acaba de anunciar un programa de recompensas de errores, dudo que estén haciendo algo menos que Hashing with a salt (SHA2) o una ligera variante: PBKDF2 o Bcrypt. Concepto similar
Programa de recompensa de errores de seguridad por Andrey Kurochkin en Ingeniería en Quora

Los almacenamos encriptados en nuestra base de datos para poder verificar si uno es correcto, pero no podemos recuperar las contraseñas de texto sin formato de las personas.

A veces publicaré código que muestra exactamente lo que hacemos, pero eso no parece una gran idea en este caso particular.