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.

  • Cómo utilizar base de datos SQL otros medios de almacenamiento de datos
  • Android sqlite CREATE TABLE SI NO EXISTE
  • ¿Por qué la aplicación PhoneGap de Android se bloquea al insertar un montón de datos en SQL?
  • No se pudo leer la fila 0, col -1 de CursorWindow?
  • Android SQLite Query - Obteniendo los últimos 10 registros
  • Integración de los servicios REST con una base de datos de inventario y SQL utilizando Android
  • Solicitud de SQL con el caso en orden por tiros "(1) primer término ORDER BY no coincide con ninguna columna en el conjunto de resultados"
  • Android: cómo consultar SQLiteDatabase con args de selección de no-cadena?
  • Enviar la imagen de Base64 desde Android con JSON a php webservice, decodificar, guardar en SQL
  • Comportamiento extraño de la consulta SQLite parametrizada
  • Multi-parámetro en ActiveAndroid
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.