0

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

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

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

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

这是为了符合存储敏感数据的 PCIDSS 要求。 https://www.pcisecuritystandards.org/security_standards/index.php

一些最佳实践建议非常感谢。

谢谢

4

2 回答 2

0

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

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

于 2010-12-09T11:13:58.187 回答
0

PCI 规模庞大,如果出错可能会毁掉一家企业,因此最好找个专家。

也就是说,这是我的想法:如果只需要对所有数据进行加密以便只有场外方可以打开它,那么请使用良好的公钥密码系统来保存数据。(阅读足够的文档以确保库使用会话密钥加密数据,并使用远程方的公钥加密会话密钥。您永远不想使用公钥加密数据,只有会话密钥.)

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

希望这可以帮助。

于 2010-12-09T11:34:20.857 回答