Qué es Java Barreras de seguridad Prohibido Líneas futuras Consejos Recursos |
Ofuscación de código
El problemaResulta extremedamente sencillo obtener el código fuente (fichero .java) a partir del código compilado (fichero .class), siempre y cuando no se haya utilizado un ofuscador de código (más sobre ofuscadores muy pronto), mediante herramientas de decompilación como la proscrita mocha. En otras palabras, si no se toman las precauciones debidas, cualquier aplicación en Java puede ser víctima de ingeniería inversa y así obtener su código fuente. ¿Os dais cuenta de las implicaciones que conlleva? Cualquiera puede modificar nuestros programas, se pueden eliminar contadores de caducidad, controles de licencia, etc. Un caos para las casas comerciales. Nadie podría vender productos en Java, ya que cualquiera te lo puede fusilar. La soluciónLa manera más extendida entre los desarrolladores de aplicaciones Java para poner coto a esta ingeniería inversa y evitar la violación de sus derechos de autor consiste en ofuscar el código, esto es, oscurecerlo de forma tal que resulte prácticamente imposible decompilarlo e incluso interpretarlo correctamente aun si se obtiene el código fuente por el procedimiento que fuera. Esta ofuscación se consigue en la práctica por medio de la inclusión de bucles irrelevantes, cálculos innecesarios, comprobaciones absurdas, nombres de funciones y de variables que no tienen nada que ver con su cometido, funciones larguísimas que no sirven para nada, interacciones inverosímiles entre variables y funciones, etc. No conviene olvidar que los ofuscadores no tienen nada que ver con la seguridad en los programas, simplemente añaden grandes complicaciones al proceso de decompilación y posterior interpretación del código fuente de los programas. Nunca se debe confiar en ellos para implementar mecanismos de seguridad, fieles a la máxima "No existe seguridad a través de la oscuridad".
Por supuesto, no se debe comenzar a escribir el programa de esta manera. Primero, se debe escribir de forma convencional y luego se le irán aplicando las reglas anteriores hasta que haya quedado satisfactoriamente oscurecido. Dónde conseguir ofuscadoresDado que ofuscar óptimamente un programa resulta muy complicado, ya que hacerlo a mano puede introducir gran cantidad de errores y reducir drásticamente su eficiencia, lo más cabal suele ser adquirir uno de una casa comercial. En el mercado existen algunos como: Copyright © 1997-1998 Gonzalo Álvarez Marañón, CSIC. Todos los derechos reservados. Criptonomicón es un servicio ofrecido libremente desde el Instituto de Física Aplicada del CSIC. Para información sobre privacidad, por favor consulte la declaración de política sobre privacidad. Para sugerencias, comentarios o quejas, acuda al libro de visitas. Para contribuir al Criptonomicón, lea la página de contribuciones. |