我们有一个openssl / kerberos / openssh用户身份验证,需要私钥和公钥。
我需要登录并从数据库中获取一些数据。但是我不允许以简单的形式将数据存储在数据库中。 用于解密它的私钥需要存储在异地。
我们不想像在oracle,db2,mysql等中那样使用透明数据加密,而是创建我们自己的。
我可以恢复已有的密钥对,而不是添加另一个加密层。
这符合PCIDSS存储敏感数据的要求。 https://www.pcisecuritystandards.org/security_standards/index.php
一些最佳实践建议真的很感激。
由于
答案 0 :(得分:0)
通常不鼓励使用相同的密钥对进行身份验证和加密。这就是GnuPG密钥实际上包含2个私钥的原因。从密码学家的角度来看,您需要存储另一个密钥对进行加密,或者使用对称密钥进行数据加密。
您是否始终使用相同的客户端读写数据库内容?如果是这样,您可以使用symmeric加密并将密钥存储在客户端上。
答案 1 :(得分:0)
PCI是巨大的,错误的做法可能会破坏企业,所以找专家可能是最好的。
也就是说,我的想法是:如果只需要加密所有数据以便只有一个场外派对可以打开它,那么使用一个好的公钥密码系统来保存数据。 (阅读文档足以确保库使用会话密钥加密数据,并使用远程方的公钥加密会话密钥。您不希望使用加密数据公钥,只有会话密钥。)
如果需要使用每用户密钥存储所有数据,您也可以这样做,但Kerberos专门设计用于避免公钥密码系统 - 他们花费了大量精力来构建几乎类似的东西对称密码。聪明,但这可能意味着你甚至无法使用你希望使用的密钥(如果要求确实只是一个非现场存储密钥可以解密存储的密文)。
希望这有帮助。