Supongamos que hay una variable String que contiene una contraseña de texto sin formato.¿Alguien puede robar una contraseña de una aplicación Java?
Existe la posibilidad de leer esta contraseña mediante un volcado de memoria. (Supongamos que usa el motor de trucos.) Estoy desconcertado con esta cosa de JVM. ¿JVM proporciona algún tipo de protección contra esto? Si no, ¿cuáles son las prácticas que necesito usar para evitar ese "robo"?
Una amenaza práctica sería un troyano; que envía los segmentos del volcado de memoria a una parte externa.
Me gustaría señalar que todas las respuestas hasta la fecha son igualmente aplicables a casi todos los idiomas, no solo a Java. El problema es exactamente el mismo. Algunos idiomas pueden hacer que sea un poco más fácil o más difícil que otros, pero todos tienen la misma "vulnerabilidad" básica. –
Si ese "alguien" tiene acceso a la JVM sin ningún motivo obvio, hay cosas peores que los ataques de inspección de montón de los que preocuparse. La mayoría de la gente diría 'Game Over'. Pregunta SO similar en http://stackoverflow.com/questions/646224/how-does-one-store-password-hashes-securely-in-memory-when-creating-accounts –
almacene la contraseña en un servidor y compruébela cuando necesario –