我是一名软件工程师,目前我正在研究另一种必须符合PCI PA-DSS要求的支付应用程序(我的第三个)。我正在重新检查PA-DSS文档,我想知道在过去我是否过度使用了应用程序的安全性,当我可以使用TLS和用户/通过时。所以,我的问题是,在实施PA-DSS安全应用程序时:
对于身份验证和通信,安全性是否足以让TLS +用户/通过?
PA-DSS标准的哪些部分证明需要在Web方法调用之间实现消息散列和滚动散列? TLS实现可靠的消息,但不在消息之间滚动哈希和持久调用者。实现滚动哈希会有什么不同(从PA-DSS的角度来看)?
如果支付处理应用程序存储PII信息并为不同公司提供服务(意味着公司A和公司B可以在此类应用程序中拥有帐户),则没有特别要求说明PII信息不能存储在同一应用程序中DB,但在过去,PA-QSA一直坚持这是一个问题。问题是:这真的有必要吗?我不认为Authorize.NET是一家拥有数千个客户和处理器的公司,它拥有不同的数据库来存储通过其每个客户公司处理的信用卡。
提前致谢!
更新#1:
假设DMZ和Secure Zone中的所有页面和Web服务都具有所有通信通道,页面和服务的HTTPS。
在#3上,问题不在于敏感信息存储的位置或安全性。这个问题更适合质疑在同一数据库中共享来自不同来源(例如AT& T和Verizon等客户)的敏感信息的能力。
答案 0 :(得分:3)
这里有一些问题。
1)仅使用TLS作为用户名+密码仍然是一个漏洞。它违反了owasp a9,并且使用火焰式攻击劫持你系统上的任何帐户都是微不足道的。
我知道PA-DSS 2.0没有体现整个owasp前10名,但应注意要求12.1:
12.1 指示客户使用加密所有非控制台管理访问权限 强大的密码学,使用 SSH,VPN或等技术 用于基于Web的管理和SSL的SSL / TLS 其他非控制台管理 访问。
其中包括管理http界面。
2)PA-DSS建议使用真正的传输层安全性,例如:VPN和TLS / SSL。我不相信滚动哈希的要求,说实话,这不是一个非常安全的设计。此类流量需要完整的传输层保护。
3)不要忘记要求9:
9。持卡人数据绝不能存储在连接到互联网的服务器上