Desarrollo seguro de aplicaciones Android [cerrado]

4

Estoy comenzando con el desarrollo de aplicaciones para Android y quiero asegurarme de que tomo las precauciones de seguridad adecuadas, ya que la mayoría de las aplicaciones manejarán datos confidenciales.

¿Qué precauciones de seguridad deben tomarse para que mi aplicación y los datos que maneja sean seguros? (precisamente, mi modelo de subproceso en el peor de los casos sería un atacante bien financiado que intenta obtener los datos que maneja la aplicación de la manera que pueda)

Lo sé,

  • La clave de firma debe permanecer segura
  • Los datos deben almacenarse en el entorno limitado de las aplicaciones (preferiblemente encriptados)
  • Los datos deben estar cifrados de extremo a extremo

Pero si, por ejemplo, uso Windows como plataforma de desarrollo o Linux es más recomendable en este caso.

El tipo de aplicaciones que planeo crear serán principalmente aplicaciones de transferencia de datos y comunicación.

¡Cualquier pensamiento es apreciado!

    
pregunta Jasper Weiss 24.01.2016 - 19:28
fuente

2 respuestas

4

La plataforma de desarrollo no tiene nada que ver con la seguridad de su aplicación. Podría, si su máquina de desarrollo no está asegurada adecuadamente o directamente dirigida.

La regla número uno que debes seguir es no implementar tu propio criptografía. Utilice bibliotecas bien conocidas y probadas.

    
respondido por el John 24.01.2016 - 19:35
fuente
3

Algunas cosas vienen a la mente.

Evite almacenar cosas que no estén expuestas localmente. Datos como sesiones, cookies, contraseñas, detalles de cuenta, lo que sea. Ha habido numerosas y diversas formas en que los datos se extraen de las aplicaciones móviles y se reutilizan. Como regla general, si los datos que son específicos para ese usuario (la sesión del usuario, la ID del usuario, el número de cuenta del usuario) son más adecuados para almacenar en caché en el dispositivo que algo que sea igual para todos. Imagine que tiene una clave de licencia para la transmisión de medios desde un CDN, o una clave API para un servicio web (a la OAuth), o algo así. Ese tipo de secretos compartidos no se deben incrustar en la aplicación o almacenar en caché en el almacenamiento local de la aplicación. Aquí hay un error de ejemplo.

Recuerde que cualquier componente del lado del servidor debe autenticar y autorizar todas las llamadas de API a él. Es común crear microservicios como ver órdenes abiertas, buscar archivos disponibles o lo que sea, y hacer que no requieran una sesión válida. También es común que esos microservicios acepten CUALQUIER tipo de solicitudes, siempre que exista CUALQUIER sesión válida. Así que asegúrese de no confiar en la aplicación móvil para determinar qué debe ver y qué no debe ver el usuario. Eso tiene que ser implementado en el lado del servidor.

Eso es dos biggies que vienen a la mente. Hay más, pero no podemos darle un libro en una respuesta.

    
respondido por el Paco Hope 24.01.2016 - 21:58
fuente

Lea otras preguntas en las etiquetas