Enviando contraseña desde la aplicación cliente al servidor con Java

6

Estoy desarrollando una aplicación que requiere que un usuario inicie sesión. En el lado del servidor, estoy usando el algoritmo PBKDF2 para codificar las contraseñas, pero actualmente estoy enviando contraseñas al servidor como una cadena de texto sin formato. Ahora es propenso a olfatear, pero no sé cómo cambiarlo. ¿Qué debo hacer para que esto sea más seguro?

    
pregunta ofca1234 06.04.2018 - 11:22
fuente

1 respuesta

35

Use TLS para la conexión con el servidor.

El propósito de hashear de forma segura una contraseña es hacer que sea más difícil atacar si alguna vez se roba la base de datos. No está diseñado para evitar la detección de la contraseña de texto sin formato. Para poder comunicarse de forma segura con el servidor a través de un medio hostil, debe utilizar TLS. Esto evitará la intercepción en el cable, mientras que el PBKDF2 del lado del servidor evitará que la contraseña se recupere de forma trivial del contenido de una base de datos robada.

Es posible que tengas la tentación de hacer un hash adicional en el lado del cliente. Desafortunadamente, eso no evitaría que un atacante registre el hash enviado desde el cliente y lo use para iniciar sesión más tarde. TLS proporciona protección para una gran cantidad de modelos de amenazas y tiene en cuenta explícitamente este problema. Evitará que un atacante simplemente reproduzca cualquier credencial que esté utilizando. El único escenario en el que el hashing del lado del cliente sería beneficioso es si el servidor es hostil pero el servidor no tiene control sobre el código que ejecuta el cliente, o si el servidor tiene una potencia demasiado baja como para realizar un KDF lento adecuado y un procesamiento pesado Debe ser descargado al cliente. De cualquier manera, debes usar TLS.

    
respondido por el forest 06.04.2018 - 11:25
fuente

Lea otras preguntas en las etiquetas