PCI PIN Security 是否允许在短时间内将 PIN 保留在内存中?

信息安全 pci-dss
2021-09-08 07:11:45

我被要求实现一个页面,用户可以通过信用卡号码和 PIN 验证 + 一些其他方法(例如 SMS OTP)在两步过程中解锁她的帐户。

该流程建议先验证 CC 号码和 PIN,然后再进行 SMS OTP 验证。

为了防止滥用后端资源和可能的大规模 PIN 阻塞,一种想法是:

  • 让第一页捕获 CC 编号和 PIN
  • 仅使用 CC 号查找用户
  • 向她的手机发送短信 OTP
  • 如果 SMS OTP 检查,验证 CC 号码和 PIN

因此,从用户在第一页输入它们到她在第二页接收并提交 OTP(我猜是几分钟),CC 编号和 PIN 将保存在内存中(HTTP 会话)。

这是否违反任何 PCI 规则?尤其是“将 PIN 保存在内存中”部分?

PIN 安全要求,2.0 版,内容如下:

要求 4:不得存储 PIN 码,除非作为存储转发交易的一部分,并且只能存储必要的最短时间。如果记录了交易,则必须在记录之前将加密的 PIN 块屏蔽或从记录中删除。

和正下方:

交易可以在特定条件下存储和转发 - ISO 9564

我检查了旧版本的 ISO 9564-1,但没有发现任何关于存储和转发的信息。有人对允许存储和转发的条件有所了解吗?

此外,将 PIN 码在内存中短时间保存也算“存储”吗?

2个回答

PCI 术语中的存储是指写入磁盘的数据,而不是存储在易失性 RAM 中的数据。存储和转发存储的参考是磁盘,并且允许设备存储持卡人验证信息,等待设备能够连接或重新连接到支付服务提供商或收单机构,以验证持卡人以允许交易授权。在 PCI 中,这些数据不能在交易之后存储,即一旦其目的完成,就必须将其删除。

您所指的过程必须在后端包含 PIN 存储,这仅允许发行人使用,并且必须安全地存储数据。您还描述了将数据存储在允许的易失性 RAM 中。

这似乎违反了您发布的要求,没有理由这样做。只需在第一次验证 pin 后生成一个令牌,并提供令牌 + OTP 以进行第二次验证。