2012-02-23 7 views
5

Implementé En la aplicación Facturación en mi aplicación Android. Seguí bastante la aplicación de muestra (Dungeon) para que funcione. Parece estar funcionando bien a partir de ahora. Ahora necesito decidir cuánto esfuerzo debo poner en la parte de Seguridad.¿Cuánto esfuerzo pongo en mi seguridad para Android In App Billing?

Tengo un servidor que podría usar para implementar las cosas de Security.java. También estoy usando la implementación estándar PurchaseDatabase.

En este momento estoy pensando solo en encriptar el archivo .db con una clave específica del dispositivo y dejando solo Security.java.

Mi pensamiento es que mi aplicación es una aplicación bastante específica, y no estoy esperando mucho piratearla. Si hay algunas personas que se esfuerzan por ahorrar un par de dólares (cada artículo que se comprará solo será de $ 1), que así sea.

Creo que estoy buscando opiniones sobre lo que otras personas piensan sobre esto ... parece que no hay una implementación 100% segura ... solo implementaciones que hacen que la piratería no valga la pena. ¿Han visto otras personas piratear muchas de las compras en aplicaciones?

Respuesta

2

Has acertado: no necesitas implementar funciones de protección muy complejas, necesitas implementar funciones de protección que toman demasiado tiempo para ser encontradas y eliminadas Aquí hay un video de Google I/O 2011 sobre técnicas para reducir "leechers": http://www.youtube.com/watch?v=TnSNCXR9fbY, lo recomiendo completamente. Algunas técnicas que quizás desee probar son:

  • use LVL;
  • ofuscar código;
  • llama LVL en momentos aleatorios desde una cadena de fondo;
  • inserte verificaciones de licencia mezcladas con código normal ;;
  • Archivos de código CRC;
  • sé trabajador: utiliza la reflexión en JNI para verificar las firmas;
  • cifra las bibliotecas/recursos principales y cárgalos sobre la marcha.

Algunas de estas técnicas son muy simples, otras requieren un esfuerzo no despreciable. La mejor recomendación es ser creativo, esconder cheques donde los crackers no los esperan.

Otro punto importante es hacer que su aplicación se degrade graciosamente si sospecha de piratería. Por ejemplo, no arroje una "licencia inválida" porque su verificación de licencia necesita acceso a la red al inicio de la aplicación; en su lugar, almacene en algún lugar un token "válido por dos meses" y actualícelo al azar. Verifíquelo después de un número aleatorio de días (por ejemplo, un entero aleatorio en el rango de 30 a 60 días). Los clientes no notarán este cheque y es difícil de descifrar porque no será aparente después de mucho tiempo, mucho más tiempo del que los crackers están dispuestos a gastar en una sola aplicación.

+0

+1 para una respuesta excelente. [Este] (http://stackoverflow.com/a/9134578/1124861) es una gran respuesta, también. –

Cuestiones relacionadas