actionscript-3 air obfuscation protection

actionscript 3 - Ocultar el valor de la aplicación Air de la clave secreta



actionscript-3 obfuscation (2)

Estoy creando un proyecto Air (AS3). Se tendrá un sistema propio de protección. Todos los datos del servidor a la aplicación y viceversa están encriptados. Utilizo una clave secreta que está registrada en los scripts del lado del servidor y en la aplicación. Si un hacker descompila la aplicación, puede encontrar la clave secreta. La clave secreta es la cadena (constante). No quiero ofuscar mi solicitud.

¿Cómo puedo ocultar esta clave secreta? ¿Puedo ofuscar solo eso? ¿Puedo ofuscar una clase AS3 separada con datos secretos y luego acceder a ella desde el código principal cuando sea necesario?


Si el pirata informático descompila completamente su aplicación, su secreto puede rastrearse fácilmente, sin importar cómo se ofusque el almacenamiento.
Si desea mantener la ofuscación como mínimo, debe ofuscar cada área donde se usa la clave secreta. Si sale del área "no disponible", desaparecerá.


Si no quieres que alguien descompile la aplicación y encuentre la clave, entonces tu mejor opción es no poner la llave en la aplicación. En su lugar, oblígales a autenticarse en su servidor (a través de TLS / SSL) para obtener una clave que se negocie en tiempo de ejecución por cliente.

Una vez que se negocie la clave simétrica, puede usarla para cifrar / descifrar sus datos para el tránsito. Por supuesto, esto plantea la pregunta de por qué no solo usa SSL en primer lugar. Eso le proporciona un cifrado de extremo a extremo entre el cliente y el servidor.

Por supuesto, un atacante aún podría extraer la clave de descifrado de la memoria RAM cuando la aplicación se ejecuta en su sistema. Así que podrían descifrar los datos entre la aplicación que están ejecutando y el servidor, pero no podrían descifrar los datos que transmiten otros usuarios de la aplicación (porque cada uno tiene una clave diferente).

No puede poner la clave en la aplicación de ninguna manera que un atacante nunca pueda encontrar. Tu aplicación necesita encontrarlo y usarlo; el proceso de su aplicación al hacerlo conducirá al atacante. Entonces no lo pongas ahí.