有没有人有实践经验或参考实施符合密钥管理方案的方案 PCI数据安全标准 安全标准?

鉴于遵守 PCI DSS 的公司数量众多,显然有相当多的实施方案,但试图找到它们的详细信息却很困难。当谈到存储私人数据时,讨论通常会停止在使用哪种加密算法上。之后,通常会有一个关于适当存储私钥的声明,但没有讨论实际的方法,或者定期更改密钥或向应用程序提供密钥等事情。

具体来说,我对 PCI DSS 标准第 3.5 节和 3.6 节的要求感兴趣。

3.5.2 将加密密钥安全地存储在尽可能少的位置和形式中。

3.6.a 验证是否存在用于加密持卡人数据的密钥的密钥管理程序。笔记:可以从包括 NIST 在内的各种资源中获取许多密钥管理行业标准,可以在以下位置找到这些标准: http://csrc.nist.gov.

3.6.4 验证密钥管理程序的实施是否要求至少每年定期更改密钥。

我已经看过了 NIST 密码出版物 正如 PCI DSS 要求文件所建议的那样,但除了最近的注释之外 密钥管理研讨会 真正可实施的方案或标准似乎并不多。

至于我想做的不是:

  1. 将密码+盐存储为一种用于身份验证的哈希值,
  2. 选择强对称算法进行数据加密,
  3. 首先避免需要存储私人数据。
  4. 避免使用其他机制进行密钥管理:物理安全、数据库安全、龙与巫师等。

所有这些都是合理的担忧,但在这种情况下都不是答案。我的要求的具体细节在另一个 SO 问题中 用于存储和检索每个用户敏感数据的.Net 设计模式 但这一切都归结为密钥管理,因此这是一个更精致的问题。

有帮助吗?

解决方案

我很熟悉你所经历的痛苦。我们努力更新旧的 EFT 系统以使其符合 PCI 要求。密钥管理当然(从我的软件角度来看)是最具挑战性的部分。

我想我也无意中陷入了 NIST 针对密钥管理的建议 马丁发布了这一内容,并因缺乏具体示例而感到非常沮丧。

ANSI X9.17 - 金融机构密钥管理 PCI-DSS 可能最符合您的需求。不过,祝你阅读顺利,该文档是 TLA 的大量集合,我知道我读起来确实很困难。(X9.17每年更新一次,目前最新版本为: NIST SP 800-57 分。1 修订版4 )

当沮丧变成绝望时我偶然发现 电子货币工厂 这是一个虚构的故事,有大量相关技术参考。 第17章 讨论 X9.17 可能有助于理解。

根据所有这些参考材料,我设计了一个令我们的审计员感到满意的密钥管理系统。设计文档相当冗长,但总而言之,其想法是让数据加密密钥受到密钥加密密钥的保护,并且密钥加密密钥存储在物理上独立的盒子上,该盒子本身受到主密钥的保护。

我的实现是在 Windows 机器上运行一个密钥服务器应用程序。该应用程序需要输入两个单独的“密钥服务器主密钥”才能使用。这些密钥只有密钥服务器管理员知道。这些密钥被异或在一起生成主密钥,该主密钥仅在应用程序运行时存储在受保护的内存中。然后,应用程序可以自动生成加密强度高的密钥加密密钥,这些密钥使用主密钥以加密形式存储。

需要加密的应用程序将从密钥服务器请求密钥加密密钥。应用程序使用 KEK 来加密/解密数据加密密钥,该密钥可以与应用程序数据一起安全存储。

祝你好运。我希望您也觉得这是一个有趣的挑战!

其他提示

你见过美国国家标准技术研究所吗? SP 800-57, 、密钥管理建议?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top