Possiedo un numero di applicazioni Java che si collegano ad altre applicazioni e servizi tramite connessioni protette con SSL. Durante lo sviluppo, posso specificare l'archivio di chiavi/truststore da utilizzare e la password utilizzando i args JVM:Nascondi la password del keystore/truststore JKS durante l'esecuzione del processo Java
-Djavax.net.ssl.trustStore=certificate.jks
-Djavax.net.ssl.trustStorePassword=mypassword
-Djavax.net.ssl.keyStore=certificate.jks
-Djavax.net.ssl.keyStorePassword=mypassword
-Djavax.net.ssl.keyStoreType=jks
Questo funziona perfettamente. Tuttavia, quando si entra in produzione è necessario nascondere la password, usando JVM args significa che chiunque visiti l'elenco dei processi sarà in grado di vedere la password in chiaro.
C'è un modo semplice per aggirare questo? Ho preso in considerazione l'importazione dei certificati nel file lib/security/cacerts di JRE, ma la mia comprensione è che questo richiederà ancora una password. Un'opzione sarebbe quella di memorizzare la password, crittografata, in un file e quindi far sì che le applicazioni possano leggere e decifrare al volo, ma ciò comporterà il cambiamento e il rilasciando tutte le applicazioni (ce ne sono molte) quindi preferirei evitare questo se possibile. La libreria javax.net.ssl dispone di un supporto nativo integrato per le password crittografate (anche se è qualcosa di semplice come codecase64 o qualcosa che rende le password non-clear-text)?
Eventuali suggerimenti molto apprezzati.
Concordato, a un certo punto, da qualche parte, ci sarà una chiave o una password memorizzata. Immagino sia qualcosa che dovremo risolvere con account di processo/account utente/permessi dei file. Grazie! – Matt