Almacenar contraseñas de forma segura en una aplicación móvil

3

Nota: estoy publicando esto para un amigo mío que no habla inglés muy bien ... Bueno, yo tampoco soy tan bueno, ¡así que discúlpame por adelantado!

Mi amigo está desarrollando una aplicación para teléfonos inteligentes, y les gustaría tener algunos consejos para proteger las ID de la base de datos.

La única idea que tenemos hasta ahora consiste en:

  • Todas las comunicaciones se realizan mediante cifrado asimétrico (clave privada en el servidor)
  • Las credenciales se almacenan, se cifran, del lado del cliente y la clave de descifrado se almacena del lado del servidor

Cuando la aplicación necesite usar las credenciales, le pedirá al servidor la clave de descifrado.

¿Eso sería seguro?

¿No deberíamos autenticar al cliente? Supongo que si no lo hacemos, sería lo mismo que enviar la clave de descifrado como texto sin formato.

    
pregunta Katenkyo 29.09.2016 - 14:33
fuente

1 respuesta

3

Huele a seguridad por ofuscación. Si las credenciales se almacenan en el lado del cliente y si la clave de descifrado se envía al cliente, un atacante podría instalar la aplicación en un emulador y, a través de un depurador, obtener la clave de descifrado y las credenciales. Ok, está lejos de ser simple pero todo depende del valor de la base de datos.

Un uso más común (y más seguro) es crear una aplicación de múltiples niveles: la aplicación frontal (en el teléfono inteligente) no conoce la base de datos, pero solo se comunica con un servidor. Aquí autentificamos al cliente con usuario + contraseña, certificado o lo que sea ... Y solo el servidor realmente se comunica con la base de datos. De esa manera, las credenciales de la base de datos nunca están presentes en el cliente y nunca se intercambian, excepto en la conexión de la base de datos del servidor.

TL / DR: su propuesta en realidad haría las cosas más difíciles para un posible atacante que querría robar la credencial de la base de datos, pero no impide todas las posibilidades. Utilice el diseño de múltiples niveles para una solución realmente segura.

    
respondido por el Serge Ballesta 29.09.2016 - 16:02
fuente

Lea otras preguntas en las etiquetas