Openssl 重用身份验证密钥对以加密和解密数据

Openssl 重用身份验证密钥对以加密和解密数据,openssl,kerberos,openssh,pci-dss,Openssl,Kerberos,Openssh,Pci Dss,我们有一个openssl/kerberos/openssh用户身份验证,它需要一个私钥和公钥对 我需要登录并从数据库中获取一些数据。但是我不允许以简单的形式将数据存储在数据库中。 用于解密的私钥需要存储在异地 我们不想像在oracle、db2、mysql等中那样使用Transparent数据加密,而是创建我们自己的数据加密 我可以重新使用已有的密钥对,而不是添加另一个加密层 这是为了符合PCIDSS存储敏感数据的要求。 一些最佳实践建议真的很受欢迎 谢谢通常不鼓励使用相同的密钥对进行身份验证和

我们有一个openssl/kerberos/openssh用户身份验证,它需要一个私钥和公钥对

我需要登录并从数据库中获取一些数据。但是我不允许以简单的形式将数据存储在数据库中。 用于解密的私钥需要存储在异地

我们不想像在oracle、db2、mysql等中那样使用Transparent数据加密,而是创建我们自己的数据加密

我可以重新使用已有的密钥对,而不是添加另一个加密层

这是为了符合PCIDSS存储敏感数据的要求。

一些最佳实践建议真的很受欢迎


谢谢

通常不鼓励使用相同的密钥对进行身份验证和加密。这就是为什么一个GnuPG密钥实际上包含2个私钥的原因。从密码学家的角度来看,您需要存储另一个密钥对进行加密,或者使用对称密钥进行数据加密


您是否总是使用同一个客户端读取和写入数据库内容?如果是这样,您可以使用symmeric加密并将密钥存储在客户机上。

PCI非常庞大,出错可能会毁掉一家企业,因此找到专家可能是最好的选择

也就是说,我的想法是:如果所有数据都需要加密,只有非现场方才能打开,那么就使用一个好的公钥密码系统来保存数据。(请充分阅读文档,以确保库使用会话密钥加密数据,并使用远程方的公钥加密会话密钥。您永远不想使用公钥加密数据,只需要会话密钥。)

如果所有数据都需要使用每个用户的密钥来存储,您也可以这样做,但是Kerberos是专门为避免公钥密码系统而设计的--他们花了大量的精力,仅使用对称密码来构建几乎类似的东西。聪明,但这可能意味着您甚至不能使用您希望使用的密钥(如果要求只有异地存储的密钥才能解密存储的密文)

希望这有帮助