Cómo preservar la información confidencial en el lado del cliente binario?
Tengo ganas de desarrollar una aplicación de Android / iphone, los que estarán utilizando una API privada (no libre) con clave de cliente incrustado.
Ahora, ya que es posible hacer ingeniería inversa de los binarios de la aplicación y eliminar las cadenas. Estoy preocupado de perder mi cliente-llave y allí exponiendo la API privada al atacante.
- Experiencia con Vaadin touchkit
- Guardar / cargar el estado del documento de forma rápida y robusta para el editor de imágenes
- ¿Cómo puedo crear una pantalla de carga en Corona SDK?
- ¿Cuál es la diferencia entre Admob y Adwhirl?
- ¿Existe una aplicación de escáner de código de barras de plataforma cruzada con un SDK disponible para dispositivos móviles?
¿Cómo manejar esto? ¿Puede proporcionar enlaces a artículos que discutan estas situaciones?
Teniendo en cuenta que tengo acceso de desarrollo a la API privada, ¿qué mecanismo puedo construir en que para preservar la privacidad de todo el sistema.
Por favor ayuda !
- Cargando la imagen codificada en Base64 en Cocos2d-x
- Reutilización de diseños de Android
- Facturación personalizada en la aplicación para evitar las tarifas de transacciones de Android / iTunes
- ¿Es posible la ejecución del montaje ARM en Simulador de iPhone o Android Simulator?
- ¿Cómo dibujo una línea en Titanium?
- API de servidor para aplicaciones móviles
- Alternativas a google maps api
- Activar evento de clic en la etiqueta de enlace en JS para Android e iPhone
Siempre será posible usar la API privada si tiene acceso al código de sus aplicaciones (vea este hilo también). Sin embargo, puedes hacerlo más difícil. Y puede restringir el uso de la API con las siguientes opciones
1) si no es "su" API, no coloque la clave en la aplicación, sino en un servidor que está ejecutando para servir como proxy para el servicio extranjero (es probable que todavía quiera otra clave para su servidor para ir a la aplicación, a continuación, )
2) cifrar / codificar la clave para que no se agarre fácilmente:
- Ejemplo simple para codificar: poner la clave en un archivo; Generar un archivo aleatorio de la misma longitud; Xor el archivo clave con el archivo aleatorio (y escríbalo de nuevo en el disco); Cada vez que necesite la clave, lea los archivos y xor ellos de nuevo (cualquier operación reversible en lugar de xor hará – operación más compleja, extendida sobre su código hará más difícil para el ingeniero inverso)
- Cifrar su clave usando una frase de paso extendida sobre su aplicación (en aplicaciones de despliegue de Android se ofuscó de todos modos, por lo que encontrar es un poco más difícil)
3) si es su servicio o tiene una configuración de proxy, restringir el número de usos por cliente / IP o ofrecer sólo partes del servicio a través de su proxy
Tenga en cuenta que la opción 1 puede incluso ser necesaria si tiene un contrato que prohíbe hacer pública su clave.
- Android Service.startForeground NO respeta la id unicidad de notificación
- AssembleDebug error en Android Studio