【问题标题】:tokenization engine | encryption-decryption using seed file标记化引擎 |使用种子文件加密解密
【发布时间】:2016-03-29 11:01:24
【问题描述】:

我需要构建带有tokenization 引擎的网络服务器(窗口服务器)来加密敏感数据。根据客户要求:

  • 应为服务器配置可备份的唯一加密/哈希“种子”文件
  • 服务器应使用种子文件来标记(即屏蔽/散列/加密)敏感数据字段
  • 服务器应将标记化的值传递给数据库 (MySQL) 以进行保存操作。
  • 从数据库中检索数据以显示在网站上时,服务器应取消标记化

我的问题是 - 如何创建种子文件? - 如果数据使用种子文件加密,然后有人更改/更新种子文件。在这种情况下我们可以解密数据吗

请告知满足上述要求的方法。

【问题讨论】:

  • 令牌化不是加密,所以标题不清楚,问题需要更清楚。这是为了处理付款吗? “种子”文件是否只包含一个“种子”条目? “种子”真的只是一个加密密钥吗?当您说“加密/散列”时,您确实了解其中的区别,即(加密)散列是一种不可逆的单向函数?当您说“标记化”时,这真的只是指加密数据吗?

标签: php security encryption-symmetric random-seed window-server


【解决方案1】:

可以使用加密 PRNG(伪随机数生成器)或 HRNG(硬件随机数生成器)创建“种子”。大多数计算机系统都包含加密 PRNG,而具有有限熵率的 HRNG 可以在 USB 配置中廉价购买。

将生成的种子保存在纸上的安全(可能是银行)保险箱和/或 USB 驱动器中以进行恢复。

在高安全性端使用HSM(硬件安全模块)。

服务器需要安全,包括良好的两因素身份验证。

这似乎回答了最后的问题陈述,但整个问题尚不清楚。如果您正在处理 CC 付款,您需要熟悉 PCI(支付卡行业)。

【讨论】:

  • 谢谢.. 是的,种子将包含加密密钥。 hash 与我的情况无关,因为它只是一种方式。当我说令牌化时,我的意思是仅使用种子文件对敏感数据进行加密和解密......不,此要求不用于任何支付目的......这只是为了国家监管目的而存储用户敏感数据
  • 您可能会考虑改写问题,用密钥替换种子/哈希/令牌化。在使用加密 PRNG 创建简单密钥的情况下,只需将其以十六进制写在一张纸上,然后放入银行保险箱。
  • 如果我的理解是正确的,那么任何使用密钥加密的数据都只能使用相同的密钥解密。如果密钥被更改或丢失,那么已经加密的数据将被破坏。如果我在这里错了,请告诉我。您还建议使用任何非冲突加密算法,例如 RIJNDAEL、DES 等。
  • 是的,密钥是必需的。使用 AES(高级加密标准)加密,它是 Rijndael 的子集,块大小为 128 位,密钥长度为 128、192 和 256 位。您需要考虑加密的一些方面:通常使用带有随机 iv 前缀的 CBC 模式、PKCS#7 née PKCS#5 填充以及可能的加密身份验证和版本控制。不要使用 mcrypt,它没有被维护,只支持空填充,由 Bozos 编写。使用RNCryptor-phpdefuse/php-encryption
  • 感谢您提供详细信息。关于“使用加密 PRNG 创建种子......”的更多说明是“加密 PRNG”是窗口系统中可用的任何实用程序,我们可以运行它来生成/使用密钥......还有什么是有限熵以及为什么这样做我们需要购买它,因为如果我没记错的话,生成密钥将是一次性的,同样将用于加密/解密....如果您能提供详细信息,请感谢
猜你喜欢
  • 2022-11-24
  • 2015-09-10
  • 1970-01-01
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多