Security Jasypt StandardPBEStringEncryptor在SpringBean配置文件中设置密码
当使用Jasypt的StandardPBEStringEncryptor时,我们必须在SpringBean配置文件中显式设置密码。在bean配置文件中保存密码是否安全?存储加密机密码在PCI合规性方面会有问题吗?您需要将对称密钥存储在某个位置。配置文件是一个好地方,只要没有人可以访问它。此将不符合PCI标准。数据加密密钥不能以明文形式存储。具体点为3.5.2,即: 检查系统配置文件以 验证密钥是否存储在 加密格式,以及 密钥加密密钥被存储 与数据加密密钥分开 在密钥管理领域,您可能还会遇到其他问题,例如3.6.6(分割知识和密钥的双重控制) 验证密钥管理程序 实现时需要拆分 知识与钥匙的双重控制 (例如,需要两个或三个 人们,每个人都只知道自己 关键的一部分,重建 整把钥匙) 是PCI合规性中最具挑战性的部分。您可能想考虑使用(已经PCI兼容的)第三方来管理卡数据。如果您是自己开发的,那么我建议您尽早引入QSA(PCI合格安全评估师)的帮助,以评估您计划实施的安全性。最终,为了通过PCI要求,您需要说服QSA,他们将非常乐意提供建议。我有一个想法 您可以使用keystore.jks密钥对加密所有普通密码。您知道keystore.jks有自己的密码。您可以记住该密码,并在程序启动时在控制台上输入该密码。例如,当程序启动时:Security Jasypt StandardPBEStringEncryptor在SpringBean配置文件中设置密码,security,encryption,spring-security,pci-dss,jasypt,Security,Encryption,Spring Security,Pci Dss,Jasypt,当使用Jasypt的StandardPBEStringEncryptor时,我们必须在SpringBean配置文件中显式设置密码。在bean配置文件中保存密码是否安全?存储加密机密码在PCI合规性方面会有问题吗?您需要将对称密钥存储在某个位置。配置文件是一个好地方,只要没有人可以访问它。此将不符合PCI标准。数据加密密钥不能以明文形式存储。具体点为3.5.2,即: 检查系统配置文件以 验证密钥是否存储在 加密格式,以及 密钥加密密钥被存储 与数据加密密钥分开 在密钥管理领域,您可能还会遇到其他问
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;
}
当您返回密钥对时,您可以使用它来加密密码
key=loadKeystore(“yourpass”).getPrivate().getEncoded()
祝你好运