En caso de que almacene una contraseña en un objeto, ¿cómo puedo eliminarla de forma segura?
Creo que quieres decir; ¿Cómo puede evitar que un atacante con acceso al dispositivo recupere la contraseña?
Depende del nivel de acceso que haya ganado el atacante.
Si el atacante está limitado a la API externa que proporciona (no es una buena suposición), entonces el control de acceso usando java.security.AccessController debería ser suficiente. Si diseña sus controles de acceso correctamente (es muy difícil de hacer) y el atacante no puede pasar por alto los controles de acceso, entonces el control de acceso evitará que el atacante obtenga los datos.
Si el atacante está limitado a operar dentro de la máquina virtual Java pero no a su API, debe proteger los datos con KeyStore.PrivateKeyEntry. En este nivel, no puede confiar en el correcto funcionamiento de su diseño para proteger los datos y debe confiar en la máquina virtual Java para brindar protección.
Si el atacante está limitado al sistema operativo (no a la máquina virtual Java), no podrá proteger sus datos. Si el atacante puede evitar que la máquina virtual de Java funcione como se diseñó, entonces el atacante puede omitir cualquier mecanismo de seguridad de Java.
Si el atacante tiene acceso físico al dispositivo, es imposible proteger los datos contra todos los ataques. En este nivel, el atacante puede leer datos a medida que se escriben en la memoria RAM, flash, módulos de hardware, etc.