none
Seguridad en IsolatedStorage RRS feed

  • Pregunta

  • Hola:

    tengo que guardar algunos datos confidenciales en una app. Aunque representa que en ese espacio no puede acceder otra app, pero eso no significa que haya peligro (hackeo, si te roban físicamente el teléfono,...)

    Por lo que me entran paranoias y dudas. A priori tenía  pensado hacer esto:

    1) el acceso a la app requerirá un password. Este password lo guardaré encriptado en isolatedstorage 

    2) los datos confidenciales van a estar encriptados en la base de datos

    3) poner contraseña a la bd

    Leyendo un artículo dicen que nunca guardes el password maestro en el teléfono, sino que lo memorices (tipo credenciales banca online....bueno, más o menos) por lo que  cada vez debes introducir los 2 pin  para cifrar y descifrar. Seguro sí lo veo, pero poco viable (por enfarragoso) si vas a manejar bastantes datos.

    entonces también tenía pensado hacer un "mix" de los 2: es decir, no guardar de forma permanente el password, pero sí  guardarlo encriptado de forma temporal en el settings para que el usuario no tenga que introducir cada vez los password

    ¿que os parece? ¿alguna otra idea mejor?

     


    Saludos / Regards
    domingo, 5 de febrero de 2012 17:29

Respuestas

  • Es difícil indicarte una forma mejor.

    Lo ideal es que como mucho, almacenes el usuario, pero la contraseña no, a no ser que des esa opción al usuario para que la almacene (bajo su responsabilidad) en el teléfono.

    Si atacas desde tu aplicación al servicio de turno, podrías incluso encriptar el usuario y contraseña con un par de claves (pública, privada), pero vamos... dependiendo del tipo de aplicación que estés desarrollando, igual una técnica complica más el asunto que otra.

    Lo que sí debe quedarte claro, es que se puede hacer prácticamente todo lo que no te gustaría que se pudiera hacer:

    - Descargar xaps.

    - Descargar elementos del almacenamiento aislado.

    - Descompilar xaps.

    etc.

    Es decir, la seguridad es siempre un tema muy delicado a tratar y dependerá de lo que quieras hacer.

    Lo ideal es lo que te indico... almacenar sólo usuario, y sobre almacenamiento de datos, evitar el almacenamiento de datos confidenciales siempre que se pueda.

    Un saludo,

    Jorge


    MVP Visual Basic
    • Marcado como respuesta yaeko.m lunes, 6 de febrero de 2012 17:10
    lunes, 6 de febrero de 2012 15:52

Todas las respuestas

  • Hola

    por definición, todo lo que tu aplicación almacene en el IsolatedStorage es privado y accesible únicamente desde tu aplicación.

    Por su puesto, si se desbloquea el teléfono hay herramientas que permite explorar ese almacenamiento.

     


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server
    domingo, 5 de febrero de 2012 18:43
  • Es difícil indicarte una forma mejor.

    Lo ideal es que como mucho, almacenes el usuario, pero la contraseña no, a no ser que des esa opción al usuario para que la almacene (bajo su responsabilidad) en el teléfono.

    Si atacas desde tu aplicación al servicio de turno, podrías incluso encriptar el usuario y contraseña con un par de claves (pública, privada), pero vamos... dependiendo del tipo de aplicación que estés desarrollando, igual una técnica complica más el asunto que otra.

    Lo que sí debe quedarte claro, es que se puede hacer prácticamente todo lo que no te gustaría que se pudiera hacer:

    - Descargar xaps.

    - Descargar elementos del almacenamiento aislado.

    - Descompilar xaps.

    etc.

    Es decir, la seguridad es siempre un tema muy delicado a tratar y dependerá de lo que quieras hacer.

    Lo ideal es lo que te indico... almacenar sólo usuario, y sobre almacenamiento de datos, evitar el almacenamiento de datos confidenciales siempre que se pueda.

    Un saludo,

    Jorge


    MVP Visual Basic
    • Marcado como respuesta yaeko.m lunes, 6 de febrero de 2012 17:10
    lunes, 6 de febrero de 2012 15:52
  • Gracias a ambos por las respuestas.


    Esa aplicación sólo iba a gestionar los datos en "local" . la única conexión sería sólo al skydrive para importar / exportar los datos. Fichero encriptado.

     

    Reestruturaré la app para que:


    Lo ideal es lo que te indico... almacenar sólo usuario, y sobre almacenamiento de datos, evitar el almacenamiento de datos confidenciales siempre que se pueda.



    Saludos / Regards
    lunes, 6 de febrero de 2012 17:10
  • Supongo que lo tenés en cuenta, pero no te olvides de OBFUSCAR el XAP!

    No es un método "perfecto", por las restricciones propias de SL, pero ayuda y mucho.


    Gus

    viernes, 17 de febrero de 2012 3:49
  • Hola:

    gracias por el aviso :-)

    para mis aplicaciones uso el EAZfuscator (gratuito) pero aún no lo he probado para windows phone (que veo que también lo soporta).

    ¿cual usáis vosotros?


    Saludos / Regards

    viernes, 17 de febrero de 2012 11:22
  • Hola:

    gracias por el aviso :-)

    para mis aplicaciones uso el EAZfuscator (gratuito) pero aún no lo he probado para windows phone (que veo que también lo soporta).

    ¿cual usáis vosotros?


    Saludos / Regards



    En mi caso, uso el .Net Reactor.

    Es uno de los mejores.


    Gus


    • Editado GustavoFR domingo, 19 de febrero de 2012 20:25
    domingo, 19 de febrero de 2012 20:24