重用认证密钥对加密和解密数据
Posted
技术标签:
【中文标题】重用认证密钥对加密和解密数据【英文标题】:reuse authentication keypair for encrypt and decrypt of data 【发布时间】:2011-05-22 19:15:34 【问题描述】:我们有一个 openssl/kerberos/openssh 用户身份验证,它需要一个私钥和公钥对。
我需要登录并从数据库中获取一些数据。但是我不允许以纯格式将数据存储在数据库中。 用于解密的私钥需要存储在异地。
我们不想像 oracle、db2、mysql 等那样使用透明数据加密,而是创建我们自己的。
我可以重新使用已有的密钥对,而不是添加另一个加密层。
这是为了符合存储敏感数据的 PCIDSS 要求。 https://www.pcisecuritystandards.org/security_standards/index.php
非常感谢一些最佳实践建议。
谢谢
【问题讨论】:
【参考方案1】:通常不鼓励使用相同的密钥对进行身份验证和加密。这就是为什么一个 GnuPG 密钥实际上包含两个私钥的原因。从密码学家的角度来看,您需要存储另一个密钥对进行加密或使用对称密钥进行数据加密。
您是否始终使用同一个客户端读取和写入数据库内容?如果是这样,您可以使用对称加密并将密钥存储在客户端上。
【讨论】:
【参考方案2】:PCI 规模庞大,如果出错可能会毁掉一家企业,因此最好找一位专家。
也就是说,我的想法是:如果只需要对所有数据进行加密,以便只有场外方可以打开它,请使用良好的公钥密码系统来保存数据。 (阅读足够的文档以确保库使用会话密钥加密数据,并使用远程方的公钥加密会话密钥。您永远不想加密 data一个公钥,只有 会话密钥。)
如果所有数据都需要使用每个用户的密钥存储,您也可以这样做,但 Kerberos 是专门为避免使用公钥密码系统而设计的——他们付出了巨大的努力来构建几乎类似的东西,只使用对称密码。聪明,但这可能意味着您甚至不能使用您希望使用的密钥(如果确实要求只有异地存储的密钥可以解密存储的密文)。
希望这会有所帮助。
【讨论】:
以上是关于重用认证密钥对加密和解密数据的主要内容,如果未能解决你的问题,请参考以下文章