2010-03-24 17 views
5

¿El hecho de que los archivos de clase Java se puede descompilar y necesidad de software de terceros para la ofuscación de ninguna manera comprometen la seguridad?¿Es seguro Java?

Respuesta

4

Sí y no ... sí, si compila cualquier clase de contraseñas en su programa Java que distribuya, entonces sí, no será seguro, pero una vez más, esto sería algo terrible de hacer en cualquier lenguaje de programación ... por ejemplo, en C++, puede recuperar cadenas que se han compilado en el programa utilizando la utilidad strings.

Si hay algo supersecreto que usted hace, entonces generalmente no debe distribuir el JAR que hace ese súper secreto (aunque "seguridad por oscuridad" generalmente no es seguro). Si bien es cierto que hay cosas básicas que necesita saber sobre seguridad, y es posible dispararse en el pie con Java, el hecho de que se pueda descompilar Java realmente no es una gran desventaja de seguridad. También debo tener en cuenta que, en general, es menos probable que experimente problemas de seguridad en Java dado que Java lo protege de los accesos de memoria fuera de los límites, desbordamientos de búfer, punteros colgantes y otros problemas de manipulación de punteros.

12

Sólo si en realidad se basan en la seguridad por oscuridad, que es una mala idea, independientemente del idioma o la plataforma.

Si el código se puede ejecutar, se puede invertir mediante ingeniería.

1

archivo de clase Sí se puede decompiled por alguna medida. Pero no obtendrá el código exacto después descompilación como tantas constantes, valores literales, etc .. serán directamente sustituido en la clase compilada

2

Mi opinión es que nada sencilla en la informática es 100%

Por lo tanto, es algo se crea, ese algo también se puede romper.

+2

100% qué? Supongo que querías decir "seguro". – paxdiablo

+0

que corrige, por lo tanto, casi el 100% nada, irrompible y todas las otras Naciones Unidas. Lo que quise decir es que algo como, por ejemplo, "este programa nunca puede ser pirateado" – Carlos

2

No, la seguridad está muy bien.

Tienes razón, el código Java compilado pueden ser auditadas fácilmente. Sin embargo, construir esquemas de seguridad basados ​​en la suposición de que nadie sabrá nunca cómo funciona (nadie verá el código) es una práctica muy mala.

1

descompilación es básicamente un método para reescribir el código basado en el por code.Yes es una amenaza a la seguridad así que lo mejor es evitar la información sensible en la clase de Java. En lo que respecta a la lógica, dado el tiempo, se puede adivinar la lógica de cualquier aplicación sin descompilarla realmente.

clase Descompilación Java es fácil porque almacena información java alto nivel para mantener la portabilidad.

5

"si funciona, puede ser violada" (en el contexto de decir las medidas de lucha contra la piratería en un juego)

0

Es posible reflejar en un archivo de clase y ver una gran cantidad de datos, no todo es disponible o compilado en el archivo de clase y aún más es solo compilador de azúcar.

6

seguridad de Java es principalmente acerca de la protección de su máquina de código malicioso.

No sobre la protección de código de ingeniería inversa.