Enigma de encriptación

Estoy en el proceso de crear una aplicación que enviará y recibirá datos de un servidor. Suficientemente simple. En caso de conectividad cortada, también he comenzado a programar la funcionalidad de almacenar datos hasta que se obtiene la conectividad. Estos datos se almacenan localmente en una base de datos SQLite.

Los datos (no la tabla) se está cifrando, y yo almacenaría sal usuario individual / IV lado del servidor.

Aquí está el quid de mi problema. Si el usuario no tiene conectividad, entonces él / ella no puede conectarse a mi servidor para recuperar su sal / IV, y si almacenar sus claves individuales en el dispositivo en algún lugar, entonces es bastante simple para que cualquiera pueda echar un vistazo!

¿Existe una práctica común que podría emplear para garantizar la seguridad de los datos? Me resulta difícil creer que no hay manera de almacenar datos de forma segura sin una conexión a Internet, pero de nuevo, soy relativamente nuevo en este negocio de comunicación de servidor completo.

One Solution collect form web for “Enigma de encriptación”

Sólo para jugar al abogado del diablo: ¿quién dice que el servidor no está comprometido y entrega una clave privada / sal / IV de un atacante? Esto podría hacerse a través de un punto de acceso comprometido, por ejemplo, o también a través de algún malware de Android que redirecciona los nombres de host a diferentes direcciones IP que reemplazan a su servidor.

No vale la pena preocuparse por estos problemas potenciales. Usted no es responsable de mantener la integridad de los dispositivos de sus usuarios. Si yo fuera usted, sólo almacenaría la clave de cifrado / credenciales en el dispositivo del usuario en el almacenamiento de aplicaciones internas / privadas.

Si el usuario tiene un sistema arraigado o comprometido que no tienen la culpa y supongo que el usuario tiene mucho más que preocuparse.

Además de eso, debe hacerse la pregunta, si su aplicación en particular vale la pena para un atacante para estudiar, dirigir y explotar.

  • Android SQL: Comprobar si existe registro en la base de datos
  • Actualizar una columna como suma de otras dos columnas
  • Android rawQuery - ¿Hay una manera de usar "IN" parametrizada para una colección de datos
  • ¿Cómo puedo agregar una columna en onUpgrade y establecer las filas existentes en un valor determinado?
  • Error de sintaxis con KEY EXTRANJERA en CREATE TABLE
  • Cómo construir una consulta SQLite a GROUP by ORDER?
  • Cómo obtener el registro de llamadas desde fecha específica en android
  • Datos dinámicamente de datos de tabla de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.