Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

256
Vistas
Configuración segura de tipos: cifrado/ofuscación de valores confidenciales en la memoria

Tengo un proyecto Akka que necesita varias contraseñas para funcionar: para acceder a un almacén de datos, una cadena de conexión del sistema de archivos distribuido...

Esos valores no están codificados en el archivo de configuración, sino que se extraen de un almacén de claves en tiempo de ejecución durante el inicio de la aplicación y luego se almacenan en la memoria en un objeto de configuración con seguridad de tipos, ya que el tercero está usando esta configuración para obtener la contraseña y abrir las conexiones.

Solo me pregunto si de alguna manera esto es arriesgado, ya que supongo que las cadenas estarían claras en la memoria. ¿Hay alguna forma de ofuscar/cifrar los valores de forma transparente? ¿O necesito implementarlo de mi lado y actualizar a los terceros para que transformen la cadena antes de abrir las conexiones?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

En mi opinión, eso es, en casi todas las aplicaciones, un riesgo de seguridad del que no debería preocuparse. Dado que Scala se ejecuta en la JVM, consulte: Datos confidenciales en la memoria .

about 4 years ago · Santiago Trujillo Denunciar

0

Puede intentar usar sun.misc.Unsafe para borrar la memoria justo después de usar la contraseña:

 String password = new String("l00k@myHor$e"); String fake = new String(password.replaceAll(".", "?")); System.out.println(password); // l00k@myHor$e System.out.println(fake); // ???????????? getUnsafe().copyMemory( fake, 0L, null, toAddress(password), sizeOf(password)); System.out.println(password); // ???????????? System.out.println(fake); // ????????????

o a través de la reflexión:

 Field stringValue = String.class.getDeclaredField("value"); stringValue.setAccessible(true); char[] mem = (char[]) stringValue.get(password); for (int i=0; i < mem.length; i++) { mem[i] = '?'; }

http://mishadoff.com/blog/java-magic-part-4-sun-dot-misc-dot-unsafe/

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda