Tabla de contenido:
- Ofuscación de código
- Modificar la biblioteca de licencias
- Haga que su aplicación sea resistente a manipulaciones
- Mover la verificación de licencia a un servidor remoto
La seguridad de la aplicación, la piratería y la prevención son temas candentes recientemente, con buenas razones. Sin un mercado de aplicaciones robusto, que cientos de miles de nuevas activaciones cada mes no serán mantenibles, y un mercado robusto no es posible sin el respaldo de los desarrolladores. Hemos visto que Android tiene una solución integrada para prevenir la piratería, y también hemos visto lo fácil que es evitarlo si está decidido y si el esquema se deja en su forma básica. Google insinuó que tenían más información para compartir sobre todo el tema, y fiel a su palabra, lo han hecho. Después del descanso, echemos un vistazo a los métodos de un Googler para proporcionar una forma segura y fácil de usar para proteger las aplicaciones.
El Servicio de licencias de Android Market y la Biblioteca de verificación de licencias son herramientas poderosas para que los desarrolladores intenten evitar la piratería de aplicaciones. El problema, como se demostró recientemente, es que fuera de la caja no es muy difícil de evitar. Dado que las personas son personas, y muchas pasarán más tiempo del que vale la pena descifrar una aplicación de 99 centavos del mercado, Trevor Johns (uno de los ingenieros de programas de desarrollo de Android) ha presentado un conjunto útil de consejos para fortalecer las herramientas suministradas, y hacer que las medidas contra la piratería funcionen mejor.
Las cuatro áreas clave son:
Ofuscación de código
La ofuscación de código es un truco utilizado por los desarrolladores que cambia el código fuente, haciendo que las funciones, paquetes, clases y variables conocidas sean muy difíciles de rastrear al proporcionar un alias para cada uno. Tome esta función imaginaria, por ejemplo, onRedraw (). Cada lugar que utiliza la función en el código fuente, está allí, es fácil de leer y posiblemente explotar. Un ofuscador de código reemplazará la función legible por humanos con un alias generado: wy23 () es un buen ejemplo. Una mirada rápida (o una herramienta automatizada) en busca de funciones no va a funcionar, ya que se necesita una búsqueda profunda para ver exactamente qué significa realmente wy23 (). Hay obfyousk8tors de código comercial de Java (¡ja!) Disponibles, y Trevor recomienda ProGuard, y planea un artículo futuro en el Blog de desarrolladores de Android sobre cómo trabajar con ProGuard.
Modificar la biblioteca de licencias
Google recomienda que los desarrolladores cambien la fuente de las bibliotecas de licencias proporcionadas tanto como sea posible mientras conservan la función original. Este es un caso en el que la ruta tomada no es importante, siempre que se llegue al destino. Los desarrolladores pueden enterrar la función en sentencias if / then, bucles, incluso mezclar toda la biblioteca en su propio bloque de código.
Para ir un paso más allá, se alienta a los desarrolladores a utilizar comprobaciones hash y otros métodos de cifrado para generar nuevas constantes, y cambiar el código para buscar las nuevas constantes en lugar de utilizar las proporcionadas por Google en el código de ejemplo. Asegúrese de presionar el enlace de origen para ver un excelente ejemplo directamente de Google que muestra cómo se puede hacer esto. ¡Y no se olvide de ofuscar el código aquí tampoco!
Haga que su aplicación sea resistente a manipulaciones
Este es simple. Para que un ladrón de piratas informáticos elimine las licencias de su aplicación, debe realizar una ingeniería inversa y reconstruir la aplicación. Utilice las comprobaciones de CRC para evitar esto. Google también tiene otra herramienta útil para esta área: verifique que Android Market sea la fuente de instalación de su aplicación y, si no, no la deje correr. Una vez más, hay un ingenioso ejemplo de esto en el enlace de origen.
Mover la verificación de licencia a un servidor remoto
Si su aplicación usa componentes en línea, Google recomienda que mueva la información y la respuesta de LVL de la aplicación a su servidor. Cuando el usuario usa la aplicación, su servidor verifica con Google, y si todo no es kosher, no se sirve contenido. Si bien es simple, también es muy efectivo para evitar esto, alguien tendría que cambiar no solo la aplicación, sino también el contenido de su servidor. Recuerde, los datos locales nunca son seguros, pero un servidor bien mantenido y protegido es una nuez bastante difícil de descifrar.
Por último, Google nos recuerda a nosotros, los usuarios finales, y recomienda que estos trucos se utilicen de manera transparente y fácil de usar. Si eres un desarrollador de aplicaciones interesado en la integridad y la prevención de la piratería de tu aplicación (¡y deberías estarlo!) Asegúrate de revisar el enlace de origen. Se pone todo geek y borroso y lo expone todo por ti. Para el resto de nosotros, esto es más un recordatorio de cómo Goggle ama a sus desarrolladores, y podemos sentirnos bien sabiendo que la gran G está haciendo todo lo posible para ayudar.