Autorizar el uso de aplicaciones de un almacén público sin servicio de back-end

3

Tengo un proyecto en el que tengo que distribuir una aplicación móvil para un público específico. Debido a las restricciones regulatorias en el mercado objetivo, solo esta audiencia tiene permiso para acceder a los datos dentro de la aplicación, pero será atendida desde tiendas de aplicaciones públicas (múltiples plataformas están dirigidas).

Estoy buscando ideas sobre un método de autorización que no depende de un servicio de back-end, como un servicio de registro. Todos los datos de la aplicación son independientes y, una vez que se descarga, no hay ninguna expectativa (y en muchos casos, no hay instalaciones) para la conectividad a Internet.

Una opción sería un único código de "desbloqueo" que podría proporcionarse a los destinatarios destinatarios de la aplicación, pero existe la preocupación de que si se redistribuye, obviamente eludiría el control de acceso para cualquier persona que obtuviera el código. Por supuesto, también existe el riesgo de que cualquier código contenido dentro de la aplicación pueda ser diseñado por ingeniería inversa, pero, de nuevo, también podrían hacerlo los datos que intentamos proteger en primer lugar.

En última instancia, necesito encontrar un equilibrio entre seguridad y practicidad. Los datos que se protegen no son sensibles desde el punto de vista comercial, sino que los controles de acceso se deben a obligaciones reglamentarias, por lo que el requisito de protegerlos consiste más en implementar "medidas suficientes" en lugar de apuntar a una prueba de balas.

¿Puede alguien compartir algunas ideas sobre cómo se puede servir la aplicación desde una tienda de aplicaciones pública y desbloquearla sin el riesgo de que un solo secreto, como un código de acceso se redistribuya?

    
pregunta Troy Hunt 22.03.2013 - 00:41
fuente

2 respuestas

4

Parece que estás tratando de hacer que los datos estén disponibles públicamente, así como de restringirlos a un conjunto limitado de personas, lo que es una contradicción en los términos.

Si está justo detrás del control de acceso de nivel de UI en la aplicación, podría idear un esquema ridículo, pero alguien podría extraer datos de la aplicación con poco más que una utilidad de descompresión, dependiendo de los datos cómo se almacena.

Si puede usar una sola contraseña, puede usar la derivación de claves para descifrar cualquier información cifrada almacenada dentro de la aplicación, sin embargo, ya descontó "un solo código de" desbloqueo "". A menos que tenga una lista de códigos, pero eso no aborda el problema que describió.

La única opción que se me ocurre que satisface todos los requisitos enumerados sería de dos factores: una lista blanca de ID de dispositivo junto con la derivación y el cifrado clave. Sin embargo, casi no hay forma de superar a Apple y Microsoft.

Simplemente no me parece particularmente factible.

    
respondido por el yaakov 22.03.2013 - 00:55
fuente
3

Sus requisitos parecen ser bastante contradictorios. Voy a sugerir un esquema que puede o no ser factible de implementar. Tú decides.

Sugiero que la aplicación que envíe a las tiendas de aplicaciones públicas no contenga ninguna información confidencial. En su lugar, la aplicación debería proporcionar un medio para descargar datos de sus propios servidores backend de manera segura. La aplicación puede guardar los datos en el almacenamiento del dispositivo, por lo que la descarga solo debe realizarse una vez. Podría proporcionar a cada usuario legítimo un código distinto que permita a la aplicación descargar esos datos una vez . Esto proporciona dos ventajas: le permite confirmar quién está descargando los datos de su servidor, así como proporcionar un medio para actualizar la aplicación con nuevos datos.

Para proteger los datos en caso de que el dispositivo sea robado, debe usar el cifrado. No hay manera de evitarlo. Realizar el cifrado del lado del cliente con una clave derivada de una contraseña elegida por el usuario utilizando una función de derivación de clave segura debería ser suficiente. Esto también cumple con el requisito de no permitir que los datos se desbloqueen mediante un código de acceso único que se redistribuye, ya que cada usuario tendrá su propia contraseña.

Al no estar familiarizado con las reglas de las tiendas de aplicaciones de Apple o Microsoft, no estoy seguro de que permitan que tales aplicaciones ingresen al sistema.

    
respondido por el Ayrx 22.03.2013 - 05:28
fuente

Lea otras preguntas en las etiquetas