2011-06-24 13 views
6

Esta puede ser una pregunta cargada que se ha pedido en múltiples formas antes, pero no la he visto de esta manera, y me gustaría obtener algunas opiniones sobre cómo proceder .Identificación específica de dispositivo/cuenta Android para encriptación semilla

Estoy desarrollando una aplicación que requiere el almacenamiento de credenciales de servicios web de terceros en el dispositivo. Quiero que estas credenciales sean encriptadas, pero tampoco quiero almacenar la semilla en el código/en el dispositivo para evitar un posible secuestro. La aplicación también es compatible con la copia de seguridad utilizando la funcionalidad de copia de seguridad en la nube de Google, lo que requiere una mayor encriptación.

Mi idea era que si podía encontrar un identificador único, podría utilizarse como semilla. Hay algunos requisitos extraños que hacen esto difícil.

  1. La ID DEBE ser la única Y la misma para una combinación dada de hardware/usuario en todas las circunstancias.
  2. No se puede vincular simplemente a un dispositivo o usuario, debe ser una combinación de ambos.
  3. Debe estar disponible SIN IMPORTAR QUÉ; Las direcciones MAC de Wifi y Bluetooth están descartadas, ya que no están disponibles en algunos dispositivos cuando están apagados.
  4. Según lo que he leído, los ID de TelephonyManager (SIM, etc.) no están disponibles en todos los dispositivos.
  5. Por lo que he leído, el ANDROID_ID no estará presente en todas las circunstancias.
  6. La aplicación se lanzará en varios mercados (por ejemplo, Amazon Appstore), por lo que una cuenta de Google no necesariamente estará presente.
  7. Hacer un borrado de fábrica NO debe afectar nada usado para generar este ID (de esa manera el usuario puede hacer una copia de seguridad, borrar & restaurar sin interrupción).
  8. Hacer una actualización OTA NO debe afectar nada usado para generar esta ID (vea el motivo anterior).
  9. Está bien si tienen que volver a autenticarse después de una desinstalación/reinstalación.

entiendo que este valor, obviamente, puede ser recuperada por otras aplicaciones, por lo que tengo la intención de hash, se sembró aún más por el UID aplicaciones, así como < aquí su sugerencia >.

Si alguien siente que los requisitos no son realistas, me gustaría escuchar eso también.

Especialmente a la luz de los recientes maratones de piratería, quiero poder decir al menos "Si alguien puede poner en peligro esto, nada en su teléfono es seguro".

+3

Soy curioso acerca de lo que hiciste al final? ¿Puedes compartir tus experiencias? – tasomaniac

Respuesta

0

Sus requisitos son razonables para garantizar la seguridad, sin embargo, como parece sospechar, no son realistas. Simplemente hay demasiadas diferencias en los niveles de compatibilidad con dispositivos Android para que sea realista.

+0

Gracias por expresar el punto de "razonable para garantizar la seguridad". Sospecho que algunos aún responderán "todo eso es innecesario", independientemente de si es factible o no. –

+0

Lamentablemente, me he decidido a eliminar 3 de los requisitos anteriores; Creo que todo lo que puedo hacer es hacer lo mejor que pueda. –

Cuestiones relacionadas