我有一个应用程序,我带用户到符合PCI的支付网关完成付款。我想给出“记住我的卡”的功能,这样用户以后就不必再输入详细信息了。我正在考虑将卡数据存储在用户的设备上(加密而不是散列,因为我需要将其反转到支付网关所要求的实际卡号)。CVV不会被储存。
在大多数情况下,将数据存储在用户的设备上是否违反了可接受的安全标准?如果是,那么这里的PCI DSS/PA遵从性要求有多高?
发布于 2016-06-10 22:08:54
PCI规则通常要求对存储的任何PAN进行加密,使其不需要一个,而是两个验证器来解密。
在实践中,这通常意味着,即使您打算最终用户是唯一的一个加密副本,这将是不够的,从监管的立场。在这方面,“谁”有一份副本是无关紧要的。如果解密可以由提供者(即您)的单个密钥完成,并且您不能确认它存储在其上的设备是加密的(也就是说,在事务请求之后使用有关文件系统加密的真/假响应的客户端当前不是我所知道的任何移动设备的功能),那么在PCI审计期间,您将无法声明最终用户设备的范围。
一种情况可能会奏效:如果您有一个应用程序,它生成并保护自己的卡信息存储密钥,然后该应用程序可以对服务器端支付应用程序作出响应,在该站点上为以前使用的卡提供令牌,那么您就可以(很可能)满足基本要求。只要服务器端应用程序能够在事务期间显示引用令牌时令人满意地存储和检索PAN,您就可以了。但是,即使在这种情况下,CVC或CVV必须由用户手动提供--这是明确不允许与PAN一起存储的。
让终端用户存储他们自己的卡也是可能的,但是任何程序或应用程序都不允许从最终用户那里请求数据并期望自动接收响应,除非您为该用户服务器端存储一个唯一的密钥,以便对PAN进行解密。这就是为什么目前的策略是让Android和Apple在接收到交易数据的请求时存储“卡片详细信息”和自动填充字段。这应该很好,但是一个迂腐的审计师可以很容易地要求您有某种方式来确认终端用户的设备只适用于加密的文件系统。
长话短说:你实际上只是想要一个页面,这样某人的移动浏览器就可以友好地使用“自动填充”。您将得到相同的结果,而不必担心额外的PCI PAN存储限制。
https://security.stackexchange.com/questions/126477
复制相似问题