Jasypt StandardPbestringenCryptor Impostazione della password nel file di configurazione di Spring Bean
-
27-09-2020 - |
Domanda
Quando si utilizza StandardPestringenCrypReptor di Jasypt, dobbiamo impostare la password esplicitamente nel file di configurazione di Spring Bean.È ok e sicuro di avere la password nel file di configurazione del bean?Sarà un problema nella conformità PCI per memorizzare la password di crittografata?
Soluzione
Questo non è conforme a PCI. I tasti di crittografia dei dati non possono essere memorizzati in testo in chiaro. Il punto specifico è 3.5.2 che è:
.Esaminare i file di configurazione del sistema a Verificare che le chiavi siano memorizzate in Formato crittografato e quello I tasti di crittografia dei tasti sono memorizzati separatamente dai tasti di crittografia dei dati.
Probabilmente avresti anche altri problemi attorno all'area di gestione delle chiavi, ad esempio 3.6.6 (Conoscenza divisa e Dual Control of Keys)
.Verificare che le procedure di gestione delle chiavi sono implementati per richiedere divisi Conoscenza e doppio controllo delle chiavi (Ad esempio, richiedendo due o tre persone, ognuna conosce solo la propria parte della chiave, per ricostruire il intera chiave).
Gestione chiave è la parte più impegnativa della conformità PCI. Potresti prendere in considerazione l'utilizzo dell'utilizzo di A (già conforme a PCI) 3a parte per gestire i dati della carta. Se stai rotolando, consiglierei di portare l'assistenza di un QSA (PCI qualificato Assisor di sicurezza) alla prima opportunità di valutare la sicurezza che stai pianificando l'implementazione. Alla fine sarà il QSA che devi convincere per passare i tuoi requisiti PCI, e saranno più che felici di consigliare.
Altri suggerimenti
È necessario memorizzare il tasto simmetrico da qualche parte.Un file di configurazione è un buon posto, purché nessuno ne abbia accesso ad esso.
Ho un'idea
È possibile crittografare tutta la tua password semplice con tastiera di keystore.jks.Sai che il keystore.jks ha la sua password.Puoi ricordare quella password e quando il tuo programma è iniziato a inserirlo sulla console.Ad esempio quando il tuo programma inizia:
Console console = System.console();
keyPair = loadKeystore(new String(console.readPassword()));
private static KeyPair loadKeystore(String pwd) {
InputStream is = Main.class.getResourceAsStream("/keystore.jks");
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(is, s.toCharArray());
String alias = "youralias";
Key key = keystore.getKey(alias, pwd.toCharArray());
if (key instanceof PrivateKey) {
// Get certificate of public key
Certificate cert = keystore.getCertificate(alias);
// Get public key
PublicKey publicKey = cert.getPublicKey();
// Return a key pair
return new KeyPair(publicKey, (PrivateKey) key);
}
return null;
}
.
Quando si restituisce la tastiera, è possibile utilizzarlo per crittografare la password.
.Key= LoadKeystore ("YourPass"). GetPrivate (). Geancoded ()
Goodluck