Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java字符串与PCI-DSS敏感数据_Java_Security_Owasp_Pci Dss - Fatal编程技术网

Java字符串与PCI-DSS敏感数据

Java字符串与PCI-DSS敏感数据,java,security,owasp,pci-dss,Java,Security,Owasp,Pci Dss,PCIDSS要求3.2中的第一句话是:“授权后不要存储敏感的身份验证数据”。这是否也适用于操作存储器(RAM)?因为我的安全官员是这样理解的,所以他禁止我们在java语言中使用java.lang.String。 他的观点是,因为JAVA字符串是不可变的,所以不可能在授权后立即删除它,必须等待垃圾收集器将其从RAM中删除。垃圾收集器不在我们的控制之下,因此我们不能强制在授权后立即从RAM中删除敏感数据。因此,我们不符合要求3.2。 我的观点是,需求3.2不是关于RAM,而是关于持久性存储(文件系统

PCIDSS要求3.2中的第一句话是:“授权后不要存储敏感的身份验证数据”。这是否也适用于操作存储器(RAM)?因为我的安全官员是这样理解的,所以他禁止我们在java语言中使用java.lang.String。 他的观点是,因为JAVA字符串是不可变的,所以不可能在授权后立即删除它,必须等待垃圾收集器将其从RAM中删除。垃圾收集器不在我们的控制之下,因此我们不能强制在授权后立即从RAM中删除敏感数据。因此,我们不符合要求3.2。 我的观点是,需求3.2不是关于RAM,而是关于持久性存储(文件系统、数据库等等)。 这不仅是关于将PAN的一些中心表示形式从字符串替换为字符数组,而且还将阻止我们使用大量用于IO的标准Javalibs。例如,支付网关中的REST控制器。 现在我们正处于设计新应用程序的阶段,所以请确定这将真正帮助我们。
有可信来源的官方解释吗?

如果有人可以篡改您的RAM内存来查找Java字符串,您确实存在更严重的安全问题,但是您可以使用简单的字符数组来存储PAN,并在使用后手动将其清空,请确保每次将其转换为字符串时(无论您的作用域是什么),都要屏蔽它(如5255**********2)或仅获取最后几个字节。我不获取剩余部分。如果您收到呼叫,则由商户拥有SAQ-D(他获取敏感数据),任何剩余呼叫都被视为S2S。该要求可以推断为“根本不使用RAM”。但是,您可以使用
char[]
并在使用后立即清空其元素,因为数组是可变的。请参阅-以获得安全官员的回绝意见。这完全取决于对at rest的解释。我认为,在rest示例中,所有输入都是字符串,因此转换为字符[]已经失去了重点,因为内存中已经有敏感数据在等待GC。我知道,我可以通过处理字节流来处理这个问题,并将它们转换为char[],但在我看来,这似乎是发明轮子。如果有人可以篡改您的RAM内存来查找Java字符串,您确实存在更严重的安全问题,但是您可以使用一个简单的字符数组来存储PAN,并在使用后手动将其清空,请确保每次将其转换为字符串时(无论您的作用域是什么),都要屏蔽它(如5255**********2)或仅获取最后几个字节。我不获取剩余部分。如果您收到呼叫,则由商户拥有SAQ-D(他获取敏感数据),任何剩余呼叫都被视为S2S。该要求可以推断为“根本不使用RAM”。但是,您可以使用
char[]
并在使用后立即清空其元素,因为数组是可变的。请参阅-以获得安全官员的回绝意见。这完全取决于对at rest的解释。我认为,在rest示例中,所有输入都是字符串,因此转换为字符[]已经失去了重点,因为内存中已经有敏感数据在等待GC。我知道,我可以通过处理字节流来处理这个问题,并将它们转换为char[],但在我看来,这似乎是发明轮子。