Estoy desarrollando una aplicación de escritorio Java multiplataforma que usa una contraseña para derivar una clave criptográfica. Me gustaría agregar la función "Recordarme" que almacena esta clave criptográfica en el disco duro de manera segura para que mi programa pueda obtenerla después de un reinicio.
Si lo guardo directamente, cualquier persona que logre acceder al disco duro de un usuario típico (sin cifrado) podrá obtener la clave. Si lo cifro, la clave utilizada para cifrarlo todavía debe almacenarse en algún lugar de la unidad y, por lo tanto, anula el propósito.
He visto gnome-keyring, Windows Credential Manager y Mac OSX keychain, pero cada uno parece tener sus propias API no Java (o puertos no oficiales a Java). Además, parece que cualquier programa que se ejecute como usuario podrá leer o escribir en o desde estos dos servicios.
¿Existe una forma más portátil (y preferiblemente aislada) de almacenar de forma segura las contraseñas (o claves criptográficas) en el disco duro?
¡Gracias!