Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2721

Blog Bitix: Las contraseñas e información sensible en el código fuente o bytecode de Java no son seguras

$
0
0
Java

En Java el código fuente se compila a una representación en bytecode independiente de la arquitectura del procesador y sistema operativo donde posteriormente se ejecuta. Este bytecode es un formato binario pero que puede ser decompilado fácilmente con la herramienta javap incluida en el propio JDK o examinado su contenido simplemente con un editor de texto hexadecimal. Con estas herramientas es fácil ver las instrucciones del programa para la máquina virtual y los caracteres de las cadenas que fueron incluidas en el código fuente.

Lógicamente, de este modo hardcodear una contraseña en el código fuente hace que el código fuente sea inseguro pero es que incluso distribuir el binario compilado no es seguro ya que cualquier usuario que tenga acceso al binario de la aplicación es potencialmente capaz de recuperar la contraseña. Quien dice contraseña dice igualmente una clave privada de cifrado simétrico usada para cifrar o descifrar datos o un bearer token de OAuth. En definitiva es un problema de seguridad.

Compilado el programa y utilizando la herramienta javap se puede obtener el valor de la contraseña. ¿Adivinas cual es la contraseña en este archivo binario de bytecode examinado el contenido?

Contenido hexadecimal de un archivo binario de bytecode Java

El siguiente ejemplo sencillo de un programa Java incluye una cadena con una supuesta contraseña. Se observa que en el archivo visualizado en formato hexadecimal o decompilado los caracteres de la cadena son fácilmente reconocibles.

Para compilar este pequeño programa se utiliza el comando javac que genera el archivo de bytecodeMain.class.

Para decompilar este pequeño programa se utiliza el comando javap, con él se ven las instrucciones interpretadas por la máquina virtual de Java y la cadena con la contraseña.

Una solución para evitar este problema de seguridad es ubicar la contraseña a un archivo de configuración incluso con los valores sensibles cifrados y que sean descifrados únicamente por la aplicación en el momento de iniciarse. En el caso de ubicar este archivo de configuración en un servidor se puede proteger mediante permisos para que solo los administradores o algunos desarrolladores tenga acceso a él y no cualquier usuario que consiga acceso al sistema.


Viewing all articles
Browse latest Browse all 2721

Trending Articles


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Tagalog Quotes About Crush – Tagalog Love Quotes


Patama Quotes : Tagalog Inspirational Quotes


Tagalog Quotes To Move on and More Love Love Love Quotes


Tropa Quotes


BARKADA TAGALOG QUOTES


Re:Mutton Pies (lleechef)


FORECLOSURE OF REAL ESTATE MORTGAGE


Pokemon para colorear


Sapos para colorear


Tagalog Love Quotes – Nagmamahal


OFW quotes : Pinoy Tagalog Quotes


Long Distance Relationship Tagalog Love Quotes


Tagalog Long Distance Relationship Love Quotes


5 Tagalog Relationship Rules


“BAHAY KUBO HUGOT”


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.