信用卡号码的分布式标记化

信息安全 哈希 pci-dss 令牌
2021-08-20 07:26:52

我在同一家公司内有两个持有信用卡号码的地点。在将与卡号相关的数据从一个位置传输到另一个位置后,我希望能够“加入”信用卡号以进行业务分析。

链接数据集实际上不需要信用卡号本身。具有零或非常罕见的冲突的令牌就足够了。

那么问题就变成了如何在两个位置生成令牌,以便同一张信用卡映射到同一个令牌,并且安全地这样做。

天真地,一个人可以只使用加密哈希,但由于被映射的空间非常小(表面上是 10^16,但实际上当然小于那个),这不是一个好的解决方案,尤其是在哈希没有加盐的情况下。(目前尚不清楚加盐如何工作,但无论如何都可以链接记录。)

也可以建议使用 CCN 本身的强对称加密,并非常小心地共享密钥,但我对密码学的了解还不够,无法知道明文集如此有限的事实是否会打开攻击方案.

(注意:我知道一个人不应该“推出自己的加密货币”。我不直接参与这个项目,但我对我听到的正在讨论的解决方案感到好奇。)

1个回答

我要做的第一件事是通过您的 PCI 审核员运行任何建议的解决方案,以确保您不会部署任何会导致问题并使公司超出 PCI 合规性的东西。

听起来您所需要的只是对卡号进行标记化,以便在给定相同卡号的情况下始终获得相同的标记,并且不需要以其他方式返回?这表明您使用的是散列而不是加密。你也可以加盐。

很大程度上取决于哪些数据将与此信息相关联。如果您链接到这些哈希的唯一数据(在您非常安全的保险库之外)是卡号的哈希并且没有其他个人身份数据,例如持卡人姓名等,那么一个好的哈希,用盐来增加长度, 可能就足够了。没有其他信息的信用卡号本身并没有那么有用。我们已经知道验证有效信用卡号的算法,因此可以轻松生成大量有效卡号。只有当您可以添加附加信息时,例如到期日、持卡人姓名等,这些数据才会真正有用。

另一方面,如果您要在工作中包含其他敏感数据,那么我将寻找生成不依赖于信用卡号的唯一令牌的方法 - 客户 ID 或可能包含多个字段的哈希- 这真的取决于你想要做什么的细节。

一般来说,想想最坏的情况——不要假设你的解决方案是安全的。相反,假设有人能够在某个时候对其进行逆向工程。然后对他们能够做到的影响进行风险评估。然后看看可以减少这种影响的方法以及降低可能性的方法。例如,确保所有数据都是真正需要的——有时,只需删除一些数据位就可以产生重大影响。还要考虑您可以采取哪些控制措施来提醒您注意问题,例如检测未经授权的访问、对未经授权的访问做出响应等。