Acabo de enviar el nombre de usuario y la contraseña a través de https. ¿Esta bien?

45

Cuando un usuario inicia sesión en mi sitio, me envía su nombre de usuario y contraseña a través de https. Además del ssl, no hay una ofuscación especial de la contraseña: vive en la memoria en el navegador.

¿Hay algo más que deba hacer? ¿Debo mantener el hash de alguna manera, incluso en la memoria RAM?

    
pregunta Riley Lark 12.09.2011 - 07:00
fuente

2 respuestas

35

Esto está bien. No necesitas hacer nada más. No hay necesidad de hacer un hash o de ofuscarlo en la memoria RAM.

Debería tener cuidado de mantener la contraseña apropiadamente en el lado del servidor antes de almacenarla en la memoria persistente (por ejemplo, en una base de datos), y debe tener cuidado de usar los métodos adecuados para la codificación de contraseñas. Consulte, por ejemplo, ¿Cómo hash seguro de contraseñas? , ¿Qué método de hashing de contraseña debo usar? , ¿Algoritmo (s) de hash de contraseña más seguro? , ¿Algún experto en seguridad recomienda bcrypt para la contraseña? ¿almacenamiento? .

Si desea brindar seguridad adicional a sus usuarios, aquí hay algunos pasos que puede seguir:

  • Use SSL / TLS en todo el sitio. Cualquier intento de visitar su sitio a través de HTTP debe redirigirse inmediatamente a HTTPS.

  • Habilite HSTS en tu sitio. Esto le dice a los navegadores que solo se conecten a usted a través de HTTPS. Paypal lo usa. Es compatible con las versiones recientes de Firefox y Chrome.

  • Compra un certificado EV. Esto les da a los usuarios una señal adicional (el brillo verde) que puede ayudar a algunos usuarios de alerta a darse cuenta cuando están bajo ataque. Sin embargo, no está claro si esto será efectivo en la práctica, para los usuarios típicos, por lo que hay cierto debate sobre si los certificados de EV agregan algún valor en absoluto.

No estoy diciendo que tengas que hacer estas cosas (aunque SSL / TLS en todo el sitio hace una gran diferencia). Pero estas son algunas opciones que pueden ayudar a fortalecer la seguridad contra algunos vectores de ataque comunes.

    
respondido por el D.W. 12.09.2011 - 07:11
fuente
5

Una cosa adicional que podría hacer sería utilizar certificados de cliente. El servidor solo puede garantizar a sí mismo que no hay MitM al requerir un certificado de cliente. De lo contrario, debe confiar en el cliente para validar correctamente la ausencia de un MitM. Esto es más que muchos servicios que deberían estar dispuestos a confiar.

    
respondido por el Steve Dispensa 12.09.2011 - 07:49
fuente

Lea otras preguntas en las etiquetas