背景:我们有一个通过 HTTPS 工作的站点(不支持 HTTP,我们使用 HSTS)。它部署在第三方云中,这限制了我们对服务器硬件的控制和记录能力。我们不能强制使用客户端证书身份验证。因此,基本上我们拥有的是具有标准 2 因素身份验证(登录/通行证 + SMS)的公共 HTTPS 站点,可以从桌面或移动浏览器访问,以及从本地移动应用程序内部在同一站点上的附加 API。服务器软件基于.Net/IIS。
我们正在考虑以下场景——用户的计算机/智能手机以某种方式信任攻击者的证书,从而允许经典的 MiM 攻击(因此用户使用受信任的证书连接到代理,并且代理连接到我们的服务器)。一种常见的(在某些国家)场景是互联网提供商要求用户信任他们的自签名证书。
抛开客户端的安全性(检查证书指纹等) - 服务器(即我们的应用程序)有什么方法可以了解 MiM 攻击已经到位?
这类似于这个问题HTTPS - Can server see details of client side certificate? ,但我不仅在寻找立即检测此类攻击的方法(如果可能的话当然会很好),而且还在寻找可以帮助我们长期检测此类攻击的方法,例如有一些历史记录。