如果客户端在服务器上强制执行 TLS 1.2,为什么 Stripe 允许它们只支持 TLS 1.0?

Why do Stripe allow clients that only support TLS 1.0 if they enforce TLS 1.2 on the server?

Stripe 是一种支付处理服务,其工作原理大致如下:

我们的服务器是only allowed to communicate with Stripe's API over TLS 1.2.

但是,Stripe 前端 JavaScript 支持 IE9 和 IE10,它们不能立即处理 TLS 1.2。因此,这些浏览器上的某些用户会使用较弱的 TLS 1.0.

请求 Stripe JavaScript

如何阻止有人为这些用户欺骗 Stripe JavaScript 和中间人窃取他们的银行卡详细信息?

问得好!

PCI 安全标准委员会将 TLS 1.0 截止日期设置为 2018 年 6 月 30 日 [1]

为了简化过渡,Stripe 开始对 2016 年 7 月 1 日之后创建的帐户强制执行 TLS 1.2 [2],并逐步取消对旧帐户的 TLS 1.0 和 1.1 的支持。

也就是说,对于客户端库 (Checkout and Stripe.js),如您所述,Stripe 仍然允许 TLS 1.0 / 1.1。这是因为 Stripe 不想不必要地阻止客户付款,即使他们使用的是无法使用 TLS 1.2 的旧浏览器/OS。

当然,到 2018 年 6 月 30 日,使用 TLS 1.0 浏览器的客户将无法再通过 Stripe(或任何其他在线支付处理器)进行支付。