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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top